# talks only about the 180-degree meridian with respect to ships in
# international waters; it ignores the international date line.
================================================
FILE: public/admin-panel/assets/libs/flot/examples/axes-time-zones/tz/backward
================================================
#
# This file is in the public domain, so clarified as of
# 2009-05-17 by Arthur David Olson.
# This file provides links between current names for time zones
# and their old names. Many names changed in late 1993.
Link Africa/Asmara Africa/Asmera
Link Africa/Bamako Africa/Timbuktu
Link America/Argentina/Catamarca America/Argentina/ComodRivadavia
Link America/Adak America/Atka
Link America/Argentina/Buenos_Aires America/Buenos_Aires
Link America/Argentina/Catamarca America/Catamarca
Link America/Atikokan America/Coral_Harbour
Link America/Argentina/Cordoba America/Cordoba
Link America/Tijuana America/Ensenada
Link America/Indiana/Indianapolis America/Fort_Wayne
Link America/Indiana/Indianapolis America/Indianapolis
Link America/Argentina/Jujuy America/Jujuy
Link America/Indiana/Knox America/Knox_IN
Link America/Kentucky/Louisville America/Louisville
Link America/Argentina/Mendoza America/Mendoza
Link America/Rio_Branco America/Porto_Acre
Link America/Argentina/Cordoba America/Rosario
Link America/St_Thomas America/Virgin
Link Asia/Ashgabat Asia/Ashkhabad
Link Asia/Chongqing Asia/Chungking
Link Asia/Dhaka Asia/Dacca
Link Asia/Kathmandu Asia/Katmandu
Link Asia/Kolkata Asia/Calcutta
Link Asia/Macau Asia/Macao
Link Asia/Jerusalem Asia/Tel_Aviv
Link Asia/Ho_Chi_Minh Asia/Saigon
Link Asia/Thimphu Asia/Thimbu
Link Asia/Makassar Asia/Ujung_Pandang
Link Asia/Ulaanbaatar Asia/Ulan_Bator
Link Atlantic/Faroe Atlantic/Faeroe
Link Europe/Oslo Atlantic/Jan_Mayen
Link Australia/Sydney Australia/ACT
Link Australia/Sydney Australia/Canberra
Link Australia/Lord_Howe Australia/LHI
Link Australia/Sydney Australia/NSW
Link Australia/Darwin Australia/North
Link Australia/Brisbane Australia/Queensland
Link Australia/Adelaide Australia/South
Link Australia/Hobart Australia/Tasmania
Link Australia/Melbourne Australia/Victoria
Link Australia/Perth Australia/West
Link Australia/Broken_Hill Australia/Yancowinna
Link America/Rio_Branco Brazil/Acre
Link America/Noronha Brazil/DeNoronha
Link America/Sao_Paulo Brazil/East
Link America/Manaus Brazil/West
Link America/Halifax Canada/Atlantic
Link America/Winnipeg Canada/Central
Link America/Regina Canada/East-Saskatchewan
Link America/Toronto Canada/Eastern
Link America/Edmonton Canada/Mountain
Link America/St_Johns Canada/Newfoundland
Link America/Vancouver Canada/Pacific
Link America/Regina Canada/Saskatchewan
Link America/Whitehorse Canada/Yukon
Link America/Santiago Chile/Continental
Link Pacific/Easter Chile/EasterIsland
Link America/Havana Cuba
Link Africa/Cairo Egypt
Link Europe/Dublin Eire
Link Europe/London Europe/Belfast
Link Europe/Chisinau Europe/Tiraspol
Link Europe/London GB
Link Europe/London GB-Eire
Link Etc/GMT GMT+0
Link Etc/GMT GMT-0
Link Etc/GMT GMT0
Link Etc/GMT Greenwich
Link Asia/Hong_Kong Hongkong
Link Atlantic/Reykjavik Iceland
Link Asia/Tehran Iran
Link Asia/Jerusalem Israel
Link America/Jamaica Jamaica
Link Asia/Tokyo Japan
Link Pacific/Kwajalein Kwajalein
Link Africa/Tripoli Libya
Link America/Tijuana Mexico/BajaNorte
Link America/Mazatlan Mexico/BajaSur
Link America/Mexico_City Mexico/General
Link Pacific/Auckland NZ
Link Pacific/Chatham NZ-CHAT
Link America/Denver Navajo
Link Asia/Shanghai PRC
Link Pacific/Pago_Pago Pacific/Samoa
Link Pacific/Chuuk Pacific/Yap
Link Pacific/Chuuk Pacific/Truk
Link Pacific/Pohnpei Pacific/Ponape
Link Europe/Warsaw Poland
Link Europe/Lisbon Portugal
Link Asia/Taipei ROC
Link Asia/Seoul ROK
Link Asia/Singapore Singapore
Link Europe/Istanbul Turkey
Link Etc/UCT UCT
Link America/Anchorage US/Alaska
Link America/Adak US/Aleutian
Link America/Phoenix US/Arizona
Link America/Chicago US/Central
Link America/Indiana/Indianapolis US/East-Indiana
Link America/New_York US/Eastern
Link Pacific/Honolulu US/Hawaii
Link America/Indiana/Knox US/Indiana-Starke
Link America/Detroit US/Michigan
Link America/Denver US/Mountain
Link America/Los_Angeles US/Pacific
Link Pacific/Pago_Pago US/Samoa
Link Etc/UTC UTC
Link Etc/UTC Universal
Link Europe/Moscow W-SU
Link Etc/UTC Zulu
================================================
FILE: public/admin-panel/assets/libs/flot/examples/axes-time-zones/tz/etcetera
================================================
#
# This file is in the public domain, so clarified as of
# 2009-05-17 by Arthur David Olson.
# These entries are mostly present for historical reasons, so that
# people in areas not otherwise covered by the tz files could "zic -l"
# to a time zone that was right for their area. These days, the
# tz files cover almost all the inhabited world, and the only practical
# need now for the entries that are not on UTC are for ships at sea
# that cannot use POSIX TZ settings.
Zone Etc/GMT 0 - GMT
Zone Etc/UTC 0 - UTC
Zone Etc/UCT 0 - UCT
# The following link uses older naming conventions,
# but it belongs here, not in the file `backward',
# as functions like gmtime load the "GMT" file to handle leap seconds properly.
# We want this to work even on installations that omit the other older names.
Link Etc/GMT GMT
Link Etc/UTC Etc/Universal
Link Etc/UTC Etc/Zulu
Link Etc/GMT Etc/Greenwich
Link Etc/GMT Etc/GMT-0
Link Etc/GMT Etc/GMT+0
Link Etc/GMT Etc/GMT0
# We use POSIX-style signs in the Zone names and the output abbreviations,
# even though this is the opposite of what many people expect.
# POSIX has positive signs west of Greenwich, but many people expect
# positive signs east of Greenwich. For example, TZ='Etc/GMT+4' uses
# the abbreviation "GMT+4" and corresponds to 4 hours behind UTC
# (i.e. west of Greenwich) even though many people would expect it to
# mean 4 hours ahead of UTC (i.e. east of Greenwich).
#
# In the draft 5 of POSIX 1003.1-200x, the angle bracket notation allows for
# TZ='+4'; if you want time zone abbreviations conforming to
# ISO 8601 you can use TZ='<-0400>+4'. Thus the commonly-expected
# offset is kept within the angle bracket (and is used for display)
# while the POSIX sign is kept outside the angle bracket (and is used
# for calculation).
#
# Do not use a TZ setting like TZ='GMT+4', which is four hours behind
# GMT but uses the completely misleading abbreviation "GMT".
# Earlier incarnations of this package were not POSIX-compliant,
# and had lines such as
# Zone GMT-12 -12 - GMT-1200
# We did not want things to change quietly if someone accustomed to the old
# way does a
# zic -l GMT-12
# so we moved the names into the Etc subdirectory.
Zone Etc/GMT-14 14 - GMT-14 # 14 hours ahead of GMT
Zone Etc/GMT-13 13 - GMT-13
Zone Etc/GMT-12 12 - GMT-12
Zone Etc/GMT-11 11 - GMT-11
Zone Etc/GMT-10 10 - GMT-10
Zone Etc/GMT-9 9 - GMT-9
Zone Etc/GMT-8 8 - GMT-8
Zone Etc/GMT-7 7 - GMT-7
Zone Etc/GMT-6 6 - GMT-6
Zone Etc/GMT-5 5 - GMT-5
Zone Etc/GMT-4 4 - GMT-4
Zone Etc/GMT-3 3 - GMT-3
Zone Etc/GMT-2 2 - GMT-2
Zone Etc/GMT-1 1 - GMT-1
Zone Etc/GMT+1 -1 - GMT+1
Zone Etc/GMT+2 -2 - GMT+2
Zone Etc/GMT+3 -3 - GMT+3
Zone Etc/GMT+4 -4 - GMT+4
Zone Etc/GMT+5 -5 - GMT+5
Zone Etc/GMT+6 -6 - GMT+6
Zone Etc/GMT+7 -7 - GMT+7
Zone Etc/GMT+8 -8 - GMT+8
Zone Etc/GMT+9 -9 - GMT+9
Zone Etc/GMT+10 -10 - GMT+10
Zone Etc/GMT+11 -11 - GMT+11
Zone Etc/GMT+12 -12 - GMT+12
================================================
FILE: public/admin-panel/assets/libs/flot/examples/axes-time-zones/tz/europe
================================================
#
# This file is in the public domain, so clarified as of
# 2009-05-17 by Arthur David Olson.
# This data is by no means authoritative; if you think you know better,
# go ahead and edit the file (and please send any changes to
# tz@iana.org for general use in the future).
# From Paul Eggert (2006-03-22):
# A good source for time zone historical data outside the U.S. is
# Thomas G. Shanks and Rique Pottenger, The International Atlas (6th edition),
# San Diego: ACS Publications, Inc. (2003).
#
# Gwillim Law writes that a good source
# for recent time zone data is the International Air Transport
# Association's Standard Schedules Information Manual (IATA SSIM),
# published semiannually. Law sent in several helpful summaries
# of the IATA's data after 1990.
#
# Except where otherwise noted, Shanks & Pottenger is the source for
# entries through 1991, and IATA SSIM is the source for entries afterwards.
#
# Other sources occasionally used include:
#
# Edward W. Whitman, World Time Differences,
# Whitman Publishing Co, 2 Niagara Av, Ealing, London (undated),
# which I found in the UCLA library.
#
#
# William Willett, The Waste of Daylight, 19th edition
# (1914-03)
#
# Brazil's Departamento Servico da Hora (DSH),
#
# History of Summer Time
# (1998-09-21, in Portuguese)
#
# I invented the abbreviations marked `*' in the following table;
# the rest are from earlier versions of this file, or from other sources.
# Corrections are welcome!
# std dst 2dst
# LMT Local Mean Time
# -4:00 AST ADT Atlantic
# -3:00 WGT WGST Western Greenland*
# -1:00 EGT EGST Eastern Greenland*
# 0:00 GMT BST BDST Greenwich, British Summer
# 0:00 GMT IST Greenwich, Irish Summer
# 0:00 WET WEST WEMT Western Europe
# 0:19:32.13 AMT NST Amsterdam, Netherlands Summer (1835-1937)*
# 0:20 NET NEST Netherlands (1937-1940)*
# 1:00 CET CEST CEMT Central Europe
# 1:00:14 SET Swedish (1879-1899)*
# 2:00 EET EEST Eastern Europe
# 3:00 MSK MSD Moscow
#
# A reliable and entertaining source about time zones, especially in Britain,
# Derek Howse, Greenwich time and longitude, Philip Wilson Publishers (1997).
# From Peter Ilieve (1994-12-04),
# The original six [EU members]: Belgium, France, (West) Germany, Italy,
# Luxembourg, the Netherlands.
# Plus, from 1 Jan 73: Denmark, Ireland, United Kingdom.
# Plus, from 1 Jan 81: Greece.
# Plus, from 1 Jan 86: Spain, Portugal.
# Plus, from 1 Jan 95: Austria, Finland, Sweden. (Norway negotiated terms for
# entry but in a referendum on 28 Nov 94 the people voted No by 52.2% to 47.8%
# on a turnout of 88.6%. This was almost the same result as Norway's previous
# referendum in 1972, they are the only country to have said No twice.
# Referendums in the other three countries voted Yes.)
# ...
# Estonia ... uses EU dates but not at 01:00 GMT, they use midnight GMT.
# I don't think they know yet what they will do from 1996 onwards.
# ...
# There shouldn't be any [current members who are not using EU rules].
# A Directive has the force of law, member states are obliged to enact
# national law to implement it. The only contentious issue was the
# different end date for the UK and Ireland, and this was always allowed
# in the Directive.
###############################################################################
# Britain (United Kingdom) and Ireland (Eire)
# From Peter Ilieve (1994-07-06):
#
# On 17 Jan 1994 the Independent, a UK quality newspaper, had a piece about
# historical vistas along the Thames in west London. There was a photo
# and a sketch map showing some of the sightlines involved. One paragraph
# of the text said:
#
# `An old stone obelisk marking a forgotten terrestrial meridian stands
# beside the river at Kew. In the 18th century, before time and longitude
# was standardised by the Royal Observatory in Greenwich, scholars observed
# this stone and the movement of stars from Kew Observatory nearby. They
# made their calculations and set the time for the Horse Guards and Parliament,
# but now the stone is obscured by scrubwood and can only be seen by walking
# along the towpath within a few yards of it.'
#
# I have a one inch to one mile map of London and my estimate of the stone's
# position is 51 deg. 28' 30" N, 0 deg. 18' 45" W. The longitude should
# be within about +-2". The Ordnance Survey grid reference is TQ172761.
#
# [This yields GMTOFF = -0:01:15 for London LMT in the 18th century.]
# From Paul Eggert (1993-11-18):
#
# Howse writes that Britain was the first country to use standard time.
# The railways cared most about the inconsistencies of local mean time,
# and it was they who forced a uniform time on the country.
# The original idea was credited to Dr. William Hyde Wollaston (1766-1828)
# and was popularized by Abraham Follett Osler (1808-1903).
# The first railway to adopt London time was the Great Western Railway
# in November 1840; other railways followed suit, and by 1847 most
# (though not all) railways used London time. On 1847-09-22 the
# Railway Clearing House, an industry standards body, recommended that GMT be
# adopted at all stations as soon as the General Post Office permitted it.
# The transition occurred on 12-01 for the L&NW, the Caledonian,
# and presumably other railways; the January 1848 Bradshaw's lists many
# railways as using GMT. By 1855 the vast majority of public
# clocks in Britain were set to GMT (though some, like the great clock
# on Tom Tower at Christ Church, Oxford, were fitted with two minute hands,
# one for local time and one for GMT). The last major holdout was the legal
# system, which stubbornly stuck to local time for many years, leading
# to oddities like polls opening at 08:13 and closing at 16:13.
# The legal system finally switched to GMT when the Statutes (Definition
# of Time) Act took effect; it received the Royal Assent on 1880-08-02.
#
# In the tables below, we condense this complicated story into a single
# transition date for London, namely 1847-12-01. We don't know as much
# about Dublin, so we use 1880-08-02, the legal transition time.
# From Paul Eggert (2003-09-27):
# Summer Time was first seriously proposed by William Willett (1857-1915),
# a London builder and member of the Royal Astronomical Society
# who circulated a pamphlet ``The Waste of Daylight'' (1907)
# that proposed advancing clocks 20 minutes on each of four Sundays in April,
# and retarding them by the same amount on four Sundays in September.
# A bill was drafted in 1909 and introduced in Parliament several times,
# but it met with ridicule and opposition, especially from farming interests.
# Later editions of the pamphlet proposed one-hour summer time, and
# it was eventually adopted as a wartime measure in 1916.
# See: Summer Time Arrives Early, The Times (2000-05-18).
# A monument to Willett was unveiled on 1927-05-21, in an open space in
# a 45-acre wood near Chislehurst, Kent that was purchased by popular
# subscription and open to the public. On the south face of the monolith,
# designed by G. W. Miller, is the...William Willett Memorial Sundial,
# which is permanently set to Summer Time.
# From Winston Churchill (1934-04-28):
# It is one of the paradoxes of history that we should owe the boon of
# summer time, which gives every year to the people of this country
# between 160 and 170 hours more daylight leisure, to a war which
# plunged Europe into darkness for four years, and shook the
# foundations of civilization throughout the world.
# --
# "A Silent Toast to William Willett", Pictorial Weekly
#
# From Paul Eggert (1996-09-03):
# The OED Supplement says that the English originally said ``Daylight Saving''
# when they were debating the adoption of DST in 1908; but by 1916 this
# term appears only in quotes taken from DST's opponents, whereas the
# proponents (who eventually won the argument) are quoted as using ``Summer''.
# From Arthur David Olson (1989-01-19):
#
# A source at the British Information Office in New York avers that it's
# known as "British" Summer Time in all parts of the United Kingdom.
# Date: 4 Jan 89 08:57:25 GMT (Wed)
# From: Jonathan Leffler
# [British Summer Time] is fixed annually by Act of Parliament.
# If you can predict what Parliament will do, you should be in
# politics making a fortune, not computing.
# From Chris Carrier (1996-06-14):
# I remember reading in various wartime issues of the London Times the
# acronym BDST for British Double Summer Time. Look for the published
# time of sunrise and sunset in The Times, when BDST was in effect, and
# if you find a zone reference it will say, "All times B.D.S.T."
# From Joseph S. Myers (1999-09-02):
# ... some military cables (WO 219/4100 - this is a copy from the
# main SHAEF archives held in the US National Archives, SHAEF/5252/8/516)
# agree that the usage is BDST (this appears in a message dated 17 Feb 1945).
# From Joseph S. Myers (2000-10-03):
# On 18th April 1941, Sir Stephen Tallents of the BBC wrote to Sir
# Alexander Maxwell of the Home Office asking whether there was any
# official designation; the reply of the 21st was that there wasn't
# but he couldn't think of anything better than the "Double British
# Summer Time" that the BBC had been using informally.
# http://student.cusu.cam.ac.uk/~jsm28/british-time/bbc-19410418.png
# http://student.cusu.cam.ac.uk/~jsm28/british-time/ho-19410421.png
# From Sir Alexander Maxwell in the above-mentioned letter (1941-04-21):
# [N]o official designation has as far as I know been adopted for the time
# which is to be introduced in May....
# I cannot think of anything better than "Double British Summer Time"
# which could not be said to run counter to any official description.
# From Paul Eggert (2000-10-02):
# Howse writes (p 157) `DBST' too, but `BDST' seems to have been common
# and follows the more usual convention of putting the location name first,
# so we use `BDST'.
# Peter Ilieve (1998-04-19) described at length
# the history of summer time legislation in the United Kingdom.
# Since 1998 Joseph S. Myers has been updating
# and extending this list, which can be found in
# http://student.cusu.cam.ac.uk/~jsm28/british-time/
#
# History of legal time in Britain
#
# Rob Crowther (2012-01-04) reports that that URL no longer
# exists, and the article can now be found at:
#
# http://www.polyomino.org.uk/british-time/
#
# From Joseph S. Myers (1998-01-06):
#
# The legal time in the UK outside of summer time is definitely GMT, not UTC;
# see Lord Tanlaw's speech
#
# (Lords Hansard 11 June 1997 columns 964 to 976)
# .
# From Paul Eggert (2006-03-22):
#
# For lack of other data, follow Shanks & Pottenger for Eire in 1940-1948.
#
# Given Ilieve and Myers's data, the following claims by Shanks & Pottenger
# are incorrect:
# * Wales did not switch from GMT to daylight saving time until
# 1921 Apr 3, when they began to conform with the rest of Great Britain.
# Actually, Wales was identical after 1880.
# * Eire had two transitions on 1916 Oct 1.
# It actually just had one transition.
# * Northern Ireland used single daylight saving time throughout WW II.
# Actually, it conformed to Britain.
# * GB-Eire changed standard time to 1 hour ahead of GMT on 1968-02-18.
# Actually, that date saw the usual switch to summer time.
# Standard time was not changed until 1968-10-27 (the clocks didn't change).
#
# Here is another incorrect claim by Shanks & Pottenger:
# * Jersey, Guernsey, and the Isle of Man did not switch from GMT
# to daylight saving time until 1921 Apr 3, when they began to
# conform with Great Britain.
# S.R.&O. 1916, No. 382 and HO 45/10811/312364 (quoted above) say otherwise.
#
# The following claim by Shanks & Pottenger is possible though doubtful;
# we'll ignore it for now.
# * Dublin's 1971-10-31 switch was at 02:00, even though London's was 03:00.
#
#
# Whitman says Dublin Mean Time was -0:25:21, which is more precise than
# Shanks & Pottenger.
# Perhaps this was Dunsink Observatory Time, as Dunsink Observatory
# (8 km NW of Dublin's center) seemingly was to Dublin as Greenwich was
# to London. For example:
#
# "Timeball on the ballast office is down. Dunsink time."
# -- James Joyce, Ulysses
# From Joseph S. Myers (2005-01-26):
# Irish laws are available online at www.irishstatutebook.ie. These include
# various relating to legal time, for example:
#
# ZZA13Y1923.html ZZA12Y1924.html ZZA8Y1925.html ZZSIV20PG1267.html
#
# ZZSI71Y1947.html ZZSI128Y1948.html ZZSI23Y1949.html ZZSI41Y1950.html
# ZZSI27Y1951.html ZZSI73Y1952.html
#
# ZZSI11Y1961.html ZZSI232Y1961.html ZZSI182Y1962.html
# ZZSI167Y1963.html ZZSI257Y1964.html ZZSI198Y1967.html
# ZZA23Y1968.html ZZA17Y1971.html
#
# ZZSI67Y1981.html ZZSI212Y1982.html ZZSI45Y1986.html
# ZZSI264Y1988.html ZZSI52Y1990.html ZZSI371Y1992.html
# ZZSI395Y1994.html ZZSI484Y1997.html ZZSI506Y2001.html
#
# [These are all relative to the root, e.g., the first is
# .]
#
# (These are those I found, but there could be more. In any case these
# should allow various updates to the comments in the europe file to cover
# the laws applicable in Ireland.)
#
# (Note that the time in the Republic of Ireland since 1968 has been defined
# in terms of standard time being GMT+1 with a period of winter time when it
# is GMT, rather than standard time being GMT with a period of summer time
# being GMT+1.)
# From Paul Eggert (1999-03-28):
# Clive Feather (, 1997-03-31)
# reports that Folkestone (Cheriton) Shuttle Terminal uses Concession Time
# (CT), equivalent to French civil time.
# Julian Hill (, 1998-09-30) reports that
# trains between Dollands Moor (the freight facility next door)
# and Frethun run in CT.
# My admittedly uninformed guess is that the terminal has two authorities,
# the French concession operators and the British civil authorities,
# and that the time depends on who you're talking to.
# If, say, the British police were called to the station for some reason,
# I would expect the official police report to use GMT/BST and not CET/CEST.
# This is a borderline case, but for now let's stick to GMT/BST.
# From an anonymous contributor (1996-06-02):
# The law governing time in Ireland is under Statutory Instrument SI 395/94,
# which gives force to European Union 7th Council Directive # 94/21/EC.
# Under this directive, the Minister for Justice in Ireland makes appropriate
# regulations. I spoke this morning with the Secretary of the Department of
# Justice (tel +353 1 678 9711) who confirmed to me that the correct name is
# "Irish Summer Time", abbreviated to "IST".
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
# Summer Time Act, 1916
Rule GB-Eire 1916 only - May 21 2:00s 1:00 BST
Rule GB-Eire 1916 only - Oct 1 2:00s 0 GMT
# S.R.&O. 1917, No. 358
Rule GB-Eire 1917 only - Apr 8 2:00s 1:00 BST
Rule GB-Eire 1917 only - Sep 17 2:00s 0 GMT
# S.R.&O. 1918, No. 274
Rule GB-Eire 1918 only - Mar 24 2:00s 1:00 BST
Rule GB-Eire 1918 only - Sep 30 2:00s 0 GMT
# S.R.&O. 1919, No. 297
Rule GB-Eire 1919 only - Mar 30 2:00s 1:00 BST
Rule GB-Eire 1919 only - Sep 29 2:00s 0 GMT
# S.R.&O. 1920, No. 458
Rule GB-Eire 1920 only - Mar 28 2:00s 1:00 BST
# S.R.&O. 1920, No. 1844
Rule GB-Eire 1920 only - Oct 25 2:00s 0 GMT
# S.R.&O. 1921, No. 363
Rule GB-Eire 1921 only - Apr 3 2:00s 1:00 BST
Rule GB-Eire 1921 only - Oct 3 2:00s 0 GMT
# S.R.&O. 1922, No. 264
Rule GB-Eire 1922 only - Mar 26 2:00s 1:00 BST
Rule GB-Eire 1922 only - Oct 8 2:00s 0 GMT
# The Summer Time Act, 1922
Rule GB-Eire 1923 only - Apr Sun>=16 2:00s 1:00 BST
Rule GB-Eire 1923 1924 - Sep Sun>=16 2:00s 0 GMT
Rule GB-Eire 1924 only - Apr Sun>=9 2:00s 1:00 BST
Rule GB-Eire 1925 1926 - Apr Sun>=16 2:00s 1:00 BST
# The Summer Time Act, 1925
Rule GB-Eire 1925 1938 - Oct Sun>=2 2:00s 0 GMT
Rule GB-Eire 1927 only - Apr Sun>=9 2:00s 1:00 BST
Rule GB-Eire 1928 1929 - Apr Sun>=16 2:00s 1:00 BST
Rule GB-Eire 1930 only - Apr Sun>=9 2:00s 1:00 BST
Rule GB-Eire 1931 1932 - Apr Sun>=16 2:00s 1:00 BST
Rule GB-Eire 1933 only - Apr Sun>=9 2:00s 1:00 BST
Rule GB-Eire 1934 only - Apr Sun>=16 2:00s 1:00 BST
Rule GB-Eire 1935 only - Apr Sun>=9 2:00s 1:00 BST
Rule GB-Eire 1936 1937 - Apr Sun>=16 2:00s 1:00 BST
Rule GB-Eire 1938 only - Apr Sun>=9 2:00s 1:00 BST
Rule GB-Eire 1939 only - Apr Sun>=16 2:00s 1:00 BST
# S.R.&O. 1939, No. 1379
Rule GB-Eire 1939 only - Nov Sun>=16 2:00s 0 GMT
# S.R.&O. 1940, No. 172 and No. 1883
Rule GB-Eire 1940 only - Feb Sun>=23 2:00s 1:00 BST
# S.R.&O. 1941, No. 476
Rule GB-Eire 1941 only - May Sun>=2 1:00s 2:00 BDST
Rule GB-Eire 1941 1943 - Aug Sun>=9 1:00s 1:00 BST
# S.R.&O. 1942, No. 506
Rule GB-Eire 1942 1944 - Apr Sun>=2 1:00s 2:00 BDST
# S.R.&O. 1944, No. 932
Rule GB-Eire 1944 only - Sep Sun>=16 1:00s 1:00 BST
# S.R.&O. 1945, No. 312
Rule GB-Eire 1945 only - Apr Mon>=2 1:00s 2:00 BDST
Rule GB-Eire 1945 only - Jul Sun>=9 1:00s 1:00 BST
# S.R.&O. 1945, No. 1208
Rule GB-Eire 1945 1946 - Oct Sun>=2 2:00s 0 GMT
Rule GB-Eire 1946 only - Apr Sun>=9 2:00s 1:00 BST
# The Summer Time Act, 1947
Rule GB-Eire 1947 only - Mar 16 2:00s 1:00 BST
Rule GB-Eire 1947 only - Apr 13 1:00s 2:00 BDST
Rule GB-Eire 1947 only - Aug 10 1:00s 1:00 BST
Rule GB-Eire 1947 only - Nov 2 2:00s 0 GMT
# Summer Time Order, 1948 (S.I. 1948/495)
Rule GB-Eire 1948 only - Mar 14 2:00s 1:00 BST
Rule GB-Eire 1948 only - Oct 31 2:00s 0 GMT
# Summer Time Order, 1949 (S.I. 1949/373)
Rule GB-Eire 1949 only - Apr 3 2:00s 1:00 BST
Rule GB-Eire 1949 only - Oct 30 2:00s 0 GMT
# Summer Time Order, 1950 (S.I. 1950/518)
# Summer Time Order, 1951 (S.I. 1951/430)
# Summer Time Order, 1952 (S.I. 1952/451)
Rule GB-Eire 1950 1952 - Apr Sun>=14 2:00s 1:00 BST
Rule GB-Eire 1950 1952 - Oct Sun>=21 2:00s 0 GMT
# revert to the rules of the Summer Time Act, 1925
Rule GB-Eire 1953 only - Apr Sun>=16 2:00s 1:00 BST
Rule GB-Eire 1953 1960 - Oct Sun>=2 2:00s 0 GMT
Rule GB-Eire 1954 only - Apr Sun>=9 2:00s 1:00 BST
Rule GB-Eire 1955 1956 - Apr Sun>=16 2:00s 1:00 BST
Rule GB-Eire 1957 only - Apr Sun>=9 2:00s 1:00 BST
Rule GB-Eire 1958 1959 - Apr Sun>=16 2:00s 1:00 BST
Rule GB-Eire 1960 only - Apr Sun>=9 2:00s 1:00 BST
# Summer Time Order, 1961 (S.I. 1961/71)
# Summer Time (1962) Order, 1961 (S.I. 1961/2465)
# Summer Time Order, 1963 (S.I. 1963/81)
Rule GB-Eire 1961 1963 - Mar lastSun 2:00s 1:00 BST
Rule GB-Eire 1961 1968 - Oct Sun>=23 2:00s 0 GMT
# Summer Time (1964) Order, 1963 (S.I. 1963/2101)
# Summer Time Order, 1964 (S.I. 1964/1201)
# Summer Time Order, 1967 (S.I. 1967/1148)
Rule GB-Eire 1964 1967 - Mar Sun>=19 2:00s 1:00 BST
# Summer Time Order, 1968 (S.I. 1968/117)
Rule GB-Eire 1968 only - Feb 18 2:00s 1:00 BST
# The British Standard Time Act, 1968
# (no summer time)
# The Summer Time Act, 1972
Rule GB-Eire 1972 1980 - Mar Sun>=16 2:00s 1:00 BST
Rule GB-Eire 1972 1980 - Oct Sun>=23 2:00s 0 GMT
# Summer Time Order, 1980 (S.I. 1980/1089)
# Summer Time Order, 1982 (S.I. 1982/1673)
# Summer Time Order, 1986 (S.I. 1986/223)
# Summer Time Order, 1988 (S.I. 1988/931)
Rule GB-Eire 1981 1995 - Mar lastSun 1:00u 1:00 BST
Rule GB-Eire 1981 1989 - Oct Sun>=23 1:00u 0 GMT
# Summer Time Order, 1989 (S.I. 1989/985)
# Summer Time Order, 1992 (S.I. 1992/1729)
# Summer Time Order 1994 (S.I. 1994/2798)
Rule GB-Eire 1990 1995 - Oct Sun>=22 1:00u 0 GMT
# Summer Time Order 1997 (S.I. 1997/2982)
# See EU for rules starting in 1996.
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone Europe/London -0:01:15 - LMT 1847 Dec 1 0:00s
0:00 GB-Eire %s 1968 Oct 27
1:00 - BST 1971 Oct 31 2:00u
0:00 GB-Eire %s 1996
0:00 EU GMT/BST
Link Europe/London Europe/Jersey
Link Europe/London Europe/Guernsey
Link Europe/London Europe/Isle_of_Man
Zone Europe/Dublin -0:25:00 - LMT 1880 Aug 2
-0:25:21 - DMT 1916 May 21 2:00
-0:25:21 1:00 IST 1916 Oct 1 2:00s
0:00 GB-Eire %s 1921 Dec 6 # independence
0:00 GB-Eire GMT/IST 1940 Feb 25 2:00
0:00 1:00 IST 1946 Oct 6 2:00
0:00 - GMT 1947 Mar 16 2:00
0:00 1:00 IST 1947 Nov 2 2:00
0:00 - GMT 1948 Apr 18 2:00
0:00 GB-Eire GMT/IST 1968 Oct 27
1:00 - IST 1971 Oct 31 2:00u
0:00 GB-Eire GMT/IST 1996
0:00 EU GMT/IST
###############################################################################
# Europe
# EU rules are for the European Union, previously known as the EC, EEC,
# Common Market, etc.
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
Rule EU 1977 1980 - Apr Sun>=1 1:00u 1:00 S
Rule EU 1977 only - Sep lastSun 1:00u 0 -
Rule EU 1978 only - Oct 1 1:00u 0 -
Rule EU 1979 1995 - Sep lastSun 1:00u 0 -
Rule EU 1981 max - Mar lastSun 1:00u 1:00 S
Rule EU 1996 max - Oct lastSun 1:00u 0 -
# The most recent directive covers the years starting in 2002. See:
#
# Directive 2000/84/EC of the European Parliament and of the Council
# of 19 January 2001 on summer-time arrangements.
#
# W-Eur differs from EU only in that W-Eur uses standard time.
Rule W-Eur 1977 1980 - Apr Sun>=1 1:00s 1:00 S
Rule W-Eur 1977 only - Sep lastSun 1:00s 0 -
Rule W-Eur 1978 only - Oct 1 1:00s 0 -
Rule W-Eur 1979 1995 - Sep lastSun 1:00s 0 -
Rule W-Eur 1981 max - Mar lastSun 1:00s 1:00 S
Rule W-Eur 1996 max - Oct lastSun 1:00s 0 -
# Older C-Eur rules are for convenience in the tables.
# From 1977 on, C-Eur differs from EU only in that C-Eur uses standard time.
Rule C-Eur 1916 only - Apr 30 23:00 1:00 S
Rule C-Eur 1916 only - Oct 1 1:00 0 -
Rule C-Eur 1917 1918 - Apr Mon>=15 2:00s 1:00 S
Rule C-Eur 1917 1918 - Sep Mon>=15 2:00s 0 -
Rule C-Eur 1940 only - Apr 1 2:00s 1:00 S
Rule C-Eur 1942 only - Nov 2 2:00s 0 -
Rule C-Eur 1943 only - Mar 29 2:00s 1:00 S
Rule C-Eur 1943 only - Oct 4 2:00s 0 -
Rule C-Eur 1944 1945 - Apr Mon>=1 2:00s 1:00 S
# Whitman gives 1944 Oct 7; go with Shanks & Pottenger.
Rule C-Eur 1944 only - Oct 2 2:00s 0 -
# From Jesper Norgaard Welen (2008-07-13):
#
# I found what is probably a typo of 2:00 which should perhaps be 2:00s
# in the C-Eur rule from tz database version 2008d (this part was
# corrected in version 2008d). The circumstancial evidence is simply the
# tz database itself, as seen below:
#
# Zone Europe/Paris 0:09:21 - LMT 1891 Mar 15 0:01
# 0:00 France WE%sT 1945 Sep 16 3:00
#
# Zone Europe/Monaco 0:29:32 - LMT 1891 Mar 15
# 0:00 France WE%sT 1945 Sep 16 3:00
#
# Zone Europe/Belgrade 1:22:00 - LMT 1884
# 1:00 1:00 CEST 1945 Sep 16 2:00s
#
# Rule France 1945 only - Sep 16 3:00 0 -
# Rule Belgium 1945 only - Sep 16 2:00s 0 -
# Rule Neth 1945 only - Sep 16 2:00s 0 -
#
# The rule line to be changed is:
#
# Rule C-Eur 1945 only - Sep 16 2:00 0 -
#
# It seems that Paris, Monaco, Rule France, Rule Belgium all agree on
# 2:00 standard time, e.g. 3:00 local time. However there are no
# countries that use C-Eur rules in September 1945, so the only items
# affected are apparently these ficticious zones that translates acronyms
# CET and MET:
#
# Zone CET 1:00 C-Eur CE%sT
# Zone MET 1:00 C-Eur ME%sT
#
# It this is right then the corrected version would look like:
#
# Rule C-Eur 1945 only - Sep 16 2:00s 0 -
#
# A small step for mankind though 8-)
Rule C-Eur 1945 only - Sep 16 2:00s 0 -
Rule C-Eur 1977 1980 - Apr Sun>=1 2:00s 1:00 S
Rule C-Eur 1977 only - Sep lastSun 2:00s 0 -
Rule C-Eur 1978 only - Oct 1 2:00s 0 -
Rule C-Eur 1979 1995 - Sep lastSun 2:00s 0 -
Rule C-Eur 1981 max - Mar lastSun 2:00s 1:00 S
Rule C-Eur 1996 max - Oct lastSun 2:00s 0 -
# E-Eur differs from EU only in that E-Eur switches at midnight local time.
Rule E-Eur 1977 1980 - Apr Sun>=1 0:00 1:00 S
Rule E-Eur 1977 only - Sep lastSun 0:00 0 -
Rule E-Eur 1978 only - Oct 1 0:00 0 -
Rule E-Eur 1979 1995 - Sep lastSun 0:00 0 -
Rule E-Eur 1981 max - Mar lastSun 0:00 1:00 S
Rule E-Eur 1996 max - Oct lastSun 0:00 0 -
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
Rule Russia 1917 only - Jul 1 23:00 1:00 MST # Moscow Summer Time
Rule Russia 1917 only - Dec 28 0:00 0 MMT # Moscow Mean Time
Rule Russia 1918 only - May 31 22:00 2:00 MDST # Moscow Double Summer Time
Rule Russia 1918 only - Sep 16 1:00 1:00 MST
Rule Russia 1919 only - May 31 23:00 2:00 MDST
Rule Russia 1919 only - Jul 1 2:00 1:00 S
Rule Russia 1919 only - Aug 16 0:00 0 -
Rule Russia 1921 only - Feb 14 23:00 1:00 S
Rule Russia 1921 only - Mar 20 23:00 2:00 M # Midsummer
Rule Russia 1921 only - Sep 1 0:00 1:00 S
Rule Russia 1921 only - Oct 1 0:00 0 -
# Act No.925 of the Council of Ministers of the USSR (1980-10-24):
Rule Russia 1981 1984 - Apr 1 0:00 1:00 S
Rule Russia 1981 1983 - Oct 1 0:00 0 -
# Act No.967 of the Council of Ministers of the USSR (1984-09-13), repeated in
# Act No.227 of the Council of Ministers of the USSR (1989-03-14):
Rule Russia 1984 1991 - Sep lastSun 2:00s 0 -
Rule Russia 1985 1991 - Mar lastSun 2:00s 1:00 S
#
Rule Russia 1992 only - Mar lastSat 23:00 1:00 S
Rule Russia 1992 only - Sep lastSat 23:00 0 -
Rule Russia 1993 2010 - Mar lastSun 2:00s 1:00 S
Rule Russia 1993 1995 - Sep lastSun 2:00s 0 -
Rule Russia 1996 2010 - Oct lastSun 2:00s 0 -
# From Alexander Krivenyshev (2011-06-14):
# According to Kremlin press service, Russian President Dmitry Medvedev
# signed a federal law "On calculation of time" on June 9, 2011.
# According to the law Russia is abolishing daylight saving time.
#
# Medvedev signed a law "On the Calculation of Time" (in russian):
#
# http://bmockbe.ru/events/?ID=7583
#
#
# Medvedev signed a law on the calculation of the time (in russian):
#
# http://www.regnum.ru/news/polit/1413906.html
#
# From Arthur David Olson (2011-06-15):
# Take "abolishing daylight saving time" to mean that time is now considered
# to be standard.
# These are for backward compatibility with older versions.
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone WET 0:00 EU WE%sT
Zone CET 1:00 C-Eur CE%sT
Zone MET 1:00 C-Eur ME%sT
Zone EET 2:00 EU EE%sT
# Previous editions of this database used abbreviations like MET DST
# for Central European Summer Time, but this didn't agree with common usage.
# From Markus Kuhn (1996-07-12):
# The official German names ... are
#
# Mitteleuropaeische Zeit (MEZ) = UTC+01:00
# Mitteleuropaeische Sommerzeit (MESZ) = UTC+02:00
#
# as defined in the German Time Act (Gesetz ueber die Zeitbestimmung (ZeitG),
# 1978-07-25, Bundesgesetzblatt, Jahrgang 1978, Teil I, S. 1110-1111)....
# I wrote ... to the German Federal Physical-Technical Institution
#
# Physikalisch-Technische Bundesanstalt (PTB)
# Laboratorium 4.41 "Zeiteinheit"
# Postfach 3345
# D-38023 Braunschweig
# phone: +49 531 592-0
#
# ... I received today an answer letter from Dr. Peter Hetzel, head of the PTB
# department for time and frequency transmission. He explained that the
# PTB translates MEZ and MESZ into English as
#
# Central European Time (CET) = UTC+01:00
# Central European Summer Time (CEST) = UTC+02:00
# Albania
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
Rule Albania 1940 only - Jun 16 0:00 1:00 S
Rule Albania 1942 only - Nov 2 3:00 0 -
Rule Albania 1943 only - Mar 29 2:00 1:00 S
Rule Albania 1943 only - Apr 10 3:00 0 -
Rule Albania 1974 only - May 4 0:00 1:00 S
Rule Albania 1974 only - Oct 2 0:00 0 -
Rule Albania 1975 only - May 1 0:00 1:00 S
Rule Albania 1975 only - Oct 2 0:00 0 -
Rule Albania 1976 only - May 2 0:00 1:00 S
Rule Albania 1976 only - Oct 3 0:00 0 -
Rule Albania 1977 only - May 8 0:00 1:00 S
Rule Albania 1977 only - Oct 2 0:00 0 -
Rule Albania 1978 only - May 6 0:00 1:00 S
Rule Albania 1978 only - Oct 1 0:00 0 -
Rule Albania 1979 only - May 5 0:00 1:00 S
Rule Albania 1979 only - Sep 30 0:00 0 -
Rule Albania 1980 only - May 3 0:00 1:00 S
Rule Albania 1980 only - Oct 4 0:00 0 -
Rule Albania 1981 only - Apr 26 0:00 1:00 S
Rule Albania 1981 only - Sep 27 0:00 0 -
Rule Albania 1982 only - May 2 0:00 1:00 S
Rule Albania 1982 only - Oct 3 0:00 0 -
Rule Albania 1983 only - Apr 18 0:00 1:00 S
Rule Albania 1983 only - Oct 1 0:00 0 -
Rule Albania 1984 only - Apr 1 0:00 1:00 S
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone Europe/Tirane 1:19:20 - LMT 1914
1:00 - CET 1940 Jun 16
1:00 Albania CE%sT 1984 Jul
1:00 EU CE%sT
# Andorra
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone Europe/Andorra 0:06:04 - LMT 1901
0:00 - WET 1946 Sep 30
1:00 - CET 1985 Mar 31 2:00
1:00 EU CE%sT
# Austria
# From Paul Eggert (2006-03-22): Shanks & Pottenger give 1918-06-16 and
# 1945-11-18, but the Austrian Federal Office of Metrology and
# Surveying (BEV) gives 1918-09-16 and for Vienna gives the "alleged"
# date of 1945-04-12 with no time. For the 1980-04-06 transition
# Shanks & Pottenger give 02:00, the BEV 00:00. Go with the BEV,
# and guess 02:00 for 1945-04-12.
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
Rule Austria 1920 only - Apr 5 2:00s 1:00 S
Rule Austria 1920 only - Sep 13 2:00s 0 -
Rule Austria 1946 only - Apr 14 2:00s 1:00 S
Rule Austria 1946 1948 - Oct Sun>=1 2:00s 0 -
Rule Austria 1947 only - Apr 6 2:00s 1:00 S
Rule Austria 1948 only - Apr 18 2:00s 1:00 S
Rule Austria 1980 only - Apr 6 0:00 1:00 S
Rule Austria 1980 only - Sep 28 0:00 0 -
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone Europe/Vienna 1:05:20 - LMT 1893 Apr
1:00 C-Eur CE%sT 1920
1:00 Austria CE%sT 1940 Apr 1 2:00s
1:00 C-Eur CE%sT 1945 Apr 2 2:00s
1:00 1:00 CEST 1945 Apr 12 2:00s
1:00 - CET 1946
1:00 Austria CE%sT 1981
1:00 EU CE%sT
# Belarus
# From Yauhen Kharuzhy (2011-09-16):
# By latest Belarus government act Europe/Minsk timezone was changed to
# GMT+3 without DST (was GMT+2 with DST).
#
# Sources (Russian language):
# 1.
#
# http://www.belta.by/ru/all_news/society/V-Belarusi-otmenjaetsja-perexod-na-sezonnoe-vremja_i_572952.html
#
# 2.
#
# http://naviny.by/rubrics/society/2011/09/16/ic_articles_116_175144/
#
# 3.
#
# http://news.tut.by/society/250578.html
#
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone Europe/Minsk 1:50:16 - LMT 1880
1:50 - MMT 1924 May 2 # Minsk Mean Time
2:00 - EET 1930 Jun 21
3:00 - MSK 1941 Jun 28
1:00 C-Eur CE%sT 1944 Jul 3
3:00 Russia MSK/MSD 1990
3:00 - MSK 1991 Mar 31 2:00s
2:00 1:00 EEST 1991 Sep 29 2:00s
2:00 - EET 1992 Mar 29 0:00s
2:00 1:00 EEST 1992 Sep 27 0:00s
2:00 Russia EE%sT 2011 Mar 27 2:00s
3:00 - FET # Further-eastern European Time
# Belgium
#
# From Paul Eggert (1997-07-02):
# Entries from 1918 through 1991 are taken from:
# Annuaire de L'Observatoire Royal de Belgique,
# Avenue Circulaire, 3, B-1180 BRUXELLES, CLVIIe annee, 1991
# (Imprimerie HAYEZ, s.p.r.l., Rue Fin, 4, 1080 BRUXELLES, MCMXC),
# pp 8-9.
# LMT before 1892 was 0:17:30, according to the official journal of Belgium:
# Moniteur Belge, Samedi 30 Avril 1892, N.121.
# Thanks to Pascal Delmoitie for these references.
# The 1918 rules are listed for completeness; they apply to unoccupied Belgium.
# Assume Brussels switched to WET in 1918 when the armistice took effect.
#
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
Rule Belgium 1918 only - Mar 9 0:00s 1:00 S
Rule Belgium 1918 1919 - Oct Sat>=1 23:00s 0 -
Rule Belgium 1919 only - Mar 1 23:00s 1:00 S
Rule Belgium 1920 only - Feb 14 23:00s 1:00 S
Rule Belgium 1920 only - Oct 23 23:00s 0 -
Rule Belgium 1921 only - Mar 14 23:00s 1:00 S
Rule Belgium 1921 only - Oct 25 23:00s 0 -
Rule Belgium 1922 only - Mar 25 23:00s 1:00 S
Rule Belgium 1922 1927 - Oct Sat>=1 23:00s 0 -
Rule Belgium 1923 only - Apr 21 23:00s 1:00 S
Rule Belgium 1924 only - Mar 29 23:00s 1:00 S
Rule Belgium 1925 only - Apr 4 23:00s 1:00 S
# DSH writes that a royal decree of 1926-02-22 specified the Sun following 3rd
# Sat in Apr (except if it's Easter, in which case it's one Sunday earlier),
# to Sun following 1st Sat in Oct, and that a royal decree of 1928-09-15
# changed the transition times to 02:00 GMT.
Rule Belgium 1926 only - Apr 17 23:00s 1:00 S
Rule Belgium 1927 only - Apr 9 23:00s 1:00 S
Rule Belgium 1928 only - Apr 14 23:00s 1:00 S
Rule Belgium 1928 1938 - Oct Sun>=2 2:00s 0 -
Rule Belgium 1929 only - Apr 21 2:00s 1:00 S
Rule Belgium 1930 only - Apr 13 2:00s 1:00 S
Rule Belgium 1931 only - Apr 19 2:00s 1:00 S
Rule Belgium 1932 only - Apr 3 2:00s 1:00 S
Rule Belgium 1933 only - Mar 26 2:00s 1:00 S
Rule Belgium 1934 only - Apr 8 2:00s 1:00 S
Rule Belgium 1935 only - Mar 31 2:00s 1:00 S
Rule Belgium 1936 only - Apr 19 2:00s 1:00 S
Rule Belgium 1937 only - Apr 4 2:00s 1:00 S
Rule Belgium 1938 only - Mar 27 2:00s 1:00 S
Rule Belgium 1939 only - Apr 16 2:00s 1:00 S
Rule Belgium 1939 only - Nov 19 2:00s 0 -
Rule Belgium 1940 only - Feb 25 2:00s 1:00 S
Rule Belgium 1944 only - Sep 17 2:00s 0 -
Rule Belgium 1945 only - Apr 2 2:00s 1:00 S
Rule Belgium 1945 only - Sep 16 2:00s 0 -
Rule Belgium 1946 only - May 19 2:00s 1:00 S
Rule Belgium 1946 only - Oct 7 2:00s 0 -
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone Europe/Brussels 0:17:30 - LMT 1880
0:17:30 - BMT 1892 May 1 12:00 # Brussels MT
0:00 - WET 1914 Nov 8
1:00 - CET 1916 May 1 0:00
1:00 C-Eur CE%sT 1918 Nov 11 11:00u
0:00 Belgium WE%sT 1940 May 20 2:00s
1:00 C-Eur CE%sT 1944 Sep 3
1:00 Belgium CE%sT 1977
1:00 EU CE%sT
# Bosnia and Herzegovina
# see Serbia
# Bulgaria
#
# From Plamen Simenov via Steffen Thorsen (1999-09-09):
# A document of Government of Bulgaria (No.94/1997) says:
# EET --> EETDST is in 03:00 Local time in last Sunday of March ...
# EETDST --> EET is in 04:00 Local time in last Sunday of October
#
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
Rule Bulg 1979 only - Mar 31 23:00 1:00 S
Rule Bulg 1979 only - Oct 1 1:00 0 -
Rule Bulg 1980 1982 - Apr Sat>=1 23:00 1:00 S
Rule Bulg 1980 only - Sep 29 1:00 0 -
Rule Bulg 1981 only - Sep 27 2:00 0 -
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone Europe/Sofia 1:33:16 - LMT 1880
1:56:56 - IMT 1894 Nov 30 # Istanbul MT?
2:00 - EET 1942 Nov 2 3:00
1:00 C-Eur CE%sT 1945
1:00 - CET 1945 Apr 2 3:00
2:00 - EET 1979 Mar 31 23:00
2:00 Bulg EE%sT 1982 Sep 26 2:00
2:00 C-Eur EE%sT 1991
2:00 E-Eur EE%sT 1997
2:00 EU EE%sT
# Croatia
# see Serbia
# Cyprus
# Please see the `asia' file for Asia/Nicosia.
# Czech Republic
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
Rule Czech 1945 only - Apr 8 2:00s 1:00 S
Rule Czech 1945 only - Nov 18 2:00s 0 -
Rule Czech 1946 only - May 6 2:00s 1:00 S
Rule Czech 1946 1949 - Oct Sun>=1 2:00s 0 -
Rule Czech 1947 only - Apr 20 2:00s 1:00 S
Rule Czech 1948 only - Apr 18 2:00s 1:00 S
Rule Czech 1949 only - Apr 9 2:00s 1:00 S
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone Europe/Prague 0:57:44 - LMT 1850
0:57:44 - PMT 1891 Oct # Prague Mean Time
1:00 C-Eur CE%sT 1944 Sep 17 2:00s
1:00 Czech CE%sT 1979
1:00 EU CE%sT
# Denmark, Faroe Islands, and Greenland
# From Jesper Norgaard Welen (2005-04-26):
# http://www.hum.aau.dk/~poe/tid/tine/DanskTid.htm says that the law
# [introducing standard time] was in effect from 1894-01-01....
# The page http://www.retsinfo.dk/_GETDOCI_/ACCN/A18930008330-REGL
# confirms this, and states that the law was put forth 1893-03-29.
#
# The EU treaty with effect from 1973:
# http://www.retsinfo.dk/_GETDOCI_/ACCN/A19722110030-REGL
#
# This provoked a new law from 1974 to make possible summer time changes
# in subsequenet decrees with the law
# http://www.retsinfo.dk/_GETDOCI_/ACCN/A19740022330-REGL
#
# It seems however that no decree was set forward until 1980. I have
# not found any decree, but in another related law, the effecting DST
# changes are stated explicitly to be from 1980-04-06 at 02:00 to
# 1980-09-28 at 02:00. If this is true, this differs slightly from
# the EU rule in that DST runs to 02:00, not 03:00. We don't know
# when Denmark began using the EU rule correctly, but we have only
# confirmation of the 1980-time, so I presume it was correct in 1981:
# The law is about the management of the extra hour, concerning
# working hours reported and effect on obligatory-rest rules (which
# was suspended on that night):
# http://www.retsinfo.dk/_GETDOCI_/ACCN/C19801120554-REGL
# From Jesper Norgaard Welen (2005-06-11):
# The Herning Folkeblad (1980-09-26) reported that the night between
# Saturday and Sunday the clock is set back from three to two.
# From Paul Eggert (2005-06-11):
# Hence the "02:00" of the 1980 law refers to standard time, not
# wall-clock time, and so the EU rules were in effect in 1980.
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
Rule Denmark 1916 only - May 14 23:00 1:00 S
Rule Denmark 1916 only - Sep 30 23:00 0 -
Rule Denmark 1940 only - May 15 0:00 1:00 S
Rule Denmark 1945 only - Apr 2 2:00s 1:00 S
Rule Denmark 1945 only - Aug 15 2:00s 0 -
Rule Denmark 1946 only - May 1 2:00s 1:00 S
Rule Denmark 1946 only - Sep 1 2:00s 0 -
Rule Denmark 1947 only - May 4 2:00s 1:00 S
Rule Denmark 1947 only - Aug 10 2:00s 0 -
Rule Denmark 1948 only - May 9 2:00s 1:00 S
Rule Denmark 1948 only - Aug 8 2:00s 0 -
#
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone Europe/Copenhagen 0:50:20 - LMT 1890
0:50:20 - CMT 1894 Jan 1 # Copenhagen MT
1:00 Denmark CE%sT 1942 Nov 2 2:00s
1:00 C-Eur CE%sT 1945 Apr 2 2:00
1:00 Denmark CE%sT 1980
1:00 EU CE%sT
Zone Atlantic/Faroe -0:27:04 - LMT 1908 Jan 11 # Torshavn
0:00 - WET 1981
0:00 EU WE%sT
#
# From Paul Eggert (2004-10-31):
# During World War II, Germany maintained secret manned weather stations in
# East Greenland and Franz Josef Land, but we don't know their time zones.
# My source for this is Wilhelm Dege's book mentioned under Svalbard.
#
# From Paul Eggert (2006-03-22):
# Greenland joined the EU as part of Denmark, obtained home rule on 1979-05-01,
# and left the EU on 1985-02-01. It therefore should have been using EU
# rules at least through 1984. Shanks & Pottenger say Scoresbysund and Godthab
# used C-Eur rules after 1980, but IATA SSIM (1991/1996) says they use EU
# rules since at least 1991. Assume EU rules since 1980.
# From Gwillin Law (2001-06-06), citing
# (2001-03-15),
# and with translations corrected by Steffen Thorsen:
#
# Greenland has four local times, and the relation to UTC
# is according to the following time line:
#
# The military zone near Thule UTC-4
# Standard Greenland time UTC-3
# Scoresbysund UTC-1
# Danmarkshavn UTC
#
# In the military area near Thule and in Danmarkshavn DST will not be
# introduced.
# From Rives McDow (2001-11-01):
#
# I correspond regularly with the Dansk Polarcenter, and wrote them at
# the time to clarify the situation in Thule. Unfortunately, I have
# not heard back from them regarding my recent letter. [But I have
# info from earlier correspondence.]
#
# According to the center, a very small local time zone around Thule
# Air Base keeps the time according to UTC-4, implementing daylight
# savings using North America rules, changing the time at 02:00 local time....
#
# The east coast of Greenland north of the community of Scoresbysund
# uses UTC in the same way as in Iceland, year round, with no dst.
# There are just a few stations on this coast, including the
# Danmarkshavn ICAO weather station mentioned in your September 29th
# email. The other stations are two sledge patrol stations in
# Mestersvig and Daneborg, the air force base at Station Nord, and the
# DPC research station at Zackenberg.
#
# Scoresbysund and two small villages nearby keep time UTC-1 and use
# the same daylight savings time period as in West Greenland (Godthab).
#
# The rest of Greenland, including Godthab (this area, although it
# includes central Greenland, is known as west Greenland), keeps time
# UTC-3, with daylight savings methods according to European rules.
#
# It is common procedure to use UTC 0 in the wilderness of East and
# North Greenland, because it is mainly Icelandic aircraft operators
# maintaining traffic in these areas. However, the official status of
# this area is that it sticks with Godthab time. This area might be
# considered a dual time zone in some respects because of this.
# From Rives McDow (2001-11-19):
# I heard back from someone stationed at Thule; the time change took place
# there at 2:00 AM.
# From Paul Eggert (2006-03-22):
# From 1997 on the CIA map shows Danmarkshavn on GMT;
# the 1995 map as like Godthab.
# For lack of better info, assume they were like Godthab before 1996.
# startkart.no says Thule does not observe DST, but this is clearly an error,
# so go with Shanks & Pottenger for Thule transitions until this year.
# For 2007 on assume Thule will stay in sync with US DST rules.
#
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
Rule Thule 1991 1992 - Mar lastSun 2:00 1:00 D
Rule Thule 1991 1992 - Sep lastSun 2:00 0 S
Rule Thule 1993 2006 - Apr Sun>=1 2:00 1:00 D
Rule Thule 1993 2006 - Oct lastSun 2:00 0 S
Rule Thule 2007 max - Mar Sun>=8 2:00 1:00 D
Rule Thule 2007 max - Nov Sun>=1 2:00 0 S
#
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone America/Danmarkshavn -1:14:40 - LMT 1916 Jul 28
-3:00 - WGT 1980 Apr 6 2:00
-3:00 EU WG%sT 1996
0:00 - GMT
Zone America/Scoresbysund -1:27:52 - LMT 1916 Jul 28 # Ittoqqortoormiit
-2:00 - CGT 1980 Apr 6 2:00
-2:00 C-Eur CG%sT 1981 Mar 29
-1:00 EU EG%sT
Zone America/Godthab -3:26:56 - LMT 1916 Jul 28 # Nuuk
-3:00 - WGT 1980 Apr 6 2:00
-3:00 EU WG%sT
Zone America/Thule -4:35:08 - LMT 1916 Jul 28 # Pituffik air base
-4:00 Thule A%sT
# Estonia
# From Peter Ilieve (1994-10-15):
# A relative in Tallinn confirms the accuracy of the data for 1989 onwards
# [through 1994] and gives the legal authority for it,
# a regulation of the Government of Estonia, No. 111 of 1989....
#
# From Peter Ilieve (1996-10-28):
# [IATA SSIM (1992/1996) claims that the Baltic republics switch at 01:00s,
# but a relative confirms that Estonia still switches at 02:00s, writing:]
# ``I do not [know] exactly but there are some little different
# (confusing) rules for International Air and Railway Transport Schedules
# conversion in Sunday connected with end of summer time in Estonia....
# A discussion is running about the summer time efficiency and effect on
# human physiology. It seems that Estonia maybe will not change to
# summer time next spring.''
# From Peter Ilieve (1998-11-04), heavily edited:
#
# The 1998-09-22 Estonian time law
#
# refers to the Eighth Directive and cites the association agreement between
# the EU and Estonia, ratified by the Estonian law (RT II 1995, 22--27, 120).
#
# I also asked [my relative] whether they use any standard abbreviation
# for their standard and summer times. He says no, they use "suveaeg"
# (summer time) and "talveaeg" (winter time).
# From The Baltic Times (1999-09-09)
# via Steffen Thorsen:
# This year will mark the last time Estonia shifts to summer time,
# a council of the ruling coalition announced Sept. 6....
# But what this could mean for Estonia's chances of joining the European
# Union are still unclear. In 1994, the EU declared summer time compulsory
# for all member states until 2001. Brussels has yet to decide what to do
# after that.
# From Mart Oruaas (2000-01-29):
# Regulation no. 301 (1999-10-12) obsoletes previous regulation
# no. 206 (1998-09-22) and thus sticks Estonia to +02:00 GMT for all
# the year round. The regulation is effective 1999-11-01.
# From Toomas Soome (2002-02-21):
# The Estonian government has changed once again timezone politics.
# Now we are using again EU rules.
#
# From Urmet Jaanes (2002-03-28):
# The legislative reference is Government decree No. 84 on 2002-02-21.
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone Europe/Tallinn 1:39:00 - LMT 1880
1:39:00 - TMT 1918 Feb # Tallinn Mean Time
1:00 C-Eur CE%sT 1919 Jul
1:39:00 - TMT 1921 May
2:00 - EET 1940 Aug 6
3:00 - MSK 1941 Sep 15
1:00 C-Eur CE%sT 1944 Sep 22
3:00 Russia MSK/MSD 1989 Mar 26 2:00s
2:00 1:00 EEST 1989 Sep 24 2:00s
2:00 C-Eur EE%sT 1998 Sep 22
2:00 EU EE%sT 1999 Nov 1
2:00 - EET 2002 Feb 21
2:00 EU EE%sT
# Finland
# From Hannu Strang (1994-09-25 06:03:37 UTC):
# Well, here in Helsinki we're just changing from summer time to regular one,
# and it's supposed to change at 4am...
# From Janne Snabb (2010-0715):
#
# I noticed that the Finland data is not accurate for years 1981 and 1982.
# During these two first trial years the DST adjustment was made one hour
# earlier than in forthcoming years. Starting 1983 the adjustment was made
# according to the central European standards.
#
# This is documented in Heikki Oja: Aikakirja 2007, published by The Almanac
# Office of University of Helsinki, ISBN 952-10-3221-9, available online (in
# Finnish) at
#
#
# http://almanakka.helsinki.fi/aikakirja/Aikakirja2007kokonaan.pdf
#
#
# Page 105 (56 in PDF version) has a handy table of all past daylight savings
# transitions. It is easy enough to interpret without Finnish skills.
#
# This is also confirmed by Finnish Broadcasting Company's archive at:
#
#
# http://www.yle.fi/elavaarkisto/?s=s&g=1&ag=5&t=&a=3401
#
#
# The news clip from 1981 says that "the time between 2 and 3 o'clock does not
# exist tonight."
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
Rule Finland 1942 only - Apr 3 0:00 1:00 S
Rule Finland 1942 only - Oct 3 0:00 0 -
Rule Finland 1981 1982 - Mar lastSun 2:00 1:00 S
Rule Finland 1981 1982 - Sep lastSun 3:00 0 -
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone Europe/Helsinki 1:39:52 - LMT 1878 May 31
1:39:52 - HMT 1921 May # Helsinki Mean Time
2:00 Finland EE%sT 1983
2:00 EU EE%sT
# Aaland Is
Link Europe/Helsinki Europe/Mariehamn
# France
# From Ciro Discepolo (2000-12-20):
#
# Henri Le Corre, Regimes Horaires pour le monde entier, Editions
# Traditionnelles - Paris 2 books, 1993
#
# Gabriel, Traite de l'heure dans le monde, Guy Tredaniel editeur,
# Paris, 1991
#
# Francoise Gauquelin, Problemes de l'heure resolus en astrologie,
# Guy tredaniel, Paris 1987
#
# Shank & Pottenger seem to use `24:00' ambiguously; resolve it with Whitman.
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
Rule France 1916 only - Jun 14 23:00s 1:00 S
Rule France 1916 1919 - Oct Sun>=1 23:00s 0 -
Rule France 1917 only - Mar 24 23:00s 1:00 S
Rule France 1918 only - Mar 9 23:00s 1:00 S
Rule France 1919 only - Mar 1 23:00s 1:00 S
Rule France 1920 only - Feb 14 23:00s 1:00 S
Rule France 1920 only - Oct 23 23:00s 0 -
Rule France 1921 only - Mar 14 23:00s 1:00 S
Rule France 1921 only - Oct 25 23:00s 0 -
Rule France 1922 only - Mar 25 23:00s 1:00 S
# DSH writes that a law of 1923-05-24 specified 3rd Sat in Apr at 23:00 to 1st
# Sat in Oct at 24:00; and that in 1930, because of Easter, the transitions
# were Apr 12 and Oct 5. Go with Shanks & Pottenger.
Rule France 1922 1938 - Oct Sat>=1 23:00s 0 -
Rule France 1923 only - May 26 23:00s 1:00 S
Rule France 1924 only - Mar 29 23:00s 1:00 S
Rule France 1925 only - Apr 4 23:00s 1:00 S
Rule France 1926 only - Apr 17 23:00s 1:00 S
Rule France 1927 only - Apr 9 23:00s 1:00 S
Rule France 1928 only - Apr 14 23:00s 1:00 S
Rule France 1929 only - Apr 20 23:00s 1:00 S
Rule France 1930 only - Apr 12 23:00s 1:00 S
Rule France 1931 only - Apr 18 23:00s 1:00 S
Rule France 1932 only - Apr 2 23:00s 1:00 S
Rule France 1933 only - Mar 25 23:00s 1:00 S
Rule France 1934 only - Apr 7 23:00s 1:00 S
Rule France 1935 only - Mar 30 23:00s 1:00 S
Rule France 1936 only - Apr 18 23:00s 1:00 S
Rule France 1937 only - Apr 3 23:00s 1:00 S
Rule France 1938 only - Mar 26 23:00s 1:00 S
Rule France 1939 only - Apr 15 23:00s 1:00 S
Rule France 1939 only - Nov 18 23:00s 0 -
Rule France 1940 only - Feb 25 2:00 1:00 S
# The French rules for 1941-1944 were not used in Paris, but Shanks & Pottenger
# write that they were used in Monaco and in many French locations.
# Le Corre writes that the upper limit of the free zone was Arneguy, Orthez,
# Mont-de-Marsan, Bazas, Langon, Lamotte-Montravel, Marouil, La
# Rochefoucault, Champagne-Mouton, La Roche-Posay, La Haye-Descartes,
# Loches, Montrichard, Vierzon, Bourges, Moulins, Digoin,
# Paray-le-Monial, Montceau-les-Mines, Chalons-sur-Saone, Arbois,
# Dole, Morez, St-Claude, and Collonges (Haute-Savoie).
Rule France 1941 only - May 5 0:00 2:00 M # Midsummer
# Shanks & Pottenger say this transition occurred at Oct 6 1:00,
# but go with Denis Excoffier (1997-12-12),
# who quotes the Ephemerides Astronomiques for 1998 from Bureau des Longitudes
# as saying 5/10/41 22hUT.
Rule France 1941 only - Oct 6 0:00 1:00 S
Rule France 1942 only - Mar 9 0:00 2:00 M
Rule France 1942 only - Nov 2 3:00 1:00 S
Rule France 1943 only - Mar 29 2:00 2:00 M
Rule France 1943 only - Oct 4 3:00 1:00 S
Rule France 1944 only - Apr 3 2:00 2:00 M
Rule France 1944 only - Oct 8 1:00 1:00 S
Rule France 1945 only - Apr 2 2:00 2:00 M
Rule France 1945 only - Sep 16 3:00 0 -
# Shanks & Pottenger give Mar 28 2:00 and Sep 26 3:00;
# go with Excoffier's 28/3/76 0hUT and 25/9/76 23hUT.
Rule France 1976 only - Mar 28 1:00 1:00 S
Rule France 1976 only - Sep 26 1:00 0 -
# Shanks & Pottenger give 0:09:20 for Paris Mean Time, and Whitman 0:09:05,
# but Howse quotes the actual French legislation as saying 0:09:21.
# Go with Howse. Howse writes that the time in France was officially based
# on PMT-0:09:21 until 1978-08-09, when the time base finally switched to UTC.
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone Europe/Paris 0:09:21 - LMT 1891 Mar 15 0:01
0:09:21 - PMT 1911 Mar 11 0:01 # Paris MT
# Shanks & Pottenger give 1940 Jun 14 0:00; go with Excoffier and Le Corre.
0:00 France WE%sT 1940 Jun 14 23:00
# Le Corre says Paris stuck with occupied-France time after the liberation;
# go with Shanks & Pottenger.
1:00 C-Eur CE%sT 1944 Aug 25
0:00 France WE%sT 1945 Sep 16 3:00
1:00 France CE%sT 1977
1:00 EU CE%sT
# Germany
# From Markus Kuhn (1998-09-29):
# The German time zone web site by the Physikalisch-Technische
# Bundesanstalt contains DST information back to 1916.
# [See tz-link.htm for the URL.]
# From Joerg Schilling (2002-10-23):
# In 1945, Berlin was switched to Moscow Summer time (GMT+4) by
#
# General [Nikolai] Bersarin .
# From Paul Eggert (2003-03-08):
#
# http://www.parlament-berlin.de/pds-fraktion.nsf/727459127c8b66ee8525662300459099/defc77cb784f180ac1256c2b0030274b/$FILE/bersarint.pdf
#
# says that Bersarin issued an order to use Moscow time on May 20.
# However, Moscow did not observe daylight saving in 1945, so
# this was equivalent to CEMT (GMT+3), not GMT+4.
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
Rule Germany 1946 only - Apr 14 2:00s 1:00 S
Rule Germany 1946 only - Oct 7 2:00s 0 -
Rule Germany 1947 1949 - Oct Sun>=1 2:00s 0 -
# http://www.ptb.de/de/org/4/44/441/salt.htm says the following transition
# occurred at 3:00 MEZ, not the 2:00 MEZ given in Shanks & Pottenger.
# Go with the PTB.
Rule Germany 1947 only - Apr 6 3:00s 1:00 S
Rule Germany 1947 only - May 11 2:00s 2:00 M
Rule Germany 1947 only - Jun 29 3:00 1:00 S
Rule Germany 1948 only - Apr 18 2:00s 1:00 S
Rule Germany 1949 only - Apr 10 2:00s 1:00 S
Rule SovietZone 1945 only - May 24 2:00 2:00 M # Midsummer
Rule SovietZone 1945 only - Sep 24 3:00 1:00 S
Rule SovietZone 1945 only - Nov 18 2:00s 0 -
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone Europe/Berlin 0:53:28 - LMT 1893 Apr
1:00 C-Eur CE%sT 1945 May 24 2:00
1:00 SovietZone CE%sT 1946
1:00 Germany CE%sT 1980
1:00 EU CE%sT
# Georgia
# Please see the "asia" file for Asia/Tbilisi.
# Herodotus (Histories, IV.45) says Georgia north of the Phasis (now Rioni)
# is in Europe. Our reference location Tbilisi is in the Asian part.
# Gibraltar
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone Europe/Gibraltar -0:21:24 - LMT 1880 Aug 2 0:00s
0:00 GB-Eire %s 1957 Apr 14 2:00
1:00 - CET 1982
1:00 EU CE%sT
# Greece
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
# Whitman gives 1932 Jul 5 - Nov 1; go with Shanks & Pottenger.
Rule Greece 1932 only - Jul 7 0:00 1:00 S
Rule Greece 1932 only - Sep 1 0:00 0 -
# Whitman gives 1941 Apr 25 - ?; go with Shanks & Pottenger.
Rule Greece 1941 only - Apr 7 0:00 1:00 S
# Whitman gives 1942 Feb 2 - ?; go with Shanks & Pottenger.
Rule Greece 1942 only - Nov 2 3:00 0 -
Rule Greece 1943 only - Mar 30 0:00 1:00 S
Rule Greece 1943 only - Oct 4 0:00 0 -
# Whitman gives 1944 Oct 3 - Oct 31; go with Shanks & Pottenger.
Rule Greece 1952 only - Jul 1 0:00 1:00 S
Rule Greece 1952 only - Nov 2 0:00 0 -
Rule Greece 1975 only - Apr 12 0:00s 1:00 S
Rule Greece 1975 only - Nov 26 0:00s 0 -
Rule Greece 1976 only - Apr 11 2:00s 1:00 S
Rule Greece 1976 only - Oct 10 2:00s 0 -
Rule Greece 1977 1978 - Apr Sun>=1 2:00s 1:00 S
Rule Greece 1977 only - Sep 26 2:00s 0 -
Rule Greece 1978 only - Sep 24 4:00 0 -
Rule Greece 1979 only - Apr 1 9:00 1:00 S
Rule Greece 1979 only - Sep 29 2:00 0 -
Rule Greece 1980 only - Apr 1 0:00 1:00 S
Rule Greece 1980 only - Sep 28 0:00 0 -
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone Europe/Athens 1:34:52 - LMT 1895 Sep 14
1:34:52 - AMT 1916 Jul 28 0:01 # Athens MT
2:00 Greece EE%sT 1941 Apr 30
1:00 Greece CE%sT 1944 Apr 4
2:00 Greece EE%sT 1981
# Shanks & Pottenger say it switched to C-Eur in 1981;
# go with EU instead, since Greece joined it on Jan 1.
2:00 EU EE%sT
# Hungary
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
Rule Hungary 1918 only - Apr 1 3:00 1:00 S
Rule Hungary 1918 only - Sep 29 3:00 0 -
Rule Hungary 1919 only - Apr 15 3:00 1:00 S
Rule Hungary 1919 only - Sep 15 3:00 0 -
Rule Hungary 1920 only - Apr 5 3:00 1:00 S
Rule Hungary 1920 only - Sep 30 3:00 0 -
Rule Hungary 1945 only - May 1 23:00 1:00 S
Rule Hungary 1945 only - Nov 3 0:00 0 -
Rule Hungary 1946 only - Mar 31 2:00s 1:00 S
Rule Hungary 1946 1949 - Oct Sun>=1 2:00s 0 -
Rule Hungary 1947 1949 - Apr Sun>=4 2:00s 1:00 S
Rule Hungary 1950 only - Apr 17 2:00s 1:00 S
Rule Hungary 1950 only - Oct 23 2:00s 0 -
Rule Hungary 1954 1955 - May 23 0:00 1:00 S
Rule Hungary 1954 1955 - Oct 3 0:00 0 -
Rule Hungary 1956 only - Jun Sun>=1 0:00 1:00 S
Rule Hungary 1956 only - Sep lastSun 0:00 0 -
Rule Hungary 1957 only - Jun Sun>=1 1:00 1:00 S
Rule Hungary 1957 only - Sep lastSun 3:00 0 -
Rule Hungary 1980 only - Apr 6 1:00 1:00 S
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone Europe/Budapest 1:16:20 - LMT 1890 Oct
1:00 C-Eur CE%sT 1918
1:00 Hungary CE%sT 1941 Apr 6 2:00
1:00 C-Eur CE%sT 1945
1:00 Hungary CE%sT 1980 Sep 28 2:00s
1:00 EU CE%sT
# Iceland
#
# From Adam David (1993-11-06):
# The name of the timezone in Iceland for system / mail / news purposes is GMT.
#
# (1993-12-05):
# This material is paraphrased from the 1988 edition of the University of
# Iceland Almanak.
#
# From January 1st, 1908 the whole of Iceland was standardised at 1 hour
# behind GMT. Previously, local mean solar time was used in different parts
# of Iceland, the almanak had been based on Reykjavik mean solar time which
# was 1 hour and 28 minutes behind GMT.
#
# "first day of winter" referred to [below] means the first day of the 26 weeks
# of winter, according to the old icelandic calendar that dates back to the
# time the norsemen first settled Iceland. The first day of winter is always
# Saturday, but is not dependent on the Julian or Gregorian calendars.
#
# (1993-12-10):
# I have a reference from the Oxford Icelandic-English dictionary for the
# beginning of winter, which ties it to the ecclesiastical calendar (and thus
# to the julian/gregorian calendar) over the period in question.
# the winter begins on the Saturday next before St. Luke's day
# (old style), or on St. Luke's day, if a Saturday.
# St. Luke's day ought to be traceable from ecclesiastical sources. "old style"
# might be a reference to the Julian calendar as opposed to Gregorian, or it
# might mean something else (???).
#
# From Paul Eggert (2006-03-22):
# The Iceland Almanak, Shanks & Pottenger, and Whitman disagree on many points.
# We go with the Almanak, except for one claim from Shanks & Pottenger, namely
# that Reykavik was 21W57 from 1837 to 1908, local mean time before that.
#
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
Rule Iceland 1917 1918 - Feb 19 23:00 1:00 S
Rule Iceland 1917 only - Oct 21 1:00 0 -
Rule Iceland 1918 only - Nov 16 1:00 0 -
Rule Iceland 1939 only - Apr 29 23:00 1:00 S
Rule Iceland 1939 only - Nov 29 2:00 0 -
Rule Iceland 1940 only - Feb 25 2:00 1:00 S
Rule Iceland 1940 only - Nov 3 2:00 0 -
Rule Iceland 1941 only - Mar 2 1:00s 1:00 S
Rule Iceland 1941 only - Nov 2 1:00s 0 -
Rule Iceland 1942 only - Mar 8 1:00s 1:00 S
Rule Iceland 1942 only - Oct 25 1:00s 0 -
# 1943-1946 - first Sunday in March until first Sunday in winter
Rule Iceland 1943 1946 - Mar Sun>=1 1:00s 1:00 S
Rule Iceland 1943 1948 - Oct Sun>=22 1:00s 0 -
# 1947-1967 - first Sunday in April until first Sunday in winter
Rule Iceland 1947 1967 - Apr Sun>=1 1:00s 1:00 S
# 1949 Oct transition delayed by 1 week
Rule Iceland 1949 only - Oct 30 1:00s 0 -
Rule Iceland 1950 1966 - Oct Sun>=22 1:00s 0 -
Rule Iceland 1967 only - Oct 29 1:00s 0 -
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone Atlantic/Reykjavik -1:27:24 - LMT 1837
-1:27:48 - RMT 1908 # Reykjavik Mean Time?
-1:00 Iceland IS%sT 1968 Apr 7 1:00s
0:00 - GMT
# Italy
#
# From Paul Eggert (2001-03-06):
# Sicily and Sardinia each had their own time zones from 1866 to 1893,
# called Palermo Time (+00:53:28) and Cagliari Time (+00:36:32).
# During World War II, German-controlled Italy used German time.
# But these events all occurred before the 1970 cutoff,
# so record only the time in Rome.
#
# From Paul Eggert (2006-03-22):
# For Italian DST we have three sources: Shanks & Pottenger, Whitman, and
# F. Pollastri
#
# Day-light Saving Time in Italy (2006-02-03)
#
# (`FP' below), taken from an Italian National Electrotechnical Institute
# publication. When the three sources disagree, guess who's right, as follows:
#
# year FP Shanks&P. (S) Whitman (W) Go with:
# 1916 06-03 06-03 24:00 06-03 00:00 FP & W
# 09-30 09-30 24:00 09-30 01:00 FP; guess 24:00s
# 1917 04-01 03-31 24:00 03-31 00:00 FP & S
# 09-30 09-29 24:00 09-30 01:00 FP & W
# 1918 03-09 03-09 24:00 03-09 00:00 FP & S
# 10-06 10-05 24:00 10-06 01:00 FP & W
# 1919 03-01 03-01 24:00 03-01 00:00 FP & S
# 10-04 10-04 24:00 10-04 01:00 FP; guess 24:00s
# 1920 03-20 03-20 24:00 03-20 00:00 FP & S
# 09-18 09-18 24:00 10-01 01:00 FP; guess 24:00s
# 1944 04-02 04-03 02:00 S (see C-Eur)
# 09-16 10-02 03:00 FP; guess 24:00s
# 1945 09-14 09-16 24:00 FP; guess 24:00s
# 1970 05-21 05-31 00:00 S
# 09-20 09-27 00:00 S
#
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
Rule Italy 1916 only - Jun 3 0:00s 1:00 S
Rule Italy 1916 only - Oct 1 0:00s 0 -
Rule Italy 1917 only - Apr 1 0:00s 1:00 S
Rule Italy 1917 only - Sep 30 0:00s 0 -
Rule Italy 1918 only - Mar 10 0:00s 1:00 S
Rule Italy 1918 1919 - Oct Sun>=1 0:00s 0 -
Rule Italy 1919 only - Mar 2 0:00s 1:00 S
Rule Italy 1920 only - Mar 21 0:00s 1:00 S
Rule Italy 1920 only - Sep 19 0:00s 0 -
Rule Italy 1940 only - Jun 15 0:00s 1:00 S
Rule Italy 1944 only - Sep 17 0:00s 0 -
Rule Italy 1945 only - Apr 2 2:00 1:00 S
Rule Italy 1945 only - Sep 15 0:00s 0 -
Rule Italy 1946 only - Mar 17 2:00s 1:00 S
Rule Italy 1946 only - Oct 6 2:00s 0 -
Rule Italy 1947 only - Mar 16 0:00s 1:00 S
Rule Italy 1947 only - Oct 5 0:00s 0 -
Rule Italy 1948 only - Feb 29 2:00s 1:00 S
Rule Italy 1948 only - Oct 3 2:00s 0 -
Rule Italy 1966 1968 - May Sun>=22 0:00 1:00 S
Rule Italy 1966 1969 - Sep Sun>=22 0:00 0 -
Rule Italy 1969 only - Jun 1 0:00 1:00 S
Rule Italy 1970 only - May 31 0:00 1:00 S
Rule Italy 1970 only - Sep lastSun 0:00 0 -
Rule Italy 1971 1972 - May Sun>=22 0:00 1:00 S
Rule Italy 1971 only - Sep lastSun 1:00 0 -
Rule Italy 1972 only - Oct 1 0:00 0 -
Rule Italy 1973 only - Jun 3 0:00 1:00 S
Rule Italy 1973 1974 - Sep lastSun 0:00 0 -
Rule Italy 1974 only - May 26 0:00 1:00 S
Rule Italy 1975 only - Jun 1 0:00s 1:00 S
Rule Italy 1975 1977 - Sep lastSun 0:00s 0 -
Rule Italy 1976 only - May 30 0:00s 1:00 S
Rule Italy 1977 1979 - May Sun>=22 0:00s 1:00 S
Rule Italy 1978 only - Oct 1 0:00s 0 -
Rule Italy 1979 only - Sep 30 0:00s 0 -
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone Europe/Rome 0:49:56 - LMT 1866 Sep 22
0:49:56 - RMT 1893 Nov 1 0:00s # Rome Mean
1:00 Italy CE%sT 1942 Nov 2 2:00s
1:00 C-Eur CE%sT 1944 Jul
1:00 Italy CE%sT 1980
1:00 EU CE%sT
Link Europe/Rome Europe/Vatican
Link Europe/Rome Europe/San_Marino
# Latvia
# From Liene Kanepe (1998-09-17):
# I asked about this matter Scientific Secretary of the Institute of Astronomy
# of The University of Latvia Dr. paed Mr. Ilgonis Vilks. I also searched the
# correct data in juridical acts and I found some juridical documents about
# changes in the counting of time in Latvia from 1981....
#
# Act No.35 of the Council of Ministers of Latvian SSR of 1981-01-22 ...
# according to the Act No.925 of the Council of Ministers of USSR of 1980-10-24
# ...: all year round the time of 2nd time zone + 1 hour, in addition turning
# the hands of the clock 1 hour forward on 1 April at 00:00 (GMT 31 March 21:00)
# and 1 hour backward on the 1 October at 00:00 (GMT 30 September 20:00).
#
# Act No.592 of the Council of Ministers of Latvian SSR of 1984-09-24 ...
# according to the Act No.967 of the Council of Ministers of USSR of 1984-09-13
# ...: all year round the time of 2nd time zone + 1 hour, in addition turning
# the hands of the clock 1 hour forward on the last Sunday of March at 02:00
# (GMT 23:00 on the previous day) and 1 hour backward on the last Sunday of
# September at 03:00 (GMT 23:00 on the previous day).
#
# Act No.81 of the Council of Ministers of Latvian SSR of 1989-03-22 ...
# according to the Act No.227 of the Council of Ministers of USSR of 1989-03-14
# ...: since the last Sunday of March 1989 in Lithuanian SSR, Latvian SSR,
# Estonian SSR and Kaliningrad region of Russian Federation all year round the
# time of 2nd time zone (Moscow time minus one hour). On the territory of Latvia
# transition to summer time is performed on the last Sunday of March at 02:00
# (GMT 00:00), turning the hands of the clock 1 hour forward. The end of
# daylight saving time is performed on the last Sunday of September at 03:00
# (GMT 00:00), turning the hands of the clock 1 hour backward. Exception is
# 1989-03-26, when we must not turn the hands of the clock....
#
# The Regulations of the Cabinet of Ministers of the Republic of Latvia of
# 1997-01-21 on transition to Summer time ... established the same order of
# daylight savings time settings as in the States of the European Union.
# From Andrei Ivanov (2000-03-06):
# This year Latvia will not switch to Daylight Savings Time (as specified in
#
# The Regulations of the Cabinet of Ministers of the Rep. of Latvia of
# 29-Feb-2000 (#79) , in Latvian for subscribers only).
#
# From RFE/RL Newsline (2001-01-03), noted after a heads-up by Rives McDow:
#
# The Latvian government on 2 January decided that the country will
# institute daylight-saving time this spring, LETA reported.
# Last February the three Baltic states decided not to turn back their
# clocks one hour in the spring....
# Minister of Economy Aigars Kalvitis noted that Latvia had too few
# daylight hours and thus decided to comply with a draft European
# Commission directive that provides for instituting daylight-saving
# time in EU countries between 2002 and 2006. The Latvian government
# urged Lithuania and Estonia to adopt a similar time policy, but it
# appears that they will not do so....
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
Rule Latvia 1989 1996 - Mar lastSun 2:00s 1:00 S
Rule Latvia 1989 1996 - Sep lastSun 2:00s 0 -
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone Europe/Riga 1:36:24 - LMT 1880
1:36:24 - RMT 1918 Apr 15 2:00 #Riga Mean Time
1:36:24 1:00 LST 1918 Sep 16 3:00 #Latvian Summer
1:36:24 - RMT 1919 Apr 1 2:00
1:36:24 1:00 LST 1919 May 22 3:00
1:36:24 - RMT 1926 May 11
2:00 - EET 1940 Aug 5
3:00 - MSK 1941 Jul
1:00 C-Eur CE%sT 1944 Oct 13
3:00 Russia MSK/MSD 1989 Mar lastSun 2:00s
2:00 1:00 EEST 1989 Sep lastSun 2:00s
2:00 Latvia EE%sT 1997 Jan 21
2:00 EU EE%sT 2000 Feb 29
2:00 - EET 2001 Jan 2
2:00 EU EE%sT
# Liechtenstein
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone Europe/Vaduz 0:38:04 - LMT 1894 Jun
1:00 - CET 1981
1:00 EU CE%sT
# Lithuania
# From Paul Eggert (1996-11-22):
# IATA SSIM (1992/1996) says Lithuania uses W-Eur rules, but since it is
# known to be wrong about Estonia and Latvia, assume it's wrong here too.
# From Marius Gedminas (1998-08-07):
# I would like to inform that in this year Lithuanian time zone
# (Europe/Vilnius) was changed.
# From ELTA No. 972 (2582) (1999-09-29),
# via Steffen Thorsen:
# Lithuania has shifted back to the second time zone (GMT plus two hours)
# to be valid here starting from October 31,
# as decided by the national government on Wednesday....
# The Lithuanian government also announced plans to consider a
# motion to give up shifting to summer time in spring, as it was
# already done by Estonia.
# From the
# Fact File, Lithuanian State Department of Tourism
# (2000-03-27): Local time is GMT+2 hours ..., no daylight saving.
# From a user via Klaus Marten (2003-02-07):
# As a candidate for membership of the European Union, Lithuania will
# observe Summer Time in 2003, changing its clocks at the times laid
# down in EU Directive 2000/84 of 19.I.01 (i.e. at the same times as its
# neighbour Latvia). The text of the Lithuanian government Order of
# 7.XI.02 to this effect can be found at
# http://www.lrvk.lt/nut/11/n1749.htm
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone Europe/Vilnius 1:41:16 - LMT 1880
1:24:00 - WMT 1917 # Warsaw Mean Time
1:35:36 - KMT 1919 Oct 10 # Kaunas Mean Time
1:00 - CET 1920 Jul 12
2:00 - EET 1920 Oct 9
1:00 - CET 1940 Aug 3
3:00 - MSK 1941 Jun 24
1:00 C-Eur CE%sT 1944 Aug
3:00 Russia MSK/MSD 1991 Mar 31 2:00s
2:00 1:00 EEST 1991 Sep 29 2:00s
2:00 C-Eur EE%sT 1998
2:00 - EET 1998 Mar 29 1:00u
1:00 EU CE%sT 1999 Oct 31 1:00u
2:00 - EET 2003 Jan 1
2:00 EU EE%sT
# Luxembourg
# Whitman disagrees with most of these dates in minor ways;
# go with Shanks & Pottenger.
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
Rule Lux 1916 only - May 14 23:00 1:00 S
Rule Lux 1916 only - Oct 1 1:00 0 -
Rule Lux 1917 only - Apr 28 23:00 1:00 S
Rule Lux 1917 only - Sep 17 1:00 0 -
Rule Lux 1918 only - Apr Mon>=15 2:00s 1:00 S
Rule Lux 1918 only - Sep Mon>=15 2:00s 0 -
Rule Lux 1919 only - Mar 1 23:00 1:00 S
Rule Lux 1919 only - Oct 5 3:00 0 -
Rule Lux 1920 only - Feb 14 23:00 1:00 S
Rule Lux 1920 only - Oct 24 2:00 0 -
Rule Lux 1921 only - Mar 14 23:00 1:00 S
Rule Lux 1921 only - Oct 26 2:00 0 -
Rule Lux 1922 only - Mar 25 23:00 1:00 S
Rule Lux 1922 only - Oct Sun>=2 1:00 0 -
Rule Lux 1923 only - Apr 21 23:00 1:00 S
Rule Lux 1923 only - Oct Sun>=2 2:00 0 -
Rule Lux 1924 only - Mar 29 23:00 1:00 S
Rule Lux 1924 1928 - Oct Sun>=2 1:00 0 -
Rule Lux 1925 only - Apr 5 23:00 1:00 S
Rule Lux 1926 only - Apr 17 23:00 1:00 S
Rule Lux 1927 only - Apr 9 23:00 1:00 S
Rule Lux 1928 only - Apr 14 23:00 1:00 S
Rule Lux 1929 only - Apr 20 23:00 1:00 S
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone Europe/Luxembourg 0:24:36 - LMT 1904 Jun
1:00 Lux CE%sT 1918 Nov 25
0:00 Lux WE%sT 1929 Oct 6 2:00s
0:00 Belgium WE%sT 1940 May 14 3:00
1:00 C-Eur WE%sT 1944 Sep 18 3:00
1:00 Belgium CE%sT 1977
1:00 EU CE%sT
# Macedonia
# see Serbia
# Malta
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
Rule Malta 1973 only - Mar 31 0:00s 1:00 S
Rule Malta 1973 only - Sep 29 0:00s 0 -
Rule Malta 1974 only - Apr 21 0:00s 1:00 S
Rule Malta 1974 only - Sep 16 0:00s 0 -
Rule Malta 1975 1979 - Apr Sun>=15 2:00 1:00 S
Rule Malta 1975 1980 - Sep Sun>=15 2:00 0 -
Rule Malta 1980 only - Mar 31 2:00 1:00 S
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone Europe/Malta 0:58:04 - LMT 1893 Nov 2 0:00s # Valletta
1:00 Italy CE%sT 1942 Nov 2 2:00s
1:00 C-Eur CE%sT 1945 Apr 2 2:00s
1:00 Italy CE%sT 1973 Mar 31
1:00 Malta CE%sT 1981
1:00 EU CE%sT
# Moldova
# From Paul Eggert (2006-03-22):
# A previous version of this database followed Shanks & Pottenger, who write
# that Tiraspol switched to Moscow time on 1992-01-19 at 02:00.
# However, this is most likely an error, as Moldova declared independence
# on 1991-08-27 (the 1992-01-19 date is that of a Russian decree).
# In early 1992 there was large-scale interethnic violence in the area
# and it's possible that some Russophones continued to observe Moscow time.
# But [two people] separately reported via
# Jesper Norgaard that as of 2001-01-24 Tiraspol was like Chisinau.
# The Tiraspol entry has therefore been removed for now.
#
# From Alexander Krivenyshev (2011-10-17):
# Pridnestrovian Moldavian Republic (PMR, also known as
# "Pridnestrovie") has abolished seasonal clock change (no transition
# to the Winter Time).
#
# News (in Russian):
#
# http://www.kyivpost.ua/russia/news/pridnestrove-otkazalos-ot-perehoda-na-zimnee-vremya-30954.html
#
#
#
# http://www.allmoldova.com/moldova-news/1249064116.html
#
#
# The substance of this change (reinstatement of the Tiraspol entry)
# is from a patch from Petr Machata (2011-10-17)
#
# From Tim Parenti (2011-10-19)
# In addition, being situated at +4651+2938 would give Tiraspol
# a pre-1880 LMT offset of 1:58:32.
#
# (which agrees with the earlier entry that had been removed)
#
# From Alexander Krivenyshev (2011-10-26)
# NO need to divide Moldova into two timezones at this point.
# As of today, Transnistria (Pridnestrovie)- Tiraspol reversed its own
# decision to abolish DST this winter.
# Following Moldova and neighboring Ukraine- Transnistria (Pridnestrovie)-
# Tiraspol will go back to winter time on October 30, 2011.
# News from Moldova (in russian):
#
# http://ru.publika.md/link_317061.html
#
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone Europe/Chisinau 1:55:20 - LMT 1880
1:55 - CMT 1918 Feb 15 # Chisinau MT
1:44:24 - BMT 1931 Jul 24 # Bucharest MT
2:00 Romania EE%sT 1940 Aug 15
2:00 1:00 EEST 1941 Jul 17
1:00 C-Eur CE%sT 1944 Aug 24
3:00 Russia MSK/MSD 1990
3:00 - MSK 1990 May 6
2:00 - EET 1991
2:00 Russia EE%sT 1992
2:00 E-Eur EE%sT 1997
# See Romania commentary for the guessed 1997 transition to EU rules.
2:00 EU EE%sT
# Monaco
# Shanks & Pottenger give 0:09:20 for Paris Mean Time; go with Howse's
# more precise 0:09:21.
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone Europe/Monaco 0:29:32 - LMT 1891 Mar 15
0:09:21 - PMT 1911 Mar 11 # Paris Mean Time
0:00 France WE%sT 1945 Sep 16 3:00
1:00 France CE%sT 1977
1:00 EU CE%sT
# Montenegro
# see Serbia
# Netherlands
# Howse writes that the Netherlands' railways used GMT between 1892 and 1940,
# but for other purposes the Netherlands used Amsterdam mean time.
# However, Robert H. van Gent writes (2001-04-01):
# Howse's statement is only correct up to 1909. From 1909-05-01 (00:00:00
# Amsterdam mean time) onwards, the whole of the Netherlands (including
# the Dutch railways) was required by law to observe Amsterdam mean time
# (19 minutes 32.13 seconds ahead of GMT). This had already been the
# common practice (except for the railways) for many decades but it was
# not until 1909 when the Dutch government finally defined this by law.
# On 1937-07-01 this was changed to 20 minutes (exactly) ahead of GMT and
# was generally known as Dutch Time ("Nederlandse Tijd").
#
# (2001-04-08):
# 1892-05-01 was the date when the Dutch railways were by law required to
# observe GMT while the remainder of the Netherlands adhered to the common
# practice of following Amsterdam mean time.
#
# (2001-04-09):
# In 1835 the authorities of the province of North Holland requested the
# municipal authorities of the towns and cities in the province to observe
# Amsterdam mean time but I do not know in how many cases this request was
# actually followed.
#
# From 1852 onwards the Dutch telegraph offices were by law required to
# observe Amsterdam mean time. As the time signals from the observatory of
# Leiden were also distributed by the telegraph system, I assume that most
# places linked up with the telegraph (and railway) system automatically
# adopted Amsterdam mean time.
#
# Although the early Dutch railway companies initially observed a variety
# of times, most of them had adopted Amsterdam mean time by 1858 but it
# was not until 1866 when they were all required by law to observe
# Amsterdam mean time.
# The data before 1945 are taken from
# .
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
Rule Neth 1916 only - May 1 0:00 1:00 NST # Netherlands Summer Time
Rule Neth 1916 only - Oct 1 0:00 0 AMT # Amsterdam Mean Time
Rule Neth 1917 only - Apr 16 2:00s 1:00 NST
Rule Neth 1917 only - Sep 17 2:00s 0 AMT
Rule Neth 1918 1921 - Apr Mon>=1 2:00s 1:00 NST
Rule Neth 1918 1921 - Sep lastMon 2:00s 0 AMT
Rule Neth 1922 only - Mar lastSun 2:00s 1:00 NST
Rule Neth 1922 1936 - Oct Sun>=2 2:00s 0 AMT
Rule Neth 1923 only - Jun Fri>=1 2:00s 1:00 NST
Rule Neth 1924 only - Mar lastSun 2:00s 1:00 NST
Rule Neth 1925 only - Jun Fri>=1 2:00s 1:00 NST
# From 1926 through 1939 DST began 05-15, except that it was delayed by a week
# in years when 05-15 fell in the Pentecost weekend.
Rule Neth 1926 1931 - May 15 2:00s 1:00 NST
Rule Neth 1932 only - May 22 2:00s 1:00 NST
Rule Neth 1933 1936 - May 15 2:00s 1:00 NST
Rule Neth 1937 only - May 22 2:00s 1:00 NST
Rule Neth 1937 only - Jul 1 0:00 1:00 S
Rule Neth 1937 1939 - Oct Sun>=2 2:00s 0 -
Rule Neth 1938 1939 - May 15 2:00s 1:00 S
Rule Neth 1945 only - Apr 2 2:00s 1:00 S
Rule Neth 1945 only - Sep 16 2:00s 0 -
#
# Amsterdam Mean Time was +00:19:32.13 exactly, but the .13 is omitted
# below because the current format requires GMTOFF to be an integer.
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone Europe/Amsterdam 0:19:32 - LMT 1835
0:19:32 Neth %s 1937 Jul 1
0:20 Neth NE%sT 1940 May 16 0:00 # Dutch Time
1:00 C-Eur CE%sT 1945 Apr 2 2:00
1:00 Neth CE%sT 1977
1:00 EU CE%sT
# Norway
# http://met.no/met/met_lex/q_u/sommertid.html (2004-01) agrees with Shanks &
# Pottenger.
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
Rule Norway 1916 only - May 22 1:00 1:00 S
Rule Norway 1916 only - Sep 30 0:00 0 -
Rule Norway 1945 only - Apr 2 2:00s 1:00 S
Rule Norway 1945 only - Oct 1 2:00s 0 -
Rule Norway 1959 1964 - Mar Sun>=15 2:00s 1:00 S
Rule Norway 1959 1965 - Sep Sun>=15 2:00s 0 -
Rule Norway 1965 only - Apr 25 2:00s 1:00 S
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone Europe/Oslo 0:43:00 - LMT 1895 Jan 1
1:00 Norway CE%sT 1940 Aug 10 23:00
1:00 C-Eur CE%sT 1945 Apr 2 2:00
1:00 Norway CE%sT 1980
1:00 EU CE%sT
# Svalbard & Jan Mayen
# From Steffen Thorsen (2001-05-01):
# Although I could not find it explicitly, it seems that Jan Mayen and
# Svalbard have been using the same time as Norway at least since the
# time they were declared as parts of Norway. Svalbard was declared
# as a part of Norway by law of 1925-07-17 no 11, section 4 and Jan
# Mayen by law of 1930-02-27 no 2, section 2. (From
# http://www.lovdata.no/all/nl-19250717-011.html and
# http://www.lovdata.no/all/nl-19300227-002.html). The law/regulation
# for normal/standard time in Norway is from 1894-06-29 no 1 (came
# into operation on 1895-01-01) and Svalbard/Jan Mayen seem to be a
# part of this law since 1925/1930. (From
# http://www.lovdata.no/all/nl-18940629-001.html ) I have not been
# able to find if Jan Mayen used a different time zone (e.g. -0100)
# before 1930. Jan Mayen has only been "inhabitated" since 1921 by
# Norwegian meteorologists and maybe used the same time as Norway ever
# since 1921. Svalbard (Arctic/Longyearbyen) has been inhabited since
# before 1895, and therefore probably changed the local time somewhere
# between 1895 and 1925 (inclusive).
# From Paul Eggert (2001-05-01):
#
# Actually, Jan Mayen was never occupied by Germany during World War II,
# so it must have diverged from Oslo time during the war, as Oslo was
# keeping Berlin time.
#
# says that the meteorologists
# burned down their station in 1940 and left the island, but returned in
# 1941 with a small Norwegian garrison and continued operations despite
# frequent air ttacks from Germans. In 1943 the Americans established a
# radiolocating station on the island, called "Atlantic City". Possibly
# the UTC offset changed during the war, but I think it unlikely that
# Jan Mayen used German daylight-saving rules.
#
# Svalbard is more complicated, as it was raided in August 1941 by an
# Allied party that evacuated the civilian population to England (says
# ). The Svalbard FAQ
# says that the Germans were
# expelled on 1942-05-14. However, small parties of Germans did return,
# and according to Wilhelm Dege's book "War North of 80" (1954)
#
# the German armed forces at the Svalbard weather station code-named
# Haudegen did not surrender to the Allies until September 1945.
#
# All these events predate our cutoff date of 1970. Unless we can
# come up with more definitive info about the timekeeping during the
# war years it's probably best just do...the following for now:
Link Europe/Oslo Arctic/Longyearbyen
# Poland
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
Rule Poland 1918 1919 - Sep 16 2:00s 0 -
Rule Poland 1919 only - Apr 15 2:00s 1:00 S
Rule Poland 1944 only - Apr 3 2:00s 1:00 S
# Whitman gives 1944 Nov 30; go with Shanks & Pottenger.
Rule Poland 1944 only - Oct 4 2:00 0 -
# For 1944-1948 Whitman gives the previous day; go with Shanks & Pottenger.
Rule Poland 1945 only - Apr 29 0:00 1:00 S
Rule Poland 1945 only - Nov 1 0:00 0 -
# For 1946 on the source is Kazimierz Borkowski,
# Torun Center for Astronomy, Dept. of Radio Astronomy, Nicolaus Copernicus U.,
#
# Thanks to Przemyslaw Augustyniak (2005-05-28) for this reference.
# He also gives these further references:
# Mon Pol nr 13, poz 162 (1995)
# Druk nr 2180 (2003)
Rule Poland 1946 only - Apr 14 0:00s 1:00 S
Rule Poland 1946 only - Oct 7 2:00s 0 -
Rule Poland 1947 only - May 4 2:00s 1:00 S
Rule Poland 1947 1949 - Oct Sun>=1 2:00s 0 -
Rule Poland 1948 only - Apr 18 2:00s 1:00 S
Rule Poland 1949 only - Apr 10 2:00s 1:00 S
Rule Poland 1957 only - Jun 2 1:00s 1:00 S
Rule Poland 1957 1958 - Sep lastSun 1:00s 0 -
Rule Poland 1958 only - Mar 30 1:00s 1:00 S
Rule Poland 1959 only - May 31 1:00s 1:00 S
Rule Poland 1959 1961 - Oct Sun>=1 1:00s 0 -
Rule Poland 1960 only - Apr 3 1:00s 1:00 S
Rule Poland 1961 1964 - May lastSun 1:00s 1:00 S
Rule Poland 1962 1964 - Sep lastSun 1:00s 0 -
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone Europe/Warsaw 1:24:00 - LMT 1880
1:24:00 - WMT 1915 Aug 5 # Warsaw Mean Time
1:00 C-Eur CE%sT 1918 Sep 16 3:00
2:00 Poland EE%sT 1922 Jun
1:00 Poland CE%sT 1940 Jun 23 2:00
1:00 C-Eur CE%sT 1944 Oct
1:00 Poland CE%sT 1977
1:00 W-Eur CE%sT 1988
1:00 EU CE%sT
# Portugal
#
# From Rui Pedro Salgueiro (1992-11-12):
# Portugal has recently (September, 27) changed timezone
# (from WET to MET or CET) to harmonize with EEC.
#
# Martin Bruckmann (1996-02-29) reports via Peter Ilieve
# that Portugal is reverting to 0:00 by not moving its clocks this spring.
# The new Prime Minister was fed up with getting up in the dark in the winter.
#
# From Paul Eggert (1996-11-12):
# IATA SSIM (1991-09) reports several 1991-09 and 1992-09 transitions
# at 02:00u, not 01:00u. Assume that these are typos.
# IATA SSIM (1991/1992) reports that the Azores were at -1:00.
# IATA SSIM (1993-02) says +0:00; later issues (through 1996-09) say -1:00.
# Guess that the Azores changed to EU rules in 1992 (since that's when Portugal
# harmonized with the EU), and that they stayed +0:00 that winter.
#
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
# DSH writes that despite Decree 1,469 (1915), the change to the clocks was not
# done every year, depending on what Spain did, because of railroad schedules.
# Go with Shanks & Pottenger.
Rule Port 1916 only - Jun 17 23:00 1:00 S
# Whitman gives 1916 Oct 31; go with Shanks & Pottenger.
Rule Port 1916 only - Nov 1 1:00 0 -
Rule Port 1917 only - Feb 28 23:00s 1:00 S
Rule Port 1917 1921 - Oct 14 23:00s 0 -
Rule Port 1918 only - Mar 1 23:00s 1:00 S
Rule Port 1919 only - Feb 28 23:00s 1:00 S
Rule Port 1920 only - Feb 29 23:00s 1:00 S
Rule Port 1921 only - Feb 28 23:00s 1:00 S
Rule Port 1924 only - Apr 16 23:00s 1:00 S
Rule Port 1924 only - Oct 14 23:00s 0 -
Rule Port 1926 only - Apr 17 23:00s 1:00 S
Rule Port 1926 1929 - Oct Sat>=1 23:00s 0 -
Rule Port 1927 only - Apr 9 23:00s 1:00 S
Rule Port 1928 only - Apr 14 23:00s 1:00 S
Rule Port 1929 only - Apr 20 23:00s 1:00 S
Rule Port 1931 only - Apr 18 23:00s 1:00 S
# Whitman gives 1931 Oct 8; go with Shanks & Pottenger.
Rule Port 1931 1932 - Oct Sat>=1 23:00s 0 -
Rule Port 1932 only - Apr 2 23:00s 1:00 S
Rule Port 1934 only - Apr 7 23:00s 1:00 S
# Whitman gives 1934 Oct 5; go with Shanks & Pottenger.
Rule Port 1934 1938 - Oct Sat>=1 23:00s 0 -
# Shanks & Pottenger give 1935 Apr 30; go with Whitman.
Rule Port 1935 only - Mar 30 23:00s 1:00 S
Rule Port 1936 only - Apr 18 23:00s 1:00 S
# Whitman gives 1937 Apr 2; go with Shanks & Pottenger.
Rule Port 1937 only - Apr 3 23:00s 1:00 S
Rule Port 1938 only - Mar 26 23:00s 1:00 S
Rule Port 1939 only - Apr 15 23:00s 1:00 S
# Whitman gives 1939 Oct 7; go with Shanks & Pottenger.
Rule Port 1939 only - Nov 18 23:00s 0 -
Rule Port 1940 only - Feb 24 23:00s 1:00 S
# Shanks & Pottenger give 1940 Oct 7; go with Whitman.
Rule Port 1940 1941 - Oct 5 23:00s 0 -
Rule Port 1941 only - Apr 5 23:00s 1:00 S
Rule Port 1942 1945 - Mar Sat>=8 23:00s 1:00 S
Rule Port 1942 only - Apr 25 22:00s 2:00 M # Midsummer
Rule Port 1942 only - Aug 15 22:00s 1:00 S
Rule Port 1942 1945 - Oct Sat>=24 23:00s 0 -
Rule Port 1943 only - Apr 17 22:00s 2:00 M
Rule Port 1943 1945 - Aug Sat>=25 22:00s 1:00 S
Rule Port 1944 1945 - Apr Sat>=21 22:00s 2:00 M
Rule Port 1946 only - Apr Sat>=1 23:00s 1:00 S
Rule Port 1946 only - Oct Sat>=1 23:00s 0 -
Rule Port 1947 1949 - Apr Sun>=1 2:00s 1:00 S
Rule Port 1947 1949 - Oct Sun>=1 2:00s 0 -
# Shanks & Pottenger say DST was observed in 1950; go with Whitman.
# Whitman gives Oct lastSun for 1952 on; go with Shanks & Pottenger.
Rule Port 1951 1965 - Apr Sun>=1 2:00s 1:00 S
Rule Port 1951 1965 - Oct Sun>=1 2:00s 0 -
Rule Port 1977 only - Mar 27 0:00s 1:00 S
Rule Port 1977 only - Sep 25 0:00s 0 -
Rule Port 1978 1979 - Apr Sun>=1 0:00s 1:00 S
Rule Port 1978 only - Oct 1 0:00s 0 -
Rule Port 1979 1982 - Sep lastSun 1:00s 0 -
Rule Port 1980 only - Mar lastSun 0:00s 1:00 S
Rule Port 1981 1982 - Mar lastSun 1:00s 1:00 S
Rule Port 1983 only - Mar lastSun 2:00s 1:00 S
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
# Shanks & Pottenger say the transition from LMT to WET occurred 1911-05-24;
# Willett says 1912-01-01. Go with Willett.
Zone Europe/Lisbon -0:36:32 - LMT 1884
-0:36:32 - LMT 1912 Jan 1 # Lisbon Mean Time
0:00 Port WE%sT 1966 Apr 3 2:00
1:00 - CET 1976 Sep 26 1:00
0:00 Port WE%sT 1983 Sep 25 1:00s
0:00 W-Eur WE%sT 1992 Sep 27 1:00s
1:00 EU CE%sT 1996 Mar 31 1:00u
0:00 EU WE%sT
Zone Atlantic/Azores -1:42:40 - LMT 1884 # Ponta Delgada
-1:54:32 - HMT 1911 May 24 # Horta Mean Time
-2:00 Port AZO%sT 1966 Apr 3 2:00 # Azores Time
-1:00 Port AZO%sT 1983 Sep 25 1:00s
-1:00 W-Eur AZO%sT 1992 Sep 27 1:00s
0:00 EU WE%sT 1993 Mar 28 1:00u
-1:00 EU AZO%sT
Zone Atlantic/Madeira -1:07:36 - LMT 1884 # Funchal
-1:07:36 - FMT 1911 May 24 # Funchal Mean Time
-1:00 Port MAD%sT 1966 Apr 3 2:00 # Madeira Time
0:00 Port WE%sT 1983 Sep 25 1:00s
0:00 EU WE%sT
# Romania
#
# From Paul Eggert (1999-10-07):
#
# Nine O'clock (1998-10-23) reports that the switch occurred at
# 04:00 local time in fall 1998. For lack of better info,
# assume that Romania and Moldova switched to EU rules in 1997,
# the same year as Bulgaria.
#
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
Rule Romania 1932 only - May 21 0:00s 1:00 S
Rule Romania 1932 1939 - Oct Sun>=1 0:00s 0 -
Rule Romania 1933 1939 - Apr Sun>=2 0:00s 1:00 S
Rule Romania 1979 only - May 27 0:00 1:00 S
Rule Romania 1979 only - Sep lastSun 0:00 0 -
Rule Romania 1980 only - Apr 5 23:00 1:00 S
Rule Romania 1980 only - Sep lastSun 1:00 0 -
Rule Romania 1991 1993 - Mar lastSun 0:00s 1:00 S
Rule Romania 1991 1993 - Sep lastSun 0:00s 0 -
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone Europe/Bucharest 1:44:24 - LMT 1891 Oct
1:44:24 - BMT 1931 Jul 24 # Bucharest MT
2:00 Romania EE%sT 1981 Mar 29 2:00s
2:00 C-Eur EE%sT 1991
2:00 Romania EE%sT 1994
2:00 E-Eur EE%sT 1997
2:00 EU EE%sT
# Russia
# From Paul Eggert (2006-03-22):
# Except for Moscow after 1919-07-01, I invented the time zone abbreviations.
# Moscow time zone abbreviations after 1919-07-01, and Moscow rules after 1991,
# are from Andrey A. Chernov. The rest is from Shanks & Pottenger,
# except we follow Chernov's report that 1992 DST transitions were Sat
# 23:00, not Sun 02:00s.
#
# From Stanislaw A. Kuzikowski (1994-06-29):
# But now it is some months since Novosibirsk is 3 hours ahead of Moscow!
# I do not know why they have decided to make this change;
# as far as I remember it was done exactly during winter->summer switching
# so we (Novosibirsk) simply did not switch.
#
# From Andrey A. Chernov (1996-10-04):
# `MSK' and `MSD' were born and used initially on Moscow computers with
# UNIX-like OSes by several developer groups (e.g. Demos group, Kiae group)....
# The next step was the UUCP network, the Relcom predecessor
# (used mainly for mail), and MSK/MSD was actively used there.
#
# From Chris Carrier (1996-10-30):
# According to a friend of mine who rode the Trans-Siberian Railroad from
# Moscow to Irkutsk in 1995, public air and rail transport in Russia ...
# still follows Moscow time, no matter where in Russia it is located.
#
# For Grozny, Chechnya, we have the following story from
# John Daniszewski, "Scavengers in the Rubble", Los Angeles Times (2001-02-07):
# News--often false--is spread by word of mouth. A rumor that it was
# time to move the clocks back put this whole city out of sync with
# the rest of Russia for two weeks--even soldiers stationed here began
# enforcing curfew at the wrong time.
#
# From Gwillim Law (2001-06-05):
# There's considerable evidence that Sakhalin Island used to be in
# UTC+11, and has changed to UTC+10, in this decade. I start with the
# SSIM, which listed Yuzhno-Sakhalinsk in zone RU10 along with Magadan
# until February 1997, and then in RU9 with Khabarovsk and Vladivostok
# since September 1997.... Although the Kuril Islands are
# administratively part of Sakhalin oblast', they appear to have
# remained on UTC+11 along with Magadan.
#
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
#
# Kaliningradskaya oblast'.
Zone Europe/Kaliningrad 1:22:00 - LMT 1893 Apr
1:00 C-Eur CE%sT 1945
2:00 Poland CE%sT 1946
3:00 Russia MSK/MSD 1991 Mar 31 2:00s
2:00 Russia EE%sT 2011 Mar 27 2:00s
3:00 - FET # Further-eastern European Time
#
# From Oscar van Vlijmen (2001-08-25): [This region consists of]
# Respublika Adygeya, Arkhangel'skaya oblast',
# Belgorodskaya oblast', Bryanskaya oblast', Vladimirskaya oblast',
# Vologodskaya oblast', Voronezhskaya oblast',
# Respublika Dagestan, Ivanovskaya oblast', Respublika Ingushetiya,
# Kabarbino-Balkarskaya Respublika, Respublika Kalmykiya,
# Kalyzhskaya oblast', Respublika Karachaevo-Cherkessiya,
# Respublika Kareliya, Respublika Komi,
# Kostromskaya oblast', Krasnodarskij kraj, Kurskaya oblast',
# Leningradskaya oblast', Lipetskaya oblast', Respublika Marij El,
# Respublika Mordoviya, Moskva, Moskovskaya oblast',
# Murmanskaya oblast', Nenetskij avtonomnyj okrug,
# Nizhegorodskaya oblast', Novgorodskaya oblast', Orlovskaya oblast',
# Penzenskaya oblast', Pskovskaya oblast', Rostovskaya oblast',
# Ryazanskaya oblast', Sankt-Peterburg,
# Respublika Severnaya Osetiya, Smolenskaya oblast',
# Stavropol'skij kraj, Tambovskaya oblast', Respublika Tatarstan,
# Tverskaya oblast', Tyl'skaya oblast', Ul'yanovskaya oblast',
# Chechenskaya Respublika, Chuvashskaya oblast',
# Yaroslavskaya oblast'
Zone Europe/Moscow 2:30:20 - LMT 1880
2:30 - MMT 1916 Jul 3 # Moscow Mean Time
2:30:48 Russia %s 1919 Jul 1 2:00
3:00 Russia MSK/MSD 1922 Oct
2:00 - EET 1930 Jun 21
3:00 Russia MSK/MSD 1991 Mar 31 2:00s
2:00 Russia EE%sT 1992 Jan 19 2:00s
3:00 Russia MSK/MSD 2011 Mar 27 2:00s
4:00 - MSK
#
# Astrakhanskaya oblast', Kirovskaya oblast', Saratovskaya oblast',
# Volgogradskaya oblast'. Shanks & Pottenger say Kirov is still at +0400
# but Wikipedia (2006-05-09) says +0300. Perhaps it switched after the
# others? But we have no data.
Zone Europe/Volgograd 2:57:40 - LMT 1920 Jan 3
3:00 - TSAT 1925 Apr 6 # Tsaritsyn Time
3:00 - STAT 1930 Jun 21 # Stalingrad Time
4:00 - STAT 1961 Nov 11
4:00 Russia VOL%sT 1989 Mar 26 2:00s # Volgograd T
3:00 Russia VOL%sT 1991 Mar 31 2:00s
4:00 - VOLT 1992 Mar 29 2:00s
3:00 Russia VOL%sT 2011 Mar 27 2:00s
4:00 - VOLT
#
# From Oscar van Vlijmen (2001-08-25): [This region consists of]
# Samarskaya oblast', Udmyrtskaya respublika
Zone Europe/Samara 3:20:36 - LMT 1919 Jul 1 2:00
3:00 - SAMT 1930 Jun 21
4:00 - SAMT 1935 Jan 27
4:00 Russia KUY%sT 1989 Mar 26 2:00s # Kuybyshev
3:00 Russia KUY%sT 1991 Mar 31 2:00s
2:00 Russia KUY%sT 1991 Sep 29 2:00s
3:00 - KUYT 1991 Oct 20 3:00
4:00 Russia SAM%sT 2010 Mar 28 2:00s # Samara Time
3:00 Russia SAM%sT 2011 Mar 27 2:00s
4:00 - SAMT
#
# From Oscar van Vlijmen (2001-08-25): [This region consists of]
# Respublika Bashkortostan, Komi-Permyatskij avtonomnyj okrug,
# Kurganskaya oblast', Orenburgskaya oblast', Permskaya oblast',
# Sverdlovskaya oblast', Tyumenskaya oblast',
# Khanty-Manskijskij avtonomnyj okrug, Chelyabinskaya oblast',
# Yamalo-Nenetskij avtonomnyj okrug.
Zone Asia/Yekaterinburg 4:02:24 - LMT 1919 Jul 15 4:00
4:00 - SVET 1930 Jun 21 # Sverdlovsk Time
5:00 Russia SVE%sT 1991 Mar 31 2:00s
4:00 Russia SVE%sT 1992 Jan 19 2:00s
5:00 Russia YEK%sT 2011 Mar 27 2:00s
6:00 - YEKT # Yekaterinburg Time
#
# From Oscar van Vlijmen (2001-08-25): [This region consists of]
# Respublika Altaj, Altajskij kraj, Omskaya oblast'.
Zone Asia/Omsk 4:53:36 - LMT 1919 Nov 14
5:00 - OMST 1930 Jun 21 # Omsk TIme
6:00 Russia OMS%sT 1991 Mar 31 2:00s
5:00 Russia OMS%sT 1992 Jan 19 2:00s
6:00 Russia OMS%sT 2011 Mar 27 2:00s
7:00 - OMST
#
# From Paul Eggert (2006-08-19): I'm guessing about Tomsk here; it's
# not clear when it switched from +7 to +6.
# Novosibirskaya oblast', Tomskaya oblast'.
Zone Asia/Novosibirsk 5:31:40 - LMT 1919 Dec 14 6:00
6:00 - NOVT 1930 Jun 21 # Novosibirsk Time
7:00 Russia NOV%sT 1991 Mar 31 2:00s
6:00 Russia NOV%sT 1992 Jan 19 2:00s
7:00 Russia NOV%sT 1993 May 23 # say Shanks & P.
6:00 Russia NOV%sT 2011 Mar 27 2:00s
7:00 - NOVT
# From Alexander Krivenyshev (2009-10-13):
# Kemerovo oblast' (Kemerovo region) in Russia will change current time zone on
# March 28, 2010:
# from current Russia Zone 6 - Krasnoyarsk Time Zone (KRA) UTC +0700
# to Russia Zone 5 - Novosibirsk Time Zone (NOV) UTC +0600
#
# This is according to Government of Russia decree # 740, on September
# 14, 2009 "Application in the territory of the Kemerovo region the Fifth
# time zone." ("Russia Zone 5" or old "USSR Zone 5" is GMT +0600)
#
# Russian Government web site (Russian language)
#
# http://www.government.ru/content/governmentactivity/rfgovernmentdecisions/archive/2009/09/14/991633.htm
#
# or Russian-English translation by WorldTimeZone.com with reference
# map to local region and new Russia Time Zone map after March 28, 2010
#
# http://www.worldtimezone.com/dst_news/dst_news_russia03.html
#
#
# Thus, when Russia will switch to DST on the night of March 28, 2010
# Kemerovo region (Kemerovo oblast') will not change the clock.
#
# As a result, Kemerovo oblast' will be in the same time zone as
# Novosibirsk, Omsk, Tomsk, Barnaul and Altai Republic.
Zone Asia/Novokuznetsk 5:48:48 - NMT 1920 Jan 6
6:00 - KRAT 1930 Jun 21 # Krasnoyarsk Time
7:00 Russia KRA%sT 1991 Mar 31 2:00s
6:00 Russia KRA%sT 1992 Jan 19 2:00s
7:00 Russia KRA%sT 2010 Mar 28 2:00s
6:00 Russia NOV%sT 2011 Mar 27 2:00s
7:00 - NOVT # Novosibirsk/Novokuznetsk Time
#
# From Oscar van Vlijmen (2001-08-25): [This region consists of]
# Krasnoyarskij kraj,
# Tajmyrskij (Dolgano-Nenetskij) avtonomnyj okrug,
# Respublika Tuva, Respublika Khakasiya, Evenkijskij avtonomnyj okrug.
Zone Asia/Krasnoyarsk 6:11:20 - LMT 1920 Jan 6
6:00 - KRAT 1930 Jun 21 # Krasnoyarsk Time
7:00 Russia KRA%sT 1991 Mar 31 2:00s
6:00 Russia KRA%sT 1992 Jan 19 2:00s
7:00 Russia KRA%sT 2011 Mar 27 2:00s
8:00 - KRAT
#
# From Oscar van Vlijmen (2001-08-25): [This region consists of]
# Respublika Buryatiya, Irkutskaya oblast',
# Ust'-Ordynskij Buryatskij avtonomnyj okrug.
Zone Asia/Irkutsk 6:57:20 - LMT 1880
6:57:20 - IMT 1920 Jan 25 # Irkutsk Mean Time
7:00 - IRKT 1930 Jun 21 # Irkutsk Time
8:00 Russia IRK%sT 1991 Mar 31 2:00s
7:00 Russia IRK%sT 1992 Jan 19 2:00s
8:00 Russia IRK%sT 2011 Mar 27 2:00s
9:00 - IRKT
#
# From Oscar van Vlijmen (2003-10-18): [This region consists of]
# Aginskij Buryatskij avtonomnyj okrug, Amurskaya oblast',
# [parts of] Respublika Sakha (Yakutiya), Chitinskaya oblast'.
# From Oscar van Vlijmen (2009-11-29):
# ...some regions of [Russia] were merged with others since 2005...
# Some names were changed, no big deal, except for one instance: a new name.
# YAK/YAKST: UTC+9 Zabajkal'skij kraj.
# From Oscar van Vlijmen (2009-11-29):
# The Sakha districts are: Aldanskij, Amginskij, Anabarskij,
# Verkhnevilyujskij, Vilyujskij, Gornyj,
# Zhiganskij, Kobyajskij, Lenskij, Megino-Kangalasskij, Mirninskij,
# Namskij, Nyurbinskij, Olenyokskij, Olyokminskij,
# Suntarskij, Tattinskij, Ust'-Aldanskij, Khangalasskij,
# Churapchinskij, Eveno-Bytantajskij Natsional'nij.
Zone Asia/Yakutsk 8:38:40 - LMT 1919 Dec 15
8:00 - YAKT 1930 Jun 21 # Yakutsk Time
9:00 Russia YAK%sT 1991 Mar 31 2:00s
8:00 Russia YAK%sT 1992 Jan 19 2:00s
9:00 Russia YAK%sT 2011 Mar 27 2:00s
10:00 - YAKT
#
# From Oscar van Vlijmen (2003-10-18): [This region consists of]
# Evrejskaya avtonomnaya oblast', Khabarovskij kraj, Primorskij kraj,
# [parts of] Respublika Sakha (Yakutiya).
# From Oscar van Vlijmen (2009-11-29):
# The Sakha districts are: Bulunskij, Verkhoyanskij, Tomponskij, Ust'-Majskij,
# Ust'-Yanskij.
Zone Asia/Vladivostok 8:47:44 - LMT 1922 Nov 15
9:00 - VLAT 1930 Jun 21 # Vladivostok Time
10:00 Russia VLA%sT 1991 Mar 31 2:00s
9:00 Russia VLA%sST 1992 Jan 19 2:00s
10:00 Russia VLA%sT 2011 Mar 27 2:00s
11:00 - VLAT
#
# Sakhalinskaya oblast'.
# The Zone name should be Yuzhno-Sakhalinsk, but that's too long.
Zone Asia/Sakhalin 9:30:48 - LMT 1905 Aug 23
9:00 - CJT 1938
9:00 - JST 1945 Aug 25
11:00 Russia SAK%sT 1991 Mar 31 2:00s # Sakhalin T.
10:00 Russia SAK%sT 1992 Jan 19 2:00s
11:00 Russia SAK%sT 1997 Mar lastSun 2:00s
10:00 Russia SAK%sT 2011 Mar 27 2:00s
11:00 - SAKT
#
# From Oscar van Vlijmen (2003-10-18): [This region consists of]
# Magadanskaya oblast', Respublika Sakha (Yakutiya).
# Probably also: Kuril Islands.
# From Oscar van Vlijmen (2009-11-29):
# The Sakha districts are: Abyjskij, Allaikhovskij, Verkhhhnekolymskij, Momskij,
# Nizhnekolymskij, Ojmyakonskij, Srednekolymskij.
Zone Asia/Magadan 10:03:12 - LMT 1924 May 2
10:00 - MAGT 1930 Jun 21 # Magadan Time
11:00 Russia MAG%sT 1991 Mar 31 2:00s
10:00 Russia MAG%sT 1992 Jan 19 2:00s
11:00 Russia MAG%sT 2011 Mar 27 2:00s
12:00 - MAGT
#
# From Oscar van Vlijmen (2001-08-25): [This region consists of]
# Kamchatskaya oblast', Koryakskij avtonomnyj okrug.
#
# The Zone name should be Asia/Petropavlovsk-Kamchatski, but that's too long.
Zone Asia/Kamchatka 10:34:36 - LMT 1922 Nov 10
11:00 - PETT 1930 Jun 21 # P-K Time
12:00 Russia PET%sT 1991 Mar 31 2:00s
11:00 Russia PET%sT 1992 Jan 19 2:00s
12:00 Russia PET%sT 2010 Mar 28 2:00s
11:00 Russia PET%sT 2011 Mar 27 2:00s
12:00 - PETT
#
# Chukotskij avtonomnyj okrug
Zone Asia/Anadyr 11:49:56 - LMT 1924 May 2
12:00 - ANAT 1930 Jun 21 # Anadyr Time
13:00 Russia ANA%sT 1982 Apr 1 0:00s
12:00 Russia ANA%sT 1991 Mar 31 2:00s
11:00 Russia ANA%sT 1992 Jan 19 2:00s
12:00 Russia ANA%sT 2010 Mar 28 2:00s
11:00 Russia ANA%sT 2011 Mar 27 2:00s
12:00 - ANAT
# Serbia
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone Europe/Belgrade 1:22:00 - LMT 1884
1:00 - CET 1941 Apr 18 23:00
1:00 C-Eur CE%sT 1945
1:00 - CET 1945 May 8 2:00s
1:00 1:00 CEST 1945 Sep 16 2:00s
# Metod Kozelj reports that the legal date of
# transition to EU rules was 1982-11-27, for all of Yugoslavia at the time.
# Shanks & Pottenger don't give as much detail, so go with Kozelj.
1:00 - CET 1982 Nov 27
1:00 EU CE%sT
Link Europe/Belgrade Europe/Ljubljana # Slovenia
Link Europe/Belgrade Europe/Podgorica # Montenegro
Link Europe/Belgrade Europe/Sarajevo # Bosnia and Herzegovina
Link Europe/Belgrade Europe/Skopje # Macedonia
Link Europe/Belgrade Europe/Zagreb # Croatia
# Slovakia
Link Europe/Prague Europe/Bratislava
# Slovenia
# see Serbia
# Spain
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
# For 1917-1919 Whitman gives Apr Sat>=1 - Oct Sat>=1;
# go with Shanks & Pottenger.
Rule Spain 1917 only - May 5 23:00s 1:00 S
Rule Spain 1917 1919 - Oct 6 23:00s 0 -
Rule Spain 1918 only - Apr 15 23:00s 1:00 S
Rule Spain 1919 only - Apr 5 23:00s 1:00 S
# Whitman gives 1921 Feb 28 - Oct 14; go with Shanks & Pottenger.
Rule Spain 1924 only - Apr 16 23:00s 1:00 S
# Whitman gives 1924 Oct 14; go with Shanks & Pottenger.
Rule Spain 1924 only - Oct 4 23:00s 0 -
Rule Spain 1926 only - Apr 17 23:00s 1:00 S
# Whitman says no DST in 1929; go with Shanks & Pottenger.
Rule Spain 1926 1929 - Oct Sat>=1 23:00s 0 -
Rule Spain 1927 only - Apr 9 23:00s 1:00 S
Rule Spain 1928 only - Apr 14 23:00s 1:00 S
Rule Spain 1929 only - Apr 20 23:00s 1:00 S
# Whitman gives 1937 Jun 16, 1938 Apr 16, 1940 Apr 13;
# go with Shanks & Pottenger.
Rule Spain 1937 only - May 22 23:00s 1:00 S
Rule Spain 1937 1939 - Oct Sat>=1 23:00s 0 -
Rule Spain 1938 only - Mar 22 23:00s 1:00 S
Rule Spain 1939 only - Apr 15 23:00s 1:00 S
Rule Spain 1940 only - Mar 16 23:00s 1:00 S
# Whitman says no DST 1942-1945; go with Shanks & Pottenger.
Rule Spain 1942 only - May 2 22:00s 2:00 M # Midsummer
Rule Spain 1942 only - Sep 1 22:00s 1:00 S
Rule Spain 1943 1946 - Apr Sat>=13 22:00s 2:00 M
Rule Spain 1943 only - Oct 3 22:00s 1:00 S
Rule Spain 1944 only - Oct 10 22:00s 1:00 S
Rule Spain 1945 only - Sep 30 1:00 1:00 S
Rule Spain 1946 only - Sep 30 0:00 0 -
Rule Spain 1949 only - Apr 30 23:00 1:00 S
Rule Spain 1949 only - Sep 30 1:00 0 -
Rule Spain 1974 1975 - Apr Sat>=13 23:00 1:00 S
Rule Spain 1974 1975 - Oct Sun>=1 1:00 0 -
Rule Spain 1976 only - Mar 27 23:00 1:00 S
Rule Spain 1976 1977 - Sep lastSun 1:00 0 -
Rule Spain 1977 1978 - Apr 2 23:00 1:00 S
Rule Spain 1978 only - Oct 1 1:00 0 -
# The following rules are copied from Morocco from 1967 through 1978.
Rule SpainAfrica 1967 only - Jun 3 12:00 1:00 S
Rule SpainAfrica 1967 only - Oct 1 0:00 0 -
Rule SpainAfrica 1974 only - Jun 24 0:00 1:00 S
Rule SpainAfrica 1974 only - Sep 1 0:00 0 -
Rule SpainAfrica 1976 1977 - May 1 0:00 1:00 S
Rule SpainAfrica 1976 only - Aug 1 0:00 0 -
Rule SpainAfrica 1977 only - Sep 28 0:00 0 -
Rule SpainAfrica 1978 only - Jun 1 0:00 1:00 S
Rule SpainAfrica 1978 only - Aug 4 0:00 0 -
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone Europe/Madrid -0:14:44 - LMT 1901 Jan 1 0:00s
0:00 Spain WE%sT 1946 Sep 30
1:00 Spain CE%sT 1979
1:00 EU CE%sT
Zone Africa/Ceuta -0:21:16 - LMT 1901
0:00 - WET 1918 May 6 23:00
0:00 1:00 WEST 1918 Oct 7 23:00
0:00 - WET 1924
0:00 Spain WE%sT 1929
0:00 SpainAfrica WE%sT 1984 Mar 16
1:00 - CET 1986
1:00 EU CE%sT
Zone Atlantic/Canary -1:01:36 - LMT 1922 Mar # Las Palmas de Gran C.
-1:00 - CANT 1946 Sep 30 1:00 # Canaries Time
0:00 - WET 1980 Apr 6 0:00s
0:00 1:00 WEST 1980 Sep 28 0:00s
0:00 EU WE%sT
# IATA SSIM (1996-09) says the Canaries switch at 2:00u, not 1:00u.
# Ignore this for now, as the Canaries are part of the EU.
# Sweden
# From Ivan Nilsson (2001-04-13), superseding Shanks & Pottenger:
#
# The law "Svensk forfattningssamling 1878, no 14" about standard time in 1879:
# From the beginning of 1879 (that is 01-01 00:00) the time for all
# places in the country is "the mean solar time for the meridian at
# three degrees, or twelve minutes of time, to the west of the
# meridian of the Observatory of Stockholm". The law is dated 1878-05-31.
#
# The observatory at that time had the meridian 18 degrees 03' 30"
# eastern longitude = 01:12:14 in time. Less 12 minutes gives the
# national standard time as 01:00:14 ahead of GMT....
#
# About the beginning of CET in Sweden. The lawtext ("Svensk
# forfattningssamling 1899, no 44") states, that "from the beginning
# of 1900... ... the same as the mean solar time for the meridian at
# the distance of one hour of time from the meridian of the English
# observatory at Greenwich, or at 12 minutes 14 seconds to the west
# from the meridian of the Observatory of Stockholm". The law is dated
# 1899-06-16. In short: At 1900-01-01 00:00:00 the new standard time
# in Sweden is 01:00:00 ahead of GMT.
#
# 1916: The lawtext ("Svensk forfattningssamling 1916, no 124") states
# that "1916-05-15 is considered to begin one hour earlier". It is
# pretty obvious that at 05-14 23:00 the clocks are set to 05-15 00:00....
# Further the law says, that "1916-09-30 is considered to end one hour later".
#
# The laws regulating [DST] are available on the site of the Swedish
# Parliament beginning with 1985 - the laws regulating 1980/1984 are
# not available on the site (to my knowledge they are only available
# in Swedish): (type
# "sommartid" without the quotes in the field "Fritext" and then click
# the Sok-button).
#
# (2001-05-13):
#
# I have now found a newspaper stating that at 1916-10-01 01:00
# summertime the church-clocks etc were set back one hour to show
# 1916-10-01 00:00 standard time. The article also reports that some
# people thought the switch to standard time would take place already
# at 1916-10-01 00:00 summer time, but they had to wait for another
# hour before the event took place.
#
# Source: The newspaper "Dagens Nyheter", 1916-10-01, page 7 upper left.
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone Europe/Stockholm 1:12:12 - LMT 1879 Jan 1
1:00:14 - SET 1900 Jan 1 # Swedish Time
1:00 - CET 1916 May 14 23:00
1:00 1:00 CEST 1916 Oct 1 01:00
1:00 - CET 1980
1:00 EU CE%sT
# Switzerland
# From Howse:
# By the end of the 18th century clocks and watches became commonplace
# and their performance improved enormously. Communities began to keep
# mean time in preference to apparent time -- Geneva from 1780 ....
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
# From Whitman (who writes ``Midnight?''):
# Rule Swiss 1940 only - Nov 2 0:00 1:00 S
# Rule Swiss 1940 only - Dec 31 0:00 0 -
# From Shanks & Pottenger:
# Rule Swiss 1941 1942 - May Sun>=1 2:00 1:00 S
# Rule Swiss 1941 1942 - Oct Sun>=1 0:00 0 -
# From Alois Treindl (2008-12-17):
# I have researched the DST usage in Switzerland during the 1940ies.
#
# As I wrote in an earlier message, I suspected the current tzdata values
# to be wrong. This is now verified.
#
# I have found copies of the original ruling by the Swiss Federal
# government, in 'Eidgen[o]ssische Gesetzessammlung 1941 and 1942' (Swiss
# federal law collection)...
#
# DST began on Monday 5 May 1941, 1:00 am by shifting the clocks to 2:00 am
# DST ended on Monday 6 Oct 1941, 2:00 am by shifting the clocks to 1:00 am.
#
# DST began on Monday, 4 May 1942 at 01:00 am
# DST ended on Monday, 5 Oct 1942 at 02:00 am
#
# There was no DST in 1940, I have checked the law collection carefully.
# It is also indicated by the fact that the 1942 entry in the law
# collection points back to 1941 as a reference, but no reference to any
# other years are made.
#
# Newspaper articles I have read in the archives on 6 May 1941 reported
# about the introduction of DST (Sommerzeit in German) during the previous
# night as an absolute novelty, because this was the first time that such
# a thing had happened in Switzerland.
#
# I have also checked 1916, because one book source (Gabriel, Traite de
# l'heure dans le monde) claims that Switzerland had DST in 1916. This is
# false, no official document could be found. Probably Gabriel got misled
# by references to Germany, which introduced DST in 1916 for the first time.
#
# The tzdata rules for Switzerland must be changed to:
# Rule Swiss 1941 1942 - May Mon>=1 1:00 1:00 S
# Rule Swiss 1941 1942 - Oct Mon>=1 2:00 0 -
#
# The 1940 rules must be deleted.
#
# One further detail for Switzerland, which is probably out of scope for
# most users of tzdata:
# The zone file
# Zone Europe/Zurich 0:34:08 - LMT 1848 Sep 12
# 0:29:44 - BMT 1894 Jun #Bern Mean Time
# 1:00 Swiss CE%sT 1981
# 1:00 EU CE%sT
# describes all of Switzerland correctly, with the exception of
# the Cantone Geneve (Geneva, Genf). Between 1848 and 1894 Geneve did not
# follow Bern Mean Time but kept its own local mean time.
# To represent this, an extra zone would be needed.
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
Rule Swiss 1941 1942 - May Mon>=1 1:00 1:00 S
Rule Swiss 1941 1942 - Oct Mon>=1 2:00 0 -
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone Europe/Zurich 0:34:08 - LMT 1848 Sep 12
0:29:44 - BMT 1894 Jun # Bern Mean Time
1:00 Swiss CE%sT 1981
1:00 EU CE%sT
# Turkey
# From Amar Devegowda (2007-01-03):
# The time zone rules for Istanbul, Turkey have not been changed for years now.
# ... The latest rules are available at -
# http://www.timeanddate.com/worldclock/timezone.html?n=107
# From Steffen Thorsen (2007-01-03):
# I have been able to find press records back to 1996 which all say that
# DST started 01:00 local time and end at 02:00 local time. I am not sure
# what happened before that. One example for each year from 1996 to 2001:
# http://newspot.byegm.gov.tr/arsiv/1996/21/N4.htm
# http://www.byegm.gov.tr/YAYINLARIMIZ/CHR/ING97/03/97X03X25.TXT
# http://www.byegm.gov.tr/YAYINLARIMIZ/CHR/ING98/03/98X03X02.HTM
# http://www.byegm.gov.tr/YAYINLARIMIZ/CHR/ING99/10/99X10X26.HTM#%2016
# http://www.byegm.gov.tr/YAYINLARIMIZ/CHR/ING2000/03/00X03X06.HTM#%2021
# http://www.byegm.gov.tr/YAYINLARIMIZ/CHR/ING2001/03/23x03x01.HTM#%2027
# From Paul Eggert (2007-01-03):
# Prefer the above source to Shanks & Pottenger for time stamps after 1990.
# From Steffen Thorsen (2007-03-09):
# Starting 2007 though, it seems that they are adopting EU's 1:00 UTC
# start/end time, according to the following page (2007-03-07):
# http://www.ntvmsnbc.com/news/402029.asp
# The official document is located here - it is in Turkish...:
# http://rega.basbakanlik.gov.tr/eskiler/2007/03/20070307-7.htm
# I was able to locate the following seemingly official document
# (on a non-government server though) describing dates between 2002 and 2006:
# http://www.alomaliye.com/bkk_2002_3769.htm
# From Gökdeniz Karadağ (2011-03-10):
#
# According to the articles linked below, Turkey will change into summer
# time zone (GMT+3) on March 28, 2011 at 3:00 a.m. instead of March 27.
# This change is due to a nationwide exam on 27th.
#
#
# http://www.worldbulletin.net/?aType=haber&ArticleID=70872
#
# Turkish:
#
# http://www.hurriyet.com.tr/ekonomi/17230464.asp?gid=373
#
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
Rule Turkey 1916 only - May 1 0:00 1:00 S
Rule Turkey 1916 only - Oct 1 0:00 0 -
Rule Turkey 1920 only - Mar 28 0:00 1:00 S
Rule Turkey 1920 only - Oct 25 0:00 0 -
Rule Turkey 1921 only - Apr 3 0:00 1:00 S
Rule Turkey 1921 only - Oct 3 0:00 0 -
Rule Turkey 1922 only - Mar 26 0:00 1:00 S
Rule Turkey 1922 only - Oct 8 0:00 0 -
# Whitman gives 1923 Apr 28 - Sep 16 and no DST in 1924-1925;
# go with Shanks & Pottenger.
Rule Turkey 1924 only - May 13 0:00 1:00 S
Rule Turkey 1924 1925 - Oct 1 0:00 0 -
Rule Turkey 1925 only - May 1 0:00 1:00 S
Rule Turkey 1940 only - Jun 30 0:00 1:00 S
Rule Turkey 1940 only - Oct 5 0:00 0 -
Rule Turkey 1940 only - Dec 1 0:00 1:00 S
Rule Turkey 1941 only - Sep 21 0:00 0 -
Rule Turkey 1942 only - Apr 1 0:00 1:00 S
# Whitman omits the next two transition and gives 1945 Oct 1;
# go with Shanks & Pottenger.
Rule Turkey 1942 only - Nov 1 0:00 0 -
Rule Turkey 1945 only - Apr 2 0:00 1:00 S
Rule Turkey 1945 only - Oct 8 0:00 0 -
Rule Turkey 1946 only - Jun 1 0:00 1:00 S
Rule Turkey 1946 only - Oct 1 0:00 0 -
Rule Turkey 1947 1948 - Apr Sun>=16 0:00 1:00 S
Rule Turkey 1947 1950 - Oct Sun>=2 0:00 0 -
Rule Turkey 1949 only - Apr 10 0:00 1:00 S
Rule Turkey 1950 only - Apr 19 0:00 1:00 S
Rule Turkey 1951 only - Apr 22 0:00 1:00 S
Rule Turkey 1951 only - Oct 8 0:00 0 -
Rule Turkey 1962 only - Jul 15 0:00 1:00 S
Rule Turkey 1962 only - Oct 8 0:00 0 -
Rule Turkey 1964 only - May 15 0:00 1:00 S
Rule Turkey 1964 only - Oct 1 0:00 0 -
Rule Turkey 1970 1972 - May Sun>=2 0:00 1:00 S
Rule Turkey 1970 1972 - Oct Sun>=2 0:00 0 -
Rule Turkey 1973 only - Jun 3 1:00 1:00 S
Rule Turkey 1973 only - Nov 4 3:00 0 -
Rule Turkey 1974 only - Mar 31 2:00 1:00 S
Rule Turkey 1974 only - Nov 3 5:00 0 -
Rule Turkey 1975 only - Mar 30 0:00 1:00 S
Rule Turkey 1975 1976 - Oct lastSun 0:00 0 -
Rule Turkey 1976 only - Jun 1 0:00 1:00 S
Rule Turkey 1977 1978 - Apr Sun>=1 0:00 1:00 S
Rule Turkey 1977 only - Oct 16 0:00 0 -
Rule Turkey 1979 1980 - Apr Sun>=1 3:00 1:00 S
Rule Turkey 1979 1982 - Oct Mon>=11 0:00 0 -
Rule Turkey 1981 1982 - Mar lastSun 3:00 1:00 S
Rule Turkey 1983 only - Jul 31 0:00 1:00 S
Rule Turkey 1983 only - Oct 2 0:00 0 -
Rule Turkey 1985 only - Apr 20 0:00 1:00 S
Rule Turkey 1985 only - Sep 28 0:00 0 -
Rule Turkey 1986 1990 - Mar lastSun 2:00s 1:00 S
Rule Turkey 1986 1990 - Sep lastSun 2:00s 0 -
Rule Turkey 1991 2006 - Mar lastSun 1:00s 1:00 S
Rule Turkey 1991 1995 - Sep lastSun 1:00s 0 -
Rule Turkey 1996 2006 - Oct lastSun 1:00s 0 -
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone Europe/Istanbul 1:55:52 - LMT 1880
1:56:56 - IMT 1910 Oct # Istanbul Mean Time?
2:00 Turkey EE%sT 1978 Oct 15
3:00 Turkey TR%sT 1985 Apr 20 # Turkey Time
2:00 Turkey EE%sT 2007
2:00 EU EE%sT 2011 Mar 27 1:00u
2:00 - EET 2011 Mar 28 1:00u
2:00 EU EE%sT
Link Europe/Istanbul Asia/Istanbul # Istanbul is in both continents.
# Ukraine
#
# From Igor Karpov, who works for the Ukranian Ministry of Justice,
# via Garrett Wollman (2003-01-27):
# BTW, I've found the official document on this matter. It's goverment
# regulations number 509, May 13, 1996. In my poor translation it says:
# "Time in Ukraine is set to second timezone (Kiev time). Each last Sunday
# of March at 3am the time is changing to 4am and each last Sunday of
# October the time at 4am is changing to 3am"
# From Alexander Krivenyshev (2011-09-20):
# On September 20, 2011 the deputies of the Verkhovna Rada agreed to
# abolish the transfer clock to winter time.
#
# Bill number 8330 of MP from the Party of Regions Oleg Nadoshi got
# approval from 266 deputies.
#
# Ukraine abolishes transter back to the winter time (in Russian)
#
# http://news.mail.ru/politics/6861560/
#
#
# The Ukrainians will no longer change the clock (in Russian)
#
# http://www.segodnya.ua/news/14290482.html
#
#
# Deputies cancelled the winter time (in Russian)
#
# http://www.pravda.com.ua/rus/news/2011/09/20/6600616/
#
#
# From Philip Pizzey (2011-10-18):
# Today my Ukrainian colleagues have informed me that the
# Ukrainian parliament have decided that they will go to winter
# time this year after all.
#
# From Udo Schwedt (2011-10-18):
# As far as I understand, the recent change to the Ukranian time zone
# (Europe/Kiev) to introduce permanent daylight saving time (similar
# to Russia) was reverted today:
#
#
# http://portal.rada.gov.ua/rada/control/en/publish/article/info_left?art_id=287324&cat_id=105995
#
#
# Also reported by Alexander Bokovoy (2011-10-18) who also noted:
# The law documents themselves are at
#
#
# http://w1.c1.rada.gov.ua/pls/zweb_n/webproc4_1?id=&pf3511=41484
#
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
# Most of Ukraine since 1970 has been like Kiev.
# "Kyiv" is the transliteration of the Ukrainian name, but
# "Kiev" is more common in English.
Zone Europe/Kiev 2:02:04 - LMT 1880
2:02:04 - KMT 1924 May 2 # Kiev Mean Time
2:00 - EET 1930 Jun 21
3:00 - MSK 1941 Sep 20
1:00 C-Eur CE%sT 1943 Nov 6
3:00 Russia MSK/MSD 1990
3:00 - MSK 1990 Jul 1 2:00
2:00 - EET 1992
2:00 E-Eur EE%sT 1995
2:00 EU EE%sT
# Ruthenia used CET 1990/1991.
# "Uzhhorod" is the transliteration of the Ukrainian name, but
# "Uzhgorod" is more common in English.
Zone Europe/Uzhgorod 1:29:12 - LMT 1890 Oct
1:00 - CET 1940
1:00 C-Eur CE%sT 1944 Oct
1:00 1:00 CEST 1944 Oct 26
1:00 - CET 1945 Jun 29
3:00 Russia MSK/MSD 1990
3:00 - MSK 1990 Jul 1 2:00
1:00 - CET 1991 Mar 31 3:00
2:00 - EET 1992
2:00 E-Eur EE%sT 1995
2:00 EU EE%sT
# Zaporozh'ye and eastern Lugansk oblasts observed DST 1990/1991.
# "Zaporizhia" is the transliteration of the Ukrainian name, but
# "Zaporozh'ye" is more common in English. Use the common English
# spelling, except omit the apostrophe as it is not allowed in
# portable Posix file names.
Zone Europe/Zaporozhye 2:20:40 - LMT 1880
2:20 - CUT 1924 May 2 # Central Ukraine T
2:00 - EET 1930 Jun 21
3:00 - MSK 1941 Aug 25
1:00 C-Eur CE%sT 1943 Oct 25
3:00 Russia MSK/MSD 1991 Mar 31 2:00
2:00 E-Eur EE%sT 1995
2:00 EU EE%sT
# Central Crimea used Moscow time 1994/1997.
Zone Europe/Simferopol 2:16:24 - LMT 1880
2:16 - SMT 1924 May 2 # Simferopol Mean T
2:00 - EET 1930 Jun 21
3:00 - MSK 1941 Nov
1:00 C-Eur CE%sT 1944 Apr 13
3:00 Russia MSK/MSD 1990
3:00 - MSK 1990 Jul 1 2:00
2:00 - EET 1992
# From Paul Eggert (2006-03-22):
# The _Economist_ (1994-05-28, p 45) reports that central Crimea switched
# from Kiev to Moscow time sometime after the January 1994 elections.
# Shanks (1999) says ``date of change uncertain'', but implies that it happened
# sometime between the 1994 DST switches. Shanks & Pottenger simply say
# 1994-09-25 03:00, but that can't be right. For now, guess it
# changed in May.
2:00 E-Eur EE%sT 1994 May
# From IATA SSIM (1994/1997), which also says that Kerch is still like Kiev.
3:00 E-Eur MSK/MSD 1996 Mar 31 3:00s
3:00 1:00 MSD 1996 Oct 27 3:00s
# IATA SSIM (1997-09) says Crimea switched to EET/EEST.
# Assume it happened in March by not changing the clocks.
3:00 Russia MSK/MSD 1997
3:00 - MSK 1997 Mar lastSun 1:00u
2:00 EU EE%sT
###############################################################################
# One source shows that Bulgaria, Cyprus, Finland, and Greece observe DST from
# the last Sunday in March to the last Sunday in September in 1986.
# The source shows Romania changing a day later than everybody else.
#
# According to Bernard Sieloff's source, Poland is in the MET time zone but
# uses the WE DST rules. The Western USSR uses EET+1 and ME DST rules.
# Bernard Sieloff's source claims Romania switches on the same day, but at
# 00:00 standard time (i.e., 01:00 DST). It also claims that Turkey
# switches on the same day, but switches on at 01:00 standard time
# and off at 00:00 standard time (i.e., 01:00 DST)
# ...
# Date: Wed, 28 Jan 87 16:56:27 -0100
# From: Tom Hofmann
# ...
#
# ...the European time rules are...standardized since 1981, when
# most European coun[tr]ies started DST. Before that year, only
# a few countries (UK, France, Italy) had DST, each according
# to own national rules. In 1981, however, DST started on
# 'Apr firstSun', and not on 'Mar lastSun' as in the following
# years...
# But also since 1981 there are some more national exceptions
# than listed in 'europe': Switzerland, for example, joined DST
# one year later, Denmark ended DST on 'Oct 1' instead of 'Sep
# lastSun' in 1981---I don't know how they handle now.
#
# Finally, DST ist always from 'Apr 1' to 'Oct 1' in the
# Soviet Union (as far as I know).
#
# Tom Hofmann, Scientific Computer Center, CIBA-GEIGY AG,
# 4002 Basle, Switzerland
# ...
# ...
# Date: Wed, 4 Feb 87 22:35:22 +0100
# From: Dik T. Winter
# ...
#
# The information from Tom Hofmann is (as far as I know) not entirely correct.
# After a request from chongo at amdahl I tried to retrieve all information
# about DST in Europe. I was able to find all from about 1969.
#
# ...standardization on DST in Europe started in about 1977 with switches on
# first Sunday in April and last Sunday in September...
# In 1981 UK joined Europe insofar that
# the starting day for both shifted to last Sunday in March. And from 1982
# the whole of Europe used DST, with switch dates April 1 and October 1 in
# the Sov[i]et Union. In 1985 the SU reverted to standard Europe[a]n switch
# dates...
#
# It should also be remembered that time-zones are not constants; e.g.
# Portugal switched in 1976 from MET (or CET) to WET with DST...
# Note also that though there were rules for switch dates not
# all countries abided to these dates, and many individual deviations
# occurred, though not since 1982 I believe. Another note: it is always
# assumed that DST is 1 hour ahead of normal time, this need not be the
# case; at least in the Netherlands there have been times when DST was 2 hours
# in advance of normal time.
#
# ...
# dik t. winter, cwi, amsterdam, nederland
# ...
# From Bob Devine (1988-01-28):
# ...
# Greece: Last Sunday in April to last Sunday in September (iffy on dates).
# Since 1978. Change at midnight.
# ...
# Monaco: has same DST as France.
# ...
================================================
FILE: public/admin-panel/assets/libs/flot/examples/axes-time-zones/tz/factory
================================================
#
# This file is in the public domain, so clarified as of
# 2009-05-17 by Arthur David Olson.
# For companies who don't want to put time zone specification in
# their installation procedures. When users run date, they'll get the message.
# Also useful for the "comp.sources" version.
# Zone NAME GMTOFF RULES FORMAT
Zone Factory 0 - "Local time zone must be set--see zic manual page"
================================================
FILE: public/admin-panel/assets/libs/flot/examples/axes-time-zones/tz/iso3166.tab
================================================
#
# This file is in the public domain, so clarified as of
# 2009-05-17 by Arthur David Olson.
# ISO 3166 alpha-2 country codes
#
# From Paul Eggert (2006-09-27):
#
# This file contains a table with the following columns:
# 1. ISO 3166-1 alpha-2 country code, current as of
# ISO 3166-1 Newsletter VI-1 (2007-09-21). See:
#
# ISO 3166 Maintenance agency (ISO 3166/MA)
# .
# 2. The usual English name for the country,
# chosen so that alphabetic sorting of subsets produces helpful lists.
# This is not the same as the English name in the ISO 3166 tables.
#
# Columns are separated by a single tab.
# The table is sorted by country code.
#
# Lines beginning with `#' are comments.
#
# From Arthur David Olson (2011-08-17):
# Resynchronized today with the ISO 3166 site (adding SS for South Sudan).
#
#country-
#code country name
AD Andorra
AE United Arab Emirates
AF Afghanistan
AG Antigua & Barbuda
AI Anguilla
AL Albania
AM Armenia
AO Angola
AQ Antarctica
AR Argentina
AS Samoa (American)
AT Austria
AU Australia
AW Aruba
AX Aaland Islands
AZ Azerbaijan
BA Bosnia & Herzegovina
BB Barbados
BD Bangladesh
BE Belgium
BF Burkina Faso
BG Bulgaria
BH Bahrain
BI Burundi
BJ Benin
BL St Barthelemy
BM Bermuda
BN Brunei
BO Bolivia
BQ Bonaire Sint Eustatius & Saba
BR Brazil
BS Bahamas
BT Bhutan
BV Bouvet Island
BW Botswana
BY Belarus
BZ Belize
CA Canada
CC Cocos (Keeling) Islands
CD Congo (Dem. Rep.)
CF Central African Rep.
CG Congo (Rep.)
CH Switzerland
CI Cote d'Ivoire
CK Cook Islands
CL Chile
CM Cameroon
CN China
CO Colombia
CR Costa Rica
CU Cuba
CV Cape Verde
CW Curacao
CX Christmas Island
CY Cyprus
CZ Czech Republic
DE Germany
DJ Djibouti
DK Denmark
DM Dominica
DO Dominican Republic
DZ Algeria
EC Ecuador
EE Estonia
EG Egypt
EH Western Sahara
ER Eritrea
ES Spain
ET Ethiopia
FI Finland
FJ Fiji
FK Falkland Islands
FM Micronesia
FO Faroe Islands
FR France
GA Gabon
GB Britain (UK)
GD Grenada
GE Georgia
GF French Guiana
GG Guernsey
GH Ghana
GI Gibraltar
GL Greenland
GM Gambia
GN Guinea
GP Guadeloupe
GQ Equatorial Guinea
GR Greece
GS South Georgia & the South Sandwich Islands
GT Guatemala
GU Guam
GW Guinea-Bissau
GY Guyana
HK Hong Kong
HM Heard Island & McDonald Islands
HN Honduras
HR Croatia
HT Haiti
HU Hungary
ID Indonesia
IE Ireland
IL Israel
IM Isle of Man
IN India
IO British Indian Ocean Territory
IQ Iraq
IR Iran
IS Iceland
IT Italy
JE Jersey
JM Jamaica
JO Jordan
JP Japan
KE Kenya
KG Kyrgyzstan
KH Cambodia
KI Kiribati
KM Comoros
KN St Kitts & Nevis
KP Korea (North)
KR Korea (South)
KW Kuwait
KY Cayman Islands
KZ Kazakhstan
LA Laos
LB Lebanon
LC St Lucia
LI Liechtenstein
LK Sri Lanka
LR Liberia
LS Lesotho
LT Lithuania
LU Luxembourg
LV Latvia
LY Libya
MA Morocco
MC Monaco
MD Moldova
ME Montenegro
MF St Martin (French part)
MG Madagascar
MH Marshall Islands
MK Macedonia
ML Mali
MM Myanmar (Burma)
MN Mongolia
MO Macau
MP Northern Mariana Islands
MQ Martinique
MR Mauritania
MS Montserrat
MT Malta
MU Mauritius
MV Maldives
MW Malawi
MX Mexico
MY Malaysia
MZ Mozambique
NA Namibia
NC New Caledonia
NE Niger
NF Norfolk Island
NG Nigeria
NI Nicaragua
NL Netherlands
NO Norway
NP Nepal
NR Nauru
NU Niue
NZ New Zealand
OM Oman
PA Panama
PE Peru
PF French Polynesia
PG Papua New Guinea
PH Philippines
PK Pakistan
PL Poland
PM St Pierre & Miquelon
PN Pitcairn
PR Puerto Rico
PS Palestine
PT Portugal
PW Palau
PY Paraguay
QA Qatar
RE Reunion
RO Romania
RS Serbia
RU Russia
RW Rwanda
SA Saudi Arabia
SB Solomon Islands
SC Seychelles
SD Sudan
SE Sweden
SG Singapore
SH St Helena
SI Slovenia
SJ Svalbard & Jan Mayen
SK Slovakia
SL Sierra Leone
SM San Marino
SN Senegal
SO Somalia
SR Suriname
SS South Sudan
ST Sao Tome & Principe
SV El Salvador
SX Sint Maarten
SY Syria
SZ Swaziland
TC Turks & Caicos Is
TD Chad
TF French Southern & Antarctic Lands
TG Togo
TH Thailand
TJ Tajikistan
TK Tokelau
TL East Timor
TM Turkmenistan
TN Tunisia
TO Tonga
TR Turkey
TT Trinidad & Tobago
TV Tuvalu
TW Taiwan
TZ Tanzania
UA Ukraine
UG Uganda
UM US minor outlying islands
US United States
UY Uruguay
UZ Uzbekistan
VA Vatican City
VC St Vincent
VE Venezuela
VG Virgin Islands (UK)
VI Virgin Islands (US)
VN Vietnam
VU Vanuatu
WF Wallis & Futuna
WS Samoa (western)
YE Yemen
YT Mayotte
ZA South Africa
ZM Zambia
ZW Zimbabwe
================================================
FILE: public/admin-panel/assets/libs/flot/examples/axes-time-zones/tz/leapseconds
================================================
#
# This file is in the public domain, so clarified as of
# 2009-05-17 by Arthur David Olson.
# Allowance for leapseconds added to each timezone file.
# The International Earth Rotation Service periodically uses leap seconds
# to keep UTC to within 0.9 s of UT1
# (which measures the true angular orientation of the earth in space); see
# Terry J Quinn, The BIPM and the accurate measure of time,
# Proc IEEE 79, 7 (July 1991), 894-905.
# There were no leap seconds before 1972, because the official mechanism
# accounting for the discrepancy between atomic time and the earth's rotation
# did not exist until the early 1970s.
# The correction (+ or -) is made at the given time, so lines
# will typically look like:
# Leap YEAR MON DAY 23:59:60 + R/S
# or
# Leap YEAR MON DAY 23:59:59 - R/S
# If the leapsecond is Rolling (R) the given time is local time
# If the leapsecond is Stationary (S) the given time is UTC
# Leap YEAR MONTH DAY HH:MM:SS CORR R/S
Leap 1972 Jun 30 23:59:60 + S
Leap 1972 Dec 31 23:59:60 + S
Leap 1973 Dec 31 23:59:60 + S
Leap 1974 Dec 31 23:59:60 + S
Leap 1975 Dec 31 23:59:60 + S
Leap 1976 Dec 31 23:59:60 + S
Leap 1977 Dec 31 23:59:60 + S
Leap 1978 Dec 31 23:59:60 + S
Leap 1979 Dec 31 23:59:60 + S
Leap 1981 Jun 30 23:59:60 + S
Leap 1982 Jun 30 23:59:60 + S
Leap 1983 Jun 30 23:59:60 + S
Leap 1985 Jun 30 23:59:60 + S
Leap 1987 Dec 31 23:59:60 + S
Leap 1989 Dec 31 23:59:60 + S
Leap 1990 Dec 31 23:59:60 + S
Leap 1992 Jun 30 23:59:60 + S
Leap 1993 Jun 30 23:59:60 + S
Leap 1994 Jun 30 23:59:60 + S
Leap 1995 Dec 31 23:59:60 + S
Leap 1997 Jun 30 23:59:60 + S
Leap 1998 Dec 31 23:59:60 + S
Leap 2005 Dec 31 23:59:60 + S
Leap 2008 Dec 31 23:59:60 + S
Leap 2012 Jun 30 23:59:60 + S
# INTERNATIONAL EARTH ROTATION AND REFERENCE SYSTEMS SERVICE (IERS)
#
# SERVICE INTERNATIONAL DE LA ROTATION TERRESTRE ET DES SYSTEMES DE REFERENCE
#
#
# SERVICE DE LA ROTATION TERRESTRE
# OBSERVATOIRE DE PARIS
# 61, Av. de l'Observatoire 75014 PARIS (France)
# Tel. : 33 (0) 1 40 51 22 26
# FAX : 33 (0) 1 40 51 22 91
# e-mail : (E-Mail Removed)
# http://hpiers.obspm.fr/eop-pc
#
# Paris, 5 January 2012
#
#
# Bulletin C 43
#
# To authorities responsible
# for the measurement and
# distribution of time
#
#
# UTC TIME STEP
# on the 1st of July 2012
#
#
# A positive leap second will be introduced at the end of June 2012.
# The sequence of dates of the UTC second markers will be:
#
# 2012 June 30, 23h 59m 59s
# 2012 June 30, 23h 59m 60s
# 2012 July 1, 0h 0m 0s
#
# The difference between UTC and the International Atomic Time TAI is:
#
# from 2009 January 1, 0h UTC, to 2012 July 1 0h UTC : UTC-TAI = - 34s
# from 2012 July 1, 0h UTC, until further notice : UTC-TAI = - 35s
#
# Leap seconds can be introduced in UTC at the end of the months of December
# or June, depending on the evolution of UT1-TAI. Bulletin C is mailed every
# six months, either to announce a time step in UTC or to confirm that there
# will be no time step at the next possible date.
#
#
# Daniel GAMBIS
# Head
# Earth Orientation Center of IERS
# Observatoire de Paris, France
================================================
FILE: public/admin-panel/assets/libs/flot/examples/axes-time-zones/tz/northamerica
================================================
#
# This file is in the public domain, so clarified as of
# 2009-05-17 by Arthur David Olson.
# also includes Central America and the Caribbean
# This data is by no means authoritative; if you think you know better,
# go ahead and edit the file (and please send any changes to
# tz@iana.org for general use in the future).
# From Paul Eggert (1999-03-22):
# A reliable and entertaining source about time zones is
# Derek Howse, Greenwich time and longitude, Philip Wilson Publishers (1997).
###############################################################################
# United States
# From Paul Eggert (1999-03-31):
# Howse writes (pp 121-125) that time zones were invented by
# Professor Charles Ferdinand Dowd (1825-1904),
# Principal of Temple Grove Ladies' Seminary (Saratoga Springs, NY).
# His pamphlet ``A System of National Time for Railroads'' (1870)
# was the result of his proposals at the Convention of Railroad Trunk Lines
# in New York City (1869-10). His 1870 proposal was based on Washington, DC,
# but in 1872-05 he moved the proposed origin to Greenwich.
# His proposal was adopted by the railroads on 1883-11-18 at 12:00,
# and the most of the country soon followed suit.
# From Paul Eggert (2005-04-16):
# That 1883 transition occurred at 12:00 new time, not at 12:00 old time.
# See p 46 of David Prerau, Seize the daylight, Thunder's Mouth Press (2005).
# From Paul Eggert (2006-03-22):
# A good source for time zone historical data in the US is
# Thomas G. Shanks, The American Atlas (5th edition),
# San Diego: ACS Publications, Inc. (1991).
# Make sure you have the errata sheet; the book is somewhat useless without it.
# It is the source for most of the pre-1991 US entries below.
# From Paul Eggert (2001-03-06):
# Daylight Saving Time was first suggested as a joke by Benjamin Franklin
# in his whimsical essay ``An Economical Project for Diminishing the Cost
# of Light'' published in the Journal de Paris (1784-04-26).
# Not everyone is happy with the results:
#
# I don't really care how time is reckoned so long as there is some
# agreement about it, but I object to being told that I am saving
# daylight when my reason tells me that I am doing nothing of the kind.
# I even object to the implication that I am wasting something
# valuable if I stay in bed after the sun has risen. As an admirer
# of moonlight I resent the bossy insistence of those who want to
# reduce my time for enjoying it. At the back of the Daylight Saving
# scheme I detect the bony, blue-fingered hand of Puritanism, eager
# to push people into bed earlier, and get them up earlier, to make
# them healthy, wealthy and wise in spite of themselves.
#
# -- Robertson Davies, The diary of Samuel Marchbanks,
# Clarke, Irwin (1947), XIX, Sunday
#
# For more about the first ten years of DST in the United States, see
# Robert Garland's
# Ten years of daylight saving from the Pittsburgh standpoint
# (Carnegie Library of Pittsburgh, 1927) .
#
# Shanks says that DST was called "War Time" in the US in 1918 and 1919.
# However, DST was imposed by the Standard Time Act of 1918, which
# was the first nationwide legal time standard, and apparently
# time was just called "Standard Time" or "Daylight Saving Time".
# From Arthur David Olson:
# US Daylight Saving Time ended on the last Sunday of *October* in 1974.
# See, for example, the front page of the Saturday, 1974-10-26
# and Sunday, 1974-10-27 editions of the Washington Post.
# From Arthur David Olson:
# Before the Uniform Time Act of 1966 took effect in 1967, observance of
# Daylight Saving Time in the US was by local option, except during wartime.
# From Arthur David Olson (2000-09-25):
# Last night I heard part of a rebroadcast of a 1945 Arch Oboler radio drama.
# In the introduction, Oboler spoke of "Eastern Peace Time."
# An AltaVista search turned up
# :
# "When the time is announced over the radio now, it is 'Eastern Peace
# Time' instead of the old familiar 'Eastern War Time.' Peace is wonderful."
# (August 1945) by way of confirmation.
# From Joseph Gallant citing
# George H. Douglas, _The Early Days of Radio Broadcasting_ (1987):
# At 7 P.M. (Eastern War Time) [on 1945-08-14], the networks were set
# to switch to London for Attlee's address, but the American people
# never got to hear his speech live. According to one press account,
# CBS' Bob Trout was first to announce the word of Japan's surrender,
# but a few seconds later, NBC, ABC and Mutual also flashed the word
# of surrender, all of whom interrupting the bells of Big Ben in
# London which were to precede Mr. Attlee's speech.
# From Paul Eggert (2003-02-09): It was Robert St John, not Bob Trout. From
# Myrna Oliver's obituary of St John on page B16 of today's Los Angeles Times:
#
# ... a war-weary U.S. clung to radios, awaiting word of Japan's surrender.
# Any announcement from Asia would reach St. John's New York newsroom on a
# wire service teletype machine, which had prescribed signals for major news.
# Associated Press, for example, would ring five bells before spewing out
# typed copy of an important story, and 10 bells for news "of transcendental
# importance."
#
# On Aug. 14, stalling while talking steadily into the NBC networks' open
# microphone, St. John heard five bells and waited only to hear a sixth bell,
# before announcing confidently: "Ladies and gentlemen, World War II is over.
# The Japanese have agreed to our surrender terms."
#
# He had scored a 20-second scoop on other broadcasters.
# From Arthur David Olson (2005-08-22):
# Paul has been careful to use the "US" rules only in those locations
# that are part of the United States; this reflects the real scope of
# U.S. government action. So even though the "US" rules have changed
# in the latest release, other countries won't be affected.
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
Rule US 1918 1919 - Mar lastSun 2:00 1:00 D
Rule US 1918 1919 - Oct lastSun 2:00 0 S
Rule US 1942 only - Feb 9 2:00 1:00 W # War
Rule US 1945 only - Aug 14 23:00u 1:00 P # Peace
Rule US 1945 only - Sep 30 2:00 0 S
Rule US 1967 2006 - Oct lastSun 2:00 0 S
Rule US 1967 1973 - Apr lastSun 2:00 1:00 D
Rule US 1974 only - Jan 6 2:00 1:00 D
Rule US 1975 only - Feb 23 2:00 1:00 D
Rule US 1976 1986 - Apr lastSun 2:00 1:00 D
Rule US 1987 2006 - Apr Sun>=1 2:00 1:00 D
Rule US 2007 max - Mar Sun>=8 2:00 1:00 D
Rule US 2007 max - Nov Sun>=1 2:00 0 S
# From Arthur David Olson, 2005-12-19
# We generate the files specified below to guard against old files with
# obsolete information being left in the time zone binary directory.
# We limit the list to names that have appeared in previous versions of
# this time zone package.
# We do these as separate Zones rather than as Links to avoid problems if
# a particular place changes whether it observes DST.
# We put these specifications here in the northamerica file both to
# increase the chances that they'll actually get compiled and to
# avoid the need to duplicate the US rules in another file.
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone EST -5:00 - EST
Zone MST -7:00 - MST
Zone HST -10:00 - HST
Zone EST5EDT -5:00 US E%sT
Zone CST6CDT -6:00 US C%sT
Zone MST7MDT -7:00 US M%sT
Zone PST8PDT -8:00 US P%sT
# From Bob Devine (1988-01-28):
# ...Alaska (and Hawaii) had the timezone names changed in 1967.
# old new
# Pacific Standard Time(PST) -same-
# Yukon Standard Time(YST) -same-
# Central Alaska S.T. (CAT) Alaska-Hawaii St[an]dard Time (AHST)
# Nome Standard Time (NT) Bering Standard Time (BST)
#
# ...Alaska's timezone lines were redrawn in 1983 to give only 2 tz.
# The YST zone now covers nearly all of the state, AHST just part
# of the Aleutian islands. No DST.
# From Paul Eggert (1995-12-19):
# The tables below use `NST', not `NT', for Nome Standard Time.
# I invented `CAWT' for Central Alaska War Time.
# From U. S. Naval Observatory (1989-01-19):
# USA EASTERN 5 H BEHIND UTC NEW YORK, WASHINGTON
# USA EASTERN 4 H BEHIND UTC APR 3 - OCT 30
# USA CENTRAL 6 H BEHIND UTC CHICAGO, HOUSTON
# USA CENTRAL 5 H BEHIND UTC APR 3 - OCT 30
# USA MOUNTAIN 7 H BEHIND UTC DENVER
# USA MOUNTAIN 6 H BEHIND UTC APR 3 - OCT 30
# USA PACIFIC 8 H BEHIND UTC L.A., SAN FRANCISCO
# USA PACIFIC 7 H BEHIND UTC APR 3 - OCT 30
# USA ALASKA STD 9 H BEHIND UTC MOST OF ALASKA (AKST)
# USA ALASKA STD 8 H BEHIND UTC APR 3 - OCT 30 (AKDT)
# USA ALEUTIAN 10 H BEHIND UTC ISLANDS WEST OF 170W
# USA - " - 9 H BEHIND UTC APR 3 - OCT 30
# USA HAWAII 10 H BEHIND UTC
# USA BERING 11 H BEHIND UTC SAMOA, MIDWAY
# From Arthur David Olson (1989-01-21):
# The above dates are for 1988.
# Note the "AKST" and "AKDT" abbreviations, the claim that there's
# no DST in Samoa, and the claim that there is DST in Alaska and the
# Aleutians.
# From Arthur David Olson (1988-02-13):
# Legal standard time zone names, from United States Code (1982 Edition and
# Supplement III), Title 15, Chapter 6, Section 260 and forward. First, names
# up to 1967-04-01 (when most provisions of the Uniform Time Act of 1966
# took effect), as explained in sections 263 and 261:
# (none)
# United States standard eastern time
# United States standard mountain time
# United States standard central time
# United States standard Pacific time
# (none)
# United States standard Alaska time
# (none)
# Next, names from 1967-04-01 until 1983-11-30 (the date for
# public law 98-181):
# Atlantic standard time
# eastern standard time
# central standard time
# mountain standard time
# Pacific standard time
# Yukon standard time
# Alaska-Hawaii standard time
# Bering standard time
# And after 1983-11-30:
# Atlantic standard time
# eastern standard time
# central standard time
# mountain standard time
# Pacific standard time
# Alaska standard time
# Hawaii-Aleutian standard time
# Samoa standard time
# The law doesn't give abbreviations.
#
# From Paul Eggert (2000-01-08), following a heads-up from Rives McDow:
# Public law 106-564 (2000-12-23) introduced the abbreviation
# "Chamorro Standard Time" for time in Guam and the Northern Marianas.
# See the file "australasia".
# From Arthur David Olson, 2005-08-09
# The following was signed into law on 2005-08-08.
#
# H.R. 6, Energy Policy Act of 2005, SEC. 110. DAYLIGHT SAVINGS.
# (a) Amendment- Section 3(a) of the Uniform Time Act of 1966 (15
# U.S.C. 260a(a)) is amended--
# (1) by striking `first Sunday of April' and inserting `second
# Sunday of March'; and
# (2) by striking `last Sunday of October' and inserting `first
# Sunday of November'.
# (b) Effective Date- Subsection (a) shall take effect 1 year after the
# date of enactment of this Act or March 1, 2007, whichever is later.
# (c) Report to Congress- Not later than 9 months after the effective
# date stated in subsection (b), the Secretary shall report to Congress
# on the impact of this section on energy consumption in the United
# States.
# (d) Right to Revert- Congress retains the right to revert the
# Daylight Saving Time back to the 2005 time schedules once the
# Department study is complete.
# US eastern time, represented by New York
# Connecticut, Delaware, District of Columbia, most of Florida,
# Georgia, southeast Indiana (Dearborn and Ohio counties), eastern Kentucky
# (except America/Kentucky/Louisville below), Maine, Maryland, Massachusetts,
# New Hampshire, New Jersey, New York, North Carolina, Ohio,
# Pennsylvania, Rhode Island, South Carolina, eastern Tennessee,
# Vermont, Virginia, West Virginia
# From Dave Cantor (2004-11-02):
# Early this summer I had the occasion to visit the Mount Washington
# Observatory weather station atop (of course!) Mount Washington [, NH]....
# One of the staff members said that the station was on Eastern Standard Time
# and didn't change their clocks for Daylight Saving ... so that their
# reports will always have times which are 5 hours behind UTC.
# From Paul Eggert (2005-08-26):
# According to today's Huntsville Times
#
# a few towns on Alabama's "eastern border with Georgia, such as Phenix City
# in Russell County, Lanett in Chambers County and some towns in Lee County,
# set their watches and clocks on Eastern time." It quotes H.H. "Bubba"
# Roberts, city administrator in Phenix City. as saying "We are in the Central
# time zone, but we do go by the Eastern time zone because so many people work
# in Columbus."
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER
Rule NYC 1920 only - Mar lastSun 2:00 1:00 D
Rule NYC 1920 only - Oct lastSun 2:00 0 S
Rule NYC 1921 1966 - Apr lastSun 2:00 1:00 D
Rule NYC 1921 1954 - Sep lastSun 2:00 0 S
Rule NYC 1955 1966 - Oct lastSun 2:00 0 S
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone America/New_York -4:56:02 - LMT 1883 Nov 18 12:03:58
-5:00 US E%sT 1920
-5:00 NYC E%sT 1942
-5:00 US E%sT 1946
-5:00 NYC E%sT 1967
-5:00 US E%sT
# US central time, represented by Chicago
# Alabama, Arkansas, Florida panhandle (Bay, Calhoun, Escambia,
# Gulf, Holmes, Jackson, Okaloosa, Santa Rosa, Walton, and
# Washington counties), Illinois, western Indiana
# (Gibson, Jasper, Lake, LaPorte, Newton, Porter, Posey, Spencer,
# Vanderburgh, and Warrick counties), Iowa, most of Kansas, western
# Kentucky, Louisiana, Minnesota, Mississippi, Missouri, eastern
# Nebraska, eastern North Dakota, Oklahoma, eastern South Dakota,
# western Tennessee, most of Texas, Wisconsin
# From Larry M. Smith (2006-04-26) re Wisconsin:
# http://www.legis.state.wi.us/statutes/Stat0175.pdf ...
# is currently enforced at the 01:00 time of change. Because the local
# "bar time" in the state corresponds to 02:00, a number of citations
# are issued for the "sale of class 'B' alcohol after prohibited
# hours" within the deviated hour of this change every year....
#
# From Douglas R. Bomberg (2007-03-12):
# Wisconsin has enacted (nearly eleventh-hour) legislation to get WI
# Statue 175 closer in synch with the US Congress' intent....
# http://www.legis.state.wi.us/2007/data/acts/07Act3.pdf
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER
Rule Chicago 1920 only - Jun 13 2:00 1:00 D
Rule Chicago 1920 1921 - Oct lastSun 2:00 0 S
Rule Chicago 1921 only - Mar lastSun 2:00 1:00 D
Rule Chicago 1922 1966 - Apr lastSun 2:00 1:00 D
Rule Chicago 1922 1954 - Sep lastSun 2:00 0 S
Rule Chicago 1955 1966 - Oct lastSun 2:00 0 S
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone America/Chicago -5:50:36 - LMT 1883 Nov 18 12:09:24
-6:00 US C%sT 1920
-6:00 Chicago C%sT 1936 Mar 1 2:00
-5:00 - EST 1936 Nov 15 2:00
-6:00 Chicago C%sT 1942
-6:00 US C%sT 1946
-6:00 Chicago C%sT 1967
-6:00 US C%sT
# Oliver County, ND switched from mountain to central time on 1992-10-25.
Zone America/North_Dakota/Center -6:45:12 - LMT 1883 Nov 18 12:14:48
-7:00 US M%sT 1992 Oct 25 02:00
-6:00 US C%sT
# Morton County, ND, switched from mountain to central time on
# 2003-10-26, except for the area around Mandan which was already central time.
# See .
# Officially this switch also included part of Sioux County, and
# Jones, Mellette, and Todd Counties in South Dakota;
# but in practice these other counties were already observing central time.
# See .
Zone America/North_Dakota/New_Salem -6:45:39 - LMT 1883 Nov 18 12:14:21
-7:00 US M%sT 2003 Oct 26 02:00
-6:00 US C%sT
# From Josh Findley (2011-01-21):
# ...it appears that Mercer County, North Dakota, changed from the
# mountain time zone to the central time zone at the last transition from
# daylight-saving to standard time (on Nov. 7, 2010):
#
# http://www.gpo.gov/fdsys/pkg/FR-2010-09-29/html/2010-24376.htm
#
#
# http://www.bismarcktribune.com/news/local/article_1eb1b588-c758-11df-b472-001cc4c03286.html
#
# From Andy Lipscomb (2011-01-24):
# ...according to the Census Bureau, the largest city is Beulah (although
# it's commonly referred to as Beulah-Hazen, with Hazen being the next
# largest city in Mercer County). Google Maps places Beulah's city hall
# at 4715'51" north, 10146'40" west, which yields an offset of 6h47'07".
Zone America/North_Dakota/Beulah -6:47:07 - LMT 1883 Nov 18 12:12:53
-7:00 US M%sT 2010 Nov 7 2:00
-6:00 US C%sT
# US mountain time, represented by Denver
#
# Colorado, far western Kansas, Montana, western
# Nebraska, Nevada border (Jackpot, Owyhee, and Mountain City),
# New Mexico, southwestern North Dakota,
# western South Dakota, far western Texas (El Paso County, Hudspeth County,
# and Pine Springs and Nickel Creek in Culberson County), Utah, Wyoming
#
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER
Rule Denver 1920 1921 - Mar lastSun 2:00 1:00 D
Rule Denver 1920 only - Oct lastSun 2:00 0 S
Rule Denver 1921 only - May 22 2:00 0 S
Rule Denver 1965 1966 - Apr lastSun 2:00 1:00 D
Rule Denver 1965 1966 - Oct lastSun 2:00 0 S
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone America/Denver -6:59:56 - LMT 1883 Nov 18 12:00:04
-7:00 US M%sT 1920
-7:00 Denver M%sT 1942
-7:00 US M%sT 1946
-7:00 Denver M%sT 1967
-7:00 US M%sT
# US Pacific time, represented by Los Angeles
#
# California, northern Idaho (Benewah, Bonner, Boundary, Clearwater,
# Idaho, Kootenai, Latah, Lewis, Nez Perce, and Shoshone counties,
# and the northern three-quarters of Idaho county),
# most of Nevada, most of Oregon, and Washington
#
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER
Rule CA 1948 only - Mar 14 2:00 1:00 D
Rule CA 1949 only - Jan 1 2:00 0 S
Rule CA 1950 1966 - Apr lastSun 2:00 1:00 D
Rule CA 1950 1961 - Sep lastSun 2:00 0 S
Rule CA 1962 1966 - Oct lastSun 2:00 0 S
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone America/Los_Angeles -7:52:58 - LMT 1883 Nov 18 12:07:02
-8:00 US P%sT 1946
-8:00 CA P%sT 1967
-8:00 US P%sT
# Alaska
# AK%sT is the modern abbreviation for -9:00 per USNO.
#
# From Paul Eggert (2001-05-30):
# Howse writes that Alaska switched from the Julian to the Gregorian calendar,
# and from east-of-GMT to west-of-GMT days, when the US bought it from Russia.
# This was on 1867-10-18, a Friday; the previous day was 1867-10-06 Julian,
# also a Friday. Include only the time zone part of this transition,
# ignoring the switch from Julian to Gregorian, since we can't represent
# the Julian calendar.
#
# As far as we know, none of the exact locations mentioned below were
# permanently inhabited in 1867 by anyone using either calendar.
# (Yakutat was colonized by the Russians in 1799, but the settlement
# was destroyed in 1805 by a Yakutat-kon war party.) However, there
# were nearby inhabitants in some cases and for our purposes perhaps
# it's best to simply use the official transition.
#
# From Steve Ferguson (2011-01-31):
# The author lives in Alaska and many of the references listed are only
# available to Alaskan residents.
#
#
# http://www.alaskahistoricalsociety.org/index.cfm?section=discover%20alaska&page=Glimpses%20of%20the%20Past&viewpost=2&ContentId=98
#
# From Arthur David Olson (2011-02-01):
# Here's database-relevant material from the 2001 "Alaska History" article:
#
# On September 20 [1979]...DOT...officials decreed that on April 27,
# 1980, Juneau and other nearby communities would move to Yukon Time.
# Sitka, Petersburg, Wrangell, and Ketchikan, however, would remain on
# Pacific Time.
#
# ...on September 22, 1980, DOT Secretary Neil E. Goldschmidt rescinded the
# Department's September 1979 decision. Juneau and other communities in
# northern Southeast reverted to Pacific Time on October 26.
#
# On October 28 [1983]...the Metlakatla Indian Community Council voted
# unanimously to keep the reservation on Pacific Time.
#
# According to DOT official Joanne Petrie, Indian reservations are not
# bound to follow time zones imposed by neighboring jurisdictions.
#
# (The last is consistent with how the database now handles the Navajo
# Nation.)
# From Arthur David Olson (2011-02-09):
# I just spoke by phone with a staff member at the Metlakatla Indian
# Community office (using contact information available at
#
# http://www.commerce.state.ak.us/dca/commdb/CIS.cfm?Comm_Boro_name=Metlakatla
# ).
# It's shortly after 1:00 here on the east coast of the United States;
# the staffer said it was shortly after 10:00 there. When I asked whether
# that meant they were on Pacific time, they said no--they were on their
# own time. I asked about daylight saving; they said it wasn't used. I
# did not inquire about practices in the past.
# From Arthur David Olson (2011-08-17):
# For lack of better information, assume that Metlakatla's
# abandonment of use of daylight saving resulted from the 1983 vote.
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone America/Juneau 15:02:19 - LMT 1867 Oct 18
-8:57:41 - LMT 1900 Aug 20 12:00
-8:00 - PST 1942
-8:00 US P%sT 1946
-8:00 - PST 1969
-8:00 US P%sT 1980 Apr 27 2:00
-9:00 US Y%sT 1980 Oct 26 2:00
-8:00 US P%sT 1983 Oct 30 2:00
-9:00 US Y%sT 1983 Nov 30
-9:00 US AK%sT
Zone America/Sitka 14:58:47 - LMT 1867 Oct 18
-9:01:13 - LMT 1900 Aug 20 12:00
-8:00 - PST 1942
-8:00 US P%sT 1946
-8:00 - PST 1969
-8:00 US P%sT 1983 Oct 30 2:00
-9:00 US Y%sT 1983 Nov 30
-9:00 US AK%sT
Zone America/Metlakatla 15:13:42 - LMT 1867 Oct 18
-8:46:18 - LMT 1900 Aug 20 12:00
-8:00 - PST 1942
-8:00 US P%sT 1946
-8:00 - PST 1969
-8:00 US P%sT 1983 Oct 30 2:00
-8:00 - MeST
Zone America/Yakutat 14:41:05 - LMT 1867 Oct 18
-9:18:55 - LMT 1900 Aug 20 12:00
-9:00 - YST 1942
-9:00 US Y%sT 1946
-9:00 - YST 1969
-9:00 US Y%sT 1983 Nov 30
-9:00 US AK%sT
Zone America/Anchorage 14:00:24 - LMT 1867 Oct 18
-9:59:36 - LMT 1900 Aug 20 12:00
-10:00 - CAT 1942
-10:00 US CAT/CAWT 1945 Aug 14 23:00u
-10:00 US CAT/CAPT 1946 # Peace
-10:00 - CAT 1967 Apr
-10:00 - AHST 1969
-10:00 US AH%sT 1983 Oct 30 2:00
-9:00 US Y%sT 1983 Nov 30
-9:00 US AK%sT
Zone America/Nome 12:58:21 - LMT 1867 Oct 18
-11:01:38 - LMT 1900 Aug 20 12:00
-11:00 - NST 1942
-11:00 US N%sT 1946
-11:00 - NST 1967 Apr
-11:00 - BST 1969
-11:00 US B%sT 1983 Oct 30 2:00
-9:00 US Y%sT 1983 Nov 30
-9:00 US AK%sT
Zone America/Adak 12:13:21 - LMT 1867 Oct 18
-11:46:38 - LMT 1900 Aug 20 12:00
-11:00 - NST 1942
-11:00 US N%sT 1946
-11:00 - NST 1967 Apr
-11:00 - BST 1969
-11:00 US B%sT 1983 Oct 30 2:00
-10:00 US AH%sT 1983 Nov 30
-10:00 US HA%sT
# The following switches don't quite make our 1970 cutoff.
#
# Shanks writes that part of southwest Alaska (e.g. Aniak)
# switched from -11:00 to -10:00 on 1968-09-22 at 02:00,
# and another part (e.g. Akiak) made the same switch five weeks later.
#
# From David Flater (2004-11-09):
# In e-mail, 2004-11-02, Ray Hudson, historian/liaison to the Unalaska
# Historic Preservation Commission, provided this information, which
# suggests that Unalaska deviated from statutory time from early 1967
# possibly until 1983:
#
# Minutes of the Unalaska City Council Meeting, January 10, 1967:
# "Except for St. Paul and Akutan, Unalaska is the only important
# location not on Alaska Standard Time. The following resolution was
# made by William Robinson and seconded by Henry Swanson: Be it
# resolved that the City of Unalaska hereby goes to Alaska Standard
# Time as of midnight Friday, January 13, 1967 (1 A.M. Saturday,
# January 14, Alaska Standard Time.) This resolution was passed with
# three votes for and one against."
# Hawaii
# From Arthur David Olson (2010-12-09):
# "Hawaiian Time" by Robert C. Schmitt and Doak C. Cox appears on pages 207-225
# of volume 26 of The Hawaiian Journal of History (1992). As of 2010-12-09,
# the article is available at
#
# http://evols.library.manoa.hawaii.edu/bitstream/10524/239/2/JL26215.pdf
#
# and indicates that standard time was adopted effective noon, January
# 13, 1896 (page 218), that in "1933, the Legislature decreed daylight
# saving for the period between the last Sunday of each April and the
# last Sunday of each September, but less than a month later repealed the
# act," (page 220), that year-round daylight saving time was in effect
# from 1942-02-09 to 1945-09-30 (page 221, with no time of day given for
# when clocks changed) and that clocks were changed by 30 minutes
# effective the second Sunday of June, 1947 (page 219, with no time of
# day given for when clocks changed). A footnote for the 1933 changes
# cites Session Laws of Hawaii 1933, "Act. 90 (approved 26 Apr. 1933)
# and Act 163 (approved 21 May 1933)."
# From Arthur David Olson (2011-01-19):
# The following is from "Laws of the Territory of Hawaii Passed by the
# Seventeenth Legislature: Regular Session 1933," available (as of
# 2011-01-19) at American University's Pence Law Library. Page 85: "Act
# 90...At 2 o'clock ante meridian of the last Sunday in April of each
# year, the standard time of this Territory shall be advanced one
# hour...This Act shall take effect upon its approval. Approved this 26th
# day of April, A. D. 1933. LAWRENCE M JUDD, Governor of the Territory of
# Hawaii." Page 172: "Act 163...Act 90 of the Session Laws of 1933 is
# hereby repealed...This Act shall take effect upon its approval, upon
# which date the standard time of this Territory shall be restored to
# that existing immediately prior to the taking effect of said Act 90.
# Approved this 21st day of May, A. D. 1933. LAWRENCE M. JUDD, Governor
# of the Territory of Hawaii."
#
# Note that 1933-05-21 was a Sunday.
# We're left to guess the time of day when Act 163 was approved; guess noon.
Zone Pacific/Honolulu -10:31:26 - LMT 1896 Jan 13 12:00 #Schmitt&Cox
-10:30 - HST 1933 Apr 30 2:00 #Laws 1933
-10:30 1:00 HDT 1933 May 21 12:00 #Laws 1933+12
-10:30 - HST 1942 Feb 09 2:00 #Schmitt&Cox+2
-10:30 1:00 HDT 1945 Sep 30 2:00 #Schmitt&Cox+2
-10:30 - HST 1947 Jun 8 2:00 #Schmitt&Cox+2
-10:00 - HST
# Now we turn to US areas that have diverged from the consensus since 1970.
# Arizona mostly uses MST.
# From Paul Eggert (2002-10-20):
#
# The information in the rest of this paragraph is derived from the
#
# Daylight Saving Time web page (2002-01-23) maintained by the
# Arizona State Library, Archives and Public Records.
# Between 1944-01-01 and 1944-04-01 the State of Arizona used standard
# time, but by federal law railroads, airlines, bus lines, military
# personnel, and some engaged in interstate commerce continued to
# observe war (i.e., daylight saving) time. The 1944-03-17 Phoenix
# Gazette says that was the date the law changed, and that 04-01 was
# the date the state's clocks would change. In 1945 the State of
# Arizona used standard time all year, again with exceptions only as
# mandated by federal law. Arizona observed DST in 1967, but Arizona
# Laws 1968, ch. 183 (effective 1968-03-21) repealed DST.
#
# Shanks says the 1944 experiment came to an end on 1944-03-17.
# Go with the Arizona State Library instead.
Zone America/Phoenix -7:28:18 - LMT 1883 Nov 18 11:31:42
-7:00 US M%sT 1944 Jan 1 00:01
-7:00 - MST 1944 Apr 1 00:01
-7:00 US M%sT 1944 Oct 1 00:01
-7:00 - MST 1967
-7:00 US M%sT 1968 Mar 21
-7:00 - MST
# From Arthur David Olson (1988-02-13):
# A writer from the Inter Tribal Council of Arizona, Inc.,
# notes in private correspondence dated 1987-12-28 that "Presently, only the
# Navajo Nation participates in the Daylight Saving Time policy, due to its
# large size and location in three states." (The "only" means that other
# tribal nations don't use DST.)
Link America/Denver America/Shiprock
# Southern Idaho (Ada, Adams, Bannock, Bear Lake, Bingham, Blaine,
# Boise, Bonneville, Butte, Camas, Canyon, Caribou, Cassia, Clark,
# Custer, Elmore, Franklin, Fremont, Gem, Gooding, Jefferson, Jerome,
# Lemhi, Lincoln, Madison, Minidoka, Oneida, Owyhee, Payette, Power,
# Teton, Twin Falls, Valley, Washington counties, and the southern
# quarter of Idaho county) and eastern Oregon (most of Malheur County)
# switched four weeks late in 1974.
#
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone America/Boise -7:44:49 - LMT 1883 Nov 18 12:15:11
-8:00 US P%sT 1923 May 13 2:00
-7:00 US M%sT 1974
-7:00 - MST 1974 Feb 3 2:00
-7:00 US M%sT
# Indiana
#
# For a map of Indiana's time zone regions, see:
#
# What time is it in Indiana?
# (2006-03-01)
#
# From Paul Eggert (2007-08-17):
# Since 1970, most of Indiana has been like America/Indiana/Indianapolis,
# with the following exceptions:
#
# - Gibson, Jasper, Lake, LaPorte, Newton, Porter, Posey, Spencer,
# Vandenburgh, and Warrick counties have been like America/Chicago.
#
# - Dearborn and Ohio counties have been like America/New_York.
#
# - Clark, Floyd, and Harrison counties have been like
# America/Kentucky/Louisville.
#
# - Crawford, Daviess, Dubois, Knox, Martin, Perry, Pike, Pulaski, Starke,
# and Switzerland counties have their own time zone histories as noted below.
#
# Shanks partitioned Indiana into 345 regions, each with its own time history,
# and wrote ``Even newspaper reports present contradictory information.''
# Those Hoosiers! Such a flighty and changeable people!
# Fortunately, most of the complexity occurred before our cutoff date of 1970.
#
# Other than Indianapolis, the Indiana place names are so nondescript
# that they would be ambiguous if we left them at the `America' level.
# So we reluctantly put them all in a subdirectory `America/Indiana'.
# From Paul Eggert (2005-08-16):
# http://www.mccsc.edu/time.html says that Indiana will use DST starting 2006.
# From Nathan Stratton Treadway (2006-03-30):
# http://www.dot.gov/affairs/dot0406.htm [3705 B]
# From Deborah Goldsmith (2006-01-18):
# http://dmses.dot.gov/docimages/pdf95/382329_web.pdf [2.9 MB]
# From Paul Eggert (2006-01-20):
# It says "DOT is relocating the time zone boundary in Indiana to move Starke,
# Pulaski, Knox, Daviess, Martin, Pike, Dubois, and Perry Counties from the
# Eastern Time Zone to the Central Time Zone.... The effective date of
# this rule is 2:OO a.m. EST Sunday, April 2, 2006, which is the
# changeover date from standard time to Daylight Saving Time."
# Strictly speaking, this means the affected counties will change their
# clocks twice that night, but this obviously is in error. The intent
# is that 01:59:59 EST be followed by 02:00:00 CDT.
# From Gwillim Law (2007-02-10):
# The Associated Press has been reporting that Pulaski County, Indiana is
# going to switch from Central to Eastern Time on March 11, 2007....
# http://www.indystar.com/apps/pbcs.dll/article?AID=/20070207/LOCAL190108/702070524/0/LOCAL
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER
Rule Indianapolis 1941 only - Jun 22 2:00 1:00 D
Rule Indianapolis 1941 1954 - Sep lastSun 2:00 0 S
Rule Indianapolis 1946 1954 - Apr lastSun 2:00 1:00 D
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone America/Indiana/Indianapolis -5:44:38 - LMT 1883 Nov 18 12:15:22
-6:00 US C%sT 1920
-6:00 Indianapolis C%sT 1942
-6:00 US C%sT 1946
-6:00 Indianapolis C%sT 1955 Apr 24 2:00
-5:00 - EST 1957 Sep 29 2:00
-6:00 - CST 1958 Apr 27 2:00
-5:00 - EST 1969
-5:00 US E%sT 1971
-5:00 - EST 2006
-5:00 US E%sT
#
# Eastern Crawford County, Indiana, left its clocks alone in 1974,
# as well as from 1976 through 2005.
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER
Rule Marengo 1951 only - Apr lastSun 2:00 1:00 D
Rule Marengo 1951 only - Sep lastSun 2:00 0 S
Rule Marengo 1954 1960 - Apr lastSun 2:00 1:00 D
Rule Marengo 1954 1960 - Sep lastSun 2:00 0 S
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone America/Indiana/Marengo -5:45:23 - LMT 1883 Nov 18 12:14:37
-6:00 US C%sT 1951
-6:00 Marengo C%sT 1961 Apr 30 2:00
-5:00 - EST 1969
-5:00 US E%sT 1974 Jan 6 2:00
-6:00 1:00 CDT 1974 Oct 27 2:00
-5:00 US E%sT 1976
-5:00 - EST 2006
-5:00 US E%sT
#
# Daviess, Dubois, Knox, and Martin Counties, Indiana,
# switched from eastern to central time in April 2006, then switched back
# in November 2007.
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER
Rule Vincennes 1946 only - Apr lastSun 2:00 1:00 D
Rule Vincennes 1946 only - Sep lastSun 2:00 0 S
Rule Vincennes 1953 1954 - Apr lastSun 2:00 1:00 D
Rule Vincennes 1953 1959 - Sep lastSun 2:00 0 S
Rule Vincennes 1955 only - May 1 0:00 1:00 D
Rule Vincennes 1956 1963 - Apr lastSun 2:00 1:00 D
Rule Vincennes 1960 only - Oct lastSun 2:00 0 S
Rule Vincennes 1961 only - Sep lastSun 2:00 0 S
Rule Vincennes 1962 1963 - Oct lastSun 2:00 0 S
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone America/Indiana/Vincennes -5:50:07 - LMT 1883 Nov 18 12:09:53
-6:00 US C%sT 1946
-6:00 Vincennes C%sT 1964 Apr 26 2:00
-5:00 - EST 1969
-5:00 US E%sT 1971
-5:00 - EST 2006 Apr 2 2:00
-6:00 US C%sT 2007 Nov 4 2:00
-5:00 US E%sT
#
# Perry County, Indiana, switched from eastern to central time in April 2006.
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER
Rule Perry 1946 only - Apr lastSun 2:00 1:00 D
Rule Perry 1946 only - Sep lastSun 2:00 0 S
Rule Perry 1953 1954 - Apr lastSun 2:00 1:00 D
Rule Perry 1953 1959 - Sep lastSun 2:00 0 S
Rule Perry 1955 only - May 1 0:00 1:00 D
Rule Perry 1956 1963 - Apr lastSun 2:00 1:00 D
Rule Perry 1960 only - Oct lastSun 2:00 0 S
Rule Perry 1961 only - Sep lastSun 2:00 0 S
Rule Perry 1962 1963 - Oct lastSun 2:00 0 S
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone America/Indiana/Tell_City -5:47:03 - LMT 1883 Nov 18 12:12:57
-6:00 US C%sT 1946
-6:00 Perry C%sT 1964 Apr 26 2:00
-5:00 - EST 1969
-5:00 US E%sT 1971
-5:00 - EST 2006 Apr 2 2:00
-6:00 US C%sT
#
# Pike County, Indiana moved from central to eastern time in 1977,
# then switched back in 2006, then switched back again in 2007.
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER
Rule Pike 1955 only - May 1 0:00 1:00 D
Rule Pike 1955 1960 - Sep lastSun 2:00 0 S
Rule Pike 1956 1964 - Apr lastSun 2:00 1:00 D
Rule Pike 1961 1964 - Oct lastSun 2:00 0 S
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone America/Indiana/Petersburg -5:49:07 - LMT 1883 Nov 18 12:10:53
-6:00 US C%sT 1955
-6:00 Pike C%sT 1965 Apr 25 2:00
-5:00 - EST 1966 Oct 30 2:00
-6:00 US C%sT 1977 Oct 30 2:00
-5:00 - EST 2006 Apr 2 2:00
-6:00 US C%sT 2007 Nov 4 2:00
-5:00 US E%sT
#
# Starke County, Indiana moved from central to eastern time in 1991,
# then switched back in 2006.
# From Arthur David Olson (1991-10-28):
# An article on page A3 of the Sunday, 1991-10-27 Washington Post
# notes that Starke County switched from Central time to Eastern time as of
# 1991-10-27.
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER
Rule Starke 1947 1961 - Apr lastSun 2:00 1:00 D
Rule Starke 1947 1954 - Sep lastSun 2:00 0 S
Rule Starke 1955 1956 - Oct lastSun 2:00 0 S
Rule Starke 1957 1958 - Sep lastSun 2:00 0 S
Rule Starke 1959 1961 - Oct lastSun 2:00 0 S
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone America/Indiana/Knox -5:46:30 - LMT 1883 Nov 18 12:13:30
-6:00 US C%sT 1947
-6:00 Starke C%sT 1962 Apr 29 2:00
-5:00 - EST 1963 Oct 27 2:00
-6:00 US C%sT 1991 Oct 27 2:00
-5:00 - EST 2006 Apr 2 2:00
-6:00 US C%sT
#
# Pulaski County, Indiana, switched from eastern to central time in
# April 2006 and then switched back in March 2007.
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER
Rule Pulaski 1946 1960 - Apr lastSun 2:00 1:00 D
Rule Pulaski 1946 1954 - Sep lastSun 2:00 0 S
Rule Pulaski 1955 1956 - Oct lastSun 2:00 0 S
Rule Pulaski 1957 1960 - Sep lastSun 2:00 0 S
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone America/Indiana/Winamac -5:46:25 - LMT 1883 Nov 18 12:13:35
-6:00 US C%sT 1946
-6:00 Pulaski C%sT 1961 Apr 30 2:00
-5:00 - EST 1969
-5:00 US E%sT 1971
-5:00 - EST 2006 Apr 2 2:00
-6:00 US C%sT 2007 Mar 11 2:00
-5:00 US E%sT
#
# Switzerland County, Indiana, did not observe DST from 1973 through 2005.
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone America/Indiana/Vevay -5:40:16 - LMT 1883 Nov 18 12:19:44
-6:00 US C%sT 1954 Apr 25 2:00
-5:00 - EST 1969
-5:00 US E%sT 1973
-5:00 - EST 2006
-5:00 US E%sT
# Part of Kentucky left its clocks alone in 1974.
# This also includes Clark, Floyd, and Harrison counties in Indiana.
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER
Rule Louisville 1921 only - May 1 2:00 1:00 D
Rule Louisville 1921 only - Sep 1 2:00 0 S
Rule Louisville 1941 1961 - Apr lastSun 2:00 1:00 D
Rule Louisville 1941 only - Sep lastSun 2:00 0 S
Rule Louisville 1946 only - Jun 2 2:00 0 S
Rule Louisville 1950 1955 - Sep lastSun 2:00 0 S
Rule Louisville 1956 1960 - Oct lastSun 2:00 0 S
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone America/Kentucky/Louisville -5:43:02 - LMT 1883 Nov 18 12:16:58
-6:00 US C%sT 1921
-6:00 Louisville C%sT 1942
-6:00 US C%sT 1946
-6:00 Louisville C%sT 1961 Jul 23 2:00
-5:00 - EST 1968
-5:00 US E%sT 1974 Jan 6 2:00
-6:00 1:00 CDT 1974 Oct 27 2:00
-5:00 US E%sT
#
# Wayne County, Kentucky
#
# From
#
# Lake Cumberland LIFE
# (1999-01-29) via WKYM-101.7:
# Clinton County has joined Wayne County in asking the DoT to change from
# the Central to the Eastern time zone.... The Wayne County government made
# the same request in December. And while Russell County officials have not
# taken action, the majority of respondents to a poll conducted there in
# August indicated they would like to change to "fast time" also.
# The three Lake Cumberland counties are the farthest east of any U.S.
# location in the Central time zone.
#
# From Rich Wales (2000-08-29):
# After prolonged debate, and despite continuing deep differences of opinion,
# Wayne County (central Kentucky) is switching from Central (-0600) to Eastern
# (-0500) time. They won't "fall back" this year. See Sara Shipley,
# The difference an hour makes, Nando Times (2000-08-29 15:33 -0400).
#
# From Paul Eggert (2001-07-16):
# The final rule was published in the
#
# Federal Register 65, 160 (2000-08-17), page 50154-50158.
#
#
Zone America/Kentucky/Monticello -5:39:24 - LMT 1883 Nov 18 12:20:36
-6:00 US C%sT 1946
-6:00 - CST 1968
-6:00 US C%sT 2000 Oct 29 2:00
-5:00 US E%sT
# From Rives McDow (2000-08-30):
# Here ... are all the changes in the US since 1985.
# Kearny County, KS (put all of county on central;
# previously split between MST and CST) ... 1990-10
# Starke County, IN (from CST to EST) ... 1991-10
# Oliver County, ND (from MST to CST) ... 1992-10
# West Wendover, NV (from PST TO MST) ... 1999-10
# Wayne County, KY (from CST to EST) ... 2000-10
#
# From Paul Eggert (2001-07-17):
# We don't know where the line used to be within Kearny County, KS,
# so omit that change for now.
# See America/Indiana/Knox for the Starke County, IN change.
# See America/North_Dakota/Center for the Oliver County, ND change.
# West Wendover, NV officially switched from Pacific to mountain time on
# 1999-10-31. See the
#
# Federal Register 64, 203 (1999-10-21), page 56705-56707.
#
# However, the Federal Register says that West Wendover already operated
# on mountain time, and the rule merely made this official;
# hence a separate tz entry is not needed.
# Michigan
#
# From Bob Devine (1988-01-28):
# Michigan didn't observe DST from 1968 to 1973.
#
# From Paul Eggert (1999-03-31):
# Shanks writes that Michigan started using standard time on 1885-09-18,
# but Howse writes (pp 124-125, referring to Popular Astronomy, 1901-01)
# that Detroit kept
#
# local time until 1900 when the City Council decreed that clocks should
# be put back twenty-eight minutes to Central Standard Time. Half the
# city obeyed, half refused. After considerable debate, the decision
# was rescinded and the city reverted to Sun time. A derisive offer to
# erect a sundial in front of the city hall was referred to the
# Committee on Sewers. Then, in 1905, Central time was adopted
# by city vote.
#
# This story is too entertaining to be false, so go with Howse over Shanks.
#
# From Paul Eggert (2001-03-06):
# Garland (1927) writes ``Cleveland and Detroit advanced their clocks
# one hour in 1914.'' This change is not in Shanks. We have no more
# info, so omit this for now.
#
# Most of Michigan observed DST from 1973 on, but was a bit late in 1975.
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER
Rule Detroit 1948 only - Apr lastSun 2:00 1:00 D
Rule Detroit 1948 only - Sep lastSun 2:00 0 S
Rule Detroit 1967 only - Jun 14 2:00 1:00 D
Rule Detroit 1967 only - Oct lastSun 2:00 0 S
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone America/Detroit -5:32:11 - LMT 1905
-6:00 - CST 1915 May 15 2:00
-5:00 - EST 1942
-5:00 US E%sT 1946
-5:00 Detroit E%sT 1973
-5:00 US E%sT 1975
-5:00 - EST 1975 Apr 27 2:00
-5:00 US E%sT
#
# Dickinson, Gogebic, Iron, and Menominee Counties, Michigan,
# switched from EST to CST/CDT in 1973.
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER
Rule Menominee 1946 only - Apr lastSun 2:00 1:00 D
Rule Menominee 1946 only - Sep lastSun 2:00 0 S
Rule Menominee 1966 only - Apr lastSun 2:00 1:00 D
Rule Menominee 1966 only - Oct lastSun 2:00 0 S
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone America/Menominee -5:50:27 - LMT 1885 Sep 18 12:00
-6:00 US C%sT 1946
-6:00 Menominee C%sT 1969 Apr 27 2:00
-5:00 - EST 1973 Apr 29 2:00
-6:00 US C%sT
# Navassa
# administered by the US Fish and Wildlife Service
# claimed by US under the provisions of the 1856 Guano Islands Act
# also claimed by Haiti
# occupied 1857/1900 by the Navassa Phosphate Co
# US lighthouse 1917/1996-09
# currently uninhabited
# see Mark Fineman, ``An Isle Rich in Guano and Discord'',
# _Los Angeles Times_ (1998-11-10), A1, A10; it cites
# Jimmy Skaggs, _The Great Guano Rush_ (1994).
################################################################################
# From Paul Eggert (2006-03-22):
# A good source for time zone historical data outside the U.S. is
# Thomas G. Shanks and Rique Pottenger, The International Atlas (6th edition),
# San Diego: ACS Publications, Inc. (2003).
#
# Gwillim Law writes that a good source
# for recent time zone data is the International Air Transport
# Association's Standard Schedules Information Manual (IATA SSIM),
# published semiannually. Law sent in several helpful summaries
# of the IATA's data after 1990.
#
# Except where otherwise noted, Shanks & Pottenger is the source for
# entries through 1990, and IATA SSIM is the source for entries afterwards.
#
# Other sources occasionally used include:
#
# Edward W. Whitman, World Time Differences,
# Whitman Publishing Co, 2 Niagara Av, Ealing, London (undated),
# which I found in the UCLA library.
#
#
# William Willett, The Waste of Daylight, 19th edition
# (1914-03)
#
# See the `europe' file for Greenland.
# Canada
# From Alain LaBont (1994-11-14):
# I post here the time zone abbreviations standardized in Canada
# for both English and French in the CAN/CSA-Z234.4-89 standard....
#
# UTC Standard time Daylight savings time
# offset French English French English
# -2:30 - - HAT NDT
# -3 - - HAA ADT
# -3:30 HNT NST - -
# -4 HNA AST HAE EDT
# -5 HNE EST HAC CDT
# -6 HNC CST HAR MDT
# -7 HNR MST HAP PDT
# -8 HNP PST HAY YDT
# -9 HNY YST - -
#
# HN: Heure Normale ST: Standard Time
# HA: Heure Avance DT: Daylight saving Time
#
# A: de l'Atlantique Atlantic
# C: du Centre Central
# E: de l'Est Eastern
# M: Mountain
# N: Newfoundland
# P: du Pacifique Pacific
# R: des Rocheuses
# T: de Terre-Neuve
# Y: du Yukon Yukon
#
# From Paul Eggert (1994-11-22):
# Alas, this sort of thing must be handled by localization software.
# Unless otherwise specified, the data for Canada are all from Shanks
# & Pottenger.
# From Chris Walton (2006-04-01, 2006-04-25, 2006-06-26, 2007-01-31,
# 2007-03-01):
# The British Columbia government announced yesterday that it will
# adjust daylight savings next year to align with changes in the
# U.S. and the rest of Canada....
# http://www2.news.gov.bc.ca/news_releases_2005-2009/2006AG0014-000330.htm
# ...
# Nova Scotia
# Daylight saving time will be extended by four weeks starting in 2007....
# http://www.gov.ns.ca/just/regulations/rg2/2006/ma1206.pdf
#
# [For New Brunswick] the new legislation dictates that the time change is to
# be done at 02:00 instead of 00:01.
# http://www.gnb.ca/0062/acts/BBA-2006/Chap-19.pdf
# ...
# Manitoba has traditionally changed the clock every fall at 03:00.
# As of 2006, the transition is to take place one hour earlier at 02:00.
# http://web2.gov.mb.ca/laws/statutes/ccsm/o030e.php
# ...
# [Alberta, Ontario, Quebec] will follow US rules.
# http://www.qp.gov.ab.ca/documents/spring/CH03_06.CFM
# http://www.e-laws.gov.on.ca/DBLaws/Source/Regs/English/2006/R06111_e.htm
# http://www2.publicationsduquebec.gouv.qc.ca/dynamicSearch/telecharge.php?type=5&file=2006C39A.PDF
# ...
# P.E.I. will follow US rules....
# http://www.assembly.pe.ca/bills/pdf_chapter/62/3/chapter-41.pdf
# ...
# Province of Newfoundland and Labrador....
# http://www.hoa.gov.nl.ca/hoa/bills/Bill0634.htm
# ...
# Yukon
# http://www.gov.yk.ca/legislation/regs/oic2006_127.pdf
# ...
# N.W.T. will follow US rules. Whoever maintains the government web site
# does not seem to believe in bookmarks. To see the news release, click the
# following link and search for "Daylight Savings Time Change". Press the
# "Daylight Savings Time Change" link; it will fire off a popup using
# JavaScript.
# http://www.exec.gov.nt.ca/currentnews/currentPR.asp?mode=archive
# ...
# Nunavut
# An amendment to the Interpretation Act was registered on February 19/2007....
# http://action.attavik.ca/home/justice-gn/attach/2007/gaz02part2.pdf
# From Paul Eggert (2006-04-25):
# H. David Matthews and Mary Vincent's map
#
# "It's about TIME", _Canadian Geographic_ (September-October 1998)
# contains detailed boundaries for regions observing nonstandard
# time and daylight saving time arrangements in Canada circa 1998.
#
# INMS, the Institute for National Measurement Standards in Ottawa, has
# information about standard and daylight saving time zones in Canada.
# (updated periodically).
# Its unofficial information is often taken from Matthews and Vincent.
# From Paul Eggert (2006-06-27):
# For now, assume all of DST-observing Canada will fall into line with the
# new US DST rules,
# From Chris Walton (2011-12-01)
# In the first of Tammy Hardwick's articles
#
# http://www.ilovecreston.com/?p=articles&t=spec&ar=260
#
# she quotes the Friday November 1/1918 edition of the Creston Review.
# The quote includes these two statements:
# 'Sunday the CPR went back to the old system of time...'
# '... The daylight saving scheme was dropped all over Canada at the same time,'
# These statements refer to a transition from daylight time to standard time
# that occurred nationally on Sunday October 27/1918. This transition was
# also documented in the Saturday October 26/1918 edition of the Toronto Star.
# In light of that evidence, we alter the date from the earlier believed
# Oct 31, to Oct 27, 1918 (and Sunday is a more likely transition day
# than Thursday) in all Canadian rulesets.
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
Rule Canada 1918 only - Apr 14 2:00 1:00 D
Rule Canada 1918 only - Oct 27 2:00 0 S
Rule Canada 1942 only - Feb 9 2:00 1:00 W # War
Rule Canada 1945 only - Aug 14 23:00u 1:00 P # Peace
Rule Canada 1945 only - Sep 30 2:00 0 S
Rule Canada 1974 1986 - Apr lastSun 2:00 1:00 D
Rule Canada 1974 2006 - Oct lastSun 2:00 0 S
Rule Canada 1987 2006 - Apr Sun>=1 2:00 1:00 D
Rule Canada 2007 max - Mar Sun>=8 2:00 1:00 D
Rule Canada 2007 max - Nov Sun>=1 2:00 0 S
# Newfoundland and Labrador
# From Paul Eggert (2000-10-02):
# Matthews and Vincent (1998) write that Labrador should use NST/NDT,
# but the only part of Labrador that follows the rules is the
# southeast corner, including Port Hope Simpson and Mary's Harbour,
# but excluding, say, Black Tickle.
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
Rule StJohns 1917 only - Apr 8 2:00 1:00 D
Rule StJohns 1917 only - Sep 17 2:00 0 S
# Whitman gives 1919 Apr 5 and 1920 Apr 5; go with Shanks & Pottenger.
Rule StJohns 1919 only - May 5 23:00 1:00 D
Rule StJohns 1919 only - Aug 12 23:00 0 S
# For 1931-1935 Whitman gives Apr same date; go with Shanks & Pottenger.
Rule StJohns 1920 1935 - May Sun>=1 23:00 1:00 D
Rule StJohns 1920 1935 - Oct lastSun 23:00 0 S
# For 1936-1941 Whitman gives May Sun>=8 and Oct Sun>=1; go with Shanks &
# Pottenger.
Rule StJohns 1936 1941 - May Mon>=9 0:00 1:00 D
Rule StJohns 1936 1941 - Oct Mon>=2 0:00 0 S
# Whitman gives the following transitions:
# 1942 03-01/12-31, 1943 05-30/09-05, 1944 07-10/09-02, 1945 01-01/10-07
# but go with Shanks & Pottenger and assume they used Canadian rules.
# For 1946-9 Whitman gives May 5,4,9,1 - Oct 1,5,3,2, and for 1950 he gives
# Apr 30 - Sep 24; go with Shanks & Pottenger.
Rule StJohns 1946 1950 - May Sun>=8 2:00 1:00 D
Rule StJohns 1946 1950 - Oct Sun>=2 2:00 0 S
Rule StJohns 1951 1986 - Apr lastSun 2:00 1:00 D
Rule StJohns 1951 1959 - Sep lastSun 2:00 0 S
Rule StJohns 1960 1986 - Oct lastSun 2:00 0 S
# From Paul Eggert (2000-10-02):
# INMS (2000-09-12) says that, since 1988 at least, Newfoundland switches
# at 00:01 local time. For now, assume it started in 1987.
# From Michael Pelley (2011-09-12):
# We received today, Monday, September 12, 2011, notification that the
# changes to the Newfoundland Standard Time Act have been proclaimed.
# The change in the Act stipulates that the change from Daylight Savings
# Time to Standard Time and from Standard Time to Daylight Savings Time
# now occurs at 2:00AM.
# ...
#
# http://www.assembly.nl.ca/legislation/sr/annualstatutes/2011/1106.chp.htm
#
# ...
# MICHAEL PELLEY | Manager of Enterprise Architecture - Solution Delivery
# Office of the Chief Information Officer
# Executive Council
# Government of Newfoundland & Labrador
Rule StJohns 1987 only - Apr Sun>=1 0:01 1:00 D
Rule StJohns 1987 2006 - Oct lastSun 0:01 0 S
Rule StJohns 1988 only - Apr Sun>=1 0:01 2:00 DD
Rule StJohns 1989 2006 - Apr Sun>=1 0:01 1:00 D
Rule StJohns 2007 2011 - Mar Sun>=8 0:01 1:00 D
Rule StJohns 2007 2010 - Nov Sun>=1 0:01 0 S
#
# St John's has an apostrophe, but Posix file names can't have apostrophes.
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone America/St_Johns -3:30:52 - LMT 1884
-3:30:52 StJohns N%sT 1918
-3:30:52 Canada N%sT 1919
-3:30:52 StJohns N%sT 1935 Mar 30
-3:30 StJohns N%sT 1942 May 11
-3:30 Canada N%sT 1946
-3:30 StJohns N%sT 2011 Nov
-3:30 Canada N%sT
# most of east Labrador
# The name `Happy Valley-Goose Bay' is too long; use `Goose Bay'.
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone America/Goose_Bay -4:01:40 - LMT 1884 # Happy Valley-Goose Bay
-3:30:52 - NST 1918
-3:30:52 Canada N%sT 1919
-3:30:52 - NST 1935 Mar 30
-3:30 - NST 1936
-3:30 StJohns N%sT 1942 May 11
-3:30 Canada N%sT 1946
-3:30 StJohns N%sT 1966 Mar 15 2:00
-4:00 StJohns A%sT 2011 Nov
-4:00 Canada A%sT
# west Labrador, Nova Scotia, Prince Edward I
# From Paul Eggert (2006-03-22):
# Shanks & Pottenger write that since 1970 most of this region has been like
# Halifax. Many locales did not observe peacetime DST until 1972;
# Glace Bay, NS is the largest that we know of.
# Shanks & Pottenger also write that Liverpool, NS was the only town
# in Canada to observe DST in 1971 but not 1970; for now we'll assume
# this is a typo.
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
Rule Halifax 1916 only - Apr 1 0:00 1:00 D
Rule Halifax 1916 only - Oct 1 0:00 0 S
Rule Halifax 1920 only - May 9 0:00 1:00 D
Rule Halifax 1920 only - Aug 29 0:00 0 S
Rule Halifax 1921 only - May 6 0:00 1:00 D
Rule Halifax 1921 1922 - Sep 5 0:00 0 S
Rule Halifax 1922 only - Apr 30 0:00 1:00 D
Rule Halifax 1923 1925 - May Sun>=1 0:00 1:00 D
Rule Halifax 1923 only - Sep 4 0:00 0 S
Rule Halifax 1924 only - Sep 15 0:00 0 S
Rule Halifax 1925 only - Sep 28 0:00 0 S
Rule Halifax 1926 only - May 16 0:00 1:00 D
Rule Halifax 1926 only - Sep 13 0:00 0 S
Rule Halifax 1927 only - May 1 0:00 1:00 D
Rule Halifax 1927 only - Sep 26 0:00 0 S
Rule Halifax 1928 1931 - May Sun>=8 0:00 1:00 D
Rule Halifax 1928 only - Sep 9 0:00 0 S
Rule Halifax 1929 only - Sep 3 0:00 0 S
Rule Halifax 1930 only - Sep 15 0:00 0 S
Rule Halifax 1931 1932 - Sep Mon>=24 0:00 0 S
Rule Halifax 1932 only - May 1 0:00 1:00 D
Rule Halifax 1933 only - Apr 30 0:00 1:00 D
Rule Halifax 1933 only - Oct 2 0:00 0 S
Rule Halifax 1934 only - May 20 0:00 1:00 D
Rule Halifax 1934 only - Sep 16 0:00 0 S
Rule Halifax 1935 only - Jun 2 0:00 1:00 D
Rule Halifax 1935 only - Sep 30 0:00 0 S
Rule Halifax 1936 only - Jun 1 0:00 1:00 D
Rule Halifax 1936 only - Sep 14 0:00 0 S
Rule Halifax 1937 1938 - May Sun>=1 0:00 1:00 D
Rule Halifax 1937 1941 - Sep Mon>=24 0:00 0 S
Rule Halifax 1939 only - May 28 0:00 1:00 D
Rule Halifax 1940 1941 - May Sun>=1 0:00 1:00 D
Rule Halifax 1946 1949 - Apr lastSun 2:00 1:00 D
Rule Halifax 1946 1949 - Sep lastSun 2:00 0 S
Rule Halifax 1951 1954 - Apr lastSun 2:00 1:00 D
Rule Halifax 1951 1954 - Sep lastSun 2:00 0 S
Rule Halifax 1956 1959 - Apr lastSun 2:00 1:00 D
Rule Halifax 1956 1959 - Sep lastSun 2:00 0 S
Rule Halifax 1962 1973 - Apr lastSun 2:00 1:00 D
Rule Halifax 1962 1973 - Oct lastSun 2:00 0 S
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone America/Halifax -4:14:24 - LMT 1902 Jun 15
-4:00 Halifax A%sT 1918
-4:00 Canada A%sT 1919
-4:00 Halifax A%sT 1942 Feb 9 2:00s
-4:00 Canada A%sT 1946
-4:00 Halifax A%sT 1974
-4:00 Canada A%sT
Zone America/Glace_Bay -3:59:48 - LMT 1902 Jun 15
-4:00 Canada A%sT 1953
-4:00 Halifax A%sT 1954
-4:00 - AST 1972
-4:00 Halifax A%sT 1974
-4:00 Canada A%sT
# New Brunswick
# From Paul Eggert (2007-01-31):
# The Time Definition Act
# says they changed at 00:01 through 2006, and
# makes it
# clear that this was the case since at least 1993.
# For now, assume it started in 1993.
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
Rule Moncton 1933 1935 - Jun Sun>=8 1:00 1:00 D
Rule Moncton 1933 1935 - Sep Sun>=8 1:00 0 S
Rule Moncton 1936 1938 - Jun Sun>=1 1:00 1:00 D
Rule Moncton 1936 1938 - Sep Sun>=1 1:00 0 S
Rule Moncton 1939 only - May 27 1:00 1:00 D
Rule Moncton 1939 1941 - Sep Sat>=21 1:00 0 S
Rule Moncton 1940 only - May 19 1:00 1:00 D
Rule Moncton 1941 only - May 4 1:00 1:00 D
Rule Moncton 1946 1972 - Apr lastSun 2:00 1:00 D
Rule Moncton 1946 1956 - Sep lastSun 2:00 0 S
Rule Moncton 1957 1972 - Oct lastSun 2:00 0 S
Rule Moncton 1993 2006 - Apr Sun>=1 0:01 1:00 D
Rule Moncton 1993 2006 - Oct lastSun 0:01 0 S
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone America/Moncton -4:19:08 - LMT 1883 Dec 9
-5:00 - EST 1902 Jun 15
-4:00 Canada A%sT 1933
-4:00 Moncton A%sT 1942
-4:00 Canada A%sT 1946
-4:00 Moncton A%sT 1973
-4:00 Canada A%sT 1993
-4:00 Moncton A%sT 2007
-4:00 Canada A%sT
# Quebec
# From Paul Eggert (2006-07-09):
# Shanks & Pottenger write that since 1970 most of Quebec has been
# like Montreal.
# From Paul Eggert (2006-06-27):
# Matthews and Vincent (1998) also write that Quebec east of the -63
# meridian is supposed to observe AST, but residents as far east as
# Natashquan use EST/EDT, and residents east of Natashquan use AST.
# In "Official time in Quebec" the Quebec department of justice writes in
# http://www.justice.gouv.qc.ca/english/publications/generale/temps-regl-1-a.htm
# that "The residents of the Municipality of the
# Cote-Nord-du-Golfe-Saint-Laurent and the municipalities of Saint-Augustin,
# Bonne-Esperance and Blanc-Sablon apply the Official Time Act as it is
# written and use Atlantic standard time all year round. The same applies to
# the residents of the Native facilities along the lower North Shore."
#
# says this common practice was codified into law as of 2007.
# For lack of better info, guess this practice began around 1970, contra to
# Shanks & Pottenger who have this region observing AST/ADT.
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
Rule Mont 1917 only - Mar 25 2:00 1:00 D
Rule Mont 1917 only - Apr 24 0:00 0 S
Rule Mont 1919 only - Mar 31 2:30 1:00 D
Rule Mont 1919 only - Oct 25 2:30 0 S
Rule Mont 1920 only - May 2 2:30 1:00 D
Rule Mont 1920 1922 - Oct Sun>=1 2:30 0 S
Rule Mont 1921 only - May 1 2:00 1:00 D
Rule Mont 1922 only - Apr 30 2:00 1:00 D
Rule Mont 1924 only - May 17 2:00 1:00 D
Rule Mont 1924 1926 - Sep lastSun 2:30 0 S
Rule Mont 1925 1926 - May Sun>=1 2:00 1:00 D
# The 1927-to-1937 rules can be expressed more simply as
# Rule Mont 1927 1937 - Apr lastSat 24:00 1:00 D
# Rule Mont 1927 1937 - Sep lastSat 24:00 0 S
# The rules below avoid use of 24:00
# (which pre-1998 versions of zic cannot handle).
Rule Mont 1927 only - May 1 0:00 1:00 D
Rule Mont 1927 1932 - Sep lastSun 0:00 0 S
Rule Mont 1928 1931 - Apr lastSun 0:00 1:00 D
Rule Mont 1932 only - May 1 0:00 1:00 D
Rule Mont 1933 1940 - Apr lastSun 0:00 1:00 D
Rule Mont 1933 only - Oct 1 0:00 0 S
Rule Mont 1934 1939 - Sep lastSun 0:00 0 S
Rule Mont 1946 1973 - Apr lastSun 2:00 1:00 D
Rule Mont 1945 1948 - Sep lastSun 2:00 0 S
Rule Mont 1949 1950 - Oct lastSun 2:00 0 S
Rule Mont 1951 1956 - Sep lastSun 2:00 0 S
Rule Mont 1957 1973 - Oct lastSun 2:00 0 S
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone America/Blanc-Sablon -3:48:28 - LMT 1884
-4:00 Canada A%sT 1970
-4:00 - AST
Zone America/Montreal -4:54:16 - LMT 1884
-5:00 Mont E%sT 1918
-5:00 Canada E%sT 1919
-5:00 Mont E%sT 1942 Feb 9 2:00s
-5:00 Canada E%sT 1946
-5:00 Mont E%sT 1974
-5:00 Canada E%sT
# Ontario
# From Paul Eggert (2006-07-09):
# Shanks & Pottenger write that since 1970 most of Ontario has been like
# Toronto.
# Thunder Bay skipped DST in 1973.
# Many smaller locales did not observe peacetime DST until 1974;
# Nipigon (EST) and Rainy River (CST) are the largest that we know of.
# Far west Ontario is like Winnipeg; far east Quebec is like Halifax.
# From Mark Brader (2003-07-26):
# [According to the Toronto Star] Orillia, Ontario, adopted DST
# effective Saturday, 1912-06-22, 22:00; the article mentions that
# Port Arthur (now part of Thunder Bay, Ontario) as well as Moose Jaw
# have already done so. In Orillia DST was to run until Saturday,
# 1912-08-31 (no time mentioned), but it was met with considerable
# hostility from certain segments of the public, and was revoked after
# only two weeks -- I copied it as Saturday, 1912-07-07, 22:00, but
# presumably that should be -07-06. (1912-06-19, -07-12; also letters
# earlier in June).
#
# Kenora, Ontario, was to abandon DST on 1914-06-01 (-05-21).
# From Paul Eggert (1997-10-17):
# Mark Brader writes that an article in the 1997-10-14 Toronto Star
# says that Atikokan, Ontario currently does not observe DST,
# but will vote on 11-10 whether to use EST/EDT.
# He also writes that the
#
# Ontario Time Act (1990, Chapter T.9)
#
# says that Ontario east of 90W uses EST/EDT, and west of 90W uses CST/CDT.
# Officially Atikokan is therefore on CST/CDT, and most likely this report
# concerns a non-official time observed as a matter of local practice.
#
# From Paul Eggert (2000-10-02):
# Matthews and Vincent (1998) write that Atikokan, Pickle Lake, and
# New Osnaburgh observe CST all year, that Big Trout Lake observes
# CST/CDT, and that Upsala and Shebandowan observe EST/EDT, all in
# violation of the official Ontario rules.
#
# From Paul Eggert (2006-07-09):
# Chris Walton (2006-07-06) mentioned an article by Stephanie MacLellan in the
# 2005-07-21 Chronicle-Journal, which said:
#
# The clocks in Atikokan stay set on standard time year-round.
# This means they spend about half the time on central time and
# the other half on eastern time.
#
# For the most part, the system works, Mayor Dennis Brown said.
#
# "The majority of businesses in Atikokan deal more with Eastern
# Canada, but there are some that deal with Western Canada," he
# said. "I don't see any changes happening here."
#
# Walton also writes "Supposedly Pickle Lake and Mishkeegogamang
# [New Osnaburgh] follow the same practice."
# From Garry McKinnon (2006-07-14) via Chris Walton:
# I chatted with a member of my board who has an outstanding memory
# and a long history in Atikokan (and in the telecom industry) and he
# can say for certain that Atikokan has been practicing the current
# time keeping since 1952, at least.
# From Paul Eggert (2006-07-17):
# Shanks & Pottenger say that Atikokan has agreed with Rainy River
# ever since standard time was introduced, but the information from
# McKinnon sounds more authoritative. For now, assume that Atikokan
# switched to EST immediately after WWII era daylight saving time
# ended. This matches the old (less-populous) America/Coral_Harbour
# entry since our cutoff date of 1970, so we can move
# America/Coral_Harbour to the 'backward' file.
# From Mark Brader (2010-03-06):
#
# Currently the database has:
#
# # Ontario
#
# # From Paul Eggert (2006-07-09):
# # Shanks & Pottenger write that since 1970 most of Ontario has been like
# # Toronto.
# # Thunder Bay skipped DST in 1973.
# # Many smaller locales did not observe peacetime DST until 1974;
# # Nipigon (EST) and Rainy River (CST) are the largest that we know of.
#
# In the (Toronto) Globe and Mail for Saturday, 1955-09-24, in the bottom
# right corner of page 1, it says that Toronto will return to standard
# time at 2 am Sunday morning (which agrees with the database), and that:
#
# The one-hour setback will go into effect throughout most of Ontario,
# except in areas like Windsor which remains on standard time all year.
#
# Windsor is, of course, a lot larger than Nipigon.
#
# I only came across this incidentally. I don't know if Windsor began
# observing DST when Detroit did, or in 1974, or on some other date.
#
# By the way, the article continues by noting that:
#
# Some cities in the United States have pushed the deadline back
# three weeks and will change over from daylight saving in October.
# From Arthur David Olson (2010-07-17):
#
# "Standard Time and Time Zones in Canada" appeared in
# The Journal of The Royal Astronomical Society of Canada,
# volume 26, number 2 (February 1932) and, as of 2010-07-17,
# was available at
#
# http://adsabs.harvard.edu/full/1932JRASC..26...49S
#
#
# It includes the text below (starting on page 57):
#
# A list of the places in Canada using daylight saving time would
# require yearly revision. From information kindly furnished by
# the provincial governments and by the postmasters in many cities
# and towns, it is found that the following places used daylight sav-
# ing in 1930. The information for the province of Quebec is definite,
# for the other provinces only approximate:
#
# Province Daylight saving time used
# Prince Edward Island Not used.
# Nova Scotia In Halifax only.
# New Brunswick In St. John only.
# Quebec In the following places:
# Montreal Lachine
# Quebec Mont-Royal
# Levis Iberville
# St. Lambert Cap de la Madeleine
# Verdun Loretteville
# Westmount Richmond
# Outremont St. Jerome
# Longueuil Greenfield Park
# Arvida Waterloo
# Chambly-Canton Beaulieu
# Melbourne La Tuque
# St. Theophile Buckingham
# Ontario Used generally in the cities and towns along
# the southerly part of the province. Not
# used in the northwesterlhy part.
# Manitoba Not used.
# Saskatchewan In Regina only.
# Alberta Not used.
# British Columbia Not used.
#
# With some exceptions, the use of daylight saving may be said to be limited
# to those cities and towns lying between Quebec city and Windsor, Ont.
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
Rule Toronto 1919 only - Mar 30 23:30 1:00 D
Rule Toronto 1919 only - Oct 26 0:00 0 S
Rule Toronto 1920 only - May 2 2:00 1:00 D
Rule Toronto 1920 only - Sep 26 0:00 0 S
Rule Toronto 1921 only - May 15 2:00 1:00 D
Rule Toronto 1921 only - Sep 15 2:00 0 S
Rule Toronto 1922 1923 - May Sun>=8 2:00 1:00 D
# Shanks & Pottenger say 1923-09-19; assume it's a typo and that "-16"
# was meant.
Rule Toronto 1922 1926 - Sep Sun>=15 2:00 0 S
Rule Toronto 1924 1927 - May Sun>=1 2:00 1:00 D
# The 1927-to-1939 rules can be expressed more simply as
# Rule Toronto 1927 1937 - Sep Sun>=25 2:00 0 S
# Rule Toronto 1928 1937 - Apr Sun>=25 2:00 1:00 D
# Rule Toronto 1938 1940 - Apr lastSun 2:00 1:00 D
# Rule Toronto 1938 1939 - Sep lastSun 2:00 0 S
# The rules below avoid use of Sun>=25
# (which pre-2004 versions of zic cannot handle).
Rule Toronto 1927 1932 - Sep lastSun 2:00 0 S
Rule Toronto 1928 1931 - Apr lastSun 2:00 1:00 D
Rule Toronto 1932 only - May 1 2:00 1:00 D
Rule Toronto 1933 1940 - Apr lastSun 2:00 1:00 D
Rule Toronto 1933 only - Oct 1 2:00 0 S
Rule Toronto 1934 1939 - Sep lastSun 2:00 0 S
Rule Toronto 1945 1946 - Sep lastSun 2:00 0 S
Rule Toronto 1946 only - Apr lastSun 2:00 1:00 D
Rule Toronto 1947 1949 - Apr lastSun 0:00 1:00 D
Rule Toronto 1947 1948 - Sep lastSun 0:00 0 S
Rule Toronto 1949 only - Nov lastSun 0:00 0 S
Rule Toronto 1950 1973 - Apr lastSun 2:00 1:00 D
Rule Toronto 1950 only - Nov lastSun 2:00 0 S
Rule Toronto 1951 1956 - Sep lastSun 2:00 0 S
# Shanks & Pottenger say Toronto ended DST a week early in 1971,
# namely on 1971-10-24, but Mark Brader wrote (2003-05-31) that this
# is wrong, and that he had confirmed it by checking the 1971-10-30
# Toronto Star, which said that DST was ending 1971-10-31 as usual.
Rule Toronto 1957 1973 - Oct lastSun 2:00 0 S
# From Paul Eggert (2003-07-27):
# Willett (1914-03) writes (p. 17) "In the Cities of Fort William, and
# Port Arthur, Ontario, the principle of the Bill has been in
# operation for the past three years, and in the City of Moose Jaw,
# Saskatchewan, for one year."
# From David Bryan via Tory Tronrud, Director/Curator,
# Thunder Bay Museum (2003-11-12):
# There is some suggestion, however, that, by-law or not, daylight
# savings time was being practiced in Fort William and Port Arthur
# before 1909.... [I]n 1910, the line between the Eastern and Central
# Time Zones was permanently moved about two hundred miles west to
# include the Thunder Bay area.... When Canada adopted daylight
# savings time in 1916, Fort William and Port Arthur, having done so
# already, did not change their clocks.... During the Second World
# War,... [t]he cities agreed to implement DST during the summer
# months for the remainder of the war years.
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone America/Toronto -5:17:32 - LMT 1895
-5:00 Canada E%sT 1919
-5:00 Toronto E%sT 1942 Feb 9 2:00s
-5:00 Canada E%sT 1946
-5:00 Toronto E%sT 1974
-5:00 Canada E%sT
Zone America/Thunder_Bay -5:57:00 - LMT 1895
-6:00 - CST 1910
-5:00 - EST 1942
-5:00 Canada E%sT 1970
-5:00 Mont E%sT 1973
-5:00 - EST 1974
-5:00 Canada E%sT
Zone America/Nipigon -5:53:04 - LMT 1895
-5:00 Canada E%sT 1940 Sep 29
-5:00 1:00 EDT 1942 Feb 9 2:00s
-5:00 Canada E%sT
Zone America/Rainy_River -6:18:16 - LMT 1895
-6:00 Canada C%sT 1940 Sep 29
-6:00 1:00 CDT 1942 Feb 9 2:00s
-6:00 Canada C%sT
Zone America/Atikokan -6:06:28 - LMT 1895
-6:00 Canada C%sT 1940 Sep 29
-6:00 1:00 CDT 1942 Feb 9 2:00s
-6:00 Canada C%sT 1945 Sep 30 2:00
-5:00 - EST
# Manitoba
# From Rob Douglas (2006-04-06):
# the old Manitoba Time Act - as amended by Bill 2, assented to
# March 27, 1987 ... said ...
# "between two o'clock Central Standard Time in the morning of
# the first Sunday of April of each year and two o'clock Central
# Standard Time in the morning of the last Sunday of October next
# following, one hour in advance of Central Standard Time."...
# I believe that the English legislation [of the old time act] had =
# been assented to (March 22, 1967)....
# Also, as far as I can tell, there was no order-in-council varying
# the time of Daylight Saving Time for 2005 and so the provisions of
# the 1987 version would apply - the changeover was at 2:00 Central
# Standard Time (i.e. not until 3:00 Central Daylight Time).
# From Paul Eggert (2006-04-10):
# Shanks & Pottenger say Manitoba switched at 02:00 (not 02:00s)
# starting 1966. Since 02:00s is clearly correct for 1967 on, assume
# it was also 02:00s in 1966.
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
Rule Winn 1916 only - Apr 23 0:00 1:00 D
Rule Winn 1916 only - Sep 17 0:00 0 S
Rule Winn 1918 only - Apr 14 2:00 1:00 D
Rule Winn 1918 only - Oct 27 2:00 0 S
Rule Winn 1937 only - May 16 2:00 1:00 D
Rule Winn 1937 only - Sep 26 2:00 0 S
Rule Winn 1942 only - Feb 9 2:00 1:00 W # War
Rule Winn 1945 only - Aug 14 23:00u 1:00 P # Peace
Rule Winn 1945 only - Sep lastSun 2:00 0 S
Rule Winn 1946 only - May 12 2:00 1:00 D
Rule Winn 1946 only - Oct 13 2:00 0 S
Rule Winn 1947 1949 - Apr lastSun 2:00 1:00 D
Rule Winn 1947 1949 - Sep lastSun 2:00 0 S
Rule Winn 1950 only - May 1 2:00 1:00 D
Rule Winn 1950 only - Sep 30 2:00 0 S
Rule Winn 1951 1960 - Apr lastSun 2:00 1:00 D
Rule Winn 1951 1958 - Sep lastSun 2:00 0 S
Rule Winn 1959 only - Oct lastSun 2:00 0 S
Rule Winn 1960 only - Sep lastSun 2:00 0 S
Rule Winn 1963 only - Apr lastSun 2:00 1:00 D
Rule Winn 1963 only - Sep 22 2:00 0 S
Rule Winn 1966 1986 - Apr lastSun 2:00s 1:00 D
Rule Winn 1966 2005 - Oct lastSun 2:00s 0 S
Rule Winn 1987 2005 - Apr Sun>=1 2:00s 1:00 D
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone America/Winnipeg -6:28:36 - LMT 1887 Jul 16
-6:00 Winn C%sT 2006
-6:00 Canada C%sT
# Saskatchewan
# From Mark Brader (2003-07-26):
# The first actual adoption of DST in Canada was at the municipal
# level. As the [Toronto] Star put it (1912-06-07), "While people
# elsewhere have long been talking of legislation to save daylight,
# the city of Moose Jaw [Saskatchewan] has acted on its own hook."
# DST in Moose Jaw began on Saturday, 1912-06-01 (no time mentioned:
# presumably late evening, as below), and would run until "the end of
# the summer". The discrepancy between municipal time and railroad
# time was noted.
# From Paul Eggert (2003-07-27):
# Willett (1914-03) notes that DST "has been in operation ... in the
# City of Moose Jaw, Saskatchewan, for one year."
# From Paul Eggert (2006-03-22):
# Shanks & Pottenger say that since 1970 this region has mostly been as Regina.
# Some western towns (e.g. Swift Current) switched from MST/MDT to CST in 1972.
# Other western towns (e.g. Lloydminster) are like Edmonton.
# Matthews and Vincent (1998) write that Denare Beach and Creighton
# are like Winnipeg, in violation of Saskatchewan law.
# From W. Jones (1992-11-06):
# The. . .below is based on information I got from our law library, the
# provincial archives, and the provincial Community Services department.
# A precise history would require digging through newspaper archives, and
# since you didn't say what you wanted, I didn't bother.
#
# Saskatchewan is split by a time zone meridian (105W) and over the years
# the boundary became pretty ragged as communities near it reevaluated
# their affiliations in one direction or the other. In 1965 a provincial
# referendum favoured legislating common time practices.
#
# On 15 April 1966 the Time Act (c. T-14, Revised Statutes of
# Saskatchewan 1978) was proclaimed, and established that the eastern
# part of Saskatchewan would use CST year round, that districts in
# northwest Saskatchewan would by default follow CST but could opt to
# follow Mountain Time rules (thus 1 hour difference in the winter and
# zero in the summer), and that districts in southwest Saskatchewan would
# by default follow MT but could opt to follow CST.
#
# It took a few years for the dust to settle (I know one story of a town
# on one time zone having its school in another, such that a mom had to
# serve her family lunch in two shifts), but presently it seems that only
# a few towns on the border with Alberta (e.g. Lloydminster) follow MT
# rules any more; all other districts appear to have used CST year round
# since sometime in the 1960s.
# From Chris Walton (2006-06-26):
# The Saskatchewan time act which was last updated in 1996 is about 30 pages
# long and rather painful to read.
# http://www.qp.gov.sk.ca/documents/English/Statutes/Statutes/T14.pdf
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
Rule Regina 1918 only - Apr 14 2:00 1:00 D
Rule Regina 1918 only - Oct 27 2:00 0 S
Rule Regina 1930 1934 - May Sun>=1 0:00 1:00 D
Rule Regina 1930 1934 - Oct Sun>=1 0:00 0 S
Rule Regina 1937 1941 - Apr Sun>=8 0:00 1:00 D
Rule Regina 1937 only - Oct Sun>=8 0:00 0 S
Rule Regina 1938 only - Oct Sun>=1 0:00 0 S
Rule Regina 1939 1941 - Oct Sun>=8 0:00 0 S
Rule Regina 1942 only - Feb 9 2:00 1:00 W # War
Rule Regina 1945 only - Aug 14 23:00u 1:00 P # Peace
Rule Regina 1945 only - Sep lastSun 2:00 0 S
Rule Regina 1946 only - Apr Sun>=8 2:00 1:00 D
Rule Regina 1946 only - Oct Sun>=8 2:00 0 S
Rule Regina 1947 1957 - Apr lastSun 2:00 1:00 D
Rule Regina 1947 1957 - Sep lastSun 2:00 0 S
Rule Regina 1959 only - Apr lastSun 2:00 1:00 D
Rule Regina 1959 only - Oct lastSun 2:00 0 S
#
Rule Swift 1957 only - Apr lastSun 2:00 1:00 D
Rule Swift 1957 only - Oct lastSun 2:00 0 S
Rule Swift 1959 1961 - Apr lastSun 2:00 1:00 D
Rule Swift 1959 only - Oct lastSun 2:00 0 S
Rule Swift 1960 1961 - Sep lastSun 2:00 0 S
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone America/Regina -6:58:36 - LMT 1905 Sep
-7:00 Regina M%sT 1960 Apr lastSun 2:00
-6:00 - CST
Zone America/Swift_Current -7:11:20 - LMT 1905 Sep
-7:00 Canada M%sT 1946 Apr lastSun 2:00
-7:00 Regina M%sT 1950
-7:00 Swift M%sT 1972 Apr lastSun 2:00
-6:00 - CST
# Alberta
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
Rule Edm 1918 1919 - Apr Sun>=8 2:00 1:00 D
Rule Edm 1918 only - Oct 27 2:00 0 S
Rule Edm 1919 only - May 27 2:00 0 S
Rule Edm 1920 1923 - Apr lastSun 2:00 1:00 D
Rule Edm 1920 only - Oct lastSun 2:00 0 S
Rule Edm 1921 1923 - Sep lastSun 2:00 0 S
Rule Edm 1942 only - Feb 9 2:00 1:00 W # War
Rule Edm 1945 only - Aug 14 23:00u 1:00 P # Peace
Rule Edm 1945 only - Sep lastSun 2:00 0 S
Rule Edm 1947 only - Apr lastSun 2:00 1:00 D
Rule Edm 1947 only - Sep lastSun 2:00 0 S
Rule Edm 1967 only - Apr lastSun 2:00 1:00 D
Rule Edm 1967 only - Oct lastSun 2:00 0 S
Rule Edm 1969 only - Apr lastSun 2:00 1:00 D
Rule Edm 1969 only - Oct lastSun 2:00 0 S
Rule Edm 1972 1986 - Apr lastSun 2:00 1:00 D
Rule Edm 1972 2006 - Oct lastSun 2:00 0 S
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone America/Edmonton -7:33:52 - LMT 1906 Sep
-7:00 Edm M%sT 1987
-7:00 Canada M%sT
# British Columbia
# From Paul Eggert (2006-03-22):
# Shanks & Pottenger write that since 1970 most of this region has
# been like Vancouver.
# Dawson Creek uses MST. Much of east BC is like Edmonton.
# Matthews and Vincent (1998) write that Creston is like Dawson Creek.
# It seems though that (re: Creston) is not entirely correct:
# From Chris Walton (2011-12-01):
# There are two areas within the Canadian province of British Columbia
# that do not currently observe daylight saving:
# a) The Creston Valley (includes the town of Creston and surrounding area)
# b) The eastern half of the Peace River Regional District
# (includes the cities of Dawson Creek and Fort St. John)
# Earlier this year I stumbled across a detailed article about the time
# keeping history of Creston; it was written by Tammy Hardwick who is the
# manager of the Creston & District Museum. The article was written in May 2009.
#
# http://www.ilovecreston.com/?p=articles&t=spec&ar=260
#
# According to the article, Creston has not changed its clocks since June 1918.
# i.e. Creston has been stuck on UTC-7 for 93 years.
# Dawson Creek, on the other hand, changed its clocks as recently as April 1972.
# Unfortunately the exact date for the time change in June 1918 remains
# unknown and will be difficult to ascertain. I e-mailed Tammy a few months
# ago to ask if Sunday June 2 was a reasonable guess. She said it was just
# as plausible as any other date (in June). She also said that after writing the
# article she had discovered another time change in 1916; this is the subject
# of another article which she wrote in October 2010.
#
# http://www.creston.museum.bc.ca/index.php?module=comments&uop=view_comment&cm+id=56
#
# Here is a summary of the three clock change events in Creston's history:
# 1. 1884 or 1885: adoption of Mountain Standard Time (GMT-7)
# Exact date unknown
# 2. Oct 1916: switch to Pacific Standard Time (GMT-8)
# Exact date in October unknown; Sunday October 1 is a reasonable guess.
# 3. June 1918: switch to Pacific Daylight Time (GMT-7)
# Exact date in June unknown; Sunday June 2 is a reasonable guess.
# note#1:
# On Oct 27/1918 when daylight saving ended in the rest of Canada,
# Creston did not change its clocks.
# note#2:
# During WWII when the Federal Government legislated a mandatory clock change,
# Creston did not oblige.
# note#3:
# There is no guarantee that Creston will remain on Mountain Standard Time
# (UTC-7) forever.
# The subject was debated at least once this year by the town Council.
#
# http://www.bclocalnews.com/kootenay_rockies/crestonvalleyadvance/news/116760809.html
#
# During a period WWII, summer time (Daylight saying) was mandatory in Canada.
# In Creston, that was handled by shifting the area to PST (-8:00) then applying
# summer time to cause the offset to be -7:00, the same as it had been before
# the change. It can be argued that the timezone abbreviation during this
# period should be PDT rather than MST, but that doesn't seem important enough
# (to anyone) to further complicate the rules.
# The transition dates (and times) are guesses.
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
Rule Vanc 1918 only - Apr 14 2:00 1:00 D
Rule Vanc 1918 only - Oct 27 2:00 0 S
Rule Vanc 1942 only - Feb 9 2:00 1:00 W # War
Rule Vanc 1945 only - Aug 14 23:00u 1:00 P # Peace
Rule Vanc 1945 only - Sep 30 2:00 0 S
Rule Vanc 1946 1986 - Apr lastSun 2:00 1:00 D
Rule Vanc 1946 only - Oct 13 2:00 0 S
Rule Vanc 1947 1961 - Sep lastSun 2:00 0 S
Rule Vanc 1962 2006 - Oct lastSun 2:00 0 S
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone America/Vancouver -8:12:28 - LMT 1884
-8:00 Vanc P%sT 1987
-8:00 Canada P%sT
Zone America/Dawson_Creek -8:00:56 - LMT 1884
-8:00 Canada P%sT 1947
-8:00 Vanc P%sT 1972 Aug 30 2:00
-7:00 - MST
Zone America/Creston -7:46:04 - LMT 1884
-7:00 - MST 1916 Oct 1
-8:00 - PST 1918 Jun 2
-7:00 - MST
# Northwest Territories, Nunavut, Yukon
# From Paul Eggert (2006-03-22):
# Dawson switched to PST in 1973. Inuvik switched to MST in 1979.
# Mathew Englander (1996-10-07) gives the following refs:
# * 1967. Paragraph 28(34)(g) of the Interpretation Act, S.C. 1967-68,
# c. 7 defines Yukon standard time as UTC-9. This is still valid;
# see Interpretation Act, R.S.C. 1985, c. I-21, s. 35(1).
# * C.O. 1973/214 switched Yukon to PST on 1973-10-28 00:00.
# * O.I.C. 1980/02 established DST.
# * O.I.C. 1987/056 changed DST to Apr firstSun 2:00 to Oct lastSun 2:00.
# Shanks & Pottenger say Yukon's 1973-10-28 switch was at 2:00; go
# with Englander.
# From Chris Walton (2006-06-26):
# Here is a link to the old daylight saving portion of the interpretation
# act which was last updated in 1987:
# http://www.gov.yk.ca/legislation/regs/oic1987_056.pdf
# From Rives McDow (1999-09-04):
# Nunavut ... moved ... to incorporate the whole territory into one time zone.
#
# Nunavut moves to single time zone Oct. 31
#
#
# From Antoine Leca (1999-09-06):
# We then need to create a new timezone for the Kitikmeot region of Nunavut
# to differentiate it from the Yellowknife region.
# From Paul Eggert (1999-09-20):
#
# Basic Facts: The New Territory
# (1999) reports that Pangnirtung operates on eastern time,
# and that Coral Harbour does not observe DST. We don't know when
# Pangnirtung switched to eastern time; we'll guess 1995.
# From Rives McDow (1999-11-08):
# On October 31, when the rest of Nunavut went to Central time,
# Pangnirtung wobbled. Here is the result of their wobble:
#
# The following businesses and organizations in Pangnirtung use Central Time:
#
# First Air, Power Corp, Nunavut Construction, Health Center, RCMP,
# Eastern Arctic National Parks, A & D Specialist
#
# The following businesses and organizations in Pangnirtung use Eastern Time:
#
# Hamlet office, All other businesses, Both schools, Airport operator
#
# This has made for an interesting situation there, which warranted the news.
# No one there that I spoke with seems concerned, or has plans to
# change the local methods of keeping time, as it evidently does not
# really interfere with any activities or make things difficult locally.
# They plan to celebrate New Year's turn-over twice, one hour apart,
# so it appears that the situation will last at least that long.
# The Nunavut Intergovernmental Affairs hopes that they will "come to
# their senses", but the locals evidently don't see any problem with
# the current state of affairs.
# From Michaela Rodrigue, writing in the
#
# Nunatsiaq News (1999-11-19) :
# Clyde River, Pangnirtung and Sanikiluaq now operate with two time zones,
# central - or Nunavut time - for government offices, and eastern time
# for municipal offices and schools.... Igloolik [was similar but then]
# made the switch to central time on Saturday, Nov. 6.
# From Paul Eggert (2000-10-02):
# Matthews and Vincent (1998) say the following, but we lack histories
# for these potential new Zones.
#
# The Canadian Forces station at Alert uses Eastern Time while the
# handful of residents at the Eureka weather station [in the Central
# zone] skip daylight savings. Baffin Island, which is crossed by the
# Central, Eastern and Atlantic Time zones only uses Eastern Time.
# Gjoa Haven, Taloyoak and Pelly Bay all use Mountain instead of
# Central Time and Southampton Island [in the Central zone] is not
# required to use daylight savings.
# From
#
# Nunavut now has two time zones
# (2000-11-10):
# The Nunavut government would allow its employees in Kugluktuk and
# Cambridge Bay to operate on central time year-round, putting them
# one hour behind the rest of Nunavut for six months during the winter.
# At the end of October the two communities had rebelled against
# Nunavut's unified time zone, refusing to shift to eastern time with
# the rest of the territory for the winter. Cambridge Bay remained on
# central time, while Kugluktuk, even farther west, reverted to
# mountain time, which they had used before the advent of Nunavut's
# unified time zone in 1999.
#
# From Rives McDow (2001-01-20), quoting the Nunavut government:
# The preceding decision came into effect at midnight, Saturday Nov 4, 2000.
# From Paul Eggert (2000-12-04):
# Let's just keep track of the official times for now.
# From Rives McDow (2001-03-07):
# The premier of Nunavut has issued a ministerial statement advising
# that effective 2001-04-01, the territory of Nunavut will revert
# back to three time zones (mountain, central, and eastern). Of the
# cities in Nunavut, Coral Harbor is the only one that I know of that
# has said it will not observe dst, staying on EST year round. I'm
# checking for more info, and will get back to you if I come up with
# more.
# [Also see (2001-03-09).]
# From Gwillim Law (2005-05-21):
# According to maps at
# http://inms-ienm.nrc-cnrc.gc.ca/images/time_services/TZ01SWE.jpg
# http://inms-ienm.nrc-cnrc.gc.ca/images/time_services/TZ01SSE.jpg
# (both dated 2003), and
# http://www.canadiangeographic.ca/Magazine/SO98/geomap.asp
# (from a 1998 Canadian Geographic article), the de facto and de jure time
# for Southampton Island (at the north end of Hudson Bay) is UTC-5 all year
# round. Using Google, it's easy to find other websites that confirm this.
# I wasn't able to find how far back this time regimen goes, but since it
# predates the creation of Nunavut, it probably goes back many years....
# The Inuktitut name of Coral Harbour is Sallit, but it's rarely used.
#
# From Paul Eggert (2005-07-26):
# For lack of better information, assume that Southampton Island observed
# daylight saving only during wartime.
# From Chris Walton (2007-03-01):
# ... the community of Resolute (located on Cornwallis Island in
# Nunavut) moved from Central Time to Eastern Time last November.
# Basically the community did not change its clocks at the end of
# daylight saving....
# http://www.nnsl.com/frames/newspapers/2006-11/nov13_06none.html
# From Chris Walton (2011-03-21):
# Back in 2007 I initiated the creation of a new "zone file" for Resolute
# Bay. Resolute Bay is a small community located about 900km north of
# the Arctic Circle. The zone file was required because Resolute Bay had
# decided to use UTC-5 instead of UTC-6 for the winter of 2006-2007.
#
# According to new information which I received last week, Resolute Bay
# went back to using UTC-6 in the winter of 2007-2008...
#
# On March 11/2007 most of Canada went onto daylight saving. On March
# 14/2007 I phoned the Resolute Bay hamlet office to do a "time check." I
# talked to somebody that was both knowledgeable and helpful. I was able
# to confirm that Resolute Bay was still operating on UTC-5. It was
# explained to me that Resolute Bay had been on the Eastern Time zone
# (EST) in the winter, and was now back on the Central Time zone (CDT).
# i.e. the time zone had changed twice in the last year but the clocks
# had not moved. The residents had to know which time zone they were in
# so they could follow the correct TV schedule...
#
# On Nov 02/2008 most of Canada went onto standard time. On Nov 03/2008 I
# phoned the Resolute Bay hamlet office...[D]ue to the challenging nature
# of the phone call, I decided to seek out an alternate source of
# information. I found an e-mail address for somebody by the name of
# Stephanie Adams whose job was listed as "Inns North Support Officer for
# Arctic Co-operatives." I was under the impression that Stephanie lived
# and worked in Resolute Bay...
#
# On March 14/2011 I phoned the hamlet office again. I was told that
# Resolute Bay had been using Central Standard Time over the winter of
# 2010-2011 and that the clocks had therefore been moved one hour ahead
# on March 13/2011. The person I talked to was aware that Resolute Bay
# had previously experimented with Eastern Standard Time but he could not
# tell me when the practice had stopped.
#
# On March 17/2011 I searched the Web to find an e-mail address of
# somebody that might be able to tell me exactly when Resolute Bay went
# off Eastern Standard Time. I stumbled on the name "Aziz Kheraj." Aziz
# used to be the mayor of Resolute Bay and he apparently owns half the
# businesses including "South Camp Inn." This website has some info on
# Aziz:
#
# http://www.uphere.ca/node/493
#
#
# I sent Aziz an e-mail asking when Resolute Bay had stopped using
# Eastern Standard Time.
#
# Aziz responded quickly with this: "hi, The time was not changed for the
# 1 year only, the following year, the community went back to the old way
# of "spring ahead-fall behind" currently we are zulu plus 5 hrs and in
# the winter Zulu plus 6 hrs"
#
# This of course conflicted with everything I had ascertained in November 2008.
#
# I sent Aziz a copy of my 2008 e-mail exchange with Stephanie. Aziz
# responded with this: "Hi, Stephanie lives in Winnipeg. I live here, You
# may want to check with the weather office in Resolute Bay or do a
# search on the weather through Env. Canada. web site"
#
# If I had realized the Stephanie did not live in Resolute Bay I would
# never have contacted her. I now believe that all the information I
# obtained in November 2008 should be ignored...
# I apologize for reporting incorrect information in 2008.
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
Rule NT_YK 1918 only - Apr 14 2:00 1:00 D
Rule NT_YK 1918 only - Oct 27 2:00 0 S
Rule NT_YK 1919 only - May 25 2:00 1:00 D
Rule NT_YK 1919 only - Nov 1 0:00 0 S
Rule NT_YK 1942 only - Feb 9 2:00 1:00 W # War
Rule NT_YK 1945 only - Aug 14 23:00u 1:00 P # Peace
Rule NT_YK 1945 only - Sep 30 2:00 0 S
Rule NT_YK 1965 only - Apr lastSun 0:00 2:00 DD
Rule NT_YK 1965 only - Oct lastSun 2:00 0 S
Rule NT_YK 1980 1986 - Apr lastSun 2:00 1:00 D
Rule NT_YK 1980 2006 - Oct lastSun 2:00 0 S
Rule NT_YK 1987 2006 - Apr Sun>=1 2:00 1:00 D
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
# aka Panniqtuuq
Zone America/Pangnirtung 0 - zzz 1921 # trading post est.
-4:00 NT_YK A%sT 1995 Apr Sun>=1 2:00
-5:00 Canada E%sT 1999 Oct 31 2:00
-6:00 Canada C%sT 2000 Oct 29 2:00
-5:00 Canada E%sT
# formerly Frobisher Bay
Zone America/Iqaluit 0 - zzz 1942 Aug # Frobisher Bay est.
-5:00 NT_YK E%sT 1999 Oct 31 2:00
-6:00 Canada C%sT 2000 Oct 29 2:00
-5:00 Canada E%sT
# aka Qausuittuq
Zone America/Resolute 0 - zzz 1947 Aug 31 # Resolute founded
-6:00 NT_YK C%sT 2000 Oct 29 2:00
-5:00 - EST 2001 Apr 1 3:00
-6:00 Canada C%sT 2006 Oct 29 2:00
-5:00 - EST 2007 Mar 11 3:00
-6:00 Canada C%sT
# aka Kangiqiniq
Zone America/Rankin_Inlet 0 - zzz 1957 # Rankin Inlet founded
-6:00 NT_YK C%sT 2000 Oct 29 2:00
-5:00 - EST 2001 Apr 1 3:00
-6:00 Canada C%sT
# aka Iqaluktuuttiaq
Zone America/Cambridge_Bay 0 - zzz 1920 # trading post est.?
-7:00 NT_YK M%sT 1999 Oct 31 2:00
-6:00 Canada C%sT 2000 Oct 29 2:00
-5:00 - EST 2000 Nov 5 0:00
-6:00 - CST 2001 Apr 1 3:00
-7:00 Canada M%sT
Zone America/Yellowknife 0 - zzz 1935 # Yellowknife founded?
-7:00 NT_YK M%sT 1980
-7:00 Canada M%sT
Zone America/Inuvik 0 - zzz 1953 # Inuvik founded
-8:00 NT_YK P%sT 1979 Apr lastSun 2:00
-7:00 NT_YK M%sT 1980
-7:00 Canada M%sT
Zone America/Whitehorse -9:00:12 - LMT 1900 Aug 20
-9:00 NT_YK Y%sT 1966 Jul 1 2:00
-8:00 NT_YK P%sT 1980
-8:00 Canada P%sT
Zone America/Dawson -9:17:40 - LMT 1900 Aug 20
-9:00 NT_YK Y%sT 1973 Oct 28 0:00
-8:00 NT_YK P%sT 1980
-8:00 Canada P%sT
###############################################################################
# Mexico
# From Paul Eggert (2001-03-05):
# The Investigation and Analysis Service of the
# Mexican Library of Congress (MLoC) has published a
#
# history of Mexican local time (in Spanish)
# .
#
# Here are the discrepancies between Shanks & Pottenger (S&P) and the MLoC.
# (In all cases we go with the MLoC.)
# S&P report that Baja was at -8:00 in 1922/1923.
# S&P say the 1930 transition in Baja was 1930-11-16.
# S&P report no DST during summer 1931.
# S&P report a transition at 1932-03-30 23:00, not 1932-04-01.
# From Gwillim Law (2001-02-20):
# There are some other discrepancies between the Decrees page and the
# tz database. I think they can best be explained by supposing that
# the researchers who prepared the Decrees page failed to find some of
# the relevant documents.
# From Alan Perry (1996-02-15):
# A guy from our Mexico subsidiary finally found the Presidential Decree
# outlining the timezone changes in Mexico.
#
# ------------- Begin Forwarded Message -------------
#
# I finally got my hands on the Official Presidential Decree that sets up the
# rules for the DST changes. The rules are:
#
# 1. The country is divided in 3 timezones:
# - Baja California Norte (the Mexico/BajaNorte TZ)
# - Baja California Sur, Nayarit, Sinaloa and Sonora (the Mexico/BajaSur TZ)
# - The rest of the country (the Mexico/General TZ)
#
# 2. From the first Sunday in April at 2:00 AM to the last Sunday in October
# at 2:00 AM, the times in each zone are as follows:
# BajaNorte: GMT+7
# BajaSur: GMT+6
# General: GMT+5
#
# 3. The rest of the year, the times are as follows:
# BajaNorte: GMT+8
# BajaSur: GMT+7
# General: GMT+6
#
# The Decree was published in Mexico's Official Newspaper on January 4th.
#
# -------------- End Forwarded Message --------------
# From Paul Eggert (1996-06-12):
# For an English translation of the decree, see
#
# ``Diario Oficial: Time Zone Changeover'' (1996-01-04).
#
# From Rives McDow (1998-10-08):
# The State of Quintana Roo has reverted back to central STD and DST times
# (i.e. UTC -0600 and -0500 as of 1998-08-02).
# From Rives McDow (2000-01-10):
# Effective April 4, 1999 at 2:00 AM local time, Sonora changed to the time
# zone 5 hours from the International Date Line, and will not observe daylight
# savings time so as to stay on the same time zone as the southern part of
# Arizona year round.
# From Jesper Norgaard, translating
# (2001-01-17):
# In Oaxaca, the 55.000 teachers from the Section 22 of the National
# Syndicate of Education Workers, refuse to apply daylight saving each
# year, so that the more than 10,000 schools work at normal hour the
# whole year.
# From Gwillim Law (2001-01-19):
# ... says
# (translated):...
# January 17, 2000 - The Energy Secretary, Ernesto Martens, announced
# that Summer Time will be reduced from seven to five months, starting
# this year....
#
# [translated], says "summer time will ... take effect on the first Sunday
# in May, and end on the last Sunday of September.
# From Arthur David Olson (2001-01-25):
# The 2001-01-24 traditional Washington Post contained the page one
# story "Timely Issue Divides Mexicans."...
# http://www.washingtonpost.com/wp-dyn/articles/A37383-2001Jan23.html
# ... Mexico City Mayor Lopez Obrador "...is threatening to keep
# Mexico City and its 20 million residents on a different time than
# the rest of the country..." In particular, Lopez Obrador would abolish
# observation of Daylight Saving Time.
#
# Official statute published by the Energy Department
# (2001-02-01) shows Baja and Chihauhua as still using US DST rules,
# and Sonora with no DST. This was reported by Jesper Norgaard (2001-02-03).
# From Paul Eggert (2001-03-03):
#
#
# James F. Smith writes in today's LA Times
#
# * Sonora will continue to observe standard time.
# * Last week Mexico City's mayor Andres Manuel Lopez Obrador decreed that
# the Federal District will not adopt DST.
# * 4 of 16 district leaders announced they'll ignore the decree.
# * The decree does not affect federal-controlled facilities including
# the airport, banks, hospitals, and schools.
#
# For now we'll assume that the Federal District will bow to federal rules.
# From Jesper Norgaard (2001-04-01):
# I found some references to the Mexican application of daylight
# saving, which modifies what I had already sent you, stating earlier
# that a number of northern Mexican states would go on daylight
# saving. The modification reverts this to only cover Baja California
# (Norte), while all other states (except Sonora, who has no daylight
# saving all year) will follow the original decree of president
# Vicente Fox, starting daylight saving May 6, 2001 and ending
# September 30, 2001.
# References: "Diario de Monterrey"
# Palabra (2001-03-31)
# From Reuters (2001-09-04):
# Mexico's Supreme Court on Tuesday declared that daylight savings was
# unconstitutional in Mexico City, creating the possibility the
# capital will be in a different time zone from the rest of the nation
# next year.... The Supreme Court's ruling takes effect at 2:00
# a.m. (0800 GMT) on Sept. 30, when Mexico is scheduled to revert to
# standard time. "This is so residents of the Federal District are not
# subject to unexpected time changes," a statement from the court said.
# From Jesper Norgaard Welen (2002-03-12):
# ... consulting my local grocery store(!) and my coworkers, they all insisted
# that a new decision had been made to reinstate US style DST in Mexico....
# http://www.conae.gob.mx/ahorro/horaver2001_m1_2002.html (2002-02-20)
# confirms this. Sonora as usual is the only state where DST is not applied.
# From Steffen Thorsen (2009-12-28):
#
# Steffen Thorsen wrote:
# > Mexico's House of Representatives has approved a proposal for northern
# > Mexico's border cities to share the same daylight saving schedule as
# > the United States.
# Now this has passed both the Congress and the Senate, so starting from
# 2010, some border regions will be the same:
#
# http://www.signonsandiego.com/news/2009/dec/28/clocks-will-match-both-sides-border/
#
#
# http://www.elmananarey.com/diario/noticia/nacional/noticias/empatan_horario_de_frontera_con_eu/621939
#
# (Spanish)
#
# Could not find the new law text, but the proposed law text changes are here:
#
# http://gaceta.diputados.gob.mx/Gaceta/61/2009/dic/20091210-V.pdf
#
# (Gaceta Parlamentaria)
#
# There is also a list of the votes here:
#
# http://gaceta.diputados.gob.mx/Gaceta/61/2009/dic/V2-101209.html
#
#
# Our page:
#
# http://www.timeanddate.com/news/time/north-mexico-dst-change.html
#
# From Arthur David Olson (2010-01-20):
# The page
#
# http://dof.gob.mx/nota_detalle.php?codigo=5127480&fecha=06/01/2010
#
# includes this text:
# En los municipios fronterizos de Tijuana y Mexicali en Baja California;
# Juárez y Ojinaga en Chihuahua; Acuña y Piedras Negras en Coahuila;
# Anáhuac en Nuevo León; y Nuevo Laredo, Reynosa y Matamoros en
# Tamaulipas, la aplicación de este horario estacional surtirá efecto
# desde las dos horas del segundo domingo de marzo y concluirá a las dos
# horas del primer domingo de noviembre.
# En los municipios fronterizos que se encuentren ubicados en la franja
# fronteriza norte en el territorio comprendido entre la línea
# internacional y la línea paralela ubicada a una distancia de veinte
# kilómetros, así como la Ciudad de Ensenada, Baja California, hacia el
# interior del país, la aplicación de este horario estacional surtirá
# efecto desde las dos horas del segundo domingo de marzo y concluirá a
# las dos horas del primer domingo de noviembre.
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
Rule Mexico 1939 only - Feb 5 0:00 1:00 D
Rule Mexico 1939 only - Jun 25 0:00 0 S
Rule Mexico 1940 only - Dec 9 0:00 1:00 D
Rule Mexico 1941 only - Apr 1 0:00 0 S
Rule Mexico 1943 only - Dec 16 0:00 1:00 W # War
Rule Mexico 1944 only - May 1 0:00 0 S
Rule Mexico 1950 only - Feb 12 0:00 1:00 D
Rule Mexico 1950 only - Jul 30 0:00 0 S
Rule Mexico 1996 2000 - Apr Sun>=1 2:00 1:00 D
Rule Mexico 1996 2000 - Oct lastSun 2:00 0 S
Rule Mexico 2001 only - May Sun>=1 2:00 1:00 D
Rule Mexico 2001 only - Sep lastSun 2:00 0 S
Rule Mexico 2002 max - Apr Sun>=1 2:00 1:00 D
Rule Mexico 2002 max - Oct lastSun 2:00 0 S
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
# Quintana Roo
Zone America/Cancun -5:47:04 - LMT 1922 Jan 1 0:12:56
-6:00 - CST 1981 Dec 23
-5:00 Mexico E%sT 1998 Aug 2 2:00
-6:00 Mexico C%sT
# Campeche, Yucatan
Zone America/Merida -5:58:28 - LMT 1922 Jan 1 0:01:32
-6:00 - CST 1981 Dec 23
-5:00 - EST 1982 Dec 2
-6:00 Mexico C%sT
# Coahuila, Durango, Nuevo Leon, Tamaulipas (near US border)
Zone America/Matamoros -6:40:00 - LMT 1921 Dec 31 23:20:00
-6:00 - CST 1988
-6:00 US C%sT 1989
-6:00 Mexico C%sT 2010
-6:00 US C%sT
# Coahuila, Durango, Nuevo Leon, Tamaulipas (away from US border)
Zone America/Monterrey -6:41:16 - LMT 1921 Dec 31 23:18:44
-6:00 - CST 1988
-6:00 US C%sT 1989
-6:00 Mexico C%sT
# Central Mexico
Zone America/Mexico_City -6:36:36 - LMT 1922 Jan 1 0:23:24
-7:00 - MST 1927 Jun 10 23:00
-6:00 - CST 1930 Nov 15
-7:00 - MST 1931 May 1 23:00
-6:00 - CST 1931 Oct
-7:00 - MST 1932 Apr 1
-6:00 Mexico C%sT 2001 Sep 30 02:00
-6:00 - CST 2002 Feb 20
-6:00 Mexico C%sT
# Chihuahua (near US border)
Zone America/Ojinaga -6:57:40 - LMT 1922 Jan 1 0:02:20
-7:00 - MST 1927 Jun 10 23:00
-6:00 - CST 1930 Nov 15
-7:00 - MST 1931 May 1 23:00
-6:00 - CST 1931 Oct
-7:00 - MST 1932 Apr 1
-6:00 - CST 1996
-6:00 Mexico C%sT 1998
-6:00 - CST 1998 Apr Sun>=1 3:00
-7:00 Mexico M%sT 2010
-7:00 US M%sT
# Chihuahua (away from US border)
Zone America/Chihuahua -7:04:20 - LMT 1921 Dec 31 23:55:40
-7:00 - MST 1927 Jun 10 23:00
-6:00 - CST 1930 Nov 15
-7:00 - MST 1931 May 1 23:00
-6:00 - CST 1931 Oct
-7:00 - MST 1932 Apr 1
-6:00 - CST 1996
-6:00 Mexico C%sT 1998
-6:00 - CST 1998 Apr Sun>=1 3:00
-7:00 Mexico M%sT
# Sonora
Zone America/Hermosillo -7:23:52 - LMT 1921 Dec 31 23:36:08
-7:00 - MST 1927 Jun 10 23:00
-6:00 - CST 1930 Nov 15
-7:00 - MST 1931 May 1 23:00
-6:00 - CST 1931 Oct
-7:00 - MST 1932 Apr 1
-6:00 - CST 1942 Apr 24
-7:00 - MST 1949 Jan 14
-8:00 - PST 1970
-7:00 Mexico M%sT 1999
-7:00 - MST
# From Alexander Krivenyshev (2010-04-21):
# According to news, Bahía de Banderas (Mexican state of Nayarit)
# changed time zone UTC-7 to new time zone UTC-6 on April 4, 2010 (to
# share the same time zone as nearby city Puerto Vallarta, Jalisco).
#
# (Spanish)
# Bahía de Banderas homologa su horario al del centro del
# país, a partir de este domingo
#
# http://www.nayarit.gob.mx/notes.asp?id=20748
#
#
# Bahía de Banderas homologa su horario con el del Centro del
# País
#
# http://www.bahiadebanderas.gob.mx/principal/index.php?option=com_content&view=article&id=261:bahia-de-banderas-homologa-su-horario-con-el-del-centro-del-pais&catid=42:comunicacion-social&Itemid=50"
#
#
# (English)
# Puerto Vallarta and Bahía de Banderas: One Time Zone
#
# http://virtualvallarta.com/puertovallarta/puertovallarta/localnews/2009-12-03-Puerto-Vallarta-and-Bahia-de-Banderas-One-Time-Zone.shtml
#
#
# or
#
# http://www.worldtimezone.com/dst_news/dst_news_mexico08.html
#
#
# "Mexico's Senate approved the amendments to the Mexican Schedule System that
# will allow Bahía de Banderas and Puerto Vallarta to share the same time
# zone ..."
# Baja California Sur, Nayarit, Sinaloa
# From Arthur David Olson (2010-05-01):
# Use "Bahia_Banderas" to keep the name to fourteen characters.
Zone America/Mazatlan -7:05:40 - LMT 1921 Dec 31 23:54:20
-7:00 - MST 1927 Jun 10 23:00
-6:00 - CST 1930 Nov 15
-7:00 - MST 1931 May 1 23:00
-6:00 - CST 1931 Oct
-7:00 - MST 1932 Apr 1
-6:00 - CST 1942 Apr 24
-7:00 - MST 1949 Jan 14
-8:00 - PST 1970
-7:00 Mexico M%sT
Zone America/Bahia_Banderas -7:01:00 - LMT 1921 Dec 31 23:59:00
-7:00 - MST 1927 Jun 10 23:00
-6:00 - CST 1930 Nov 15
-7:00 - MST 1931 May 1 23:00
-6:00 - CST 1931 Oct
-7:00 - MST 1932 Apr 1
-6:00 - CST 1942 Apr 24
-7:00 - MST 1949 Jan 14
-8:00 - PST 1970
-7:00 Mexico M%sT 2010 Apr 4 2:00
-6:00 Mexico C%sT
# Baja California (near US border)
Zone America/Tijuana -7:48:04 - LMT 1922 Jan 1 0:11:56
-7:00 - MST 1924
-8:00 - PST 1927 Jun 10 23:00
-7:00 - MST 1930 Nov 15
-8:00 - PST 1931 Apr 1
-8:00 1:00 PDT 1931 Sep 30
-8:00 - PST 1942 Apr 24
-8:00 1:00 PWT 1945 Aug 14 23:00u
-8:00 1:00 PPT 1945 Nov 12 # Peace
-8:00 - PST 1948 Apr 5
-8:00 1:00 PDT 1949 Jan 14
-8:00 - PST 1954
-8:00 CA P%sT 1961
-8:00 - PST 1976
-8:00 US P%sT 1996
-8:00 Mexico P%sT 2001
-8:00 US P%sT 2002 Feb 20
-8:00 Mexico P%sT 2010
-8:00 US P%sT
# Baja California (away from US border)
Zone America/Santa_Isabel -7:39:28 - LMT 1922 Jan 1 0:20:32
-7:00 - MST 1924
-8:00 - PST 1927 Jun 10 23:00
-7:00 - MST 1930 Nov 15
-8:00 - PST 1931 Apr 1
-8:00 1:00 PDT 1931 Sep 30
-8:00 - PST 1942 Apr 24
-8:00 1:00 PWT 1945 Aug 14 23:00u
-8:00 1:00 PPT 1945 Nov 12 # Peace
-8:00 - PST 1948 Apr 5
-8:00 1:00 PDT 1949 Jan 14
-8:00 - PST 1954
-8:00 CA P%sT 1961
-8:00 - PST 1976
-8:00 US P%sT 1996
-8:00 Mexico P%sT 2001
-8:00 US P%sT 2002 Feb 20
-8:00 Mexico P%sT
# From Paul Eggert (2006-03-22):
# Formerly there was an America/Ensenada zone, which differed from
# America/Tijuana only in that it did not observe DST from 1976
# through 1995. This was as per Shanks (1999). But Shanks & Pottenger say
# Ensenada did not observe DST from 1948 through 1975. Guy Harris reports
# that the 1987 OAG says "Only Ensenada, Mexicale, San Felipe and
# Tijuana observe DST," which agrees with Shanks & Pottenger but implies that
# DST-observance was a town-by-town matter back then. This concerns
# data after 1970 so most likely there should be at least one Zone
# other than America/Tijuana for Baja, but it's not clear yet what its
# name or contents should be.
#
# Revillagigedo Is
# no information
###############################################################################
# Anguilla
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone America/Anguilla -4:12:16 - LMT 1912 Mar 2
-4:00 - AST
# Antigua and Barbuda
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone America/Antigua -4:07:12 - LMT 1912 Mar 2
-5:00 - EST 1951
-4:00 - AST
# Bahamas
#
# From Sue Williams (2006-12-07):
# The Bahamas announced about a month ago that they plan to change their DST
# rules to sync with the U.S. starting in 2007....
# http://www.jonesbahamas.com/?c=45&a=10412
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
Rule Bahamas 1964 1975 - Oct lastSun 2:00 0 S
Rule Bahamas 1964 1975 - Apr lastSun 2:00 1:00 D
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone America/Nassau -5:09:24 - LMT 1912 Mar 2
-5:00 Bahamas E%sT 1976
-5:00 US E%sT
# Barbados
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
Rule Barb 1977 only - Jun 12 2:00 1:00 D
Rule Barb 1977 1978 - Oct Sun>=1 2:00 0 S
Rule Barb 1978 1980 - Apr Sun>=15 2:00 1:00 D
Rule Barb 1979 only - Sep 30 2:00 0 S
Rule Barb 1980 only - Sep 25 2:00 0 S
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone America/Barbados -3:58:28 - LMT 1924 # Bridgetown
-3:58:28 - BMT 1932 # Bridgetown Mean Time
-4:00 Barb A%sT
# Belize
# Whitman entirely disagrees with Shanks; go with Shanks & Pottenger.
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
Rule Belize 1918 1942 - Oct Sun>=2 0:00 0:30 HD
Rule Belize 1919 1943 - Feb Sun>=9 0:00 0 S
Rule Belize 1973 only - Dec 5 0:00 1:00 D
Rule Belize 1974 only - Feb 9 0:00 0 S
Rule Belize 1982 only - Dec 18 0:00 1:00 D
Rule Belize 1983 only - Feb 12 0:00 0 S
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone America/Belize -5:52:48 - LMT 1912 Apr
-6:00 Belize C%sT
# Bermuda
# From Dan Jones, reporting in The Royal Gazette (2006-06-26):
# Next year, however, clocks in the US will go forward on the second Sunday
# in March, until the first Sunday in November. And, after the Time Zone
# (Seasonal Variation) Bill 2006 was passed in the House of Assembly on
# Friday, the same thing will happen in Bermuda.
# http://www.theroyalgazette.com/apps/pbcs.dll/article?AID=/20060529/NEWS/105290135
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone Atlantic/Bermuda -4:19:04 - LMT 1930 Jan 1 2:00 # Hamilton
-4:00 - AST 1974 Apr 28 2:00
-4:00 Bahamas A%sT 1976
-4:00 US A%sT
# Cayman Is
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone America/Cayman -5:25:32 - LMT 1890 # Georgetown
-5:07:12 - KMT 1912 Feb # Kingston Mean Time
-5:00 - EST
# Costa Rica
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
Rule CR 1979 1980 - Feb lastSun 0:00 1:00 D
Rule CR 1979 1980 - Jun Sun>=1 0:00 0 S
Rule CR 1991 1992 - Jan Sat>=15 0:00 1:00 D
# IATA SSIM (1991-09) says the following was at 1:00;
# go with Shanks & Pottenger.
Rule CR 1991 only - Jul 1 0:00 0 S
Rule CR 1992 only - Mar 15 0:00 0 S
# There are too many San Joses elsewhere, so we'll use `Costa Rica'.
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone America/Costa_Rica -5:36:20 - LMT 1890 # San Jose
-5:36:20 - SJMT 1921 Jan 15 # San Jose Mean Time
-6:00 CR C%sT
# Coco
# no information; probably like America/Costa_Rica
# Cuba
# From Arthur David Olson (1999-03-29):
# The 1999-03-28 exhibition baseball game held in Havana, Cuba, between
# the Cuban National Team and the Baltimore Orioles was carried live on
# the Orioles Radio Network, including affiliate WTOP in Washington, DC.
# During the game, play-by-play announcer Jim Hunter noted that
# "We'll be losing two hours of sleep...Cuba switched to Daylight Saving
# Time today." (The "two hour" remark referred to losing one hour of
# sleep on 1999-03-28--when the announcers were in Cuba as it switched
# to DST--and one more hour on 1999-04-04--when the announcers will have
# returned to Baltimore, which switches on that date.)
# From Evert van der Veer via Steffen Thorsen (2004-10-28):
# Cuba is not going back to standard time this year.
# From Paul Eggert (2006-03-22):
# http://www.granma.cu/ingles/2004/septiembre/juev30/41medid-i.html
# says that it's due to a problem at the Antonio Guiteras
# thermoelectric plant, and says "This October there will be no return
# to normal hours (after daylight saving time)".
# For now, let's assume that it's a temporary measure.
# From Carlos A. Carnero Delgado (2005-11-12):
# This year (just like in 2004-2005) there's no change in time zone
# adjustment in Cuba. We will stay in daylight saving time:
# http://www.granma.cu/espanol/2005/noviembre/mier9/horario.html
# From Jesper Norgaard Welen (2006-10-21):
# An article in GRANMA INTERNACIONAL claims that Cuba will end
# the 3 years of permanent DST next weekend, see
# http://www.granma.cu/ingles/2006/octubre/lun16/43horario.html
# "On Saturday night, October 28 going into Sunday, October 29, at 01:00,
# watches should be set back one hour -- going back to 00:00 hours -- returning
# to the normal schedule....
# From Paul Eggert (2007-03-02):
# http://www.granma.cubaweb.cu/english/news/art89.html, dated yesterday,
# says Cuban clocks will advance at midnight on March 10.
# For lack of better information, assume Cuba will use US rules,
# except that it switches at midnight standard time as usual.
#
# From Steffen Thorsen (2007-10-25):
# Carlos Alberto Fonseca Arauz informed me that Cuba will end DST one week
# earlier - on the last Sunday of October, just like in 2006.
#
# He supplied these references:
#
# http://www.prensalatina.com.mx/article.asp?ID=%7B4CC32C1B-A9F7-42FB-8A07-8631AFC923AF%7D&language=ES
# http://actualidad.terra.es/sociedad/articulo/cuba_llama_ahorrar_energia_cambio_1957044.htm
#
# From Alex Kryvenishev (2007-10-25):
# Here is also article from Granma (Cuba):
#
# [Regira] el Horario Normal desde el [proximo] domingo 28 de octubre
# http://www.granma.cubaweb.cu/2007/10/24/nacional/artic07.html
#
# http://www.worldtimezone.com/dst_news/dst_news_cuba03.html
# From Arthur David Olson (2008-03-09):
# I'm in Maryland which is now observing United States Eastern Daylight
# Time. At 9:44 local time I used RealPlayer to listen to
#
# http://media.enet.cu/radioreloj
# , a Cuban information station, and heard
# the time announced as "ocho cuarenta y cuatro" ("eight forty-four"),
# indicating that Cuba is still on standard time.
# From Steffen Thorsen (2008-03-12):
# It seems that Cuba will start DST on Sunday, 2007-03-16...
# It was announced yesterday, according to this source (in Spanish):
#
# http://www.nnc.cubaweb.cu/marzo-2008/cien-1-11-3-08.htm
#
#
# Some more background information is posted here:
#
# http://www.timeanddate.com/news/time/cuba-starts-dst-march-16.html
#
#
# The article also says that Cuba has been observing DST since 1963,
# while Shanks (and tzdata) has 1965 as the first date (except in the
# 1940's). Many other web pages in Cuba also claim that it has been
# observed since 1963, but with the exception of 1970 - an exception
# which is not present in tzdata/Shanks. So there is a chance we need to
# change some historic records as well.
#
# One example:
#
# http://www.radiohc.cu/espanol/noticias/mar07/11mar/hor.htm
#
# From Jesper Norgaard Welen (2008-03-13):
# The Cuban time change has just been confirmed on the most authoritative
# web site, the Granma. Please check out
#
# http://www.granma.cubaweb.cu/2008/03/13/nacional/artic10.html
#
#
# Basically as expected after Steffen Thorsens information, the change
# will take place midnight between Saturday and Sunday.
# From Arthur David Olson (2008-03-12):
# Assume Sun>=15 (third Sunday) going forward.
# From Alexander Krivenyshev (2009-03-04)
# According to the Radio Reloj - Cuba will start Daylight Saving Time on
# midnight between Saturday, March 07, 2009 and Sunday, March 08, 2009-
# not on midnight March 14 / March 15 as previously thought.
#
#
# http://www.worldtimezone.com/dst_news/dst_news_cuba05.html
# (in Spanish)
#
# From Arthur David Olson (2009-03-09)
# I listened over the Internet to
#
# http://media.enet.cu/readioreloj
#
# this morning; when it was 10:05 a. m. here in Bethesda, Maryland the
# the time was announced as "diez cinco"--the same time as here, indicating
# that has indeed switched to DST. Assume second Sunday from 2009 forward.
# From Steffen Thorsen (2011-03-08):
# Granma announced that Cuba is going to start DST on 2011-03-20 00:00:00
# this year. Nothing about the end date known so far (if that has
# changed at all).
#
# Source:
#
# http://granma.co.cu/2011/03/08/nacional/artic01.html
#
#
# Our info:
#
# http://www.timeanddate.com/news/time/cuba-starts-dst-2011.html
#
#
# From Steffen Thorsen (2011-10-30)
# Cuba will end DST two weeks later this year. Instead of going back
# tonight, it has been delayed to 2011-11-13 at 01:00.
#
# One source (Spanish)
#
# http://www.radioangulo.cu/noticias/cuba/17105-cuba-restablecera-el-horario-del-meridiano-de-greenwich.html
#
#
# Our page:
#
# http://www.timeanddate.com/news/time/cuba-time-changes-2011.html
#
#
# From Steffen Thorsen (2012-03-01)
# According to Radio Reloj, Cuba will start DST on Midnight between March
# 31 and April 1.
#
# Radio Reloj has the following info (Spanish):
#
# http://www.radioreloj.cu/index.php/noticias-radio-reloj/71-miscelaneas/7529-cuba-aplicara-el-horario-de-verano-desde-el-1-de-abril
#
#
# Our info on it:
#
# http://www.timeanddate.com/news/time/cuba-starts-dst-2012.html
#
# From Steffen Thorsen (2012-11-03):
# Radio Reloj and many other sources report that Cuba is changing back
# to standard time on 2012-11-04:
# http://www.radioreloj.cu/index.php/noticias-radio-reloj/36-nacionales/9961-regira-horario-normal-en-cuba-desde-el-domingo-cuatro-de-noviembre
# From Paul Eggert (2012-11-03):
# For now, assume the future rule is first Sunday in November.
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
Rule Cuba 1928 only - Jun 10 0:00 1:00 D
Rule Cuba 1928 only - Oct 10 0:00 0 S
Rule Cuba 1940 1942 - Jun Sun>=1 0:00 1:00 D
Rule Cuba 1940 1942 - Sep Sun>=1 0:00 0 S
Rule Cuba 1945 1946 - Jun Sun>=1 0:00 1:00 D
Rule Cuba 1945 1946 - Sep Sun>=1 0:00 0 S
Rule Cuba 1965 only - Jun 1 0:00 1:00 D
Rule Cuba 1965 only - Sep 30 0:00 0 S
Rule Cuba 1966 only - May 29 0:00 1:00 D
Rule Cuba 1966 only - Oct 2 0:00 0 S
Rule Cuba 1967 only - Apr 8 0:00 1:00 D
Rule Cuba 1967 1968 - Sep Sun>=8 0:00 0 S
Rule Cuba 1968 only - Apr 14 0:00 1:00 D
Rule Cuba 1969 1977 - Apr lastSun 0:00 1:00 D
Rule Cuba 1969 1971 - Oct lastSun 0:00 0 S
Rule Cuba 1972 1974 - Oct 8 0:00 0 S
Rule Cuba 1975 1977 - Oct lastSun 0:00 0 S
Rule Cuba 1978 only - May 7 0:00 1:00 D
Rule Cuba 1978 1990 - Oct Sun>=8 0:00 0 S
Rule Cuba 1979 1980 - Mar Sun>=15 0:00 1:00 D
Rule Cuba 1981 1985 - May Sun>=5 0:00 1:00 D
Rule Cuba 1986 1989 - Mar Sun>=14 0:00 1:00 D
Rule Cuba 1990 1997 - Apr Sun>=1 0:00 1:00 D
Rule Cuba 1991 1995 - Oct Sun>=8 0:00s 0 S
Rule Cuba 1996 only - Oct 6 0:00s 0 S
Rule Cuba 1997 only - Oct 12 0:00s 0 S
Rule Cuba 1998 1999 - Mar lastSun 0:00s 1:00 D
Rule Cuba 1998 2003 - Oct lastSun 0:00s 0 S
Rule Cuba 2000 2004 - Apr Sun>=1 0:00s 1:00 D
Rule Cuba 2006 2010 - Oct lastSun 0:00s 0 S
Rule Cuba 2007 only - Mar Sun>=8 0:00s 1:00 D
Rule Cuba 2008 only - Mar Sun>=15 0:00s 1:00 D
Rule Cuba 2009 2010 - Mar Sun>=8 0:00s 1:00 D
Rule Cuba 2011 only - Mar Sun>=15 0:00s 1:00 D
Rule Cuba 2011 only - Nov 13 0:00s 0 S
Rule Cuba 2012 only - Apr 1 0:00s 1:00 D
Rule Cuba 2012 max - Nov Sun>=1 0:00s 0 S
Rule Cuba 2013 max - Mar Sun>=8 0:00s 1:00 D
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone America/Havana -5:29:28 - LMT 1890
-5:29:36 - HMT 1925 Jul 19 12:00 # Havana MT
-5:00 Cuba C%sT
# Dominica
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone America/Dominica -4:05:36 - LMT 1911 Jul 1 0:01 # Roseau
-4:00 - AST
# Dominican Republic
# From Steffen Thorsen (2000-10-30):
# Enrique Morales reported to me that the Dominican Republic has changed the
# time zone to Eastern Standard Time as of Sunday 29 at 2 am....
# http://www.listin.com.do/antes/261000/republica/princi.html
# From Paul Eggert (2000-12-04):
# That URL (2000-10-26, in Spanish) says they planned to use US-style DST.
# From Rives McDow (2000-12-01):
# Dominican Republic changed its mind and presidential decree on Tuesday,
# November 28, 2000, with a new decree. On Sunday, December 3 at 1:00 AM the
# Dominican Republic will be reverting to 8 hours from the International Date
# Line, and will not be using DST in the foreseeable future. The reason they
# decided to use DST was to be in synch with Puerto Rico, who was also going
# to implement DST. When Puerto Rico didn't implement DST, the president
# decided to revert.
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
Rule DR 1966 only - Oct 30 0:00 1:00 D
Rule DR 1967 only - Feb 28 0:00 0 S
Rule DR 1969 1973 - Oct lastSun 0:00 0:30 HD
Rule DR 1970 only - Feb 21 0:00 0 S
Rule DR 1971 only - Jan 20 0:00 0 S
Rule DR 1972 1974 - Jan 21 0:00 0 S
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone America/Santo_Domingo -4:39:36 - LMT 1890
-4:40 - SDMT 1933 Apr 1 12:00 # S. Dom. MT
-5:00 DR E%sT 1974 Oct 27
-4:00 - AST 2000 Oct 29 02:00
-5:00 US E%sT 2000 Dec 3 01:00
-4:00 - AST
# El Salvador
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
Rule Salv 1987 1988 - May Sun>=1 0:00 1:00 D
Rule Salv 1987 1988 - Sep lastSun 0:00 0 S
# There are too many San Salvadors elsewhere, so use America/El_Salvador
# instead of America/San_Salvador.
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone America/El_Salvador -5:56:48 - LMT 1921 # San Salvador
-6:00 Salv C%sT
# Grenada
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone America/Grenada -4:07:00 - LMT 1911 Jul # St George's
-4:00 - AST
# Guadeloupe
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone America/Guadeloupe -4:06:08 - LMT 1911 Jun 8 # Pointe a Pitre
-4:00 - AST
# St Barthelemy
Link America/Guadeloupe America/St_Barthelemy
# St Martin (French part)
Link America/Guadeloupe America/Marigot
# Guatemala
#
# From Gwillim Law (2006-04-22), after a heads-up from Oscar van Vlijmen:
# Diario Co Latino, at
# http://www.diariocolatino.com/internacionales/detalles.asp?NewsID=8079,
# says in an article dated 2006-04-19 that the Guatemalan government had
# decided on that date to advance official time by 60 minutes, to lessen the
# impact of the elevated cost of oil.... Daylight saving time will last from
# 2006-04-29 24:00 (Guatemalan standard time) to 2006-09-30 (time unspecified).
# From Paul Eggert (2006-06-22):
# The Ministry of Energy and Mines, press release CP-15/2006
# (2006-04-19), says DST ends at 24:00. See
# .
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
Rule Guat 1973 only - Nov 25 0:00 1:00 D
Rule Guat 1974 only - Feb 24 0:00 0 S
Rule Guat 1983 only - May 21 0:00 1:00 D
Rule Guat 1983 only - Sep 22 0:00 0 S
Rule Guat 1991 only - Mar 23 0:00 1:00 D
Rule Guat 1991 only - Sep 7 0:00 0 S
Rule Guat 2006 only - Apr 30 0:00 1:00 D
Rule Guat 2006 only - Oct 1 0:00 0 S
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone America/Guatemala -6:02:04 - LMT 1918 Oct 5
-6:00 Guat C%sT
# Haiti
# From Gwillim Law (2005-04-15):
# Risto O. Nykanen wrote me that Haiti is now on DST.
# I searched for confirmation, and I found a
# press release
# on the Web page of the Haitian Consulate in Chicago (2005-03-31),
# . Translated from French, it says:
#
# "The Prime Minister's Communication Office notifies the public in general
# and the press in particular that, following a decision of the Interior
# Ministry and the Territorial Collectivities [I suppose that means the
# provinces], Haiti will move to Eastern Daylight Time in the night from next
# Saturday the 2nd to Sunday the 3rd.
#
# "Consequently, the Prime Minister's Communication Office wishes to inform
# the population that the country's clocks will be set forward one hour
# starting at midnight. This provision will hold until the last Saturday in
# October 2005.
#
# "Port-au-Prince, March 31, 2005"
#
# From Steffen Thorsen (2006-04-04):
# I have been informed by users that Haiti observes DST this year like
# last year, so the current "only" rule for 2005 might be changed to a
# "max" rule or to last until 2006. (Who knows if they will observe DST
# next year or if they will extend their DST like US/Canada next year).
#
# I have found this article about it (in French):
# http://www.haitipressnetwork.com/news.cfm?articleID=7612
#
# The reason seems to be an energy crisis.
# From Stephen Colebourne (2007-02-22):
# Some IATA info: Haiti won't be having DST in 2007.
# From Steffen Thorsen (2012-03-11):
# According to several news sources, Haiti will observe DST this year,
# apparently using the same start and end date as USA/Canada.
# So this means they have already changed their time.
#
# (Sources in French):
#
# http://www.alterpresse.org/spip.php?article12510
#
#
# http://radiovision2000haiti.net/home/?p=13253
#
#
# Our coverage:
#
# http://www.timeanddate.com/news/time/haiti-dst-2012.html
#
# From Arthur David Olson (2012-03-11):
# The alterpresse.org source seems to show a US-style leap from 2:00 a.m. to
# 3:00 a.m. rather than the traditional Haitian jump at midnight.
# Assume a US-style fall back as well XXX.
# Do not yet assume that the change carries forward past 2012 XXX.
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
Rule Haiti 1983 only - May 8 0:00 1:00 D
Rule Haiti 1984 1987 - Apr lastSun 0:00 1:00 D
Rule Haiti 1983 1987 - Oct lastSun 0:00 0 S
# Shanks & Pottenger say AT is 2:00, but IATA SSIM (1991/1997) says 1:00s.
# Go with IATA.
Rule Haiti 1988 1997 - Apr Sun>=1 1:00s 1:00 D
Rule Haiti 1988 1997 - Oct lastSun 1:00s 0 S
Rule Haiti 2005 2006 - Apr Sun>=1 0:00 1:00 D
Rule Haiti 2005 2006 - Oct lastSun 0:00 0 S
Rule Haiti 2012 only - Mar Sun>=8 2:00 1:00 D
Rule Haiti 2012 only - Nov Sun>=1 2:00 0 S
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone America/Port-au-Prince -4:49:20 - LMT 1890
-4:49 - PPMT 1917 Jan 24 12:00 # P-a-P MT
-5:00 Haiti E%sT
# Honduras
# Shanks & Pottenger say 1921 Jan 1; go with Whitman's more precise Apr 1.
# From Paul Eggert (2006-05-05):
# worldtimezone.com reports a 2006-05-02 Spanish-language AP article
# saying Honduras will start using DST midnight Saturday, effective 4
# months until September. La Tribuna reported today
# that Manuel Zelaya, the president
# of Honduras, refused to back down on this.
# From Jesper Norgaard Welen (2006-08-08):
# It seems that Honduras has returned from DST to standard time this Monday at
# 00:00 hours (prolonging Sunday to 25 hours duration).
# http://www.worldtimezone.com/dst_news/dst_news_honduras04.html
# From Paul Eggert (2006-08-08):
# Also see Diario El Heraldo, The country returns to standard time (2006-08-08)
# .
# It mentions executive decree 18-2006.
# From Steffen Thorsen (2006-08-17):
# Honduras will observe DST from 2007 to 2009, exact dates are not
# published, I have located this authoritative source:
# http://www.presidencia.gob.hn/noticia.aspx?nId=47
# From Steffen Thorsen (2007-03-30):
# http://www.laprensahn.com/pais_nota.php?id04962=7386
# So it seems that Honduras will not enter DST this year....
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
Rule Hond 1987 1988 - May Sun>=1 0:00 1:00 D
Rule Hond 1987 1988 - Sep lastSun 0:00 0 S
Rule Hond 2006 only - May Sun>=1 0:00 1:00 D
Rule Hond 2006 only - Aug Mon>=1 0:00 0 S
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone America/Tegucigalpa -5:48:52 - LMT 1921 Apr
-6:00 Hond C%sT
#
# Great Swan I ceded by US to Honduras in 1972
# Jamaica
# From Bob Devine (1988-01-28):
# Follows US rules.
# From U. S. Naval Observatory (1989-01-19):
# JAMAICA 5 H BEHIND UTC
# From Shanks & Pottenger:
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone America/Jamaica -5:07:12 - LMT 1890 # Kingston
-5:07:12 - KMT 1912 Feb # Kingston Mean Time
-5:00 - EST 1974 Apr 28 2:00
-5:00 US E%sT 1984
-5:00 - EST
# Martinique
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone America/Martinique -4:04:20 - LMT 1890 # Fort-de-France
-4:04:20 - FFMT 1911 May # Fort-de-France MT
-4:00 - AST 1980 Apr 6
-4:00 1:00 ADT 1980 Sep 28
-4:00 - AST
# Montserrat
# From Paul Eggert (2006-03-22):
# In 1995 volcanic eruptions forced evacuation of Plymouth, the capital.
# world.gazetteer.com says Cork Hill is the most populous location now.
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone America/Montserrat -4:08:52 - LMT 1911 Jul 1 0:01 # Cork Hill
-4:00 - AST
# Nicaragua
#
# This uses Shanks & Pottenger for times before 2005.
#
# From Steffen Thorsen (2005-04-12):
# I've got reports from 8 different people that Nicaragua just started
# DST on Sunday 2005-04-10, in order to save energy because of
# expensive petroleum. The exact end date for DST is not yet
# announced, only "September" but some sites also say "mid-September".
# Some background information is available on the President's official site:
# http://www.presidencia.gob.ni/Presidencia/Files_index/Secretaria/Notas%20de%20Prensa/Presidente/2005/ABRIL/Gobierno-de-nicaragua-adelanta-hora-oficial-06abril.htm
# The Decree, no 23-2005 is available here:
# http://www.presidencia.gob.ni/buscador_gaceta/BD/DECRETOS/2005/Decreto%2023-2005%20Se%20adelanta%20en%20una%20hora%20en%20todo%20el%20territorio%20nacional%20apartir%20de%20las%2024horas%20del%2009%20de%20Abril.pdf
#
# From Paul Eggert (2005-05-01):
# The decree doesn't say anything about daylight saving, but for now let's
# assume that it is daylight saving....
#
# From Gwillim Law (2005-04-21):
# The Associated Press story on the time change, which can be found at
# http://www.lapalmainteractivo.com/guias/content/gen/ap/America_Latina/AMC_GEN_NICARAGUA_HORA.html
# and elsewhere, says (fifth paragraph, translated from Spanish): "The last
# time that a change of clocks was applied to save energy was in the year 2000
# during the Arnoldo Aleman administration."...
# The northamerica file says that Nicaragua has been on UTC-6 continuously
# since December 1998. I wasn't able to find any details of Nicaraguan time
# changes in 2000. Perhaps a note could be added to the northamerica file, to
# the effect that we have indirect evidence that DST was observed in 2000.
#
# From Jesper Norgaard Welen (2005-11-02):
# Nicaragua left DST the 2005-10-02 at 00:00 (local time).
# http://www.presidencia.gob.ni/presidencia/files_index/secretaria/comunicados/2005/septiembre/26septiembre-cambio-hora.htm
# (2005-09-26)
#
# From Jesper Norgaard Welen (2006-05-05):
# http://www.elnuevodiario.com.ni/2006/05/01/nacionales/18410
# (my informal translation)
# By order of the president of the republic, Enrique Bolanos, Nicaragua
# advanced by sixty minutes their official time, yesterday at 2 in the
# morning, and will stay that way until 30.th. of september.
#
# From Jesper Norgaard Welen (2006-09-30):
# http://www.presidencia.gob.ni/buscador_gaceta/BD/DECRETOS/2006/D-063-2006P-PRN-Cambio-Hora.pdf
# My informal translation runs:
# The natural sun time is restored in all the national territory, in that the
# time is returned one hour at 01:00 am of October 1 of 2006.
#
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
Rule Nic 1979 1980 - Mar Sun>=16 0:00 1:00 D
Rule Nic 1979 1980 - Jun Mon>=23 0:00 0 S
Rule Nic 2005 only - Apr 10 0:00 1:00 D
Rule Nic 2005 only - Oct Sun>=1 0:00 0 S
Rule Nic 2006 only - Apr 30 2:00 1:00 D
Rule Nic 2006 only - Oct Sun>=1 1:00 0 S
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone America/Managua -5:45:08 - LMT 1890
-5:45:12 - MMT 1934 Jun 23 # Managua Mean Time?
-6:00 - CST 1973 May
-5:00 - EST 1975 Feb 16
-6:00 Nic C%sT 1992 Jan 1 4:00
-5:00 - EST 1992 Sep 24
-6:00 - CST 1993
-5:00 - EST 1997
-6:00 Nic C%sT
# Panama
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone America/Panama -5:18:08 - LMT 1890
-5:19:36 - CMT 1908 Apr 22 # Colon Mean Time
-5:00 - EST
# Puerto Rico
# There are too many San Juans elsewhere, so we'll use `Puerto_Rico'.
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone America/Puerto_Rico -4:24:25 - LMT 1899 Mar 28 12:00 # San Juan
-4:00 - AST 1942 May 3
-4:00 US A%sT 1946
-4:00 - AST
# St Kitts-Nevis
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone America/St_Kitts -4:10:52 - LMT 1912 Mar 2 # Basseterre
-4:00 - AST
# St Lucia
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone America/St_Lucia -4:04:00 - LMT 1890 # Castries
-4:04:00 - CMT 1912 # Castries Mean Time
-4:00 - AST
# St Pierre and Miquelon
# There are too many St Pierres elsewhere, so we'll use `Miquelon'.
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone America/Miquelon -3:44:40 - LMT 1911 May 15 # St Pierre
-4:00 - AST 1980 May
-3:00 - PMST 1987 # Pierre & Miquelon Time
-3:00 Canada PM%sT
# St Vincent and the Grenadines
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone America/St_Vincent -4:04:56 - LMT 1890 # Kingstown
-4:04:56 - KMT 1912 # Kingstown Mean Time
-4:00 - AST
# Turks and Caicos
#
# From Chris Dunn in
#
# (2007-03-15): In the Turks & Caicos Islands (America/Grand_Turk) the
# daylight saving dates for time changes have been adjusted to match
# the recent U.S. change of dates.
#
# From Brian Inglis (2007-04-28):
# http://www.turksandcaicos.tc/calendar/index.htm [2007-04-26]
# there is an entry for Nov 4 "Daylight Savings Time Ends 2007" and three
# rows before that there is an out of date entry for Oct:
# "Eastern Standard Times Begins 2007
# Clocks are set back one hour at 2:00 a.m. local Daylight Saving Time"
# indicating that the normal ET rules are followed.
#
# From Paul Eggert (2006-05-01):
# Shanks & Pottenger say they use US DST rules, but IATA SSIM (1991/1998)
# says they switch at midnight. Go with Shanks & Pottenger.
#
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
Rule TC 1979 1986 - Apr lastSun 2:00 1:00 D
Rule TC 1979 2006 - Oct lastSun 2:00 0 S
Rule TC 1987 2006 - Apr Sun>=1 2:00 1:00 D
Rule TC 2007 max - Mar Sun>=8 2:00 1:00 D
Rule TC 2007 max - Nov Sun>=1 2:00 0 S
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone America/Grand_Turk -4:44:32 - LMT 1890
-5:07:12 - KMT 1912 Feb # Kingston Mean Time
-5:00 TC E%sT
# British Virgin Is
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone America/Tortola -4:18:28 - LMT 1911 Jul # Road Town
-4:00 - AST
# Virgin Is
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone America/St_Thomas -4:19:44 - LMT 1911 Jul # Charlotte Amalie
-4:00 - AST
================================================
FILE: public/admin-panel/assets/libs/flot/examples/axes-time-zones/tz/pacificnew
================================================
#
# This file is in the public domain, so clarified as of
# 2009-05-17 by Arthur David Olson.
# From Arthur David Olson (1989-04-05):
# On 1989-04-05, the U. S. House of Representatives passed (238-154) a bill
# establishing "Pacific Presidential Election Time"; it was not acted on
# by the Senate or signed into law by the President.
# You might want to change the "PE" (Presidential Election) below to
# "Q" (Quadrennial) to maintain three-character zone abbreviations.
# If you're really conservative, you might want to change it to "D".
# Avoid "L" (Leap Year), which won't be true in 2100.
# If Presidential Election Time is ever established, replace "XXXX" below
# with the year the law takes effect and uncomment the "##" lines.
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
## Rule Twilite XXXX max - Apr Sun>=1 2:00 1:00 D
## Rule Twilite XXXX max uspres Oct lastSun 2:00 1:00 PE
## Rule Twilite XXXX max uspres Nov Sun>=7 2:00 0 S
## Rule Twilite XXXX max nonpres Oct lastSun 2:00 0 S
# Zone NAME GMTOFF RULES/SAVE FORMAT [UNTIL]
## Zone America/Los_Angeles-PET -8:00 US P%sT XXXX
## -8:00 Twilite P%sT
# For now...
Link America/Los_Angeles US/Pacific-New ##
================================================
FILE: public/admin-panel/assets/libs/flot/examples/axes-time-zones/tz/solar87
================================================
#
# This file is in the public domain, so clarified as of
# 2009-05-17 by Arthur David Olson.
# So much for footnotes about Saudi Arabia.
# Apparent noon times below are for Riyadh; your mileage will vary.
# Times were computed using formulas in the U.S. Naval Observatory's
# Almanac for Computers 1987; the formulas "will give EqT to an accuracy of
# [plus or minus two] seconds during the current year."
#
# Rounding to the nearest five seconds results in fewer than
# 256 different "time types"--a limit that's faced because time types are
# stored on disk as unsigned chars.
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
Rule sol87 1987 only - Jan 1 12:03:20s -0:03:20 -
Rule sol87 1987 only - Jan 2 12:03:50s -0:03:50 -
Rule sol87 1987 only - Jan 3 12:04:15s -0:04:15 -
Rule sol87 1987 only - Jan 4 12:04:45s -0:04:45 -
Rule sol87 1987 only - Jan 5 12:05:10s -0:05:10 -
Rule sol87 1987 only - Jan 6 12:05:40s -0:05:40 -
Rule sol87 1987 only - Jan 7 12:06:05s -0:06:05 -
Rule sol87 1987 only - Jan 8 12:06:30s -0:06:30 -
Rule sol87 1987 only - Jan 9 12:06:55s -0:06:55 -
Rule sol87 1987 only - Jan 10 12:07:20s -0:07:20 -
Rule sol87 1987 only - Jan 11 12:07:45s -0:07:45 -
Rule sol87 1987 only - Jan 12 12:08:10s -0:08:10 -
Rule sol87 1987 only - Jan 13 12:08:30s -0:08:30 -
Rule sol87 1987 only - Jan 14 12:08:55s -0:08:55 -
Rule sol87 1987 only - Jan 15 12:09:15s -0:09:15 -
Rule sol87 1987 only - Jan 16 12:09:35s -0:09:35 -
Rule sol87 1987 only - Jan 17 12:09:55s -0:09:55 -
Rule sol87 1987 only - Jan 18 12:10:15s -0:10:15 -
Rule sol87 1987 only - Jan 19 12:10:35s -0:10:35 -
Rule sol87 1987 only - Jan 20 12:10:55s -0:10:55 -
Rule sol87 1987 only - Jan 21 12:11:10s -0:11:10 -
Rule sol87 1987 only - Jan 22 12:11:30s -0:11:30 -
Rule sol87 1987 only - Jan 23 12:11:45s -0:11:45 -
Rule sol87 1987 only - Jan 24 12:12:00s -0:12:00 -
Rule sol87 1987 only - Jan 25 12:12:15s -0:12:15 -
Rule sol87 1987 only - Jan 26 12:12:30s -0:12:30 -
Rule sol87 1987 only - Jan 27 12:12:40s -0:12:40 -
Rule sol87 1987 only - Jan 28 12:12:55s -0:12:55 -
Rule sol87 1987 only - Jan 29 12:13:05s -0:13:05 -
Rule sol87 1987 only - Jan 30 12:13:15s -0:13:15 -
Rule sol87 1987 only - Jan 31 12:13:25s -0:13:25 -
Rule sol87 1987 only - Feb 1 12:13:35s -0:13:35 -
Rule sol87 1987 only - Feb 2 12:13:40s -0:13:40 -
Rule sol87 1987 only - Feb 3 12:13:50s -0:13:50 -
Rule sol87 1987 only - Feb 4 12:13:55s -0:13:55 -
Rule sol87 1987 only - Feb 5 12:14:00s -0:14:00 -
Rule sol87 1987 only - Feb 6 12:14:05s -0:14:05 -
Rule sol87 1987 only - Feb 7 12:14:10s -0:14:10 -
Rule sol87 1987 only - Feb 8 12:14:10s -0:14:10 -
Rule sol87 1987 only - Feb 9 12:14:15s -0:14:15 -
Rule sol87 1987 only - Feb 10 12:14:15s -0:14:15 -
Rule sol87 1987 only - Feb 11 12:14:15s -0:14:15 -
Rule sol87 1987 only - Feb 12 12:14:15s -0:14:15 -
Rule sol87 1987 only - Feb 13 12:14:15s -0:14:15 -
Rule sol87 1987 only - Feb 14 12:14:15s -0:14:15 -
Rule sol87 1987 only - Feb 15 12:14:10s -0:14:10 -
Rule sol87 1987 only - Feb 16 12:14:10s -0:14:10 -
Rule sol87 1987 only - Feb 17 12:14:05s -0:14:05 -
Rule sol87 1987 only - Feb 18 12:14:00s -0:14:00 -
Rule sol87 1987 only - Feb 19 12:13:55s -0:13:55 -
Rule sol87 1987 only - Feb 20 12:13:50s -0:13:50 -
Rule sol87 1987 only - Feb 21 12:13:45s -0:13:45 -
Rule sol87 1987 only - Feb 22 12:13:35s -0:13:35 -
Rule sol87 1987 only - Feb 23 12:13:30s -0:13:30 -
Rule sol87 1987 only - Feb 24 12:13:20s -0:13:20 -
Rule sol87 1987 only - Feb 25 12:13:10s -0:13:10 -
Rule sol87 1987 only - Feb 26 12:13:00s -0:13:00 -
Rule sol87 1987 only - Feb 27 12:12:50s -0:12:50 -
Rule sol87 1987 only - Feb 28 12:12:40s -0:12:40 -
Rule sol87 1987 only - Mar 1 12:12:30s -0:12:30 -
Rule sol87 1987 only - Mar 2 12:12:20s -0:12:20 -
Rule sol87 1987 only - Mar 3 12:12:05s -0:12:05 -
Rule sol87 1987 only - Mar 4 12:11:55s -0:11:55 -
Rule sol87 1987 only - Mar 5 12:11:40s -0:11:40 -
Rule sol87 1987 only - Mar 6 12:11:25s -0:11:25 -
Rule sol87 1987 only - Mar 7 12:11:15s -0:11:15 -
Rule sol87 1987 only - Mar 8 12:11:00s -0:11:00 -
Rule sol87 1987 only - Mar 9 12:10:45s -0:10:45 -
Rule sol87 1987 only - Mar 10 12:10:30s -0:10:30 -
Rule sol87 1987 only - Mar 11 12:10:15s -0:10:15 -
Rule sol87 1987 only - Mar 12 12:09:55s -0:09:55 -
Rule sol87 1987 only - Mar 13 12:09:40s -0:09:40 -
Rule sol87 1987 only - Mar 14 12:09:25s -0:09:25 -
Rule sol87 1987 only - Mar 15 12:09:10s -0:09:10 -
Rule sol87 1987 only - Mar 16 12:08:50s -0:08:50 -
Rule sol87 1987 only - Mar 17 12:08:35s -0:08:35 -
Rule sol87 1987 only - Mar 18 12:08:15s -0:08:15 -
Rule sol87 1987 only - Mar 19 12:08:00s -0:08:00 -
Rule sol87 1987 only - Mar 20 12:07:40s -0:07:40 -
Rule sol87 1987 only - Mar 21 12:07:25s -0:07:25 -
Rule sol87 1987 only - Mar 22 12:07:05s -0:07:05 -
Rule sol87 1987 only - Mar 23 12:06:50s -0:06:50 -
Rule sol87 1987 only - Mar 24 12:06:30s -0:06:30 -
Rule sol87 1987 only - Mar 25 12:06:10s -0:06:10 -
Rule sol87 1987 only - Mar 26 12:05:55s -0:05:55 -
Rule sol87 1987 only - Mar 27 12:05:35s -0:05:35 -
Rule sol87 1987 only - Mar 28 12:05:15s -0:05:15 -
Rule sol87 1987 only - Mar 29 12:05:00s -0:05:00 -
Rule sol87 1987 only - Mar 30 12:04:40s -0:04:40 -
Rule sol87 1987 only - Mar 31 12:04:25s -0:04:25 -
Rule sol87 1987 only - Apr 1 12:04:05s -0:04:05 -
Rule sol87 1987 only - Apr 2 12:03:45s -0:03:45 -
Rule sol87 1987 only - Apr 3 12:03:30s -0:03:30 -
Rule sol87 1987 only - Apr 4 12:03:10s -0:03:10 -
Rule sol87 1987 only - Apr 5 12:02:55s -0:02:55 -
Rule sol87 1987 only - Apr 6 12:02:35s -0:02:35 -
Rule sol87 1987 only - Apr 7 12:02:20s -0:02:20 -
Rule sol87 1987 only - Apr 8 12:02:05s -0:02:05 -
Rule sol87 1987 only - Apr 9 12:01:45s -0:01:45 -
Rule sol87 1987 only - Apr 10 12:01:30s -0:01:30 -
Rule sol87 1987 only - Apr 11 12:01:15s -0:01:15 -
Rule sol87 1987 only - Apr 12 12:00:55s -0:00:55 -
Rule sol87 1987 only - Apr 13 12:00:40s -0:00:40 -
Rule sol87 1987 only - Apr 14 12:00:25s -0:00:25 -
Rule sol87 1987 only - Apr 15 12:00:10s -0:00:10 -
Rule sol87 1987 only - Apr 16 11:59:55s 0:00:05 -
Rule sol87 1987 only - Apr 17 11:59:45s 0:00:15 -
Rule sol87 1987 only - Apr 18 11:59:30s 0:00:30 -
Rule sol87 1987 only - Apr 19 11:59:15s 0:00:45 -
Rule sol87 1987 only - Apr 20 11:59:05s 0:00:55 -
Rule sol87 1987 only - Apr 21 11:58:50s 0:01:10 -
Rule sol87 1987 only - Apr 22 11:58:40s 0:01:20 -
Rule sol87 1987 only - Apr 23 11:58:25s 0:01:35 -
Rule sol87 1987 only - Apr 24 11:58:15s 0:01:45 -
Rule sol87 1987 only - Apr 25 11:58:05s 0:01:55 -
Rule sol87 1987 only - Apr 26 11:57:55s 0:02:05 -
Rule sol87 1987 only - Apr 27 11:57:45s 0:02:15 -
Rule sol87 1987 only - Apr 28 11:57:35s 0:02:25 -
Rule sol87 1987 only - Apr 29 11:57:25s 0:02:35 -
Rule sol87 1987 only - Apr 30 11:57:15s 0:02:45 -
Rule sol87 1987 only - May 1 11:57:10s 0:02:50 -
Rule sol87 1987 only - May 2 11:57:00s 0:03:00 -
Rule sol87 1987 only - May 3 11:56:55s 0:03:05 -
Rule sol87 1987 only - May 4 11:56:50s 0:03:10 -
Rule sol87 1987 only - May 5 11:56:45s 0:03:15 -
Rule sol87 1987 only - May 6 11:56:40s 0:03:20 -
Rule sol87 1987 only - May 7 11:56:35s 0:03:25 -
Rule sol87 1987 only - May 8 11:56:30s 0:03:30 -
Rule sol87 1987 only - May 9 11:56:25s 0:03:35 -
Rule sol87 1987 only - May 10 11:56:25s 0:03:35 -
Rule sol87 1987 only - May 11 11:56:20s 0:03:40 -
Rule sol87 1987 only - May 12 11:56:20s 0:03:40 -
Rule sol87 1987 only - May 13 11:56:20s 0:03:40 -
Rule sol87 1987 only - May 14 11:56:20s 0:03:40 -
Rule sol87 1987 only - May 15 11:56:20s 0:03:40 -
Rule sol87 1987 only - May 16 11:56:20s 0:03:40 -
Rule sol87 1987 only - May 17 11:56:20s 0:03:40 -
Rule sol87 1987 only - May 18 11:56:20s 0:03:40 -
Rule sol87 1987 only - May 19 11:56:25s 0:03:35 -
Rule sol87 1987 only - May 20 11:56:25s 0:03:35 -
Rule sol87 1987 only - May 21 11:56:30s 0:03:30 -
Rule sol87 1987 only - May 22 11:56:35s 0:03:25 -
Rule sol87 1987 only - May 23 11:56:40s 0:03:20 -
Rule sol87 1987 only - May 24 11:56:45s 0:03:15 -
Rule sol87 1987 only - May 25 11:56:50s 0:03:10 -
Rule sol87 1987 only - May 26 11:56:55s 0:03:05 -
Rule sol87 1987 only - May 27 11:57:00s 0:03:00 -
Rule sol87 1987 only - May 28 11:57:10s 0:02:50 -
Rule sol87 1987 only - May 29 11:57:15s 0:02:45 -
Rule sol87 1987 only - May 30 11:57:25s 0:02:35 -
Rule sol87 1987 only - May 31 11:57:30s 0:02:30 -
Rule sol87 1987 only - Jun 1 11:57:40s 0:02:20 -
Rule sol87 1987 only - Jun 2 11:57:50s 0:02:10 -
Rule sol87 1987 only - Jun 3 11:58:00s 0:02:00 -
Rule sol87 1987 only - Jun 4 11:58:10s 0:01:50 -
Rule sol87 1987 only - Jun 5 11:58:20s 0:01:40 -
Rule sol87 1987 only - Jun 6 11:58:30s 0:01:30 -
Rule sol87 1987 only - Jun 7 11:58:40s 0:01:20 -
Rule sol87 1987 only - Jun 8 11:58:50s 0:01:10 -
Rule sol87 1987 only - Jun 9 11:59:05s 0:00:55 -
Rule sol87 1987 only - Jun 10 11:59:15s 0:00:45 -
Rule sol87 1987 only - Jun 11 11:59:30s 0:00:30 -
Rule sol87 1987 only - Jun 12 11:59:40s 0:00:20 -
Rule sol87 1987 only - Jun 13 11:59:50s 0:00:10 -
Rule sol87 1987 only - Jun 14 12:00:05s -0:00:05 -
Rule sol87 1987 only - Jun 15 12:00:15s -0:00:15 -
Rule sol87 1987 only - Jun 16 12:00:30s -0:00:30 -
Rule sol87 1987 only - Jun 17 12:00:45s -0:00:45 -
Rule sol87 1987 only - Jun 18 12:00:55s -0:00:55 -
Rule sol87 1987 only - Jun 19 12:01:10s -0:01:10 -
Rule sol87 1987 only - Jun 20 12:01:20s -0:01:20 -
Rule sol87 1987 only - Jun 21 12:01:35s -0:01:35 -
Rule sol87 1987 only - Jun 22 12:01:50s -0:01:50 -
Rule sol87 1987 only - Jun 23 12:02:00s -0:02:00 -
Rule sol87 1987 only - Jun 24 12:02:15s -0:02:15 -
Rule sol87 1987 only - Jun 25 12:02:25s -0:02:25 -
Rule sol87 1987 only - Jun 26 12:02:40s -0:02:40 -
Rule sol87 1987 only - Jun 27 12:02:50s -0:02:50 -
Rule sol87 1987 only - Jun 28 12:03:05s -0:03:05 -
Rule sol87 1987 only - Jun 29 12:03:15s -0:03:15 -
Rule sol87 1987 only - Jun 30 12:03:30s -0:03:30 -
Rule sol87 1987 only - Jul 1 12:03:40s -0:03:40 -
Rule sol87 1987 only - Jul 2 12:03:50s -0:03:50 -
Rule sol87 1987 only - Jul 3 12:04:05s -0:04:05 -
Rule sol87 1987 only - Jul 4 12:04:15s -0:04:15 -
Rule sol87 1987 only - Jul 5 12:04:25s -0:04:25 -
Rule sol87 1987 only - Jul 6 12:04:35s -0:04:35 -
Rule sol87 1987 only - Jul 7 12:04:45s -0:04:45 -
Rule sol87 1987 only - Jul 8 12:04:55s -0:04:55 -
Rule sol87 1987 only - Jul 9 12:05:05s -0:05:05 -
Rule sol87 1987 only - Jul 10 12:05:15s -0:05:15 -
Rule sol87 1987 only - Jul 11 12:05:20s -0:05:20 -
Rule sol87 1987 only - Jul 12 12:05:30s -0:05:30 -
Rule sol87 1987 only - Jul 13 12:05:40s -0:05:40 -
Rule sol87 1987 only - Jul 14 12:05:45s -0:05:45 -
Rule sol87 1987 only - Jul 15 12:05:50s -0:05:50 -
Rule sol87 1987 only - Jul 16 12:06:00s -0:06:00 -
Rule sol87 1987 only - Jul 17 12:06:05s -0:06:05 -
Rule sol87 1987 only - Jul 18 12:06:10s -0:06:10 -
Rule sol87 1987 only - Jul 19 12:06:15s -0:06:15 -
Rule sol87 1987 only - Jul 20 12:06:15s -0:06:15 -
Rule sol87 1987 only - Jul 21 12:06:20s -0:06:20 -
Rule sol87 1987 only - Jul 22 12:06:25s -0:06:25 -
Rule sol87 1987 only - Jul 23 12:06:25s -0:06:25 -
Rule sol87 1987 only - Jul 24 12:06:25s -0:06:25 -
Rule sol87 1987 only - Jul 25 12:06:30s -0:06:30 -
Rule sol87 1987 only - Jul 26 12:06:30s -0:06:30 -
Rule sol87 1987 only - Jul 27 12:06:30s -0:06:30 -
Rule sol87 1987 only - Jul 28 12:06:30s -0:06:30 -
Rule sol87 1987 only - Jul 29 12:06:25s -0:06:25 -
Rule sol87 1987 only - Jul 30 12:06:25s -0:06:25 -
Rule sol87 1987 only - Jul 31 12:06:25s -0:06:25 -
Rule sol87 1987 only - Aug 1 12:06:20s -0:06:20 -
Rule sol87 1987 only - Aug 2 12:06:15s -0:06:15 -
Rule sol87 1987 only - Aug 3 12:06:10s -0:06:10 -
Rule sol87 1987 only - Aug 4 12:06:05s -0:06:05 -
Rule sol87 1987 only - Aug 5 12:06:00s -0:06:00 -
Rule sol87 1987 only - Aug 6 12:05:55s -0:05:55 -
Rule sol87 1987 only - Aug 7 12:05:50s -0:05:50 -
Rule sol87 1987 only - Aug 8 12:05:40s -0:05:40 -
Rule sol87 1987 only - Aug 9 12:05:35s -0:05:35 -
Rule sol87 1987 only - Aug 10 12:05:25s -0:05:25 -
Rule sol87 1987 only - Aug 11 12:05:15s -0:05:15 -
Rule sol87 1987 only - Aug 12 12:05:05s -0:05:05 -
Rule sol87 1987 only - Aug 13 12:04:55s -0:04:55 -
Rule sol87 1987 only - Aug 14 12:04:45s -0:04:45 -
Rule sol87 1987 only - Aug 15 12:04:35s -0:04:35 -
Rule sol87 1987 only - Aug 16 12:04:25s -0:04:25 -
Rule sol87 1987 only - Aug 17 12:04:10s -0:04:10 -
Rule sol87 1987 only - Aug 18 12:04:00s -0:04:00 -
Rule sol87 1987 only - Aug 19 12:03:45s -0:03:45 -
Rule sol87 1987 only - Aug 20 12:03:30s -0:03:30 -
Rule sol87 1987 only - Aug 21 12:03:15s -0:03:15 -
Rule sol87 1987 only - Aug 22 12:03:00s -0:03:00 -
Rule sol87 1987 only - Aug 23 12:02:45s -0:02:45 -
Rule sol87 1987 only - Aug 24 12:02:30s -0:02:30 -
Rule sol87 1987 only - Aug 25 12:02:15s -0:02:15 -
Rule sol87 1987 only - Aug 26 12:02:00s -0:02:00 -
Rule sol87 1987 only - Aug 27 12:01:40s -0:01:40 -
Rule sol87 1987 only - Aug 28 12:01:25s -0:01:25 -
Rule sol87 1987 only - Aug 29 12:01:05s -0:01:05 -
Rule sol87 1987 only - Aug 30 12:00:50s -0:00:50 -
Rule sol87 1987 only - Aug 31 12:00:30s -0:00:30 -
Rule sol87 1987 only - Sep 1 12:00:10s -0:00:10 -
Rule sol87 1987 only - Sep 2 11:59:50s 0:00:10 -
Rule sol87 1987 only - Sep 3 11:59:35s 0:00:25 -
Rule sol87 1987 only - Sep 4 11:59:15s 0:00:45 -
Rule sol87 1987 only - Sep 5 11:58:55s 0:01:05 -
Rule sol87 1987 only - Sep 6 11:58:35s 0:01:25 -
Rule sol87 1987 only - Sep 7 11:58:15s 0:01:45 -
Rule sol87 1987 only - Sep 8 11:57:55s 0:02:05 -
Rule sol87 1987 only - Sep 9 11:57:30s 0:02:30 -
Rule sol87 1987 only - Sep 10 11:57:10s 0:02:50 -
Rule sol87 1987 only - Sep 11 11:56:50s 0:03:10 -
Rule sol87 1987 only - Sep 12 11:56:30s 0:03:30 -
Rule sol87 1987 only - Sep 13 11:56:10s 0:03:50 -
Rule sol87 1987 only - Sep 14 11:55:45s 0:04:15 -
Rule sol87 1987 only - Sep 15 11:55:25s 0:04:35 -
Rule sol87 1987 only - Sep 16 11:55:05s 0:04:55 -
Rule sol87 1987 only - Sep 17 11:54:45s 0:05:15 -
Rule sol87 1987 only - Sep 18 11:54:20s 0:05:40 -
Rule sol87 1987 only - Sep 19 11:54:00s 0:06:00 -
Rule sol87 1987 only - Sep 20 11:53:40s 0:06:20 -
Rule sol87 1987 only - Sep 21 11:53:15s 0:06:45 -
Rule sol87 1987 only - Sep 22 11:52:55s 0:07:05 -
Rule sol87 1987 only - Sep 23 11:52:35s 0:07:25 -
Rule sol87 1987 only - Sep 24 11:52:15s 0:07:45 -
Rule sol87 1987 only - Sep 25 11:51:55s 0:08:05 -
Rule sol87 1987 only - Sep 26 11:51:35s 0:08:25 -
Rule sol87 1987 only - Sep 27 11:51:10s 0:08:50 -
Rule sol87 1987 only - Sep 28 11:50:50s 0:09:10 -
Rule sol87 1987 only - Sep 29 11:50:30s 0:09:30 -
Rule sol87 1987 only - Sep 30 11:50:10s 0:09:50 -
Rule sol87 1987 only - Oct 1 11:49:50s 0:10:10 -
Rule sol87 1987 only - Oct 2 11:49:35s 0:10:25 -
Rule sol87 1987 only - Oct 3 11:49:15s 0:10:45 -
Rule sol87 1987 only - Oct 4 11:48:55s 0:11:05 -
Rule sol87 1987 only - Oct 5 11:48:35s 0:11:25 -
Rule sol87 1987 only - Oct 6 11:48:20s 0:11:40 -
Rule sol87 1987 only - Oct 7 11:48:00s 0:12:00 -
Rule sol87 1987 only - Oct 8 11:47:45s 0:12:15 -
Rule sol87 1987 only - Oct 9 11:47:25s 0:12:35 -
Rule sol87 1987 only - Oct 10 11:47:10s 0:12:50 -
Rule sol87 1987 only - Oct 11 11:46:55s 0:13:05 -
Rule sol87 1987 only - Oct 12 11:46:40s 0:13:20 -
Rule sol87 1987 only - Oct 13 11:46:25s 0:13:35 -
Rule sol87 1987 only - Oct 14 11:46:10s 0:13:50 -
Rule sol87 1987 only - Oct 15 11:45:55s 0:14:05 -
Rule sol87 1987 only - Oct 16 11:45:45s 0:14:15 -
Rule sol87 1987 only - Oct 17 11:45:30s 0:14:30 -
Rule sol87 1987 only - Oct 18 11:45:20s 0:14:40 -
Rule sol87 1987 only - Oct 19 11:45:05s 0:14:55 -
Rule sol87 1987 only - Oct 20 11:44:55s 0:15:05 -
Rule sol87 1987 only - Oct 21 11:44:45s 0:15:15 -
Rule sol87 1987 only - Oct 22 11:44:35s 0:15:25 -
Rule sol87 1987 only - Oct 23 11:44:25s 0:15:35 -
Rule sol87 1987 only - Oct 24 11:44:20s 0:15:40 -
Rule sol87 1987 only - Oct 25 11:44:10s 0:15:50 -
Rule sol87 1987 only - Oct 26 11:44:05s 0:15:55 -
Rule sol87 1987 only - Oct 27 11:43:55s 0:16:05 -
Rule sol87 1987 only - Oct 28 11:43:50s 0:16:10 -
Rule sol87 1987 only - Oct 29 11:43:45s 0:16:15 -
Rule sol87 1987 only - Oct 30 11:43:45s 0:16:15 -
Rule sol87 1987 only - Oct 31 11:43:40s 0:16:20 -
Rule sol87 1987 only - Nov 1 11:43:40s 0:16:20 -
Rule sol87 1987 only - Nov 2 11:43:35s 0:16:25 -
Rule sol87 1987 only - Nov 3 11:43:35s 0:16:25 -
Rule sol87 1987 only - Nov 4 11:43:35s 0:16:25 -
Rule sol87 1987 only - Nov 5 11:43:35s 0:16:25 -
Rule sol87 1987 only - Nov 6 11:43:40s 0:16:20 -
Rule sol87 1987 only - Nov 7 11:43:40s 0:16:20 -
Rule sol87 1987 only - Nov 8 11:43:45s 0:16:15 -
Rule sol87 1987 only - Nov 9 11:43:50s 0:16:10 -
Rule sol87 1987 only - Nov 10 11:43:55s 0:16:05 -
Rule sol87 1987 only - Nov 11 11:44:00s 0:16:00 -
Rule sol87 1987 only - Nov 12 11:44:05s 0:15:55 -
Rule sol87 1987 only - Nov 13 11:44:15s 0:15:45 -
Rule sol87 1987 only - Nov 14 11:44:20s 0:15:40 -
Rule sol87 1987 only - Nov 15 11:44:30s 0:15:30 -
Rule sol87 1987 only - Nov 16 11:44:40s 0:15:20 -
Rule sol87 1987 only - Nov 17 11:44:50s 0:15:10 -
Rule sol87 1987 only - Nov 18 11:45:05s 0:14:55 -
Rule sol87 1987 only - Nov 19 11:45:15s 0:14:45 -
Rule sol87 1987 only - Nov 20 11:45:30s 0:14:30 -
Rule sol87 1987 only - Nov 21 11:45:45s 0:14:15 -
Rule sol87 1987 only - Nov 22 11:46:00s 0:14:00 -
Rule sol87 1987 only - Nov 23 11:46:15s 0:13:45 -
Rule sol87 1987 only - Nov 24 11:46:30s 0:13:30 -
Rule sol87 1987 only - Nov 25 11:46:50s 0:13:10 -
Rule sol87 1987 only - Nov 26 11:47:10s 0:12:50 -
Rule sol87 1987 only - Nov 27 11:47:25s 0:12:35 -
Rule sol87 1987 only - Nov 28 11:47:45s 0:12:15 -
Rule sol87 1987 only - Nov 29 11:48:05s 0:11:55 -
Rule sol87 1987 only - Nov 30 11:48:30s 0:11:30 -
Rule sol87 1987 only - Dec 1 11:48:50s 0:11:10 -
Rule sol87 1987 only - Dec 2 11:49:10s 0:10:50 -
Rule sol87 1987 only - Dec 3 11:49:35s 0:10:25 -
Rule sol87 1987 only - Dec 4 11:50:00s 0:10:00 -
Rule sol87 1987 only - Dec 5 11:50:25s 0:09:35 -
Rule sol87 1987 only - Dec 6 11:50:50s 0:09:10 -
Rule sol87 1987 only - Dec 7 11:51:15s 0:08:45 -
Rule sol87 1987 only - Dec 8 11:51:40s 0:08:20 -
Rule sol87 1987 only - Dec 9 11:52:05s 0:07:55 -
Rule sol87 1987 only - Dec 10 11:52:30s 0:07:30 -
Rule sol87 1987 only - Dec 11 11:53:00s 0:07:00 -
Rule sol87 1987 only - Dec 12 11:53:25s 0:06:35 -
Rule sol87 1987 only - Dec 13 11:53:55s 0:06:05 -
Rule sol87 1987 only - Dec 14 11:54:25s 0:05:35 -
Rule sol87 1987 only - Dec 15 11:54:50s 0:05:10 -
Rule sol87 1987 only - Dec 16 11:55:20s 0:04:40 -
Rule sol87 1987 only - Dec 17 11:55:50s 0:04:10 -
Rule sol87 1987 only - Dec 18 11:56:20s 0:03:40 -
Rule sol87 1987 only - Dec 19 11:56:50s 0:03:10 -
Rule sol87 1987 only - Dec 20 11:57:20s 0:02:40 -
Rule sol87 1987 only - Dec 21 11:57:50s 0:02:10 -
Rule sol87 1987 only - Dec 22 11:58:20s 0:01:40 -
Rule sol87 1987 only - Dec 23 11:58:50s 0:01:10 -
Rule sol87 1987 only - Dec 24 11:59:20s 0:00:40 -
Rule sol87 1987 only - Dec 25 11:59:50s 0:00:10 -
Rule sol87 1987 only - Dec 26 12:00:20s -0:00:20 -
Rule sol87 1987 only - Dec 27 12:00:45s -0:00:45 -
Rule sol87 1987 only - Dec 28 12:01:15s -0:01:15 -
Rule sol87 1987 only - Dec 29 12:01:45s -0:01:45 -
Rule sol87 1987 only - Dec 30 12:02:15s -0:02:15 -
Rule sol87 1987 only - Dec 31 12:02:45s -0:02:45 -
# Riyadh is at about 46 degrees 46 minutes East: 3 hrs, 7 mins, 4 secs
# Before and after 1987, we'll operate on local mean solar time.
# Zone NAME GMTOFF RULES/SAVE FORMAT [UNTIL]
Zone Asia/Riyadh87 3:07:04 - zzz 1987
3:07:04 sol87 zzz 1988
3:07:04 - zzz
# For backward compatibility...
Link Asia/Riyadh87 Mideast/Riyadh87
================================================
FILE: public/admin-panel/assets/libs/flot/examples/axes-time-zones/tz/solar88
================================================
#
# This file is in the public domain, so clarified as of
# 2009-05-17 by Arthur David Olson.
# Apparent noon times below are for Riyadh; they're a bit off for other places.
# Times were computed using formulas in the U.S. Naval Observatory's
# Almanac for Computers 1988; the formulas "will give EqT to an accuracy of
# [plus or minus two] seconds during the current year."
#
# Rounding to the nearest five seconds results in fewer than
# 256 different "time types"--a limit that's faced because time types are
# stored on disk as unsigned chars.
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
Rule sol88 1988 only - Jan 1 12:03:15s -0:03:15 -
Rule sol88 1988 only - Jan 2 12:03:40s -0:03:40 -
Rule sol88 1988 only - Jan 3 12:04:10s -0:04:10 -
Rule sol88 1988 only - Jan 4 12:04:40s -0:04:40 -
Rule sol88 1988 only - Jan 5 12:05:05s -0:05:05 -
Rule sol88 1988 only - Jan 6 12:05:30s -0:05:30 -
Rule sol88 1988 only - Jan 7 12:06:00s -0:06:00 -
Rule sol88 1988 only - Jan 8 12:06:25s -0:06:25 -
Rule sol88 1988 only - Jan 9 12:06:50s -0:06:50 -
Rule sol88 1988 only - Jan 10 12:07:15s -0:07:15 -
Rule sol88 1988 only - Jan 11 12:07:40s -0:07:40 -
Rule sol88 1988 only - Jan 12 12:08:05s -0:08:05 -
Rule sol88 1988 only - Jan 13 12:08:25s -0:08:25 -
Rule sol88 1988 only - Jan 14 12:08:50s -0:08:50 -
Rule sol88 1988 only - Jan 15 12:09:10s -0:09:10 -
Rule sol88 1988 only - Jan 16 12:09:30s -0:09:30 -
Rule sol88 1988 only - Jan 17 12:09:50s -0:09:50 -
Rule sol88 1988 only - Jan 18 12:10:10s -0:10:10 -
Rule sol88 1988 only - Jan 19 12:10:30s -0:10:30 -
Rule sol88 1988 only - Jan 20 12:10:50s -0:10:50 -
Rule sol88 1988 only - Jan 21 12:11:05s -0:11:05 -
Rule sol88 1988 only - Jan 22 12:11:25s -0:11:25 -
Rule sol88 1988 only - Jan 23 12:11:40s -0:11:40 -
Rule sol88 1988 only - Jan 24 12:11:55s -0:11:55 -
Rule sol88 1988 only - Jan 25 12:12:10s -0:12:10 -
Rule sol88 1988 only - Jan 26 12:12:25s -0:12:25 -
Rule sol88 1988 only - Jan 27 12:12:40s -0:12:40 -
Rule sol88 1988 only - Jan 28 12:12:50s -0:12:50 -
Rule sol88 1988 only - Jan 29 12:13:00s -0:13:00 -
Rule sol88 1988 only - Jan 30 12:13:10s -0:13:10 -
Rule sol88 1988 only - Jan 31 12:13:20s -0:13:20 -
Rule sol88 1988 only - Feb 1 12:13:30s -0:13:30 -
Rule sol88 1988 only - Feb 2 12:13:40s -0:13:40 -
Rule sol88 1988 only - Feb 3 12:13:45s -0:13:45 -
Rule sol88 1988 only - Feb 4 12:13:55s -0:13:55 -
Rule sol88 1988 only - Feb 5 12:14:00s -0:14:00 -
Rule sol88 1988 only - Feb 6 12:14:05s -0:14:05 -
Rule sol88 1988 only - Feb 7 12:14:10s -0:14:10 -
Rule sol88 1988 only - Feb 8 12:14:10s -0:14:10 -
Rule sol88 1988 only - Feb 9 12:14:15s -0:14:15 -
Rule sol88 1988 only - Feb 10 12:14:15s -0:14:15 -
Rule sol88 1988 only - Feb 11 12:14:15s -0:14:15 -
Rule sol88 1988 only - Feb 12 12:14:15s -0:14:15 -
Rule sol88 1988 only - Feb 13 12:14:15s -0:14:15 -
Rule sol88 1988 only - Feb 14 12:14:15s -0:14:15 -
Rule sol88 1988 only - Feb 15 12:14:10s -0:14:10 -
Rule sol88 1988 only - Feb 16 12:14:10s -0:14:10 -
Rule sol88 1988 only - Feb 17 12:14:05s -0:14:05 -
Rule sol88 1988 only - Feb 18 12:14:00s -0:14:00 -
Rule sol88 1988 only - Feb 19 12:13:55s -0:13:55 -
Rule sol88 1988 only - Feb 20 12:13:50s -0:13:50 -
Rule sol88 1988 only - Feb 21 12:13:45s -0:13:45 -
Rule sol88 1988 only - Feb 22 12:13:40s -0:13:40 -
Rule sol88 1988 only - Feb 23 12:13:30s -0:13:30 -
Rule sol88 1988 only - Feb 24 12:13:20s -0:13:20 -
Rule sol88 1988 only - Feb 25 12:13:15s -0:13:15 -
Rule sol88 1988 only - Feb 26 12:13:05s -0:13:05 -
Rule sol88 1988 only - Feb 27 12:12:55s -0:12:55 -
Rule sol88 1988 only - Feb 28 12:12:45s -0:12:45 -
Rule sol88 1988 only - Feb 29 12:12:30s -0:12:30 -
Rule sol88 1988 only - Mar 1 12:12:20s -0:12:20 -
Rule sol88 1988 only - Mar 2 12:12:10s -0:12:10 -
Rule sol88 1988 only - Mar 3 12:11:55s -0:11:55 -
Rule sol88 1988 only - Mar 4 12:11:45s -0:11:45 -
Rule sol88 1988 only - Mar 5 12:11:30s -0:11:30 -
Rule sol88 1988 only - Mar 6 12:11:15s -0:11:15 -
Rule sol88 1988 only - Mar 7 12:11:00s -0:11:00 -
Rule sol88 1988 only - Mar 8 12:10:45s -0:10:45 -
Rule sol88 1988 only - Mar 9 12:10:30s -0:10:30 -
Rule sol88 1988 only - Mar 10 12:10:15s -0:10:15 -
Rule sol88 1988 only - Mar 11 12:10:00s -0:10:00 -
Rule sol88 1988 only - Mar 12 12:09:45s -0:09:45 -
Rule sol88 1988 only - Mar 13 12:09:30s -0:09:30 -
Rule sol88 1988 only - Mar 14 12:09:10s -0:09:10 -
Rule sol88 1988 only - Mar 15 12:08:55s -0:08:55 -
Rule sol88 1988 only - Mar 16 12:08:40s -0:08:40 -
Rule sol88 1988 only - Mar 17 12:08:20s -0:08:20 -
Rule sol88 1988 only - Mar 18 12:08:05s -0:08:05 -
Rule sol88 1988 only - Mar 19 12:07:45s -0:07:45 -
Rule sol88 1988 only - Mar 20 12:07:30s -0:07:30 -
Rule sol88 1988 only - Mar 21 12:07:10s -0:07:10 -
Rule sol88 1988 only - Mar 22 12:06:50s -0:06:50 -
Rule sol88 1988 only - Mar 23 12:06:35s -0:06:35 -
Rule sol88 1988 only - Mar 24 12:06:15s -0:06:15 -
Rule sol88 1988 only - Mar 25 12:06:00s -0:06:00 -
Rule sol88 1988 only - Mar 26 12:05:40s -0:05:40 -
Rule sol88 1988 only - Mar 27 12:05:20s -0:05:20 -
Rule sol88 1988 only - Mar 28 12:05:05s -0:05:05 -
Rule sol88 1988 only - Mar 29 12:04:45s -0:04:45 -
Rule sol88 1988 only - Mar 30 12:04:25s -0:04:25 -
Rule sol88 1988 only - Mar 31 12:04:10s -0:04:10 -
Rule sol88 1988 only - Apr 1 12:03:50s -0:03:50 -
Rule sol88 1988 only - Apr 2 12:03:35s -0:03:35 -
Rule sol88 1988 only - Apr 3 12:03:15s -0:03:15 -
Rule sol88 1988 only - Apr 4 12:03:00s -0:03:00 -
Rule sol88 1988 only - Apr 5 12:02:40s -0:02:40 -
Rule sol88 1988 only - Apr 6 12:02:25s -0:02:25 -
Rule sol88 1988 only - Apr 7 12:02:05s -0:02:05 -
Rule sol88 1988 only - Apr 8 12:01:50s -0:01:50 -
Rule sol88 1988 only - Apr 9 12:01:35s -0:01:35 -
Rule sol88 1988 only - Apr 10 12:01:15s -0:01:15 -
Rule sol88 1988 only - Apr 11 12:01:00s -0:01:00 -
Rule sol88 1988 only - Apr 12 12:00:45s -0:00:45 -
Rule sol88 1988 only - Apr 13 12:00:30s -0:00:30 -
Rule sol88 1988 only - Apr 14 12:00:15s -0:00:15 -
Rule sol88 1988 only - Apr 15 12:00:00s 0:00:00 -
Rule sol88 1988 only - Apr 16 11:59:45s 0:00:15 -
Rule sol88 1988 only - Apr 17 11:59:30s 0:00:30 -
Rule sol88 1988 only - Apr 18 11:59:20s 0:00:40 -
Rule sol88 1988 only - Apr 19 11:59:05s 0:00:55 -
Rule sol88 1988 only - Apr 20 11:58:55s 0:01:05 -
Rule sol88 1988 only - Apr 21 11:58:40s 0:01:20 -
Rule sol88 1988 only - Apr 22 11:58:30s 0:01:30 -
Rule sol88 1988 only - Apr 23 11:58:15s 0:01:45 -
Rule sol88 1988 only - Apr 24 11:58:05s 0:01:55 -
Rule sol88 1988 only - Apr 25 11:57:55s 0:02:05 -
Rule sol88 1988 only - Apr 26 11:57:45s 0:02:15 -
Rule sol88 1988 only - Apr 27 11:57:35s 0:02:25 -
Rule sol88 1988 only - Apr 28 11:57:30s 0:02:30 -
Rule sol88 1988 only - Apr 29 11:57:20s 0:02:40 -
Rule sol88 1988 only - Apr 30 11:57:10s 0:02:50 -
Rule sol88 1988 only - May 1 11:57:05s 0:02:55 -
Rule sol88 1988 only - May 2 11:56:55s 0:03:05 -
Rule sol88 1988 only - May 3 11:56:50s 0:03:10 -
Rule sol88 1988 only - May 4 11:56:45s 0:03:15 -
Rule sol88 1988 only - May 5 11:56:40s 0:03:20 -
Rule sol88 1988 only - May 6 11:56:35s 0:03:25 -
Rule sol88 1988 only - May 7 11:56:30s 0:03:30 -
Rule sol88 1988 only - May 8 11:56:25s 0:03:35 -
Rule sol88 1988 only - May 9 11:56:25s 0:03:35 -
Rule sol88 1988 only - May 10 11:56:20s 0:03:40 -
Rule sol88 1988 only - May 11 11:56:20s 0:03:40 -
Rule sol88 1988 only - May 12 11:56:20s 0:03:40 -
Rule sol88 1988 only - May 13 11:56:20s 0:03:40 -
Rule sol88 1988 only - May 14 11:56:20s 0:03:40 -
Rule sol88 1988 only - May 15 11:56:20s 0:03:40 -
Rule sol88 1988 only - May 16 11:56:20s 0:03:40 -
Rule sol88 1988 only - May 17 11:56:20s 0:03:40 -
Rule sol88 1988 only - May 18 11:56:25s 0:03:35 -
Rule sol88 1988 only - May 19 11:56:25s 0:03:35 -
Rule sol88 1988 only - May 20 11:56:30s 0:03:30 -
Rule sol88 1988 only - May 21 11:56:35s 0:03:25 -
Rule sol88 1988 only - May 22 11:56:40s 0:03:20 -
Rule sol88 1988 only - May 23 11:56:45s 0:03:15 -
Rule sol88 1988 only - May 24 11:56:50s 0:03:10 -
Rule sol88 1988 only - May 25 11:56:55s 0:03:05 -
Rule sol88 1988 only - May 26 11:57:00s 0:03:00 -
Rule sol88 1988 only - May 27 11:57:05s 0:02:55 -
Rule sol88 1988 only - May 28 11:57:15s 0:02:45 -
Rule sol88 1988 only - May 29 11:57:20s 0:02:40 -
Rule sol88 1988 only - May 30 11:57:30s 0:02:30 -
Rule sol88 1988 only - May 31 11:57:40s 0:02:20 -
Rule sol88 1988 only - Jun 1 11:57:50s 0:02:10 -
Rule sol88 1988 only - Jun 2 11:57:55s 0:02:05 -
Rule sol88 1988 only - Jun 3 11:58:05s 0:01:55 -
Rule sol88 1988 only - Jun 4 11:58:15s 0:01:45 -
Rule sol88 1988 only - Jun 5 11:58:30s 0:01:30 -
Rule sol88 1988 only - Jun 6 11:58:40s 0:01:20 -
Rule sol88 1988 only - Jun 7 11:58:50s 0:01:10 -
Rule sol88 1988 only - Jun 8 11:59:00s 0:01:00 -
Rule sol88 1988 only - Jun 9 11:59:15s 0:00:45 -
Rule sol88 1988 only - Jun 10 11:59:25s 0:00:35 -
Rule sol88 1988 only - Jun 11 11:59:35s 0:00:25 -
Rule sol88 1988 only - Jun 12 11:59:50s 0:00:10 -
Rule sol88 1988 only - Jun 13 12:00:00s 0:00:00 -
Rule sol88 1988 only - Jun 14 12:00:15s -0:00:15 -
Rule sol88 1988 only - Jun 15 12:00:25s -0:00:25 -
Rule sol88 1988 only - Jun 16 12:00:40s -0:00:40 -
Rule sol88 1988 only - Jun 17 12:00:55s -0:00:55 -
Rule sol88 1988 only - Jun 18 12:01:05s -0:01:05 -
Rule sol88 1988 only - Jun 19 12:01:20s -0:01:20 -
Rule sol88 1988 only - Jun 20 12:01:30s -0:01:30 -
Rule sol88 1988 only - Jun 21 12:01:45s -0:01:45 -
Rule sol88 1988 only - Jun 22 12:02:00s -0:02:00 -
Rule sol88 1988 only - Jun 23 12:02:10s -0:02:10 -
Rule sol88 1988 only - Jun 24 12:02:25s -0:02:25 -
Rule sol88 1988 only - Jun 25 12:02:35s -0:02:35 -
Rule sol88 1988 only - Jun 26 12:02:50s -0:02:50 -
Rule sol88 1988 only - Jun 27 12:03:00s -0:03:00 -
Rule sol88 1988 only - Jun 28 12:03:15s -0:03:15 -
Rule sol88 1988 only - Jun 29 12:03:25s -0:03:25 -
Rule sol88 1988 only - Jun 30 12:03:40s -0:03:40 -
Rule sol88 1988 only - Jul 1 12:03:50s -0:03:50 -
Rule sol88 1988 only - Jul 2 12:04:00s -0:04:00 -
Rule sol88 1988 only - Jul 3 12:04:10s -0:04:10 -
Rule sol88 1988 only - Jul 4 12:04:25s -0:04:25 -
Rule sol88 1988 only - Jul 5 12:04:35s -0:04:35 -
Rule sol88 1988 only - Jul 6 12:04:45s -0:04:45 -
Rule sol88 1988 only - Jul 7 12:04:55s -0:04:55 -
Rule sol88 1988 only - Jul 8 12:05:05s -0:05:05 -
Rule sol88 1988 only - Jul 9 12:05:10s -0:05:10 -
Rule sol88 1988 only - Jul 10 12:05:20s -0:05:20 -
Rule sol88 1988 only - Jul 11 12:05:30s -0:05:30 -
Rule sol88 1988 only - Jul 12 12:05:35s -0:05:35 -
Rule sol88 1988 only - Jul 13 12:05:45s -0:05:45 -
Rule sol88 1988 only - Jul 14 12:05:50s -0:05:50 -
Rule sol88 1988 only - Jul 15 12:05:55s -0:05:55 -
Rule sol88 1988 only - Jul 16 12:06:00s -0:06:00 -
Rule sol88 1988 only - Jul 17 12:06:05s -0:06:05 -
Rule sol88 1988 only - Jul 18 12:06:10s -0:06:10 -
Rule sol88 1988 only - Jul 19 12:06:15s -0:06:15 -
Rule sol88 1988 only - Jul 20 12:06:20s -0:06:20 -
Rule sol88 1988 only - Jul 21 12:06:25s -0:06:25 -
Rule sol88 1988 only - Jul 22 12:06:25s -0:06:25 -
Rule sol88 1988 only - Jul 23 12:06:25s -0:06:25 -
Rule sol88 1988 only - Jul 24 12:06:30s -0:06:30 -
Rule sol88 1988 only - Jul 25 12:06:30s -0:06:30 -
Rule sol88 1988 only - Jul 26 12:06:30s -0:06:30 -
Rule sol88 1988 only - Jul 27 12:06:30s -0:06:30 -
Rule sol88 1988 only - Jul 28 12:06:30s -0:06:30 -
Rule sol88 1988 only - Jul 29 12:06:25s -0:06:25 -
Rule sol88 1988 only - Jul 30 12:06:25s -0:06:25 -
Rule sol88 1988 only - Jul 31 12:06:20s -0:06:20 -
Rule sol88 1988 only - Aug 1 12:06:15s -0:06:15 -
Rule sol88 1988 only - Aug 2 12:06:15s -0:06:15 -
Rule sol88 1988 only - Aug 3 12:06:10s -0:06:10 -
Rule sol88 1988 only - Aug 4 12:06:05s -0:06:05 -
Rule sol88 1988 only - Aug 5 12:05:55s -0:05:55 -
Rule sol88 1988 only - Aug 6 12:05:50s -0:05:50 -
Rule sol88 1988 only - Aug 7 12:05:45s -0:05:45 -
Rule sol88 1988 only - Aug 8 12:05:35s -0:05:35 -
Rule sol88 1988 only - Aug 9 12:05:25s -0:05:25 -
Rule sol88 1988 only - Aug 10 12:05:20s -0:05:20 -
Rule sol88 1988 only - Aug 11 12:05:10s -0:05:10 -
Rule sol88 1988 only - Aug 12 12:05:00s -0:05:00 -
Rule sol88 1988 only - Aug 13 12:04:50s -0:04:50 -
Rule sol88 1988 only - Aug 14 12:04:35s -0:04:35 -
Rule sol88 1988 only - Aug 15 12:04:25s -0:04:25 -
Rule sol88 1988 only - Aug 16 12:04:15s -0:04:15 -
Rule sol88 1988 only - Aug 17 12:04:00s -0:04:00 -
Rule sol88 1988 only - Aug 18 12:03:50s -0:03:50 -
Rule sol88 1988 only - Aug 19 12:03:35s -0:03:35 -
Rule sol88 1988 only - Aug 20 12:03:20s -0:03:20 -
Rule sol88 1988 only - Aug 21 12:03:05s -0:03:05 -
Rule sol88 1988 only - Aug 22 12:02:50s -0:02:50 -
Rule sol88 1988 only - Aug 23 12:02:35s -0:02:35 -
Rule sol88 1988 only - Aug 24 12:02:20s -0:02:20 -
Rule sol88 1988 only - Aug 25 12:02:00s -0:02:00 -
Rule sol88 1988 only - Aug 26 12:01:45s -0:01:45 -
Rule sol88 1988 only - Aug 27 12:01:30s -0:01:30 -
Rule sol88 1988 only - Aug 28 12:01:10s -0:01:10 -
Rule sol88 1988 only - Aug 29 12:00:50s -0:00:50 -
Rule sol88 1988 only - Aug 30 12:00:35s -0:00:35 -
Rule sol88 1988 only - Aug 31 12:00:15s -0:00:15 -
Rule sol88 1988 only - Sep 1 11:59:55s 0:00:05 -
Rule sol88 1988 only - Sep 2 11:59:35s 0:00:25 -
Rule sol88 1988 only - Sep 3 11:59:20s 0:00:40 -
Rule sol88 1988 only - Sep 4 11:59:00s 0:01:00 -
Rule sol88 1988 only - Sep 5 11:58:40s 0:01:20 -
Rule sol88 1988 only - Sep 6 11:58:20s 0:01:40 -
Rule sol88 1988 only - Sep 7 11:58:00s 0:02:00 -
Rule sol88 1988 only - Sep 8 11:57:35s 0:02:25 -
Rule sol88 1988 only - Sep 9 11:57:15s 0:02:45 -
Rule sol88 1988 only - Sep 10 11:56:55s 0:03:05 -
Rule sol88 1988 only - Sep 11 11:56:35s 0:03:25 -
Rule sol88 1988 only - Sep 12 11:56:15s 0:03:45 -
Rule sol88 1988 only - Sep 13 11:55:50s 0:04:10 -
Rule sol88 1988 only - Sep 14 11:55:30s 0:04:30 -
Rule sol88 1988 only - Sep 15 11:55:10s 0:04:50 -
Rule sol88 1988 only - Sep 16 11:54:50s 0:05:10 -
Rule sol88 1988 only - Sep 17 11:54:25s 0:05:35 -
Rule sol88 1988 only - Sep 18 11:54:05s 0:05:55 -
Rule sol88 1988 only - Sep 19 11:53:45s 0:06:15 -
Rule sol88 1988 only - Sep 20 11:53:25s 0:06:35 -
Rule sol88 1988 only - Sep 21 11:53:00s 0:07:00 -
Rule sol88 1988 only - Sep 22 11:52:40s 0:07:20 -
Rule sol88 1988 only - Sep 23 11:52:20s 0:07:40 -
Rule sol88 1988 only - Sep 24 11:52:00s 0:08:00 -
Rule sol88 1988 only - Sep 25 11:51:40s 0:08:20 -
Rule sol88 1988 only - Sep 26 11:51:15s 0:08:45 -
Rule sol88 1988 only - Sep 27 11:50:55s 0:09:05 -
Rule sol88 1988 only - Sep 28 11:50:35s 0:09:25 -
Rule sol88 1988 only - Sep 29 11:50:15s 0:09:45 -
Rule sol88 1988 only - Sep 30 11:49:55s 0:10:05 -
Rule sol88 1988 only - Oct 1 11:49:35s 0:10:25 -
Rule sol88 1988 only - Oct 2 11:49:20s 0:10:40 -
Rule sol88 1988 only - Oct 3 11:49:00s 0:11:00 -
Rule sol88 1988 only - Oct 4 11:48:40s 0:11:20 -
Rule sol88 1988 only - Oct 5 11:48:25s 0:11:35 -
Rule sol88 1988 only - Oct 6 11:48:05s 0:11:55 -
Rule sol88 1988 only - Oct 7 11:47:50s 0:12:10 -
Rule sol88 1988 only - Oct 8 11:47:30s 0:12:30 -
Rule sol88 1988 only - Oct 9 11:47:15s 0:12:45 -
Rule sol88 1988 only - Oct 10 11:47:00s 0:13:00 -
Rule sol88 1988 only - Oct 11 11:46:45s 0:13:15 -
Rule sol88 1988 only - Oct 12 11:46:30s 0:13:30 -
Rule sol88 1988 only - Oct 13 11:46:15s 0:13:45 -
Rule sol88 1988 only - Oct 14 11:46:00s 0:14:00 -
Rule sol88 1988 only - Oct 15 11:45:45s 0:14:15 -
Rule sol88 1988 only - Oct 16 11:45:35s 0:14:25 -
Rule sol88 1988 only - Oct 17 11:45:20s 0:14:40 -
Rule sol88 1988 only - Oct 18 11:45:10s 0:14:50 -
Rule sol88 1988 only - Oct 19 11:45:00s 0:15:00 -
Rule sol88 1988 only - Oct 20 11:44:45s 0:15:15 -
Rule sol88 1988 only - Oct 21 11:44:40s 0:15:20 -
Rule sol88 1988 only - Oct 22 11:44:30s 0:15:30 -
Rule sol88 1988 only - Oct 23 11:44:20s 0:15:40 -
Rule sol88 1988 only - Oct 24 11:44:10s 0:15:50 -
Rule sol88 1988 only - Oct 25 11:44:05s 0:15:55 -
Rule sol88 1988 only - Oct 26 11:44:00s 0:16:00 -
Rule sol88 1988 only - Oct 27 11:43:55s 0:16:05 -
Rule sol88 1988 only - Oct 28 11:43:50s 0:16:10 -
Rule sol88 1988 only - Oct 29 11:43:45s 0:16:15 -
Rule sol88 1988 only - Oct 30 11:43:40s 0:16:20 -
Rule sol88 1988 only - Oct 31 11:43:40s 0:16:20 -
Rule sol88 1988 only - Nov 1 11:43:35s 0:16:25 -
Rule sol88 1988 only - Nov 2 11:43:35s 0:16:25 -
Rule sol88 1988 only - Nov 3 11:43:35s 0:16:25 -
Rule sol88 1988 only - Nov 4 11:43:35s 0:16:25 -
Rule sol88 1988 only - Nov 5 11:43:40s 0:16:20 -
Rule sol88 1988 only - Nov 6 11:43:40s 0:16:20 -
Rule sol88 1988 only - Nov 7 11:43:45s 0:16:15 -
Rule sol88 1988 only - Nov 8 11:43:45s 0:16:15 -
Rule sol88 1988 only - Nov 9 11:43:50s 0:16:10 -
Rule sol88 1988 only - Nov 10 11:44:00s 0:16:00 -
Rule sol88 1988 only - Nov 11 11:44:05s 0:15:55 -
Rule sol88 1988 only - Nov 12 11:44:10s 0:15:50 -
Rule sol88 1988 only - Nov 13 11:44:20s 0:15:40 -
Rule sol88 1988 only - Nov 14 11:44:30s 0:15:30 -
Rule sol88 1988 only - Nov 15 11:44:40s 0:15:20 -
Rule sol88 1988 only - Nov 16 11:44:50s 0:15:10 -
Rule sol88 1988 only - Nov 17 11:45:00s 0:15:00 -
Rule sol88 1988 only - Nov 18 11:45:15s 0:14:45 -
Rule sol88 1988 only - Nov 19 11:45:25s 0:14:35 -
Rule sol88 1988 only - Nov 20 11:45:40s 0:14:20 -
Rule sol88 1988 only - Nov 21 11:45:55s 0:14:05 -
Rule sol88 1988 only - Nov 22 11:46:10s 0:13:50 -
Rule sol88 1988 only - Nov 23 11:46:30s 0:13:30 -
Rule sol88 1988 only - Nov 24 11:46:45s 0:13:15 -
Rule sol88 1988 only - Nov 25 11:47:05s 0:12:55 -
Rule sol88 1988 only - Nov 26 11:47:20s 0:12:40 -
Rule sol88 1988 only - Nov 27 11:47:40s 0:12:20 -
Rule sol88 1988 only - Nov 28 11:48:00s 0:12:00 -
Rule sol88 1988 only - Nov 29 11:48:25s 0:11:35 -
Rule sol88 1988 only - Nov 30 11:48:45s 0:11:15 -
Rule sol88 1988 only - Dec 1 11:49:05s 0:10:55 -
Rule sol88 1988 only - Dec 2 11:49:30s 0:10:30 -
Rule sol88 1988 only - Dec 3 11:49:55s 0:10:05 -
Rule sol88 1988 only - Dec 4 11:50:15s 0:09:45 -
Rule sol88 1988 only - Dec 5 11:50:40s 0:09:20 -
Rule sol88 1988 only - Dec 6 11:51:05s 0:08:55 -
Rule sol88 1988 only - Dec 7 11:51:35s 0:08:25 -
Rule sol88 1988 only - Dec 8 11:52:00s 0:08:00 -
Rule sol88 1988 only - Dec 9 11:52:25s 0:07:35 -
Rule sol88 1988 only - Dec 10 11:52:55s 0:07:05 -
Rule sol88 1988 only - Dec 11 11:53:20s 0:06:40 -
Rule sol88 1988 only - Dec 12 11:53:50s 0:06:10 -
Rule sol88 1988 only - Dec 13 11:54:15s 0:05:45 -
Rule sol88 1988 only - Dec 14 11:54:45s 0:05:15 -
Rule sol88 1988 only - Dec 15 11:55:15s 0:04:45 -
Rule sol88 1988 only - Dec 16 11:55:45s 0:04:15 -
Rule sol88 1988 only - Dec 17 11:56:15s 0:03:45 -
Rule sol88 1988 only - Dec 18 11:56:40s 0:03:20 -
Rule sol88 1988 only - Dec 19 11:57:10s 0:02:50 -
Rule sol88 1988 only - Dec 20 11:57:40s 0:02:20 -
Rule sol88 1988 only - Dec 21 11:58:10s 0:01:50 -
Rule sol88 1988 only - Dec 22 11:58:40s 0:01:20 -
Rule sol88 1988 only - Dec 23 11:59:10s 0:00:50 -
Rule sol88 1988 only - Dec 24 11:59:40s 0:00:20 -
Rule sol88 1988 only - Dec 25 12:00:10s -0:00:10 -
Rule sol88 1988 only - Dec 26 12:00:40s -0:00:40 -
Rule sol88 1988 only - Dec 27 12:01:10s -0:01:10 -
Rule sol88 1988 only - Dec 28 12:01:40s -0:01:40 -
Rule sol88 1988 only - Dec 29 12:02:10s -0:02:10 -
Rule sol88 1988 only - Dec 30 12:02:35s -0:02:35 -
Rule sol88 1988 only - Dec 31 12:03:05s -0:03:05 -
# Riyadh is at about 46 degrees 46 minutes East: 3 hrs, 7 mins, 4 secs
# Before and after 1988, we'll operate on local mean solar time.
# Zone NAME GMTOFF RULES/SAVE FORMAT [UNTIL]
Zone Asia/Riyadh88 3:07:04 - zzz 1988
3:07:04 sol88 zzz 1989
3:07:04 - zzz
# For backward compatibility...
Link Asia/Riyadh88 Mideast/Riyadh88
================================================
FILE: public/admin-panel/assets/libs/flot/examples/axes-time-zones/tz/solar89
================================================
#
# This file is in the public domain, so clarified as of
# 2009-05-17 by Arthur David Olson.
# Apparent noon times below are for Riyadh; they're a bit off for other places.
# Times were computed using a formula provided by the U. S. Naval Observatory:
# eqt = -105.8 * sin(l) + 596.2 * sin(2 * l) + 4.4 * sin(3 * l)
# -12.7 * sin(4 * l) - 429.0 * cos(l) - 2.1 * cos (2 * l)
# + 19.3 * cos(3 * l);
# where l is the "mean longitude of the Sun" given by
# l = 279.642 degrees + 0.985647 * d
# and d is the interval in days from January 0, 0 hours Universal Time
# (equaling the day of the year plus the fraction of a day from zero hours).
# The accuracy of the formula is plus or minus three seconds.
#
# Rounding to the nearest five seconds results in fewer than
# 256 different "time types"--a limit that's faced because time types are
# stored on disk as unsigned chars.
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
Rule sol89 1989 only - Jan 1 12:03:35s -0:03:35 -
Rule sol89 1989 only - Jan 2 12:04:05s -0:04:05 -
Rule sol89 1989 only - Jan 3 12:04:30s -0:04:30 -
Rule sol89 1989 only - Jan 4 12:05:00s -0:05:00 -
Rule sol89 1989 only - Jan 5 12:05:25s -0:05:25 -
Rule sol89 1989 only - Jan 6 12:05:50s -0:05:50 -
Rule sol89 1989 only - Jan 7 12:06:15s -0:06:15 -
Rule sol89 1989 only - Jan 8 12:06:45s -0:06:45 -
Rule sol89 1989 only - Jan 9 12:07:10s -0:07:10 -
Rule sol89 1989 only - Jan 10 12:07:35s -0:07:35 -
Rule sol89 1989 only - Jan 11 12:07:55s -0:07:55 -
Rule sol89 1989 only - Jan 12 12:08:20s -0:08:20 -
Rule sol89 1989 only - Jan 13 12:08:45s -0:08:45 -
Rule sol89 1989 only - Jan 14 12:09:05s -0:09:05 -
Rule sol89 1989 only - Jan 15 12:09:25s -0:09:25 -
Rule sol89 1989 only - Jan 16 12:09:45s -0:09:45 -
Rule sol89 1989 only - Jan 17 12:10:05s -0:10:05 -
Rule sol89 1989 only - Jan 18 12:10:25s -0:10:25 -
Rule sol89 1989 only - Jan 19 12:10:45s -0:10:45 -
Rule sol89 1989 only - Jan 20 12:11:05s -0:11:05 -
Rule sol89 1989 only - Jan 21 12:11:20s -0:11:20 -
Rule sol89 1989 only - Jan 22 12:11:35s -0:11:35 -
Rule sol89 1989 only - Jan 23 12:11:55s -0:11:55 -
Rule sol89 1989 only - Jan 24 12:12:10s -0:12:10 -
Rule sol89 1989 only - Jan 25 12:12:20s -0:12:20 -
Rule sol89 1989 only - Jan 26 12:12:35s -0:12:35 -
Rule sol89 1989 only - Jan 27 12:12:50s -0:12:50 -
Rule sol89 1989 only - Jan 28 12:13:00s -0:13:00 -
Rule sol89 1989 only - Jan 29 12:13:10s -0:13:10 -
Rule sol89 1989 only - Jan 30 12:13:20s -0:13:20 -
Rule sol89 1989 only - Jan 31 12:13:30s -0:13:30 -
Rule sol89 1989 only - Feb 1 12:13:40s -0:13:40 -
Rule sol89 1989 only - Feb 2 12:13:45s -0:13:45 -
Rule sol89 1989 only - Feb 3 12:13:55s -0:13:55 -
Rule sol89 1989 only - Feb 4 12:14:00s -0:14:00 -
Rule sol89 1989 only - Feb 5 12:14:05s -0:14:05 -
Rule sol89 1989 only - Feb 6 12:14:10s -0:14:10 -
Rule sol89 1989 only - Feb 7 12:14:10s -0:14:10 -
Rule sol89 1989 only - Feb 8 12:14:15s -0:14:15 -
Rule sol89 1989 only - Feb 9 12:14:15s -0:14:15 -
Rule sol89 1989 only - Feb 10 12:14:20s -0:14:20 -
Rule sol89 1989 only - Feb 11 12:14:20s -0:14:20 -
Rule sol89 1989 only - Feb 12 12:14:20s -0:14:20 -
Rule sol89 1989 only - Feb 13 12:14:15s -0:14:15 -
Rule sol89 1989 only - Feb 14 12:14:15s -0:14:15 -
Rule sol89 1989 only - Feb 15 12:14:10s -0:14:10 -
Rule sol89 1989 only - Feb 16 12:14:10s -0:14:10 -
Rule sol89 1989 only - Feb 17 12:14:05s -0:14:05 -
Rule sol89 1989 only - Feb 18 12:14:00s -0:14:00 -
Rule sol89 1989 only - Feb 19 12:13:55s -0:13:55 -
Rule sol89 1989 only - Feb 20 12:13:50s -0:13:50 -
Rule sol89 1989 only - Feb 21 12:13:40s -0:13:40 -
Rule sol89 1989 only - Feb 22 12:13:35s -0:13:35 -
Rule sol89 1989 only - Feb 23 12:13:25s -0:13:25 -
Rule sol89 1989 only - Feb 24 12:13:15s -0:13:15 -
Rule sol89 1989 only - Feb 25 12:13:05s -0:13:05 -
Rule sol89 1989 only - Feb 26 12:12:55s -0:12:55 -
Rule sol89 1989 only - Feb 27 12:12:45s -0:12:45 -
Rule sol89 1989 only - Feb 28 12:12:35s -0:12:35 -
Rule sol89 1989 only - Mar 1 12:12:25s -0:12:25 -
Rule sol89 1989 only - Mar 2 12:12:10s -0:12:10 -
Rule sol89 1989 only - Mar 3 12:12:00s -0:12:00 -
Rule sol89 1989 only - Mar 4 12:11:45s -0:11:45 -
Rule sol89 1989 only - Mar 5 12:11:35s -0:11:35 -
Rule sol89 1989 only - Mar 6 12:11:20s -0:11:20 -
Rule sol89 1989 only - Mar 7 12:11:05s -0:11:05 -
Rule sol89 1989 only - Mar 8 12:10:50s -0:10:50 -
Rule sol89 1989 only - Mar 9 12:10:35s -0:10:35 -
Rule sol89 1989 only - Mar 10 12:10:20s -0:10:20 -
Rule sol89 1989 only - Mar 11 12:10:05s -0:10:05 -
Rule sol89 1989 only - Mar 12 12:09:50s -0:09:50 -
Rule sol89 1989 only - Mar 13 12:09:30s -0:09:30 -
Rule sol89 1989 only - Mar 14 12:09:15s -0:09:15 -
Rule sol89 1989 only - Mar 15 12:09:00s -0:09:00 -
Rule sol89 1989 only - Mar 16 12:08:40s -0:08:40 -
Rule sol89 1989 only - Mar 17 12:08:25s -0:08:25 -
Rule sol89 1989 only - Mar 18 12:08:05s -0:08:05 -
Rule sol89 1989 only - Mar 19 12:07:50s -0:07:50 -
Rule sol89 1989 only - Mar 20 12:07:30s -0:07:30 -
Rule sol89 1989 only - Mar 21 12:07:15s -0:07:15 -
Rule sol89 1989 only - Mar 22 12:06:55s -0:06:55 -
Rule sol89 1989 only - Mar 23 12:06:35s -0:06:35 -
Rule sol89 1989 only - Mar 24 12:06:20s -0:06:20 -
Rule sol89 1989 only - Mar 25 12:06:00s -0:06:00 -
Rule sol89 1989 only - Mar 26 12:05:40s -0:05:40 -
Rule sol89 1989 only - Mar 27 12:05:25s -0:05:25 -
Rule sol89 1989 only - Mar 28 12:05:05s -0:05:05 -
Rule sol89 1989 only - Mar 29 12:04:50s -0:04:50 -
Rule sol89 1989 only - Mar 30 12:04:30s -0:04:30 -
Rule sol89 1989 only - Mar 31 12:04:10s -0:04:10 -
Rule sol89 1989 only - Apr 1 12:03:55s -0:03:55 -
Rule sol89 1989 only - Apr 2 12:03:35s -0:03:35 -
Rule sol89 1989 only - Apr 3 12:03:20s -0:03:20 -
Rule sol89 1989 only - Apr 4 12:03:00s -0:03:00 -
Rule sol89 1989 only - Apr 5 12:02:45s -0:02:45 -
Rule sol89 1989 only - Apr 6 12:02:25s -0:02:25 -
Rule sol89 1989 only - Apr 7 12:02:10s -0:02:10 -
Rule sol89 1989 only - Apr 8 12:01:50s -0:01:50 -
Rule sol89 1989 only - Apr 9 12:01:35s -0:01:35 -
Rule sol89 1989 only - Apr 10 12:01:20s -0:01:20 -
Rule sol89 1989 only - Apr 11 12:01:05s -0:01:05 -
Rule sol89 1989 only - Apr 12 12:00:50s -0:00:50 -
Rule sol89 1989 only - Apr 13 12:00:35s -0:00:35 -
Rule sol89 1989 only - Apr 14 12:00:20s -0:00:20 -
Rule sol89 1989 only - Apr 15 12:00:05s -0:00:05 -
Rule sol89 1989 only - Apr 16 11:59:50s 0:00:10 -
Rule sol89 1989 only - Apr 17 11:59:35s 0:00:25 -
Rule sol89 1989 only - Apr 18 11:59:20s 0:00:40 -
Rule sol89 1989 only - Apr 19 11:59:10s 0:00:50 -
Rule sol89 1989 only - Apr 20 11:58:55s 0:01:05 -
Rule sol89 1989 only - Apr 21 11:58:45s 0:01:15 -
Rule sol89 1989 only - Apr 22 11:58:30s 0:01:30 -
Rule sol89 1989 only - Apr 23 11:58:20s 0:01:40 -
Rule sol89 1989 only - Apr 24 11:58:10s 0:01:50 -
Rule sol89 1989 only - Apr 25 11:58:00s 0:02:00 -
Rule sol89 1989 only - Apr 26 11:57:50s 0:02:10 -
Rule sol89 1989 only - Apr 27 11:57:40s 0:02:20 -
Rule sol89 1989 only - Apr 28 11:57:30s 0:02:30 -
Rule sol89 1989 only - Apr 29 11:57:20s 0:02:40 -
Rule sol89 1989 only - Apr 30 11:57:15s 0:02:45 -
Rule sol89 1989 only - May 1 11:57:05s 0:02:55 -
Rule sol89 1989 only - May 2 11:57:00s 0:03:00 -
Rule sol89 1989 only - May 3 11:56:50s 0:03:10 -
Rule sol89 1989 only - May 4 11:56:45s 0:03:15 -
Rule sol89 1989 only - May 5 11:56:40s 0:03:20 -
Rule sol89 1989 only - May 6 11:56:35s 0:03:25 -
Rule sol89 1989 only - May 7 11:56:30s 0:03:30 -
Rule sol89 1989 only - May 8 11:56:30s 0:03:30 -
Rule sol89 1989 only - May 9 11:56:25s 0:03:35 -
Rule sol89 1989 only - May 10 11:56:25s 0:03:35 -
Rule sol89 1989 only - May 11 11:56:20s 0:03:40 -
Rule sol89 1989 only - May 12 11:56:20s 0:03:40 -
Rule sol89 1989 only - May 13 11:56:20s 0:03:40 -
Rule sol89 1989 only - May 14 11:56:20s 0:03:40 -
Rule sol89 1989 only - May 15 11:56:20s 0:03:40 -
Rule sol89 1989 only - May 16 11:56:20s 0:03:40 -
Rule sol89 1989 only - May 17 11:56:20s 0:03:40 -
Rule sol89 1989 only - May 18 11:56:25s 0:03:35 -
Rule sol89 1989 only - May 19 11:56:25s 0:03:35 -
Rule sol89 1989 only - May 20 11:56:30s 0:03:30 -
Rule sol89 1989 only - May 21 11:56:35s 0:03:25 -
Rule sol89 1989 only - May 22 11:56:35s 0:03:25 -
Rule sol89 1989 only - May 23 11:56:40s 0:03:20 -
Rule sol89 1989 only - May 24 11:56:45s 0:03:15 -
Rule sol89 1989 only - May 25 11:56:55s 0:03:05 -
Rule sol89 1989 only - May 26 11:57:00s 0:03:00 -
Rule sol89 1989 only - May 27 11:57:05s 0:02:55 -
Rule sol89 1989 only - May 28 11:57:15s 0:02:45 -
Rule sol89 1989 only - May 29 11:57:20s 0:02:40 -
Rule sol89 1989 only - May 30 11:57:30s 0:02:30 -
Rule sol89 1989 only - May 31 11:57:35s 0:02:25 -
Rule sol89 1989 only - Jun 1 11:57:45s 0:02:15 -
Rule sol89 1989 only - Jun 2 11:57:55s 0:02:05 -
Rule sol89 1989 only - Jun 3 11:58:05s 0:01:55 -
Rule sol89 1989 only - Jun 4 11:58:15s 0:01:45 -
Rule sol89 1989 only - Jun 5 11:58:25s 0:01:35 -
Rule sol89 1989 only - Jun 6 11:58:35s 0:01:25 -
Rule sol89 1989 only - Jun 7 11:58:45s 0:01:15 -
Rule sol89 1989 only - Jun 8 11:59:00s 0:01:00 -
Rule sol89 1989 only - Jun 9 11:59:10s 0:00:50 -
Rule sol89 1989 only - Jun 10 11:59:20s 0:00:40 -
Rule sol89 1989 only - Jun 11 11:59:35s 0:00:25 -
Rule sol89 1989 only - Jun 12 11:59:45s 0:00:15 -
Rule sol89 1989 only - Jun 13 12:00:00s 0:00:00 -
Rule sol89 1989 only - Jun 14 12:00:10s -0:00:10 -
Rule sol89 1989 only - Jun 15 12:00:25s -0:00:25 -
Rule sol89 1989 only - Jun 16 12:00:35s -0:00:35 -
Rule sol89 1989 only - Jun 17 12:00:50s -0:00:50 -
Rule sol89 1989 only - Jun 18 12:01:05s -0:01:05 -
Rule sol89 1989 only - Jun 19 12:01:15s -0:01:15 -
Rule sol89 1989 only - Jun 20 12:01:30s -0:01:30 -
Rule sol89 1989 only - Jun 21 12:01:40s -0:01:40 -
Rule sol89 1989 only - Jun 22 12:01:55s -0:01:55 -
Rule sol89 1989 only - Jun 23 12:02:10s -0:02:10 -
Rule sol89 1989 only - Jun 24 12:02:20s -0:02:20 -
Rule sol89 1989 only - Jun 25 12:02:35s -0:02:35 -
Rule sol89 1989 only - Jun 26 12:02:45s -0:02:45 -
Rule sol89 1989 only - Jun 27 12:03:00s -0:03:00 -
Rule sol89 1989 only - Jun 28 12:03:10s -0:03:10 -
Rule sol89 1989 only - Jun 29 12:03:25s -0:03:25 -
Rule sol89 1989 only - Jun 30 12:03:35s -0:03:35 -
Rule sol89 1989 only - Jul 1 12:03:45s -0:03:45 -
Rule sol89 1989 only - Jul 2 12:04:00s -0:04:00 -
Rule sol89 1989 only - Jul 3 12:04:10s -0:04:10 -
Rule sol89 1989 only - Jul 4 12:04:20s -0:04:20 -
Rule sol89 1989 only - Jul 5 12:04:30s -0:04:30 -
Rule sol89 1989 only - Jul 6 12:04:40s -0:04:40 -
Rule sol89 1989 only - Jul 7 12:04:50s -0:04:50 -
Rule sol89 1989 only - Jul 8 12:05:00s -0:05:00 -
Rule sol89 1989 only - Jul 9 12:05:10s -0:05:10 -
Rule sol89 1989 only - Jul 10 12:05:20s -0:05:20 -
Rule sol89 1989 only - Jul 11 12:05:25s -0:05:25 -
Rule sol89 1989 only - Jul 12 12:05:35s -0:05:35 -
Rule sol89 1989 only - Jul 13 12:05:40s -0:05:40 -
Rule sol89 1989 only - Jul 14 12:05:50s -0:05:50 -
Rule sol89 1989 only - Jul 15 12:05:55s -0:05:55 -
Rule sol89 1989 only - Jul 16 12:06:00s -0:06:00 -
Rule sol89 1989 only - Jul 17 12:06:05s -0:06:05 -
Rule sol89 1989 only - Jul 18 12:06:10s -0:06:10 -
Rule sol89 1989 only - Jul 19 12:06:15s -0:06:15 -
Rule sol89 1989 only - Jul 20 12:06:20s -0:06:20 -
Rule sol89 1989 only - Jul 21 12:06:20s -0:06:20 -
Rule sol89 1989 only - Jul 22 12:06:25s -0:06:25 -
Rule sol89 1989 only - Jul 23 12:06:25s -0:06:25 -
Rule sol89 1989 only - Jul 24 12:06:30s -0:06:30 -
Rule sol89 1989 only - Jul 25 12:06:30s -0:06:30 -
Rule sol89 1989 only - Jul 26 12:06:30s -0:06:30 -
Rule sol89 1989 only - Jul 27 12:06:30s -0:06:30 -
Rule sol89 1989 only - Jul 28 12:06:30s -0:06:30 -
Rule sol89 1989 only - Jul 29 12:06:25s -0:06:25 -
Rule sol89 1989 only - Jul 30 12:06:25s -0:06:25 -
Rule sol89 1989 only - Jul 31 12:06:20s -0:06:20 -
Rule sol89 1989 only - Aug 1 12:06:20s -0:06:20 -
Rule sol89 1989 only - Aug 2 12:06:15s -0:06:15 -
Rule sol89 1989 only - Aug 3 12:06:10s -0:06:10 -
Rule sol89 1989 only - Aug 4 12:06:05s -0:06:05 -
Rule sol89 1989 only - Aug 5 12:06:00s -0:06:00 -
Rule sol89 1989 only - Aug 6 12:05:50s -0:05:50 -
Rule sol89 1989 only - Aug 7 12:05:45s -0:05:45 -
Rule sol89 1989 only - Aug 8 12:05:35s -0:05:35 -
Rule sol89 1989 only - Aug 9 12:05:30s -0:05:30 -
Rule sol89 1989 only - Aug 10 12:05:20s -0:05:20 -
Rule sol89 1989 only - Aug 11 12:05:10s -0:05:10 -
Rule sol89 1989 only - Aug 12 12:05:00s -0:05:00 -
Rule sol89 1989 only - Aug 13 12:04:50s -0:04:50 -
Rule sol89 1989 only - Aug 14 12:04:40s -0:04:40 -
Rule sol89 1989 only - Aug 15 12:04:30s -0:04:30 -
Rule sol89 1989 only - Aug 16 12:04:15s -0:04:15 -
Rule sol89 1989 only - Aug 17 12:04:05s -0:04:05 -
Rule sol89 1989 only - Aug 18 12:03:50s -0:03:50 -
Rule sol89 1989 only - Aug 19 12:03:35s -0:03:35 -
Rule sol89 1989 only - Aug 20 12:03:25s -0:03:25 -
Rule sol89 1989 only - Aug 21 12:03:10s -0:03:10 -
Rule sol89 1989 only - Aug 22 12:02:55s -0:02:55 -
Rule sol89 1989 only - Aug 23 12:02:40s -0:02:40 -
Rule sol89 1989 only - Aug 24 12:02:20s -0:02:20 -
Rule sol89 1989 only - Aug 25 12:02:05s -0:02:05 -
Rule sol89 1989 only - Aug 26 12:01:50s -0:01:50 -
Rule sol89 1989 only - Aug 27 12:01:30s -0:01:30 -
Rule sol89 1989 only - Aug 28 12:01:15s -0:01:15 -
Rule sol89 1989 only - Aug 29 12:00:55s -0:00:55 -
Rule sol89 1989 only - Aug 30 12:00:40s -0:00:40 -
Rule sol89 1989 only - Aug 31 12:00:20s -0:00:20 -
Rule sol89 1989 only - Sep 1 12:00:00s 0:00:00 -
Rule sol89 1989 only - Sep 2 11:59:45s 0:00:15 -
Rule sol89 1989 only - Sep 3 11:59:25s 0:00:35 -
Rule sol89 1989 only - Sep 4 11:59:05s 0:00:55 -
Rule sol89 1989 only - Sep 5 11:58:45s 0:01:15 -
Rule sol89 1989 only - Sep 6 11:58:25s 0:01:35 -
Rule sol89 1989 only - Sep 7 11:58:05s 0:01:55 -
Rule sol89 1989 only - Sep 8 11:57:45s 0:02:15 -
Rule sol89 1989 only - Sep 9 11:57:20s 0:02:40 -
Rule sol89 1989 only - Sep 10 11:57:00s 0:03:00 -
Rule sol89 1989 only - Sep 11 11:56:40s 0:03:20 -
Rule sol89 1989 only - Sep 12 11:56:20s 0:03:40 -
Rule sol89 1989 only - Sep 13 11:56:00s 0:04:00 -
Rule sol89 1989 only - Sep 14 11:55:35s 0:04:25 -
Rule sol89 1989 only - Sep 15 11:55:15s 0:04:45 -
Rule sol89 1989 only - Sep 16 11:54:55s 0:05:05 -
Rule sol89 1989 only - Sep 17 11:54:35s 0:05:25 -
Rule sol89 1989 only - Sep 18 11:54:10s 0:05:50 -
Rule sol89 1989 only - Sep 19 11:53:50s 0:06:10 -
Rule sol89 1989 only - Sep 20 11:53:30s 0:06:30 -
Rule sol89 1989 only - Sep 21 11:53:10s 0:06:50 -
Rule sol89 1989 only - Sep 22 11:52:45s 0:07:15 -
Rule sol89 1989 only - Sep 23 11:52:25s 0:07:35 -
Rule sol89 1989 only - Sep 24 11:52:05s 0:07:55 -
Rule sol89 1989 only - Sep 25 11:51:45s 0:08:15 -
Rule sol89 1989 only - Sep 26 11:51:25s 0:08:35 -
Rule sol89 1989 only - Sep 27 11:51:05s 0:08:55 -
Rule sol89 1989 only - Sep 28 11:50:40s 0:09:20 -
Rule sol89 1989 only - Sep 29 11:50:20s 0:09:40 -
Rule sol89 1989 only - Sep 30 11:50:00s 0:10:00 -
Rule sol89 1989 only - Oct 1 11:49:45s 0:10:15 -
Rule sol89 1989 only - Oct 2 11:49:25s 0:10:35 -
Rule sol89 1989 only - Oct 3 11:49:05s 0:10:55 -
Rule sol89 1989 only - Oct 4 11:48:45s 0:11:15 -
Rule sol89 1989 only - Oct 5 11:48:30s 0:11:30 -
Rule sol89 1989 only - Oct 6 11:48:10s 0:11:50 -
Rule sol89 1989 only - Oct 7 11:47:50s 0:12:10 -
Rule sol89 1989 only - Oct 8 11:47:35s 0:12:25 -
Rule sol89 1989 only - Oct 9 11:47:20s 0:12:40 -
Rule sol89 1989 only - Oct 10 11:47:00s 0:13:00 -
Rule sol89 1989 only - Oct 11 11:46:45s 0:13:15 -
Rule sol89 1989 only - Oct 12 11:46:30s 0:13:30 -
Rule sol89 1989 only - Oct 13 11:46:15s 0:13:45 -
Rule sol89 1989 only - Oct 14 11:46:00s 0:14:00 -
Rule sol89 1989 only - Oct 15 11:45:50s 0:14:10 -
Rule sol89 1989 only - Oct 16 11:45:35s 0:14:25 -
Rule sol89 1989 only - Oct 17 11:45:20s 0:14:40 -
Rule sol89 1989 only - Oct 18 11:45:10s 0:14:50 -
Rule sol89 1989 only - Oct 19 11:45:00s 0:15:00 -
Rule sol89 1989 only - Oct 20 11:44:50s 0:15:10 -
Rule sol89 1989 only - Oct 21 11:44:40s 0:15:20 -
Rule sol89 1989 only - Oct 22 11:44:30s 0:15:30 -
Rule sol89 1989 only - Oct 23 11:44:20s 0:15:40 -
Rule sol89 1989 only - Oct 24 11:44:10s 0:15:50 -
Rule sol89 1989 only - Oct 25 11:44:05s 0:15:55 -
Rule sol89 1989 only - Oct 26 11:44:00s 0:16:00 -
Rule sol89 1989 only - Oct 27 11:43:50s 0:16:10 -
Rule sol89 1989 only - Oct 28 11:43:45s 0:16:15 -
Rule sol89 1989 only - Oct 29 11:43:40s 0:16:20 -
Rule sol89 1989 only - Oct 30 11:43:40s 0:16:20 -
Rule sol89 1989 only - Oct 31 11:43:35s 0:16:25 -
Rule sol89 1989 only - Nov 1 11:43:35s 0:16:25 -
Rule sol89 1989 only - Nov 2 11:43:35s 0:16:25 -
Rule sol89 1989 only - Nov 3 11:43:30s 0:16:30 -
Rule sol89 1989 only - Nov 4 11:43:35s 0:16:25 -
Rule sol89 1989 only - Nov 5 11:43:35s 0:16:25 -
Rule sol89 1989 only - Nov 6 11:43:35s 0:16:25 -
Rule sol89 1989 only - Nov 7 11:43:40s 0:16:20 -
Rule sol89 1989 only - Nov 8 11:43:45s 0:16:15 -
Rule sol89 1989 only - Nov 9 11:43:50s 0:16:10 -
Rule sol89 1989 only - Nov 10 11:43:55s 0:16:05 -
Rule sol89 1989 only - Nov 11 11:44:00s 0:16:00 -
Rule sol89 1989 only - Nov 12 11:44:05s 0:15:55 -
Rule sol89 1989 only - Nov 13 11:44:15s 0:15:45 -
Rule sol89 1989 only - Nov 14 11:44:25s 0:15:35 -
Rule sol89 1989 only - Nov 15 11:44:35s 0:15:25 -
Rule sol89 1989 only - Nov 16 11:44:45s 0:15:15 -
Rule sol89 1989 only - Nov 17 11:44:55s 0:15:05 -
Rule sol89 1989 only - Nov 18 11:45:10s 0:14:50 -
Rule sol89 1989 only - Nov 19 11:45:20s 0:14:40 -
Rule sol89 1989 only - Nov 20 11:45:35s 0:14:25 -
Rule sol89 1989 only - Nov 21 11:45:50s 0:14:10 -
Rule sol89 1989 only - Nov 22 11:46:05s 0:13:55 -
Rule sol89 1989 only - Nov 23 11:46:25s 0:13:35 -
Rule sol89 1989 only - Nov 24 11:46:40s 0:13:20 -
Rule sol89 1989 only - Nov 25 11:47:00s 0:13:00 -
Rule sol89 1989 only - Nov 26 11:47:20s 0:12:40 -
Rule sol89 1989 only - Nov 27 11:47:35s 0:12:25 -
Rule sol89 1989 only - Nov 28 11:47:55s 0:12:05 -
Rule sol89 1989 only - Nov 29 11:48:20s 0:11:40 -
Rule sol89 1989 only - Nov 30 11:48:40s 0:11:20 -
Rule sol89 1989 only - Dec 1 11:49:00s 0:11:00 -
Rule sol89 1989 only - Dec 2 11:49:25s 0:10:35 -
Rule sol89 1989 only - Dec 3 11:49:50s 0:10:10 -
Rule sol89 1989 only - Dec 4 11:50:15s 0:09:45 -
Rule sol89 1989 only - Dec 5 11:50:35s 0:09:25 -
Rule sol89 1989 only - Dec 6 11:51:00s 0:09:00 -
Rule sol89 1989 only - Dec 7 11:51:30s 0:08:30 -
Rule sol89 1989 only - Dec 8 11:51:55s 0:08:05 -
Rule sol89 1989 only - Dec 9 11:52:20s 0:07:40 -
Rule sol89 1989 only - Dec 10 11:52:50s 0:07:10 -
Rule sol89 1989 only - Dec 11 11:53:15s 0:06:45 -
Rule sol89 1989 only - Dec 12 11:53:45s 0:06:15 -
Rule sol89 1989 only - Dec 13 11:54:10s 0:05:50 -
Rule sol89 1989 only - Dec 14 11:54:40s 0:05:20 -
Rule sol89 1989 only - Dec 15 11:55:10s 0:04:50 -
Rule sol89 1989 only - Dec 16 11:55:40s 0:04:20 -
Rule sol89 1989 only - Dec 17 11:56:05s 0:03:55 -
Rule sol89 1989 only - Dec 18 11:56:35s 0:03:25 -
Rule sol89 1989 only - Dec 19 11:57:05s 0:02:55 -
Rule sol89 1989 only - Dec 20 11:57:35s 0:02:25 -
Rule sol89 1989 only - Dec 21 11:58:05s 0:01:55 -
Rule sol89 1989 only - Dec 22 11:58:35s 0:01:25 -
Rule sol89 1989 only - Dec 23 11:59:05s 0:00:55 -
Rule sol89 1989 only - Dec 24 11:59:35s 0:00:25 -
Rule sol89 1989 only - Dec 25 12:00:05s -0:00:05 -
Rule sol89 1989 only - Dec 26 12:00:35s -0:00:35 -
Rule sol89 1989 only - Dec 27 12:01:05s -0:01:05 -
Rule sol89 1989 only - Dec 28 12:01:35s -0:01:35 -
Rule sol89 1989 only - Dec 29 12:02:00s -0:02:00 -
Rule sol89 1989 only - Dec 30 12:02:30s -0:02:30 -
Rule sol89 1989 only - Dec 31 12:03:00s -0:03:00 -
# Riyadh is at about 46 degrees 46 minutes East: 3 hrs, 7 mins, 4 secs
# Before and after 1989, we'll operate on local mean solar time.
# Zone NAME GMTOFF RULES/SAVE FORMAT [UNTIL]
Zone Asia/Riyadh89 3:07:04 - zzz 1989
3:07:04 sol89 zzz 1990
3:07:04 - zzz
# For backward compatibility...
Link Asia/Riyadh89 Mideast/Riyadh89
================================================
FILE: public/admin-panel/assets/libs/flot/examples/axes-time-zones/tz/southamerica
================================================
#
# This file is in the public domain, so clarified as of
# 2009-05-17 by Arthur David Olson.
# This data is by no means authoritative; if you think you know better,
# go ahead and edit the file (and please send any changes to
# tz@iana.org for general use in the future).
# From Paul Eggert (2006-03-22):
# A good source for time zone historical data outside the U.S. is
# Thomas G. Shanks and Rique Pottenger, The International Atlas (6th edition),
# San Diego: ACS Publications, Inc. (2003).
#
# Gwillim Law writes that a good source
# for recent time zone data is the International Air Transport
# Association's Standard Schedules Information Manual (IATA SSIM),
# published semiannually. Law sent in several helpful summaries
# of the IATA's data after 1990.
#
# Except where otherwise noted, Shanks & Pottenger is the source for
# entries through 1990, and IATA SSIM is the source for entries afterwards.
#
# Earlier editions of these tables used the North American style (e.g. ARST and
# ARDT for Argentine Standard and Daylight Time), but the following quote
# suggests that it's better to use European style (e.g. ART and ARST).
# I suggest the use of _Summer time_ instead of the more cumbersome
# _daylight-saving time_. _Summer time_ seems to be in general use
# in Europe and South America.
# -- E O Cutler, _New York Times_ (1937-02-14), quoted in
# H L Mencken, _The American Language: Supplement I_ (1960), p 466
#
# Earlier editions of these tables also used the North American style
# for time zones in Brazil, but this was incorrect, as Brazilians say
# "summer time". Reinaldo Goulart, a Sao Paulo businessman active in
# the railroad sector, writes (1999-07-06):
# The subject of time zones is currently a matter of discussion/debate in
# Brazil. Let's say that "the Brasilia time" is considered the
# "official time" because Brasilia is the capital city.
# The other three time zones are called "Brasilia time "minus one" or
# "plus one" or "plus two". As far as I know there is no such
# name/designation as "Eastern Time" or "Central Time".
# So I invented the following (English-language) abbreviations for now.
# Corrections are welcome!
# std dst
# -2:00 FNT FNST Fernando de Noronha
# -3:00 BRT BRST Brasilia
# -4:00 AMT AMST Amazon
# -5:00 ACT ACST Acre
###############################################################################
###############################################################################
# Argentina
# From Bob Devine (1988-01-28):
# Argentina: first Sunday in October to first Sunday in April since 1976.
# Double Summer time from 1969 to 1974. Switches at midnight.
# From U. S. Naval Observatory (1988-01-199):
# ARGENTINA 3 H BEHIND UTC
# From Hernan G. Otero (1995-06-26):
# I am sending modifications to the Argentine time zone table...
# AR was chosen because they are the ISO letters that represent Argentina.
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
Rule Arg 1930 only - Dec 1 0:00 1:00 S
Rule Arg 1931 only - Apr 1 0:00 0 -
Rule Arg 1931 only - Oct 15 0:00 1:00 S
Rule Arg 1932 1940 - Mar 1 0:00 0 -
Rule Arg 1932 1939 - Nov 1 0:00 1:00 S
Rule Arg 1940 only - Jul 1 0:00 1:00 S
Rule Arg 1941 only - Jun 15 0:00 0 -
Rule Arg 1941 only - Oct 15 0:00 1:00 S
Rule Arg 1943 only - Aug 1 0:00 0 -
Rule Arg 1943 only - Oct 15 0:00 1:00 S
Rule Arg 1946 only - Mar 1 0:00 0 -
Rule Arg 1946 only - Oct 1 0:00 1:00 S
Rule Arg 1963 only - Oct 1 0:00 0 -
Rule Arg 1963 only - Dec 15 0:00 1:00 S
Rule Arg 1964 1966 - Mar 1 0:00 0 -
Rule Arg 1964 1966 - Oct 15 0:00 1:00 S
Rule Arg 1967 only - Apr 2 0:00 0 -
Rule Arg 1967 1968 - Oct Sun>=1 0:00 1:00 S
Rule Arg 1968 1969 - Apr Sun>=1 0:00 0 -
Rule Arg 1974 only - Jan 23 0:00 1:00 S
Rule Arg 1974 only - May 1 0:00 0 -
Rule Arg 1988 only - Dec 1 0:00 1:00 S
#
# From Hernan G. Otero (1995-06-26):
# These corrections were contributed by InterSoft Argentina S.A.,
# obtaining the data from the:
# Talleres de Hidrografia Naval Argentina
# (Argentine Naval Hydrography Institute)
Rule Arg 1989 1993 - Mar Sun>=1 0:00 0 -
Rule Arg 1989 1992 - Oct Sun>=15 0:00 1:00 S
#
# From Hernan G. Otero (1995-06-26):
# From this moment on, the law that mandated the daylight saving
# time corrections was derogated and no more modifications
# to the time zones (for daylight saving) are now made.
#
# From Rives McDow (2000-01-10):
# On October 3, 1999, 0:00 local, Argentina implemented daylight savings time,
# which did not result in the switch of a time zone, as they stayed 9 hours
# from the International Date Line.
Rule Arg 1999 only - Oct Sun>=1 0:00 1:00 S
# From Paul Eggert (2007-12-28):
# DST was set to expire on March 5, not March 3, but since it was converted
# to standard time on March 3 it's more convenient for us to pretend that
# it ended on March 3.
Rule Arg 2000 only - Mar 3 0:00 0 -
#
# From Peter Gradelski via Steffen Thorsen (2000-03-01):
# We just checked with our Sao Paulo office and they say the government of
# Argentina decided not to become one of the countries that go on or off DST.
# So Buenos Aires should be -3 hours from GMT at all times.
#
# From Fabian L. Arce Jofre (2000-04-04):
# The law that claimed DST for Argentina was derogated by President Fernando
# de la Rua on March 2, 2000, because it would make people spend more energy
# in the winter time, rather than less. The change took effect on March 3.
#
# From Mariano Absatz (2001-06-06):
# one of the major newspapers here in Argentina said that the 1999
# Timezone Law (which never was effectively applied) will (would?) be
# in effect.... The article is at
# http://ar.clarin.com/diario/2001-06-06/e-01701.htm
# ... The Law itself is "Ley No 25155", sanctioned on 1999-08-25, enacted
# 1999-09-17, and published 1999-09-21. The official publication is at:
# http://www.boletin.jus.gov.ar/BON/Primera/1999/09-Septiembre/21/PDF/BO21-09-99LEG.PDF
# Regretfully, you have to subscribe (and pay) for the on-line version....
#
# (2001-06-12):
# the timezone for Argentina will not change next Sunday.
# Apparently it will do so on Sunday 24th....
# http://ar.clarin.com/diario/2001-06-12/s-03501.htm
#
# (2001-06-25):
# Last Friday (yes, the last working day before the date of the change), the
# Senate annulled the 1999 law that introduced the changes later postponed.
# http://www.clarin.com.ar/diario/2001-06-22/s-03601.htm
# It remains the vote of the Deputies..., but it will be the same....
# This kind of things had always been done this way in Argentina.
# We are still -03:00 all year round in all of the country.
#
# From Steffen Thorsen (2007-12-21):
# A user (Leonardo Chaim) reported that Argentina will adopt DST....
# all of the country (all Zone-entries) are affected. News reports like
# http://www.lanacion.com.ar/opinion/nota.asp?nota_id=973037 indicate
# that Argentina will use DST next year as well, from October to
# March, although exact rules are not given.
#
# From Jesper Norgaard Welen (2007-12-26)
# The last hurdle of Argentina DST is over, the proposal was approved in
# the lower chamber too (Deputados) with a vote 192 for and 2 against.
# By the way thanks to Mariano Absatz and Daniel Mario Vega for the link to
# the original scanned proposal, where the dates and the zero hours are
# clear and unambiguous...This is the article about final approval:
#
# http://www.lanacion.com.ar/politica/nota.asp?nota_id=973996
#
#
# From Paul Eggert (2007-12-22):
# For dates after mid-2008, the following rules are my guesses and
# are quite possibly wrong, but are more likely than no DST at all.
# From Alexander Krivenyshev (2008-09-05):
# As per message from Carlos Alberto Fonseca Arauz (Nicaragua),
# Argentina will start DST on Sunday October 19, 2008.
#
#
# http://www.worldtimezone.com/dst_news/dst_news_argentina03.html
#
# OR
#
# http://www.impulsobaires.com.ar/nota.php?id=57832 (in spanish)
#
# From Rodrigo Severo (2008-10-06):
# Here is some info available at a Gentoo bug related to TZ on Argentina's DST:
# ...
# ------- Comment #1 from [jmdocile] 2008-10-06 16:28 0000 -------
# Hi, there is a problem with timezone-data-2008e and maybe with
# timezone-data-2008f
# Argentinian law [Number] 25.155 is no longer valid.
#
# http://www.infoleg.gov.ar/infolegInternet/anexos/60000-64999/60036/norma.htm
#
# The new one is law [Number] 26.350
#
# http://www.infoleg.gov.ar/infolegInternet/anexos/135000-139999/136191/norma.htm
#
# So there is no summer time in Argentina for now.
# From Mariano Absatz (2008-10-20):
# Decree 1693/2008 applies Law 26.350 for the summer 2008/2009 establishing DST in Argentina
# From 2008-10-19 until 2009-03-15
#
# http://www.boletinoficial.gov.ar/Bora.Portal/CustomControls/PdfContent.aspx?fp=16102008&pi=3&pf=4&s=0&sec=01
#
#
# Decree 1705/2008 excepting 12 Provinces from applying DST in the summer 2008/2009:
# Catamarca, La Rioja, Mendoza, Salta, San Juan, San Luis, La Pampa, Neuquen, Rio Negro, Chubut, Santa Cruz
# and Tierra del Fuego
#
# http://www.boletinoficial.gov.ar/Bora.Portal/CustomControls/PdfContent.aspx?fp=17102008&pi=1&pf=1&s=0&sec=01
#
#
# Press release 235 dated Saturday October 18th, from the Government of the Province of Jujuy saying
# it will not apply DST either (even when it was not included in Decree 1705/2008)
#
# http://www.jujuy.gov.ar/index2/partes_prensa/18_10_08/235-181008.doc
#
# From fullinet (2009-10-18):
# As announced in
#
# http://www.argentina.gob.ar/argentina/portal/paginas.dhtml?pagina=356
#
# (an official .gob.ar) under title: "Sin Cambio de Hora" (english: "No hour change")
#
# "Por el momento, el Gobierno Nacional resolvio no modificar la hora
# oficial, decision que estaba en estudio para su implementacion el
# domingo 18 de octubre. Desde el Ministerio de Planificacion se anuncio
# que la Argentina hoy, en estas condiciones meteorologicas, no necesita
# la modificacion del huso horario, ya que 2009 nos encuentra con
# crecimiento en la produccion y distribucion energetica."
Rule Arg 2007 only - Dec 30 0:00 1:00 S
Rule Arg 2008 2009 - Mar Sun>=15 0:00 0 -
Rule Arg 2008 only - Oct Sun>=15 0:00 1:00 S
# From Mariano Absatz (2004-05-21):
# Today it was officially published that the Province of Mendoza is changing
# its timezone this winter... starting tomorrow night....
# http://www.gobernac.mendoza.gov.ar/boletin/pdf/20040521-27158-normas.pdf
# From Paul Eggert (2004-05-24):
# It's Law No. 7,210. This change is due to a public power emergency, so for
# now we'll assume it's for this year only.
#
# From Paul Eggert (2006-03-22):
#
# Hora de verano para la Republica Argentina (2003-06-08)
# says that standard time in Argentina from 1894-10-31
# to 1920-05-01 was -4:16:48.25. Go with this more-precise value
# over Shanks & Pottenger.
#
# From Mariano Absatz (2004-06-05):
# These media articles from a major newspaper mostly cover the current state:
# http://www.lanacion.com.ar/04/05/27/de_604825.asp
# http://www.lanacion.com.ar/04/05/28/de_605203.asp
#
# The following eight (8) provinces pulled clocks back to UTC-04:00 at
# midnight Monday May 31st. (that is, the night between 05/31 and 06/01).
# Apparently, all nine provinces would go back to UTC-03:00 at the same
# time in October 17th.
#
# Catamarca, Chubut, La Rioja, San Juan, San Luis, Santa Cruz,
# Tierra del Fuego, Tucuman.
#
# From Mariano Absatz (2004-06-14):
# ... this weekend, the Province of Tucuman decided it'd go back to UTC-03:00
# yesterday midnight (that is, at 24:00 Saturday 12th), since the people's
# annoyance with the change is much higher than the power savings obtained....
#
# From Gwillim Law (2004-06-14):
# http://www.lanacion.com.ar/04/06/10/de_609078.asp ...
# "The time change in Tierra del Fuego was a conflicted decision from
# the start. The government had decreed that the measure would take
# effect on June 1, but a normative error forced the new time to begin
# three days earlier, from a Saturday to a Sunday....
# Our understanding was that the change was originally scheduled to take place
# on June 1 at 00:00 in Chubut, Santa Cruz, Tierra del Fuego (and some other
# provinces). Sunday was May 30, only two days earlier. So the article
# contains a contradiction. I would give more credence to the Saturday/Sunday
# date than the "three days earlier" phrase, and conclude that Tierra del
# Fuego set its clocks back at 2004-05-30 00:00.
#
# From Steffen Thorsen (2004-10-05):
# The previous law 7210 which changed the province of Mendoza's time zone
# back in May have been modified slightly in a new law 7277, which set the
# new end date to 2004-09-26 (original date was 2004-10-17).
# http://www.gobernac.mendoza.gov.ar/boletin/pdf/20040924-27244-normas.pdf
#
# From Mariano Absatz (2004-10-05):
# San Juan changed from UTC-03:00 to UTC-04:00 at midnight between
# Sunday, May 30th and Monday, May 31st. It changed back to UTC-03:00
# at midnight between Saturday, July 24th and Sunday, July 25th....
# http://www.sanjuan.gov.ar/prensa/archivo/000329.html
# http://www.sanjuan.gov.ar/prensa/archivo/000426.html
# http://www.sanjuan.gov.ar/prensa/archivo/000441.html
# From Alex Krivenyshev (2008-01-17):
# Here are articles that Argentina Province San Luis is planning to end DST
# as earlier as upcoming Monday January 21, 2008 or February 2008:
#
# Provincia argentina retrasa reloj y marca diferencia con resto del pais
# (Argentine Province delayed clock and mark difference with the rest of the
# country)
#
# http://cl.invertia.com/noticias/noticia.aspx?idNoticia=200801171849_EFE_ET4373&idtel
#
#
# Es inminente que en San Luis atrasen una hora los relojes
# (It is imminent in San Luis clocks one hour delay)
#
# http://www.lagaceta.com.ar/vernotae.asp?id_nota=253414
#
#
#
# http://www.worldtimezone.net/dst_news/dst_news_argentina02.html
#
# From Jesper Norgaard Welen (2008-01-18):
# The page of the San Luis provincial government
#
# http://www.sanluis.gov.ar/notas.asp?idCanal=0&id=22812
#
# confirms what Alex Krivenyshev has earlier sent to the tz
# emailing list about that San Luis plans to return to standard
# time much earlier than the rest of the country. It also
# confirms that upon request the provinces San Juan and Mendoza
# refused to follow San Luis in this change.
#
# The change is supposed to take place Monday the 21.st at 0:00
# hours. As far as I understand it if this goes ahead, we need
# a new timezone for San Luis (although there are also documented
# independent changes in the southamerica file of San Luis in
# 1990 and 1991 which has not been confirmed).
# From Jesper Norgaard Welen (2008-01-25):
# Unfortunately the below page has become defunct, about the San Luis
# time change. Perhaps because it now is part of a group of pages "Most
# important pages of 2008."
#
# You can use
#
# http://www.sanluis.gov.ar/notas.asp?idCanal=8141&id=22834
#
# instead it seems. Or use "Buscador" from the main page of the San Luis
# government, and fill in "huso" and click OK, and you will get 3 pages
# from which the first one is identical to the above.
# From Mariano Absatz (2008-01-28):
# I can confirm that the Province of San Luis (and so far only that
# province) decided to go back to UTC-3 effective midnight Jan 20th 2008
# (that is, Monday 21st at 0:00 is the time the clocks were delayed back
# 1 hour), and they intend to keep UTC-3 as their timezone all year round
# (that is, unless they change their mind any minute now).
#
# So we'll have to add yet another city to 'southamerica' (I think San
# Luis city is the mos populated city in the Province, so it'd be
# America/Argentina/San_Luis... of course I can't remember if San Luis's
# history of particular changes goes along with Mendoza or San Juan :-(
# (I only remember not being able to collect hard facts about San Luis
# back in 2004, when these provinces changed to UTC-4 for a few days, I
# mailed them personally and never got an answer).
# From Paul Eggert (2008-06-30):
# Unless otherwise specified, data are from Shanks & Pottenger through 1992,
# from the IATA otherwise. As noted below, Shanks & Pottenger say that
# America/Cordoba split into 6 subregions during 1991/1992, one of which
# was America/San_Luis, but we haven't verified this yet so for now we'll
# keep America/Cordoba a single region rather than splitting it into the
# other 5 subregions.
# From Mariano Absatz (2009-03-13):
# Yesterday (with our usual 2-day notice) the Province of San Luis
# decided that next Sunday instead of "staying" @utc-03:00 they will go
# to utc-04:00 until the second Saturday in October...
#
# The press release is at
#
# http://www.sanluis.gov.ar/SL/Paginas/NoticiaDetalle.asp?TemaId=1&InfoPrensaId=3102
#
# (I couldn't find the decree, but
#
# www.sanluis.gov.ar
#
# is the official page for the Province Government).
#
# There's also a note in only one of the major national papers (La Nacin) at
#
# http://www.lanacion.com.ar/nota.asp?nota_id=1107912
#
#
# The press release says:
# (...) anunci que el prximo domingo a las 00:00 los puntanos debern
# atrasar una hora sus relojes.
#
# A partir de entonces, San Luis establecer el huso horario propio de
# la Provincia. De esta manera, durante el periodo del calendario anual
# 2009, el cambio horario quedar comprendido entre las 00:00 del tercer
# domingo de marzo y las 24:00 del segundo sbado de octubre.
# Quick&dirty translation
# (...) announced that next Sunday, at 00:00, Puntanos (the San Luis
# inhabitants) will have to turn back one hour their clocks
#
# Since then, San Luis will establish its own Province timezone. Thus,
# during 2009, this timezone change will run from 00:00 the third Sunday
# in March until 24:00 of the second Saturday in October.
# From Mariano Absatz (2009-10-16):
# ...the Province of San Luis is a case in itself.
#
# The Law at
#
# is ambiguous because establishes a calendar from the 2nd Sunday in
# October at 0:00 thru the 2nd Saturday in March at 24:00 and the
# complement of that starting on the 2nd Sunday of March at 0:00 and
# ending on the 2nd Saturday of March at 24:00.
#
# This clearly breaks every time the 1st of March or October is a Sunday.
#
# IMHO, the "spirit of the Law" is to make the changes at 0:00 on the 2nd
# Sunday of October and March.
#
# The problem is that the changes in the rest of the Provinces that did
# change in 2007/2008, were made according to the Federal Law and Decrees
# that did so on the 3rd Sunday of October and March.
#
# In fact, San Luis actually switched from UTC-4 to UTC-3 last Sunday
# (October 11th) at 0:00.
#
# So I guess a new set of rules, besides "Arg", must be made and the last
# America/Argentina/San_Luis entries should change to use these...
#
# I'm enclosing a patch that does what I say... regretfully, the San Luis
# timezone must be called "WART/WARST" even when most of the time (like,
# right now) WARST == ART... that is, since last Sunday, all the country
# is using UTC-3, but in my patch, San Luis calls it "WARST" and the rest
# of the country calls it "ART".
# ...
# From Alexander Krivenyshev (2010-04-09):
# According to news reports from El Diario de la Republica Province San
# Luis, Argentina (standard time UTC-04) will keep Daylight Saving Time
# after April 11, 2010--will continue to have same time as rest of
# Argentina (UTC-3) (no DST).
#
# Confirmaron la prórroga del huso horario de verano (Spanish)
#
# http://www.eldiariodelarepublica.com/index.php?option=com_content&task=view&id=29383&Itemid=9
#
# or (some English translation):
#
# http://www.worldtimezone.com/dst_news/dst_news_argentina08.html
#
# From Mariano Absatz (2010-04-12):
# yes...I can confirm this...and given that San Luis keeps calling
# UTC-03:00 "summer time", we should't just let San Luis go back to "Arg"
# rules...San Luis is still using "Western ARgentina Time" and it got
# stuck on Summer daylight savings time even though the summer is over.
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
#
# Buenos Aires (BA), Capital Federal (CF),
Zone America/Argentina/Buenos_Aires -3:53:48 - LMT 1894 Oct 31
-4:16:48 - CMT 1920 May # Cordoba Mean Time
-4:00 - ART 1930 Dec
-4:00 Arg AR%sT 1969 Oct 5
-3:00 Arg AR%sT 1999 Oct 3
-4:00 Arg AR%sT 2000 Mar 3
-3:00 Arg AR%sT
#
# Cordoba (CB), Santa Fe (SF), Entre Rios (ER), Corrientes (CN), Misiones (MN),
# Chaco (CC), Formosa (FM), Santiago del Estero (SE)
#
# Shanks & Pottenger also make the following claims, which we haven't verified:
# - Formosa switched to -3:00 on 1991-01-07.
# - Misiones switched to -3:00 on 1990-12-29.
# - Chaco switched to -3:00 on 1991-01-04.
# - Santiago del Estero switched to -4:00 on 1991-04-01,
# then to -3:00 on 1991-04-26.
#
Zone America/Argentina/Cordoba -4:16:48 - LMT 1894 Oct 31
-4:16:48 - CMT 1920 May
-4:00 - ART 1930 Dec
-4:00 Arg AR%sT 1969 Oct 5
-3:00 Arg AR%sT 1991 Mar 3
-4:00 - WART 1991 Oct 20
-3:00 Arg AR%sT 1999 Oct 3
-4:00 Arg AR%sT 2000 Mar 3
-3:00 Arg AR%sT
#
# Salta (SA), La Pampa (LP), Neuquen (NQ), Rio Negro (RN)
Zone America/Argentina/Salta -4:21:40 - LMT 1894 Oct 31
-4:16:48 - CMT 1920 May
-4:00 - ART 1930 Dec
-4:00 Arg AR%sT 1969 Oct 5
-3:00 Arg AR%sT 1991 Mar 3
-4:00 - WART 1991 Oct 20
-3:00 Arg AR%sT 1999 Oct 3
-4:00 Arg AR%sT 2000 Mar 3
-3:00 Arg AR%sT 2008 Oct 18
-3:00 - ART
#
# Tucuman (TM)
Zone America/Argentina/Tucuman -4:20:52 - LMT 1894 Oct 31
-4:16:48 - CMT 1920 May
-4:00 - ART 1930 Dec
-4:00 Arg AR%sT 1969 Oct 5
-3:00 Arg AR%sT 1991 Mar 3
-4:00 - WART 1991 Oct 20
-3:00 Arg AR%sT 1999 Oct 3
-4:00 Arg AR%sT 2000 Mar 3
-3:00 - ART 2004 Jun 1
-4:00 - WART 2004 Jun 13
-3:00 Arg AR%sT
#
# La Rioja (LR)
Zone America/Argentina/La_Rioja -4:27:24 - LMT 1894 Oct 31
-4:16:48 - CMT 1920 May
-4:00 - ART 1930 Dec
-4:00 Arg AR%sT 1969 Oct 5
-3:00 Arg AR%sT 1991 Mar 1
-4:00 - WART 1991 May 7
-3:00 Arg AR%sT 1999 Oct 3
-4:00 Arg AR%sT 2000 Mar 3
-3:00 - ART 2004 Jun 1
-4:00 - WART 2004 Jun 20
-3:00 Arg AR%sT 2008 Oct 18
-3:00 - ART
#
# San Juan (SJ)
Zone America/Argentina/San_Juan -4:34:04 - LMT 1894 Oct 31
-4:16:48 - CMT 1920 May
-4:00 - ART 1930 Dec
-4:00 Arg AR%sT 1969 Oct 5
-3:00 Arg AR%sT 1991 Mar 1
-4:00 - WART 1991 May 7
-3:00 Arg AR%sT 1999 Oct 3
-4:00 Arg AR%sT 2000 Mar 3
-3:00 - ART 2004 May 31
-4:00 - WART 2004 Jul 25
-3:00 Arg AR%sT 2008 Oct 18
-3:00 - ART
#
# Jujuy (JY)
Zone America/Argentina/Jujuy -4:21:12 - LMT 1894 Oct 31
-4:16:48 - CMT 1920 May
-4:00 - ART 1930 Dec
-4:00 Arg AR%sT 1969 Oct 5
-3:00 Arg AR%sT 1990 Mar 4
-4:00 - WART 1990 Oct 28
-4:00 1:00 WARST 1991 Mar 17
-4:00 - WART 1991 Oct 6
-3:00 1:00 ARST 1992
-3:00 Arg AR%sT 1999 Oct 3
-4:00 Arg AR%sT 2000 Mar 3
-3:00 Arg AR%sT 2008 Oct 18
-3:00 - ART
#
# Catamarca (CT), Chubut (CH)
Zone America/Argentina/Catamarca -4:23:08 - LMT 1894 Oct 31
-4:16:48 - CMT 1920 May
-4:00 - ART 1930 Dec
-4:00 Arg AR%sT 1969 Oct 5
-3:00 Arg AR%sT 1991 Mar 3
-4:00 - WART 1991 Oct 20
-3:00 Arg AR%sT 1999 Oct 3
-4:00 Arg AR%sT 2000 Mar 3
-3:00 - ART 2004 Jun 1
-4:00 - WART 2004 Jun 20
-3:00 Arg AR%sT 2008 Oct 18
-3:00 - ART
#
# Mendoza (MZ)
Zone America/Argentina/Mendoza -4:35:16 - LMT 1894 Oct 31
-4:16:48 - CMT 1920 May
-4:00 - ART 1930 Dec
-4:00 Arg AR%sT 1969 Oct 5
-3:00 Arg AR%sT 1990 Mar 4
-4:00 - WART 1990 Oct 15
-4:00 1:00 WARST 1991 Mar 1
-4:00 - WART 1991 Oct 15
-4:00 1:00 WARST 1992 Mar 1
-4:00 - WART 1992 Oct 18
-3:00 Arg AR%sT 1999 Oct 3
-4:00 Arg AR%sT 2000 Mar 3
-3:00 - ART 2004 May 23
-4:00 - WART 2004 Sep 26
-3:00 Arg AR%sT 2008 Oct 18
-3:00 - ART
#
# San Luis (SL)
Rule SanLuis 2008 2009 - Mar Sun>=8 0:00 0 -
Rule SanLuis 2007 2009 - Oct Sun>=8 0:00 1:00 S
Zone America/Argentina/San_Luis -4:25:24 - LMT 1894 Oct 31
-4:16:48 - CMT 1920 May
-4:00 - ART 1930 Dec
-4:00 Arg AR%sT 1969 Oct 5
-3:00 Arg AR%sT 1990
-3:00 1:00 ARST 1990 Mar 14
-4:00 - WART 1990 Oct 15
-4:00 1:00 WARST 1991 Mar 1
-4:00 - WART 1991 Jun 1
-3:00 - ART 1999 Oct 3
-4:00 1:00 WARST 2000 Mar 3
-3:00 - ART 2004 May 31
-4:00 - WART 2004 Jul 25
-3:00 Arg AR%sT 2008 Jan 21
-4:00 SanLuis WAR%sT
#
# Santa Cruz (SC)
Zone America/Argentina/Rio_Gallegos -4:36:52 - LMT 1894 Oct 31
-4:16:48 - CMT 1920 May # Cordoba Mean Time
-4:00 - ART 1930 Dec
-4:00 Arg AR%sT 1969 Oct 5
-3:00 Arg AR%sT 1999 Oct 3
-4:00 Arg AR%sT 2000 Mar 3
-3:00 - ART 2004 Jun 1
-4:00 - WART 2004 Jun 20
-3:00 Arg AR%sT 2008 Oct 18
-3:00 - ART
#
# Tierra del Fuego, Antartida e Islas del Atlantico Sur (TF)
Zone America/Argentina/Ushuaia -4:33:12 - LMT 1894 Oct 31
-4:16:48 - CMT 1920 May # Cordoba Mean Time
-4:00 - ART 1930 Dec
-4:00 Arg AR%sT 1969 Oct 5
-3:00 Arg AR%sT 1999 Oct 3
-4:00 Arg AR%sT 2000 Mar 3
-3:00 - ART 2004 May 30
-4:00 - WART 2004 Jun 20
-3:00 Arg AR%sT 2008 Oct 18
-3:00 - ART
# Aruba
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone America/Aruba -4:40:24 - LMT 1912 Feb 12 # Oranjestad
-4:30 - ANT 1965 # Netherlands Antilles Time
-4:00 - AST
# Bolivia
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone America/La_Paz -4:32:36 - LMT 1890
-4:32:36 - CMT 1931 Oct 15 # Calamarca MT
-4:32:36 1:00 BOST 1932 Mar 21 # Bolivia ST
-4:00 - BOT # Bolivia Time
# Brazil
# From Paul Eggert (1993-11-18):
# The mayor of Rio recently attempted to change the time zone rules
# just in his city, in order to leave more summer time for the tourist trade.
# The rule change lasted only part of the day;
# the federal government refused to follow the city's rules, and business
# was in a chaos, so the mayor backed down that afternoon.
# From IATA SSIM (1996-02):
# _Only_ the following states in BR1 observe DST: Rio Grande do Sul (RS),
# Santa Catarina (SC), Parana (PR), Sao Paulo (SP), Rio de Janeiro (RJ),
# Espirito Santo (ES), Minas Gerais (MG), Bahia (BA), Goias (GO),
# Distrito Federal (DF), Tocantins (TO), Sergipe [SE] and Alagoas [AL].
# [The last three states are new to this issue of the IATA SSIM.]
# From Gwillim Law (1996-10-07):
# Geography, history (Tocantins was part of Goias until 1989), and other
# sources of time zone information lead me to believe that AL, SE, and TO were
# always in BR1, and so the only change was whether or not they observed DST....
# The earliest issue of the SSIM I have is 2/91. Each issue from then until
# 9/95 says that DST is observed only in the ten states I quoted from 9/95,
# along with Mato Grosso (MT) and Mato Grosso do Sul (MS), which are in BR2
# (UTC-4).... The other two time zones given for Brazil are BR3, which is
# UTC-5, no DST, and applies only in the state of Acre (AC); and BR4, which is
# UTC-2, and applies to Fernando de Noronha (formerly FN, but I believe it's
# become part of the state of Pernambuco). The boundary between BR1 and BR2
# has never been clearly stated. They've simply been called East and West.
# However, some conclusions can be drawn from another IATA manual: the Airline
# Coding Directory, which lists close to 400 airports in Brazil. For each
# airport it gives a time zone which is coded to the SSIM. From that
# information, I'm led to conclude that the states of Amapa (AP), Ceara (CE),
# Maranhao (MA), Paraiba (PR), Pernambuco (PE), Piaui (PI), and Rio Grande do
# Norte (RN), and the eastern part of Para (PA) are all in BR1 without DST.
# From Marcos Tadeu (1998-09-27):
#
# Brazilian official page
#
# From Jesper Norgaard (2000-11-03):
# [For an official list of which regions in Brazil use which time zones, see:]
# http://pcdsh01.on.br/Fusbr.htm
# http://pcdsh01.on.br/Fusbrhv.htm
# From Celso Doria via David Madeo (2002-10-09):
# The reason for the delay this year has to do with elections in Brazil.
#
# Unlike in the United States, elections in Brazil are 100% computerized and
# the results are known almost immediately. Yesterday, it was the first
# round of the elections when 115 million Brazilians voted for President,
# Governor, Senators, Federal Deputies, and State Deputies. Nobody is
# counting (or re-counting) votes anymore and we know there will be a second
# round for the Presidency and also for some Governors. The 2nd round will
# take place on October 27th.
#
# The reason why the DST will only begin November 3rd is that the thousands
# of electoral machines used cannot have their time changed, and since the
# Constitution says the elections must begin at 8:00 AM and end at 5:00 PM,
# the Government decided to postpone DST, instead of changing the Constitution
# (maybe, for the next elections, it will be possible to change the clock)...
# From Rodrigo Severo (2004-10-04):
# It's just the biannual change made necessary by the much hyped, supposedly
# modern Brazilian eletronic voting machines which, apparently, can't deal
# with a time change between the first and the second rounds of the elections.
# From Steffen Thorsen (2007-09-20):
# Brazil will start DST on 2007-10-14 00:00 and end on 2008-02-17 00:00:
# http://www.mme.gov.br/site/news/detail.do;jsessionid=BBA06811AFCAAC28F0285210913513DA?newsId=13975
# From Paul Schulze (2008-06-24):
# ...by law number 11.662 of April 24, 2008 (published in the "Diario
# Oficial da Uniao"...) in Brazil there are changes in the timezones,
# effective today (00:00am at June 24, 2008) as follows:
#
# a) The timezone UTC+5 is e[x]tinguished, with all the Acre state and the
# part of the Amazonas state that had this timezone now being put to the
# timezone UTC+4
# b) The whole Para state now is put at timezone UTC+3, instead of just
# part of it, as was before.
#
# This change follows a proposal of senator Tiao Viana of Acre state, that
# proposed it due to concerns about open television channels displaying
# programs inappropriate to youths in the states that had the timezone
# UTC+5 too early in the night. In the occasion, some more corrections
# were proposed, trying to unify the timezones of any given state. This
# change modifies timezone rules defined in decree 2.784 of 18 June,
# 1913.
# From Rodrigo Severo (2008-06-24):
# Just correcting the URL:
#
# https://www.in.gov.br/imprensa/visualiza/index.jsp?jornal=do&secao=1&pagina=1&data=25/04/2008
#
#
# As a result of the above Decree I believe the America/Rio_Branco
# timezone shall be modified from UTC-5 to UTC-4 and a new timezone shall
# be created to represent the...west side of the Para State. I
# suggest this new timezone be called Santarem as the most
# important/populated city in the affected area.
#
# This new timezone would be the same as the Rio_Branco timezone up to
# the 2008/06/24 change which would be to UTC-3 instead of UTC-4.
# From Alex Krivenyshev (2008-06-24):
# This is a quick reference page for New and Old Brazil Time Zones map.
#
# http://www.worldtimezone.com/brazil-time-new-old.php
#
#
# - 4 time zones replaced by 3 time zones-eliminating time zone UTC- 05
# (state Acre and the part of the Amazonas will be UTC/GMT- 04) - western
# part of Par state is moving to one timezone UTC- 03 (from UTC -04).
# From Paul Eggert (2002-10-10):
# The official decrees referenced below are mostly taken from
#
# Decretos sobre o Horario de Verao no Brasil
# .
# From Steffen Thorsen (2008-08-29):
# As announced by the government and many newspapers in Brazil late
# yesterday, Brazil will start DST on 2008-10-19 (need to change rule) and
# it will end on 2009-02-15 (current rule for Brazil is fine). Based on
# past years experience with the elections, there was a good chance that
# the start was postponed to November, but it did not happen this year.
#
# It has not yet been posted to http://pcdsh01.on.br/DecHV.html
#
# An official page about it:
#
# http://www.mme.gov.br/site/news/detail.do?newsId=16722
#
# Note that this link does not always work directly, but must be accessed
# by going to
#
# http://www.mme.gov.br/first
#
#
# One example link that works directly:
#
# http://jornale.com.br/index.php?option=com_content&task=view&id=13530&Itemid=54
# (Portuguese)
#
#
# We have a written a short article about it as well:
#
# http://www.timeanddate.com/news/time/brazil-dst-2008-2009.html
#
#
# From Alexander Krivenyshev (2011-10-04):
# State Bahia will return to Daylight savings time this year after 8 years off.
# The announcement was made by Governor Jaques Wagner in an interview to a
# television station in Salvador.
# In Portuguese:
#
# http://g1.globo.com/bahia/noticia/2011/10/governador-jaques-wagner-confirma-horario-de-verao-na-bahia.html
# and
#
# http://noticias.terra.com.br/brasil/noticias/0,,OI5390887-EI8139,00-Bahia+volta+a+ter+horario+de+verao+apos+oito+anos.html
#
# From Guilherme Bernardes Rodrigues (2011-10-07):
# There is news in the media, however there is still no decree about it.
# I just send a e-mail to Zulmira Brando at
# http://pcdsh01.on.br/ the
# oficial agency about time in Brazil, and she confirmed that the old rule is
# still in force.
# From Guilherme Bernardes Rodrigues (2011-10-14)
# It's official, the President signed a decree that includes Bahia in summer
# time.
# [ and in a second message (same day): ]
# I found the decree.
#
# DECRETO No- 7.584, DE 13 DE OUTUBRO DE 2011
# Link :
#
# http://www.in.gov.br/visualiza/index.jsp?data=13/10/2011&jornal=1000&pagina=6&totalArquivos=6
#
# From Kelley Cook (2012-10-16):
# The governor of state of Bahia in Brazil announced on Thursday that
# due to public pressure, he is reversing the DST policy they implemented
# last year and will not be going to Summer Time on October 21st....
# http://www.correio24horas.com.br/r/artigo/apos-pressoes-wagner-suspende-horario-de-verao-na-bahia
# From Rodrigo Severo (2012-10-16):
# Tocantins state will have DST.
# http://noticias.terra.com.br/brasil/noticias/0,,OI6232536-EI306.html
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
# Decree 20,466 (1931-10-01)
# Decree 21,896 (1932-01-10)
Rule Brazil 1931 only - Oct 3 11:00 1:00 S
Rule Brazil 1932 1933 - Apr 1 0:00 0 -
Rule Brazil 1932 only - Oct 3 0:00 1:00 S
# Decree 23,195 (1933-10-10)
# revoked DST.
# Decree 27,496 (1949-11-24)
# Decree 27,998 (1950-04-13)
Rule Brazil 1949 1952 - Dec 1 0:00 1:00 S
Rule Brazil 1950 only - Apr 16 1:00 0 -
Rule Brazil 1951 1952 - Apr 1 0:00 0 -
# Decree 32,308 (1953-02-24)
Rule Brazil 1953 only - Mar 1 0:00 0 -
# Decree 34,724 (1953-11-30)
# revoked DST.
# Decree 52,700 (1963-10-18)
# established DST from 1963-10-23 00:00 to 1964-02-29 00:00
# in SP, RJ, GB, MG, ES, due to the prolongation of the drought.
# Decree 53,071 (1963-12-03)
# extended the above decree to all of the national territory on 12-09.
Rule Brazil 1963 only - Dec 9 0:00 1:00 S
# Decree 53,604 (1964-02-25)
# extended summer time by one day to 1964-03-01 00:00 (start of school).
Rule Brazil 1964 only - Mar 1 0:00 0 -
# Decree 55,639 (1965-01-27)
Rule Brazil 1965 only - Jan 31 0:00 1:00 S
Rule Brazil 1965 only - Mar 31 0:00 0 -
# Decree 57,303 (1965-11-22)
Rule Brazil 1965 only - Dec 1 0:00 1:00 S
# Decree 57,843 (1966-02-18)
Rule Brazil 1966 1968 - Mar 1 0:00 0 -
Rule Brazil 1966 1967 - Nov 1 0:00 1:00 S
# Decree 63,429 (1968-10-15)
# revoked DST.
# Decree 91,698 (1985-09-27)
Rule Brazil 1985 only - Nov 2 0:00 1:00 S
# Decree 92,310 (1986-01-21)
# Decree 92,463 (1986-03-13)
Rule Brazil 1986 only - Mar 15 0:00 0 -
# Decree 93,316 (1986-10-01)
Rule Brazil 1986 only - Oct 25 0:00 1:00 S
Rule Brazil 1987 only - Feb 14 0:00 0 -
# Decree 94,922 (1987-09-22)
Rule Brazil 1987 only - Oct 25 0:00 1:00 S
Rule Brazil 1988 only - Feb 7 0:00 0 -
# Decree 96,676 (1988-09-12)
# except for the states of AC, AM, PA, RR, RO, and AP (then a territory)
Rule Brazil 1988 only - Oct 16 0:00 1:00 S
Rule Brazil 1989 only - Jan 29 0:00 0 -
# Decree 98,077 (1989-08-21)
# with the same exceptions
Rule Brazil 1989 only - Oct 15 0:00 1:00 S
Rule Brazil 1990 only - Feb 11 0:00 0 -
# Decree 99,530 (1990-09-17)
# adopted by RS, SC, PR, SP, RJ, ES, MG, GO, MS, DF.
# Decree 99,629 (1990-10-19) adds BA, MT.
Rule Brazil 1990 only - Oct 21 0:00 1:00 S
Rule Brazil 1991 only - Feb 17 0:00 0 -
# Unnumbered decree (1991-09-25)
# adopted by RS, SC, PR, SP, RJ, ES, MG, BA, GO, MT, MS, DF.
Rule Brazil 1991 only - Oct 20 0:00 1:00 S
Rule Brazil 1992 only - Feb 9 0:00 0 -
# Unnumbered decree (1992-10-16)
# adopted by same states.
Rule Brazil 1992 only - Oct 25 0:00 1:00 S
Rule Brazil 1993 only - Jan 31 0:00 0 -
# Decree 942 (1993-09-28)
# adopted by same states, plus AM.
# Decree 1,252 (1994-09-22;
# web page corrected 2004-01-07) adopted by same states, minus AM.
# Decree 1,636 (1995-09-14)
# adopted by same states, plus MT and TO.
# Decree 1,674 (1995-10-13)
# adds AL, SE.
Rule Brazil 1993 1995 - Oct Sun>=11 0:00 1:00 S
Rule Brazil 1994 1995 - Feb Sun>=15 0:00 0 -
Rule Brazil 1996 only - Feb 11 0:00 0 -
# Decree 2,000 (1996-09-04)
# adopted by same states, minus AL, SE.
Rule Brazil 1996 only - Oct 6 0:00 1:00 S
Rule Brazil 1997 only - Feb 16 0:00 0 -
# From Daniel C. Sobral (1998-02-12):
# In 1997, the DS began on October 6. The stated reason was that
# because international television networks ignored Brazil's policy on DS,
# they bought the wrong times on satellite for coverage of Pope's visit.
# This year, the ending date of DS was postponed to March 1
# to help dealing with the shortages of electric power.
#
# Decree 2,317 (1997-09-04), adopted by same states.
Rule Brazil 1997 only - Oct 6 0:00 1:00 S
# Decree 2,495
# (1998-02-10)
Rule Brazil 1998 only - Mar 1 0:00 0 -
# Decree 2,780 (1998-09-11)
# adopted by the same states as before.
Rule Brazil 1998 only - Oct 11 0:00 1:00 S
Rule Brazil 1999 only - Feb 21 0:00 0 -
# Decree 3,150
# (1999-08-23) adopted by same states.
# Decree 3,188 (1999-09-30)
# adds SE, AL, PB, PE, RN, CE, PI, MA and RR.
Rule Brazil 1999 only - Oct 3 0:00 1:00 S
Rule Brazil 2000 only - Feb 27 0:00 0 -
# Decree 3,592 (2000-09-06)
# adopted by the same states as before.
# Decree 3,630 (2000-10-13)
# repeals DST in PE and RR, effective 2000-10-15 00:00.
# Decree 3,632 (2000-10-17)
# repeals DST in SE, AL, PB, RN, CE, PI and MA, effective 2000-10-22 00:00.
# Decree 3,916
# (2001-09-13) reestablishes DST in AL, CE, MA, PB, PE, PI, RN, SE.
Rule Brazil 2000 2001 - Oct Sun>=8 0:00 1:00 S
Rule Brazil 2001 2006 - Feb Sun>=15 0:00 0 -
# Decree 4,399 (2002-10-01) repeals DST in AL, CE, MA, PB, PE, PI, RN, SE.
# 4,399
Rule Brazil 2002 only - Nov 3 0:00 1:00 S
# Decree 4,844 (2003-09-24; corrected 2003-09-26) repeals DST in BA, MT, TO.
# 4,844
Rule Brazil 2003 only - Oct 19 0:00 1:00 S
# Decree 5,223 (2004-10-01) reestablishes DST in MT.
# 5,223
Rule Brazil 2004 only - Nov 2 0:00 1:00 S
# Decree 5,539 (2005-09-19),
# adopted by the same states as before.
Rule Brazil 2005 only - Oct 16 0:00 1:00 S
# Decree 5,920 (2006-10-03),
# adopted by the same states as before.
Rule Brazil 2006 only - Nov 5 0:00 1:00 S
Rule Brazil 2007 only - Feb 25 0:00 0 -
# Decree 6,212 (2007-09-26),
# adopted by the same states as before.
Rule Brazil 2007 only - Oct Sun>=8 0:00 1:00 S
# From Frederico A. C. Neves (2008-09-10):
# Acording to this decree
#
# http://www.planalto.gov.br/ccivil_03/_Ato2007-2010/2008/Decreto/D6558.htm
#
# [t]he DST period in Brazil now on will be from the 3rd Oct Sunday to the
# 3rd Feb Sunday. There is an exception on the return date when this is
# the Carnival Sunday then the return date will be the next Sunday...
Rule Brazil 2008 max - Oct Sun>=15 0:00 1:00 S
Rule Brazil 2008 2011 - Feb Sun>=15 0:00 0 -
Rule Brazil 2012 only - Feb Sun>=22 0:00 0 -
Rule Brazil 2013 2014 - Feb Sun>=15 0:00 0 -
Rule Brazil 2015 only - Feb Sun>=22 0:00 0 -
Rule Brazil 2016 2022 - Feb Sun>=15 0:00 0 -
Rule Brazil 2023 only - Feb Sun>=22 0:00 0 -
Rule Brazil 2024 2025 - Feb Sun>=15 0:00 0 -
Rule Brazil 2026 only - Feb Sun>=22 0:00 0 -
Rule Brazil 2027 2033 - Feb Sun>=15 0:00 0 -
Rule Brazil 2034 only - Feb Sun>=22 0:00 0 -
Rule Brazil 2035 2036 - Feb Sun>=15 0:00 0 -
Rule Brazil 2037 only - Feb Sun>=22 0:00 0 -
# From Arthur David Olson (2008-09-29):
# The next is wrong in some years but is better than nothing.
Rule Brazil 2038 max - Feb Sun>=15 0:00 0 -
# The latest ruleset listed above says that the following states observe DST:
# DF, ES, GO, MG, MS, MT, PR, RJ, RS, SC, SP.
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
#
# Fernando de Noronha (administratively part of PE)
Zone America/Noronha -2:09:40 - LMT 1914
-2:00 Brazil FN%sT 1990 Sep 17
-2:00 - FNT 1999 Sep 30
-2:00 Brazil FN%sT 2000 Oct 15
-2:00 - FNT 2001 Sep 13
-2:00 Brazil FN%sT 2002 Oct 1
-2:00 - FNT
# Other Atlantic islands have no permanent settlement.
# These include Trindade and Martin Vaz (administratively part of ES),
# Atol das Rocas (RN), and Penedos de Sao Pedro e Sao Paulo (PE).
# Fernando de Noronha was a separate territory from 1942-09-02 to 1989-01-01;
# it also included the Penedos.
#
# Amapa (AP), east Para (PA)
# East Para includes Belem, Maraba, Serra Norte, and Sao Felix do Xingu.
# The division between east and west Para is the river Xingu.
# In the north a very small part from the river Javary (now Jari I guess,
# the border with Amapa) to the Amazon, then to the Xingu.
Zone America/Belem -3:13:56 - LMT 1914
-3:00 Brazil BR%sT 1988 Sep 12
-3:00 - BRT
#
# west Para (PA)
# West Para includes Altamira, Oribidos, Prainha, Oriximina, and Santarem.
Zone America/Santarem -3:38:48 - LMT 1914
-4:00 Brazil AM%sT 1988 Sep 12
-4:00 - AMT 2008 Jun 24 00:00
-3:00 - BRT
#
# Maranhao (MA), Piaui (PI), Ceara (CE), Rio Grande do Norte (RN),
# Paraiba (PB)
Zone America/Fortaleza -2:34:00 - LMT 1914
-3:00 Brazil BR%sT 1990 Sep 17
-3:00 - BRT 1999 Sep 30
-3:00 Brazil BR%sT 2000 Oct 22
-3:00 - BRT 2001 Sep 13
-3:00 Brazil BR%sT 2002 Oct 1
-3:00 - BRT
#
# Pernambuco (PE) (except Atlantic islands)
Zone America/Recife -2:19:36 - LMT 1914
-3:00 Brazil BR%sT 1990 Sep 17
-3:00 - BRT 1999 Sep 30
-3:00 Brazil BR%sT 2000 Oct 15
-3:00 - BRT 2001 Sep 13
-3:00 Brazil BR%sT 2002 Oct 1
-3:00 - BRT
#
# Tocantins (TO)
Zone America/Araguaina -3:12:48 - LMT 1914
-3:00 Brazil BR%sT 1990 Sep 17
-3:00 - BRT 1995 Sep 14
-3:00 Brazil BR%sT 2003 Sep 24
-3:00 - BRT 2012 Oct 21
-3:00 Brazil BR%sT
#
# Alagoas (AL), Sergipe (SE)
Zone America/Maceio -2:22:52 - LMT 1914
-3:00 Brazil BR%sT 1990 Sep 17
-3:00 - BRT 1995 Oct 13
-3:00 Brazil BR%sT 1996 Sep 4
-3:00 - BRT 1999 Sep 30
-3:00 Brazil BR%sT 2000 Oct 22
-3:00 - BRT 2001 Sep 13
-3:00 Brazil BR%sT 2002 Oct 1
-3:00 - BRT
#
# Bahia (BA)
# There are too many Salvadors elsewhere, so use America/Bahia instead
# of America/Salvador.
Zone America/Bahia -2:34:04 - LMT 1914
-3:00 Brazil BR%sT 2003 Sep 24
-3:00 - BRT 2011 Oct 16
-3:00 Brazil BR%sT 2012 Oct 21
-3:00 - BRT
#
# Goias (GO), Distrito Federal (DF), Minas Gerais (MG),
# Espirito Santo (ES), Rio de Janeiro (RJ), Sao Paulo (SP), Parana (PR),
# Santa Catarina (SC), Rio Grande do Sul (RS)
Zone America/Sao_Paulo -3:06:28 - LMT 1914
-3:00 Brazil BR%sT 1963 Oct 23 00:00
-3:00 1:00 BRST 1964
-3:00 Brazil BR%sT
#
# Mato Grosso do Sul (MS)
Zone America/Campo_Grande -3:38:28 - LMT 1914
-4:00 Brazil AM%sT
#
# Mato Grosso (MT)
Zone America/Cuiaba -3:44:20 - LMT 1914
-4:00 Brazil AM%sT 2003 Sep 24
-4:00 - AMT 2004 Oct 1
-4:00 Brazil AM%sT
#
# Rondonia (RO)
Zone America/Porto_Velho -4:15:36 - LMT 1914
-4:00 Brazil AM%sT 1988 Sep 12
-4:00 - AMT
#
# Roraima (RR)
Zone America/Boa_Vista -4:02:40 - LMT 1914
-4:00 Brazil AM%sT 1988 Sep 12
-4:00 - AMT 1999 Sep 30
-4:00 Brazil AM%sT 2000 Oct 15
-4:00 - AMT
#
# east Amazonas (AM): Boca do Acre, Jutai, Manaus, Floriano Peixoto
# The great circle line from Tabatinga to Porto Acre divides
# east from west Amazonas.
Zone America/Manaus -4:00:04 - LMT 1914
-4:00 Brazil AM%sT 1988 Sep 12
-4:00 - AMT 1993 Sep 28
-4:00 Brazil AM%sT 1994 Sep 22
-4:00 - AMT
#
# west Amazonas (AM): Atalaia do Norte, Boca do Maoco, Benjamin Constant,
# Eirunepe, Envira, Ipixuna
Zone America/Eirunepe -4:39:28 - LMT 1914
-5:00 Brazil AC%sT 1988 Sep 12
-5:00 - ACT 1993 Sep 28
-5:00 Brazil AC%sT 1994 Sep 22
-5:00 - ACT 2008 Jun 24 00:00
-4:00 - AMT
#
# Acre (AC)
Zone America/Rio_Branco -4:31:12 - LMT 1914
-5:00 Brazil AC%sT 1988 Sep 12
-5:00 - ACT 2008 Jun 24 00:00
-4:00 - AMT
# Chile
# From Eduardo Krell (1995-10-19):
# The law says to switch to DST at midnight [24:00] on the second SATURDAY
# of October.... The law is the same for March and October.
# (1998-09-29):
# Because of the drought this year, the government decided to go into
# DST earlier (saturday 9/26 at 24:00). This is a one-time change only ...
# (unless there's another dry season next year, I guess).
# From Julio I. Pacheco Troncoso (1999-03-18):
# Because of the same drought, the government decided to end DST later,
# on April 3, (one-time change).
# From Oscar van Vlijmen (2006-10-08):
# http://www.horaoficial.cl/cambio.htm
# From Jesper Norgaard Welen (2006-10-08):
# I think that there are some obvious mistakes in the suggested link
# from Oscar van Vlijmen,... for instance entry 66 says that GMT-4
# ended 1990-09-12 while entry 67 only begins GMT-3 at 1990-09-15
# (they should have been 1990-09-15 and 1990-09-16 respectively), but
# anyhow it clears up some doubts too.
# From Paul Eggert (2006-12-27):
# The following data for Chile and America/Santiago are from
# (2006-09-20), transcribed by
# Jesper Norgaard Welen. The data for Pacific/Easter are from Shanks
# & Pottenger, except with DST transitions after 1932 cloned from
# America/Santiago. The pre-1980 Pacific/Easter data are dubious,
# but we have no other source.
# From German Poo-Caaman~o (2008-03-03):
# Due to drought, Chile extends Daylight Time in three weeks. This
# is one-time change (Saturday 3/29 at 24:00 for America/Santiago
# and Saturday 3/29 at 22:00 for Pacific/Easter)
# The Supreme Decree is located at
#
# http://www.shoa.cl/servicios/supremo316.pdf
#
# and the instructions for 2008 are located in:
#
# http://www.horaoficial.cl/cambio.htm
# .
# From Jose Miguel Garrido (2008-03-05):
# ...
# You could see the announces of the change on
#
# http://www.shoa.cl/noticias/2008/04hora/hora.htm
# .
# From Angel Chiang (2010-03-04):
# Subject: DST in Chile exceptionally extended to 3 April due to earthquake
#
# http://www.gobiernodechile.cl/viewNoticia.aspx?idArticulo=30098
#
# (in Spanish, last paragraph).
#
# This is breaking news. There should be more information available later.
# From Arthur Daivd Olson (2010-03-06):
# Angel Chiang's message confirmed by Julio Pacheco; Julio provided a patch.
# From Glenn Eychaner (2011-03-02): [geychaner@mac.com]
# It appears that the Chilean government has decided to postpone the
# change from summer time to winter time again, by three weeks to April
# 2nd:
#
# http://www.emol.com/noticias/nacional/detalle/detallenoticias.asp?idnoticia=467651
#
#
# This is not yet reflected in the offical "cambio de hora" site, but
# probably will be soon:
#
# http://www.horaoficial.cl/cambio.htm
#
# From Arthur David Olson (2011-03-02):
# The emol.com article mentions a water shortage as the cause of the
# postponement, which may mean that it's not a permanent change.
# From Glenn Eychaner (2011-03-28):
# The article:
#
# http://diario.elmercurio.com/2011/03/28/_portada/_portada/noticias/7565897A-CA86-49E6-9E03-660B21A4883E.htm?id=3D{7565897A-CA86-49E6-9E03-660B21A4883E}
#
#
# In English:
# Chile's clocks will go back an hour this year on the 7th of May instead
# of this Saturday. They will go forward again the 3rd Saturday in
# August, not in October as they have since 1968. This is a pilot plan
# which will be reevaluated in 2012.
# From Mauricio Parada (2012-02-22), translated by Glenn Eychaner (2012-02-23):
# As stated in the website of the Chilean Energy Ministry
# http://www.minenergia.cl/ministerio/noticias/generales/gobierno-anuncia-fechas-de-cambio-de.html
# The Chilean Government has decided to postpone the entrance into winter time
# (to leave DST) from March 11 2012 to April 28th 2012. The decision has not
# been yet formalized but it will within the next days.
# Quote from the website communication:
#
# 6. For the year 2012, the dates of entry into winter time will be as follows:
# a. Saturday April 28, 2012, clocks should go back 60 minutes; that is, at
# 23:59:59, instead of passing to 0:00, the time should be adjusted to be 23:00
# of the same day.
# b. Saturday, September 1, 2012, clocks should go forward 60 minutes; that is,
# at 23:59:59, instead of passing to 0:00, the time should be adjusted to be
# 01:00 on September 2.
#
# Note that...this is yet another "temporary" change that will be reevaluated
# AGAIN in 2013.
# NOTE: ChileAQ rules for Antarctic bases are stored separately in the
# 'antarctica' file.
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
Rule Chile 1927 1932 - Sep 1 0:00 1:00 S
Rule Chile 1928 1932 - Apr 1 0:00 0 -
Rule Chile 1942 only - Jun 1 4:00u 0 -
Rule Chile 1942 only - Aug 1 5:00u 1:00 S
Rule Chile 1946 only - Jul 15 4:00u 1:00 S
Rule Chile 1946 only - Sep 1 3:00u 0:00 -
Rule Chile 1947 only - Apr 1 4:00u 0 -
Rule Chile 1968 only - Nov 3 4:00u 1:00 S
Rule Chile 1969 only - Mar 30 3:00u 0 -
Rule Chile 1969 only - Nov 23 4:00u 1:00 S
Rule Chile 1970 only - Mar 29 3:00u 0 -
Rule Chile 1971 only - Mar 14 3:00u 0 -
Rule Chile 1970 1972 - Oct Sun>=9 4:00u 1:00 S
Rule Chile 1972 1986 - Mar Sun>=9 3:00u 0 -
Rule Chile 1973 only - Sep 30 4:00u 1:00 S
Rule Chile 1974 1987 - Oct Sun>=9 4:00u 1:00 S
Rule Chile 1987 only - Apr 12 3:00u 0 -
Rule Chile 1988 1989 - Mar Sun>=9 3:00u 0 -
Rule Chile 1988 only - Oct Sun>=1 4:00u 1:00 S
Rule Chile 1989 only - Oct Sun>=9 4:00u 1:00 S
Rule Chile 1990 only - Mar 18 3:00u 0 -
Rule Chile 1990 only - Sep 16 4:00u 1:00 S
Rule Chile 1991 1996 - Mar Sun>=9 3:00u 0 -
Rule Chile 1991 1997 - Oct Sun>=9 4:00u 1:00 S
Rule Chile 1997 only - Mar 30 3:00u 0 -
Rule Chile 1998 only - Mar Sun>=9 3:00u 0 -
Rule Chile 1998 only - Sep 27 4:00u 1:00 S
Rule Chile 1999 only - Apr 4 3:00u 0 -
Rule Chile 1999 2010 - Oct Sun>=9 4:00u 1:00 S
Rule Chile 2000 2007 - Mar Sun>=9 3:00u 0 -
# N.B.: the end of March 29 in Chile is March 30 in Universal time,
# which is used below in specifying the transition.
Rule Chile 2008 only - Mar 30 3:00u 0 -
Rule Chile 2009 only - Mar Sun>=9 3:00u 0 -
Rule Chile 2010 only - Apr Sun>=1 3:00u 0 -
Rule Chile 2011 only - May Sun>=2 3:00u 0 -
Rule Chile 2011 only - Aug Sun>=16 4:00u 1:00 S
Rule Chile 2012 only - Apr Sun>=23 3:00u 0 -
Rule Chile 2012 only - Sep Sun>=2 4:00u 1:00 S
Rule Chile 2013 max - Mar Sun>=9 3:00u 0 -
Rule Chile 2013 max - Oct Sun>=9 4:00u 1:00 S
# IATA SSIM anomalies: (1992-02) says 1992-03-14;
# (1996-09) says 1998-03-08. Ignore these.
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone America/Santiago -4:42:46 - LMT 1890
-4:42:46 - SMT 1910 # Santiago Mean Time
-5:00 - CLT 1916 Jul 1 # Chile Time
-4:42:46 - SMT 1918 Sep 1 # Santiago Mean Time
-4:00 - CLT 1919 Jul 1 # Chile Time
-4:42:46 - SMT 1927 Sep 1 # Santiago Mean Time
-5:00 Chile CL%sT 1947 May 22 # Chile Time
-4:00 Chile CL%sT
Zone Pacific/Easter -7:17:44 - LMT 1890
-7:17:28 - EMT 1932 Sep # Easter Mean Time
-7:00 Chile EAS%sT 1982 Mar 13 21:00 # Easter I Time
-6:00 Chile EAS%sT
#
# Sala y Gomez Island is like Pacific/Easter.
# Other Chilean locations, including Juan Fernandez Is, San Ambrosio,
# San Felix, and Antarctic bases, are like America/Santiago.
# Colombia
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
Rule CO 1992 only - May 3 0:00 1:00 S
Rule CO 1993 only - Apr 4 0:00 0 -
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone America/Bogota -4:56:20 - LMT 1884 Mar 13
-4:56:20 - BMT 1914 Nov 23 # Bogota Mean Time
-5:00 CO CO%sT # Colombia Time
# Malpelo, Providencia, San Andres
# no information; probably like America/Bogota
# Curacao
#
# From Paul Eggert (2006-03-22):
# Shanks & Pottenger say that The Bottom and Philipsburg have been at
# -4:00 since standard time was introduced on 1912-03-02; and that
# Kralendijk and Rincon used Kralendijk Mean Time (-4:33:08) from
# 1912-02-02 to 1965-01-01. The former is dubious, since S&P also say
# Saba Island has been like Curacao.
# This all predates our 1970 cutoff, though.
#
# By July 2007 Curacao and St Maarten are planned to become
# associated states within the Netherlands, much like Aruba;
# Bonaire, Saba and St Eustatius would become directly part of the
# Netherlands as Kingdom Islands. This won't affect their time zones
# though, as far as we know.
#
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone America/Curacao -4:35:44 - LMT 1912 Feb 12 # Willemstad
-4:30 - ANT 1965 # Netherlands Antilles Time
-4:00 - AST
# From Arthur David Olson (2011-06-15):
# At least for now, use links for places with new iso3166 codes.
# The name "Lower Prince's Quarter" is both longer than fourteen charaters
# and contains an apostrophe; use "Lower_Princes" below.
Link America/Curacao America/Lower_Princes # Sint Maarten
Link America/Curacao America/Kralendijk # Bonaire, Sint Estatius and Saba
# Ecuador
#
# From Paul Eggert (2007-03-04):
# Apparently Ecuador had a failed experiment with DST in 1992.
# (2007-02-27) and
# (2006-11-06) both
# talk about "hora Sixto". Leave this alone for now, as we have no data.
#
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone America/Guayaquil -5:19:20 - LMT 1890
-5:14:00 - QMT 1931 # Quito Mean Time
-5:00 - ECT # Ecuador Time
Zone Pacific/Galapagos -5:58:24 - LMT 1931 # Puerto Baquerizo Moreno
-5:00 - ECT 1986
-6:00 - GALT # Galapagos Time
# Falklands
# From Paul Eggert (2006-03-22):
# Between 1990 and 2000 inclusive, Shanks & Pottenger and the IATA agree except
# the IATA gives 1996-09-08. Go with Shanks & Pottenger.
# From Falkland Islands Government Office, London (2001-01-22)
# via Jesper Norgaard:
# ... the clocks revert back to Local Mean Time at 2 am on Sunday 15
# April 2001 and advance one hour to summer time at 2 am on Sunday 2
# September. It is anticipated that the clocks will revert back at 2
# am on Sunday 21 April 2002 and advance to summer time at 2 am on
# Sunday 1 September.
# From Rives McDow (2001-02-13):
#
# I have communicated several times with people there, and the last
# time I had communications that was helpful was in 1998. Here is
# what was said then:
#
# "The general rule was that Stanley used daylight saving and the Camp
# did not. However for various reasons many people in the Camp have
# started to use daylight saving (known locally as 'Stanley Time')
# There is no rule as to who uses daylight saving - it is a matter of
# personal choice and so it is impossible to draw a map showing who
# uses it and who does not. Any list would be out of date as soon as
# it was produced. This year daylight saving ended on April 18/19th
# and started again on September 12/13th. I do not know what the rule
# is, but can find out if you like. We do not change at the same time
# as UK or Chile."
#
# I did have in my notes that the rule was "Second Saturday in Sep at
# 0:00 until third Saturday in Apr at 0:00". I think that this does
# not agree in some cases with Shanks; is this true?
#
# Also, there is no mention in the list that some areas in the
# Falklands do not use DST. I have found in my communications there
# that these areas are on the western half of East Falkland and all of
# West Falkland. Stanley is the only place that consistently observes
# DST. Again, as in other places in the world, the farmers don't like
# it. West Falkland is almost entirely sheep farmers.
#
# I know one lady there that keeps a list of which farm keeps DST and
# which doesn't each year. She runs a shop in Stanley, and says that
# the list changes each year. She uses it to communicate to her
# customers, catching them when they are home for lunch or dinner.
# From Paul Eggert (2001-03-05):
# For now, we'll just record the time in Stanley, since we have no
# better info.
# From Steffen Thorsen (2011-04-01):
# The Falkland Islands will not turn back clocks this winter, but stay on
# daylight saving time.
#
# One source:
#
# http://www.falklandnews.com/public/story.cfm?get=5914&source=3
#
#
# We have gotten this confirmed by a clerk of the legislative assembly:
# Normally the clocks revert to Local Mean Time (UTC/GMT -4 hours) on the
# third Sunday of April at 0200hrs and advance to Summer Time (UTC/GMT -3
# hours) on the first Sunday of September at 0200hrs.
#
# IMPORTANT NOTE: During 2011, on a trial basis, the Falkland Islands
# will not revert to local mean time, but clocks will remain on Summer
# time (UTC/GMT - 3 hours) throughout the whole of 2011. Any long term
# change to local time following the trial period will be notified.
#
# From Andrew Newman (2012-02-24)
# A letter from Justin McPhee, Chief Executive,
# Cable & Wireless Falkland Islands (dated 2012-02-22)
# states...
# The current Atlantic/Stanley entry under South America expects the
# clocks to go back to standard Falklands Time (FKT) on the 15th April.
# The database entry states that in 2011 Stanley was staying on fixed
# summer time on a trial basis only. FIG need to contact IANA and/or
# the maintainers of the database to inform them we're adopting
# the same policy this year and suggest recommendations for future years.
#
# For now we will assume permanent summer time for the Falklands
# until advised differently (to apply for 2012 and beyond, after the 2011
# experiment was apparently successful.)
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
Rule Falk 1937 1938 - Sep lastSun 0:00 1:00 S
Rule Falk 1938 1942 - Mar Sun>=19 0:00 0 -
Rule Falk 1939 only - Oct 1 0:00 1:00 S
Rule Falk 1940 1942 - Sep lastSun 0:00 1:00 S
Rule Falk 1943 only - Jan 1 0:00 0 -
Rule Falk 1983 only - Sep lastSun 0:00 1:00 S
Rule Falk 1984 1985 - Apr lastSun 0:00 0 -
Rule Falk 1984 only - Sep 16 0:00 1:00 S
Rule Falk 1985 2000 - Sep Sun>=9 0:00 1:00 S
Rule Falk 1986 2000 - Apr Sun>=16 0:00 0 -
Rule Falk 2001 2010 - Apr Sun>=15 2:00 0 -
Rule Falk 2001 2010 - Sep Sun>=1 2:00 1:00 S
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone Atlantic/Stanley -3:51:24 - LMT 1890
-3:51:24 - SMT 1912 Mar 12 # Stanley Mean Time
-4:00 Falk FK%sT 1983 May # Falkland Is Time
-3:00 Falk FK%sT 1985 Sep 15
-4:00 Falk FK%sT 2010 Sep 5 02:00
-3:00 - FKST
# French Guiana
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone America/Cayenne -3:29:20 - LMT 1911 Jul
-4:00 - GFT 1967 Oct # French Guiana Time
-3:00 - GFT
# Guyana
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone America/Guyana -3:52:40 - LMT 1915 Mar # Georgetown
-3:45 - GBGT 1966 May 26 # Br Guiana Time
-3:45 - GYT 1975 Jul 31 # Guyana Time
-3:00 - GYT 1991
# IATA SSIM (1996-06) says -4:00. Assume a 1991 switch.
-4:00 - GYT
# Paraguay
# From Paul Eggert (2006-03-22):
# Shanks & Pottenger say that spring transitions are from 01:00 -> 02:00,
# and autumn transitions are from 00:00 -> 23:00. Go with pre-1999
# editions of Shanks, and with the IATA, who say transitions occur at 00:00.
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
Rule Para 1975 1988 - Oct 1 0:00 1:00 S
Rule Para 1975 1978 - Mar 1 0:00 0 -
Rule Para 1979 1991 - Apr 1 0:00 0 -
Rule Para 1989 only - Oct 22 0:00 1:00 S
Rule Para 1990 only - Oct 1 0:00 1:00 S
Rule Para 1991 only - Oct 6 0:00 1:00 S
Rule Para 1992 only - Mar 1 0:00 0 -
Rule Para 1992 only - Oct 5 0:00 1:00 S
Rule Para 1993 only - Mar 31 0:00 0 -
Rule Para 1993 1995 - Oct 1 0:00 1:00 S
Rule Para 1994 1995 - Feb lastSun 0:00 0 -
Rule Para 1996 only - Mar 1 0:00 0 -
# IATA SSIM (2000-02) says 1999-10-10; ignore this for now.
# From Steffen Thorsen (2000-10-02):
# I have three independent reports that Paraguay changed to DST this Sunday
# (10-01).
#
# Translated by Gwillim Law (2001-02-27) from
#
# Noticias, a daily paper in Asuncion, Paraguay (2000-10-01)
# :
# Starting at 0:00 today, the clock will be set forward 60 minutes, in
# fulfillment of Decree No. 7,273 of the Executive Power.... The time change
# system has been operating for several years. Formerly there was a separate
# decree each year; the new law has the same effect, but permanently. Every
# year, the time will change on the first Sunday of October; likewise, the
# clock will be set back on the first Sunday of March.
#
Rule Para 1996 2001 - Oct Sun>=1 0:00 1:00 S
# IATA SSIM (1997-09) says Mar 1; go with Shanks & Pottenger.
Rule Para 1997 only - Feb lastSun 0:00 0 -
# Shanks & Pottenger say 1999-02-28; IATA SSIM (1999-02) says 1999-02-27, but
# (1999-09) reports no date; go with above sources and Gerd Knops (2001-02-27).
Rule Para 1998 2001 - Mar Sun>=1 0:00 0 -
# From Rives McDow (2002-02-28):
# A decree was issued in Paraguay (no. 16350) on 2002-02-26 that changed the
# dst method to be from the first Sunday in September to the first Sunday in
# April.
Rule Para 2002 2004 - Apr Sun>=1 0:00 0 -
Rule Para 2002 2003 - Sep Sun>=1 0:00 1:00 S
#
# From Jesper Norgaard Welen (2005-01-02):
# There are several sources that claim that Paraguay made
# a timezone rule change in autumn 2004.
# From Steffen Thorsen (2005-01-05):
# Decree 1,867 (2004-03-05)
# From Carlos Raul Perasso via Jesper Norgaard Welen (2006-10-13)
#
Rule Para 2004 2009 - Oct Sun>=15 0:00 1:00 S
Rule Para 2005 2009 - Mar Sun>=8 0:00 0 -
# From Carlos Raul Perasso (2010-02-18):
# By decree number 3958 issued yesterday (
#
# http://www.presidencia.gov.py/v1/wp-content/uploads/2010/02/decreto3958.pdf
#
# )
# Paraguay changes its DST schedule, postponing the March rule to April and
# modifying the October date. The decree reads:
# ...
# Art. 1. It is hereby established that from the second Sunday of the month of
# April of this year (2010), the official time is to be set back 60 minutes,
# and that on the first Sunday of the month of October, it is to be set
# forward 60 minutes, in all the territory of the Paraguayan Republic.
# ...
Rule Para 2010 max - Oct Sun>=1 0:00 1:00 S
Rule Para 2010 max - Apr Sun>=8 0:00 0 -
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone America/Asuncion -3:50:40 - LMT 1890
-3:50:40 - AMT 1931 Oct 10 # Asuncion Mean Time
-4:00 - PYT 1972 Oct # Paraguay Time
-3:00 - PYT 1974 Apr
-4:00 Para PY%sT
# Peru
#
#
# From Evelyn C. Leeper via Mark Brader (2003-10-26):
# When we were in Peru in 1985-1986, they apparently switched over
# sometime between December 29 and January 3 while we were on the Amazon.
#
# From Paul Eggert (2006-03-22):
# Shanks & Pottenger don't have this transition. Assume 1986 was like 1987.
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
Rule Peru 1938 only - Jan 1 0:00 1:00 S
Rule Peru 1938 only - Apr 1 0:00 0 -
Rule Peru 1938 1939 - Sep lastSun 0:00 1:00 S
Rule Peru 1939 1940 - Mar Sun>=24 0:00 0 -
Rule Peru 1986 1987 - Jan 1 0:00 1:00 S
Rule Peru 1986 1987 - Apr 1 0:00 0 -
Rule Peru 1990 only - Jan 1 0:00 1:00 S
Rule Peru 1990 only - Apr 1 0:00 0 -
# IATA is ambiguous for 1993/1995; go with Shanks & Pottenger.
Rule Peru 1994 only - Jan 1 0:00 1:00 S
Rule Peru 1994 only - Apr 1 0:00 0 -
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone America/Lima -5:08:12 - LMT 1890
-5:08:36 - LMT 1908 Jul 28 # Lima Mean Time?
-5:00 Peru PE%sT # Peru Time
# South Georgia
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone Atlantic/South_Georgia -2:26:08 - LMT 1890 # Grytviken
-2:00 - GST # South Georgia Time
# South Sandwich Is
# uninhabited; scientific personnel have wintered
# Suriname
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone America/Paramaribo -3:40:40 - LMT 1911
-3:40:52 - PMT 1935 # Paramaribo Mean Time
-3:40:36 - PMT 1945 Oct # The capital moved?
-3:30 - NEGT 1975 Nov 20 # Dutch Guiana Time
-3:30 - SRT 1984 Oct # Suriname Time
-3:00 - SRT
# Trinidad and Tobago
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone America/Port_of_Spain -4:06:04 - LMT 1912 Mar 2
-4:00 - AST
# Uruguay
# From Paul Eggert (1993-11-18):
# Uruguay wins the prize for the strangest peacetime manipulation of the rules.
# From Shanks & Pottenger:
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
# Whitman gives 1923 Oct 1; go with Shanks & Pottenger.
Rule Uruguay 1923 only - Oct 2 0:00 0:30 HS
Rule Uruguay 1924 1926 - Apr 1 0:00 0 -
Rule Uruguay 1924 1925 - Oct 1 0:00 0:30 HS
Rule Uruguay 1933 1935 - Oct lastSun 0:00 0:30 HS
# Shanks & Pottenger give 1935 Apr 1 0:00 & 1936 Mar 30 0:00; go with Whitman.
Rule Uruguay 1934 1936 - Mar Sat>=25 23:30s 0 -
Rule Uruguay 1936 only - Nov 1 0:00 0:30 HS
Rule Uruguay 1937 1941 - Mar lastSun 0:00 0 -
# Whitman gives 1937 Oct 3; go with Shanks & Pottenger.
Rule Uruguay 1937 1940 - Oct lastSun 0:00 0:30 HS
# Whitman gives 1941 Oct 24 - 1942 Mar 27, 1942 Dec 14 - 1943 Apr 13,
# and 1943 Apr 13 ``to present time''; go with Shanks & Pottenger.
Rule Uruguay 1941 only - Aug 1 0:00 0:30 HS
Rule Uruguay 1942 only - Jan 1 0:00 0 -
Rule Uruguay 1942 only - Dec 14 0:00 1:00 S
Rule Uruguay 1943 only - Mar 14 0:00 0 -
Rule Uruguay 1959 only - May 24 0:00 1:00 S
Rule Uruguay 1959 only - Nov 15 0:00 0 -
Rule Uruguay 1960 only - Jan 17 0:00 1:00 S
Rule Uruguay 1960 only - Mar 6 0:00 0 -
Rule Uruguay 1965 1967 - Apr Sun>=1 0:00 1:00 S
Rule Uruguay 1965 only - Sep 26 0:00 0 -
Rule Uruguay 1966 1967 - Oct 31 0:00 0 -
Rule Uruguay 1968 1970 - May 27 0:00 0:30 HS
Rule Uruguay 1968 1970 - Dec 2 0:00 0 -
Rule Uruguay 1972 only - Apr 24 0:00 1:00 S
Rule Uruguay 1972 only - Aug 15 0:00 0 -
Rule Uruguay 1974 only - Mar 10 0:00 0:30 HS
Rule Uruguay 1974 only - Dec 22 0:00 1:00 S
Rule Uruguay 1976 only - Oct 1 0:00 0 -
Rule Uruguay 1977 only - Dec 4 0:00 1:00 S
Rule Uruguay 1978 only - Apr 1 0:00 0 -
Rule Uruguay 1979 only - Oct 1 0:00 1:00 S
Rule Uruguay 1980 only - May 1 0:00 0 -
Rule Uruguay 1987 only - Dec 14 0:00 1:00 S
Rule Uruguay 1988 only - Mar 14 0:00 0 -
Rule Uruguay 1988 only - Dec 11 0:00 1:00 S
Rule Uruguay 1989 only - Mar 12 0:00 0 -
Rule Uruguay 1989 only - Oct 29 0:00 1:00 S
# Shanks & Pottenger say no DST was observed in 1990/1 and 1991/2,
# and that 1992/3's DST was from 10-25 to 03-01. Go with IATA.
Rule Uruguay 1990 1992 - Mar Sun>=1 0:00 0 -
Rule Uruguay 1990 1991 - Oct Sun>=21 0:00 1:00 S
Rule Uruguay 1992 only - Oct 18 0:00 1:00 S
Rule Uruguay 1993 only - Feb 28 0:00 0 -
# From Eduardo Cota (2004-09-20):
# The uruguayan government has decreed a change in the local time....
# http://www.presidencia.gub.uy/decretos/2004091502.htm
Rule Uruguay 2004 only - Sep 19 0:00 1:00 S
# From Steffen Thorsen (2005-03-11):
# Uruguay's DST was scheduled to end on Sunday, 2005-03-13, but in order to
# save energy ... it was postponed two weeks....
# http://www.presidencia.gub.uy/_Web/noticias/2005/03/2005031005.htm
Rule Uruguay 2005 only - Mar 27 2:00 0 -
# From Eduardo Cota (2005-09-27):
# http://www.presidencia.gub.uy/_Web/decretos/2005/09/CM%20119_09%2009%202005_00001.PDF
# This means that from 2005-10-09 at 02:00 local time, until 2006-03-12 at
# 02:00 local time, official time in Uruguay will be at GMT -2.
Rule Uruguay 2005 only - Oct 9 2:00 1:00 S
Rule Uruguay 2006 only - Mar 12 2:00 0 -
# From Jesper Norgaard Welen (2006-09-06):
# http://www.presidencia.gub.uy/_web/decretos/2006/09/CM%20210_08%2006%202006_00001.PDF
Rule Uruguay 2006 max - Oct Sun>=1 2:00 1:00 S
Rule Uruguay 2007 max - Mar Sun>=8 2:00 0 -
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone America/Montevideo -3:44:44 - LMT 1898 Jun 28
-3:44:44 - MMT 1920 May 1 # Montevideo MT
-3:30 Uruguay UY%sT 1942 Dec 14 # Uruguay Time
-3:00 Uruguay UY%sT
# Venezuela
#
# From John Stainforth (2007-11-28):
# ... the change for Venezuela originally expected for 2007-12-31 has
# been brought forward to 2007-12-09. The official announcement was
# published today in the "Gaceta Oficial de la Republica Bolivariana
# de Venezuela, numero 38.819" (official document for all laws or
# resolution publication)
# http://www.globovision.com/news.php?nid=72208
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone America/Caracas -4:27:44 - LMT 1890
-4:27:40 - CMT 1912 Feb 12 # Caracas Mean Time?
-4:30 - VET 1965 # Venezuela Time
-4:00 - VET 2007 Dec 9 03:00
-4:30 - VET
================================================
FILE: public/admin-panel/assets/libs/flot/examples/axes-time-zones/tz/systemv
================================================
#
# This file is in the public domain, so clarified as of
# 2009-05-17 by Arthur David Olson.
# Old rules, should the need arise.
# No attempt is made to handle Newfoundland, since it cannot be expressed
# using the System V "TZ" scheme (half-hour offset), or anything outside
# North America (no support for non-standard DST start/end dates), nor
# the changes in the DST rules in the US after 1976 (which occurred after
# the old rules were written).
#
# If you need the old rules, uncomment ## lines.
# Compile this *without* leap second correction for true conformance.
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
Rule SystemV min 1973 - Apr lastSun 2:00 1:00 D
Rule SystemV min 1973 - Oct lastSun 2:00 0 S
Rule SystemV 1974 only - Jan 6 2:00 1:00 D
Rule SystemV 1974 only - Nov lastSun 2:00 0 S
Rule SystemV 1975 only - Feb 23 2:00 1:00 D
Rule SystemV 1975 only - Oct lastSun 2:00 0 S
Rule SystemV 1976 max - Apr lastSun 2:00 1:00 D
Rule SystemV 1976 max - Oct lastSun 2:00 0 S
# Zone NAME GMTOFF RULES/SAVE FORMAT [UNTIL]
## Zone SystemV/AST4ADT -4:00 SystemV A%sT
## Zone SystemV/EST5EDT -5:00 SystemV E%sT
## Zone SystemV/CST6CDT -6:00 SystemV C%sT
## Zone SystemV/MST7MDT -7:00 SystemV M%sT
## Zone SystemV/PST8PDT -8:00 SystemV P%sT
## Zone SystemV/YST9YDT -9:00 SystemV Y%sT
## Zone SystemV/AST4 -4:00 - AST
## Zone SystemV/EST5 -5:00 - EST
## Zone SystemV/CST6 -6:00 - CST
## Zone SystemV/MST7 -7:00 - MST
## Zone SystemV/PST8 -8:00 - PST
## Zone SystemV/YST9 -9:00 - YST
## Zone SystemV/HST10 -10:00 - HST
================================================
FILE: public/admin-panel/assets/libs/flot/examples/axes-time-zones/tz/yearistype.sh
================================================
#! /bin/sh
: 'This file is in the public domain, so clarified as of'
: '2006-07-17 by Arthur David Olson.'
case $#-$1 in
2-|2-0*|2-*[!0-9]*)
echo "$0: wild year - $1" >&2
exit 1 ;;
esac
case $#-$2 in
2-even)
case $1 in
*[24680]) exit 0 ;;
*) exit 1 ;;
esac ;;
2-nonpres|2-nonuspres)
case $1 in
*[02468][048]|*[13579][26]) exit 1 ;;
*) exit 0 ;;
esac ;;
2-odd)
case $1 in
*[13579]) exit 0 ;;
*) exit 1 ;;
esac ;;
2-uspres)
case $1 in
*[02468][048]|*[13579][26]) exit 0 ;;
*) exit 1 ;;
esac ;;
2-*)
echo "$0: wild type - $2" >&2 ;;
esac
echo "$0: usage is $0 year even|odd|uspres|nonpres|nonuspres" >&2
exit 1
================================================
FILE: public/admin-panel/assets/libs/flot/examples/axes-time-zones/tz/zone.tab
================================================
#
# This file is in the public domain, so clarified as of
# 2009-05-17 by Arthur David Olson.
#
# TZ zone descriptions
#
# From Paul Eggert (1996-08-05):
#
# This file contains a table with the following columns:
# 1. ISO 3166 2-character country code. See the file `iso3166.tab'.
# 2. Latitude and longitude of the zone's principal location
# in ISO 6709 sign-degrees-minutes-seconds format,
# either +-DDMM+-DDDMM or +-DDMMSS+-DDDMMSS,
# first latitude (+ is north), then longitude (+ is east).
# 3. Zone name used in value of TZ environment variable.
# 4. Comments; present if and only if the country has multiple rows.
#
# Columns are separated by a single tab.
# The table is sorted first by country, then an order within the country that
# (1) makes some geographical sense, and
# (2) puts the most populous zones first, where that does not contradict (1).
#
# Lines beginning with `#' are comments.
#
#country-
#code coordinates TZ comments
AD +4230+00131 Europe/Andorra
AE +2518+05518 Asia/Dubai
AF +3431+06912 Asia/Kabul
AG +1703-06148 America/Antigua
AI +1812-06304 America/Anguilla
AL +4120+01950 Europe/Tirane
AM +4011+04430 Asia/Yerevan
AO -0848+01314 Africa/Luanda
AQ -7750+16636 Antarctica/McMurdo McMurdo Station, Ross Island
AQ -9000+00000 Antarctica/South_Pole Amundsen-Scott Station, South Pole
AQ -6734-06808 Antarctica/Rothera Rothera Station, Adelaide Island
AQ -6448-06406 Antarctica/Palmer Palmer Station, Anvers Island
AQ -6736+06253 Antarctica/Mawson Mawson Station, Holme Bay
AQ -6835+07758 Antarctica/Davis Davis Station, Vestfold Hills
AQ -6617+11031 Antarctica/Casey Casey Station, Bailey Peninsula
AQ -7824+10654 Antarctica/Vostok Vostok Station, Lake Vostok
AQ -6640+14001 Antarctica/DumontDUrville Dumont-d'Urville Station, Terre Adelie
AQ -690022+0393524 Antarctica/Syowa Syowa Station, E Ongul I
AQ -5430+15857 Antarctica/Macquarie Macquarie Island Station, Macquarie Island
AR -3436-05827 America/Argentina/Buenos_Aires Buenos Aires (BA, CF)
AR -3124-06411 America/Argentina/Cordoba most locations (CB, CC, CN, ER, FM, MN, SE, SF)
AR -2447-06525 America/Argentina/Salta (SA, LP, NQ, RN)
AR -2411-06518 America/Argentina/Jujuy Jujuy (JY)
AR -2649-06513 America/Argentina/Tucuman Tucuman (TM)
AR -2828-06547 America/Argentina/Catamarca Catamarca (CT), Chubut (CH)
AR -2926-06651 America/Argentina/La_Rioja La Rioja (LR)
AR -3132-06831 America/Argentina/San_Juan San Juan (SJ)
AR -3253-06849 America/Argentina/Mendoza Mendoza (MZ)
AR -3319-06621 America/Argentina/San_Luis San Luis (SL)
AR -5138-06913 America/Argentina/Rio_Gallegos Santa Cruz (SC)
AR -5448-06818 America/Argentina/Ushuaia Tierra del Fuego (TF)
AS -1416-17042 Pacific/Pago_Pago
AT +4813+01620 Europe/Vienna
AU -3133+15905 Australia/Lord_Howe Lord Howe Island
AU -4253+14719 Australia/Hobart Tasmania - most locations
AU -3956+14352 Australia/Currie Tasmania - King Island
AU -3749+14458 Australia/Melbourne Victoria
AU -3352+15113 Australia/Sydney New South Wales - most locations
AU -3157+14127 Australia/Broken_Hill New South Wales - Yancowinna
AU -2728+15302 Australia/Brisbane Queensland - most locations
AU -2016+14900 Australia/Lindeman Queensland - Holiday Islands
AU -3455+13835 Australia/Adelaide South Australia
AU -1228+13050 Australia/Darwin Northern Territory
AU -3157+11551 Australia/Perth Western Australia - most locations
AU -3143+12852 Australia/Eucla Western Australia - Eucla area
AW +1230-06958 America/Aruba
AX +6006+01957 Europe/Mariehamn
AZ +4023+04951 Asia/Baku
BA +4352+01825 Europe/Sarajevo
BB +1306-05937 America/Barbados
BD +2343+09025 Asia/Dhaka
BE +5050+00420 Europe/Brussels
BF +1222-00131 Africa/Ouagadougou
BG +4241+02319 Europe/Sofia
BH +2623+05035 Asia/Bahrain
BI -0323+02922 Africa/Bujumbura
BJ +0629+00237 Africa/Porto-Novo
BL +1753-06251 America/St_Barthelemy
BM +3217-06446 Atlantic/Bermuda
BN +0456+11455 Asia/Brunei
BO -1630-06809 America/La_Paz
BQ +120903-0681636 America/Kralendijk
BR -0351-03225 America/Noronha Atlantic islands
BR -0127-04829 America/Belem Amapa, E Para
BR -0343-03830 America/Fortaleza NE Brazil (MA, PI, CE, RN, PB)
BR -0803-03454 America/Recife Pernambuco
BR -0712-04812 America/Araguaina Tocantins
BR -0940-03543 America/Maceio Alagoas, Sergipe
BR -1259-03831 America/Bahia Bahia
BR -2332-04637 America/Sao_Paulo S & SE Brazil (GO, DF, MG, ES, RJ, SP, PR, SC, RS)
BR -2027-05437 America/Campo_Grande Mato Grosso do Sul
BR -1535-05605 America/Cuiaba Mato Grosso
BR -0226-05452 America/Santarem W Para
BR -0846-06354 America/Porto_Velho Rondonia
BR +0249-06040 America/Boa_Vista Roraima
BR -0308-06001 America/Manaus E Amazonas
BR -0640-06952 America/Eirunepe W Amazonas
BR -0958-06748 America/Rio_Branco Acre
BS +2505-07721 America/Nassau
BT +2728+08939 Asia/Thimphu
BW -2439+02555 Africa/Gaborone
BY +5354+02734 Europe/Minsk
BZ +1730-08812 America/Belize
CA +4734-05243 America/St_Johns Newfoundland Time, including SE Labrador
CA +4439-06336 America/Halifax Atlantic Time - Nova Scotia (most places), PEI
CA +4612-05957 America/Glace_Bay Atlantic Time - Nova Scotia - places that did not observe DST 1966-1971
CA +4606-06447 America/Moncton Atlantic Time - New Brunswick
CA +5320-06025 America/Goose_Bay Atlantic Time - Labrador - most locations
CA +5125-05707 America/Blanc-Sablon Atlantic Standard Time - Quebec - Lower North Shore
CA +4531-07334 America/Montreal Eastern Time - Quebec - most locations
CA +4339-07923 America/Toronto Eastern Time - Ontario - most locations
CA +4901-08816 America/Nipigon Eastern Time - Ontario & Quebec - places that did not observe DST 1967-1973
CA +4823-08915 America/Thunder_Bay Eastern Time - Thunder Bay, Ontario
CA +6344-06828 America/Iqaluit Eastern Time - east Nunavut - most locations
CA +6608-06544 America/Pangnirtung Eastern Time - Pangnirtung, Nunavut
CA +744144-0944945 America/Resolute Central Standard Time - Resolute, Nunavut
CA +484531-0913718 America/Atikokan Eastern Standard Time - Atikokan, Ontario and Southampton I, Nunavut
CA +624900-0920459 America/Rankin_Inlet Central Time - central Nunavut
CA +4953-09709 America/Winnipeg Central Time - Manitoba & west Ontario
CA +4843-09434 America/Rainy_River Central Time - Rainy River & Fort Frances, Ontario
CA +5024-10439 America/Regina Central Standard Time - Saskatchewan - most locations
CA +5017-10750 America/Swift_Current Central Standard Time - Saskatchewan - midwest
CA +5333-11328 America/Edmonton Mountain Time - Alberta, east British Columbia & west Saskatchewan
CA +690650-1050310 America/Cambridge_Bay Mountain Time - west Nunavut
CA +6227-11421 America/Yellowknife Mountain Time - central Northwest Territories
CA +682059-1334300 America/Inuvik Mountain Time - west Northwest Territories
CA +4906-11631 America/Creston Mountain Standard Time - Creston, British Columbia
CA +5946-12014 America/Dawson_Creek Mountain Standard Time - Dawson Creek & Fort Saint John, British Columbia
CA +4916-12307 America/Vancouver Pacific Time - west British Columbia
CA +6043-13503 America/Whitehorse Pacific Time - south Yukon
CA +6404-13925 America/Dawson Pacific Time - north Yukon
CC -1210+09655 Indian/Cocos
CD -0418+01518 Africa/Kinshasa west Dem. Rep. of Congo
CD -1140+02728 Africa/Lubumbashi east Dem. Rep. of Congo
CF +0422+01835 Africa/Bangui
CG -0416+01517 Africa/Brazzaville
CH +4723+00832 Europe/Zurich
CI +0519-00402 Africa/Abidjan
CK -2114-15946 Pacific/Rarotonga
CL -3327-07040 America/Santiago most locations
CL -2709-10926 Pacific/Easter Easter Island & Sala y Gomez
CM +0403+00942 Africa/Douala
CN +3114+12128 Asia/Shanghai east China - Beijing, Guangdong, Shanghai, etc.
CN +4545+12641 Asia/Harbin Heilongjiang (except Mohe), Jilin
CN +2934+10635 Asia/Chongqing central China - Sichuan, Yunnan, Guangxi, Shaanxi, Guizhou, etc.
CN +4348+08735 Asia/Urumqi most of Tibet & Xinjiang
CN +3929+07559 Asia/Kashgar west Tibet & Xinjiang
CO +0436-07405 America/Bogota
CR +0956-08405 America/Costa_Rica
CU +2308-08222 America/Havana
CV +1455-02331 Atlantic/Cape_Verde
CW +1211-06900 America/Curacao
CX -1025+10543 Indian/Christmas
CY +3510+03322 Asia/Nicosia
CZ +5005+01426 Europe/Prague
DE +5230+01322 Europe/Berlin
DJ +1136+04309 Africa/Djibouti
DK +5540+01235 Europe/Copenhagen
DM +1518-06124 America/Dominica
DO +1828-06954 America/Santo_Domingo
DZ +3647+00303 Africa/Algiers
EC -0210-07950 America/Guayaquil mainland
EC -0054-08936 Pacific/Galapagos Galapagos Islands
EE +5925+02445 Europe/Tallinn
EG +3003+03115 Africa/Cairo
EH +2709-01312 Africa/El_Aaiun
ER +1520+03853 Africa/Asmara
ES +4024-00341 Europe/Madrid mainland
ES +3553-00519 Africa/Ceuta Ceuta & Melilla
ES +2806-01524 Atlantic/Canary Canary Islands
ET +0902+03842 Africa/Addis_Ababa
FI +6010+02458 Europe/Helsinki
FJ -1808+17825 Pacific/Fiji
FK -5142-05751 Atlantic/Stanley
FM +0725+15147 Pacific/Chuuk Chuuk (Truk) and Yap
FM +0658+15813 Pacific/Pohnpei Pohnpei (Ponape)
FM +0519+16259 Pacific/Kosrae Kosrae
FO +6201-00646 Atlantic/Faroe
FR +4852+00220 Europe/Paris
GA +0023+00927 Africa/Libreville
GB +513030-0000731 Europe/London
GD +1203-06145 America/Grenada
GE +4143+04449 Asia/Tbilisi
GF +0456-05220 America/Cayenne
GG +4927-00232 Europe/Guernsey
GH +0533-00013 Africa/Accra
GI +3608-00521 Europe/Gibraltar
GL +6411-05144 America/Godthab most locations
GL +7646-01840 America/Danmarkshavn east coast, north of Scoresbysund
GL +7029-02158 America/Scoresbysund Scoresbysund / Ittoqqortoormiit
GL +7634-06847 America/Thule Thule / Pituffik
GM +1328-01639 Africa/Banjul
GN +0931-01343 Africa/Conakry
GP +1614-06132 America/Guadeloupe
GQ +0345+00847 Africa/Malabo
GR +3758+02343 Europe/Athens
GS -5416-03632 Atlantic/South_Georgia
GT +1438-09031 America/Guatemala
GU +1328+14445 Pacific/Guam
GW +1151-01535 Africa/Bissau
GY +0648-05810 America/Guyana
HK +2217+11409 Asia/Hong_Kong
HN +1406-08713 America/Tegucigalpa
HR +4548+01558 Europe/Zagreb
HT +1832-07220 America/Port-au-Prince
HU +4730+01905 Europe/Budapest
ID -0610+10648 Asia/Jakarta Java & Sumatra
ID -0002+10920 Asia/Pontianak west & central Borneo
ID -0507+11924 Asia/Makassar east & south Borneo, Sulawesi (Celebes), Bali, Nusa Tengarra, west Timor
ID -0232+14042 Asia/Jayapura west New Guinea (Irian Jaya) & Malukus (Moluccas)
IE +5320-00615 Europe/Dublin
IL +3146+03514 Asia/Jerusalem
IM +5409-00428 Europe/Isle_of_Man
IN +2232+08822 Asia/Kolkata
IO -0720+07225 Indian/Chagos
IQ +3321+04425 Asia/Baghdad
IR +3540+05126 Asia/Tehran
IS +6409-02151 Atlantic/Reykjavik
IT +4154+01229 Europe/Rome
JE +4912-00207 Europe/Jersey
JM +1800-07648 America/Jamaica
JO +3157+03556 Asia/Amman
JP +353916+1394441 Asia/Tokyo
KE -0117+03649 Africa/Nairobi
KG +4254+07436 Asia/Bishkek
KH +1133+10455 Asia/Phnom_Penh
KI +0125+17300 Pacific/Tarawa Gilbert Islands
KI -0308-17105 Pacific/Enderbury Phoenix Islands
KI +0152-15720 Pacific/Kiritimati Line Islands
KM -1141+04316 Indian/Comoro
KN +1718-06243 America/St_Kitts
KP +3901+12545 Asia/Pyongyang
KR +3733+12658 Asia/Seoul
KW +2920+04759 Asia/Kuwait
KY +1918-08123 America/Cayman
KZ +4315+07657 Asia/Almaty most locations
KZ +4448+06528 Asia/Qyzylorda Qyzylorda (Kyzylorda, Kzyl-Orda)
KZ +5017+05710 Asia/Aqtobe Aqtobe (Aktobe)
KZ +4431+05016 Asia/Aqtau Atyrau (Atirau, Gur'yev), Mangghystau (Mankistau)
KZ +5113+05121 Asia/Oral West Kazakhstan
LA +1758+10236 Asia/Vientiane
LB +3353+03530 Asia/Beirut
LC +1401-06100 America/St_Lucia
LI +4709+00931 Europe/Vaduz
LK +0656+07951 Asia/Colombo
LR +0618-01047 Africa/Monrovia
LS -2928+02730 Africa/Maseru
LT +5441+02519 Europe/Vilnius
LU +4936+00609 Europe/Luxembourg
LV +5657+02406 Europe/Riga
LY +3254+01311 Africa/Tripoli
MA +3339-00735 Africa/Casablanca
MC +4342+00723 Europe/Monaco
MD +4700+02850 Europe/Chisinau
ME +4226+01916 Europe/Podgorica
MF +1804-06305 America/Marigot
MG -1855+04731 Indian/Antananarivo
MH +0709+17112 Pacific/Majuro most locations
MH +0905+16720 Pacific/Kwajalein Kwajalein
MK +4159+02126 Europe/Skopje
ML +1239-00800 Africa/Bamako
MM +1647+09610 Asia/Rangoon
MN +4755+10653 Asia/Ulaanbaatar most locations
MN +4801+09139 Asia/Hovd Bayan-Olgiy, Govi-Altai, Hovd, Uvs, Zavkhan
MN +4804+11430 Asia/Choibalsan Dornod, Sukhbaatar
MO +2214+11335 Asia/Macau
MP +1512+14545 Pacific/Saipan
MQ +1436-06105 America/Martinique
MR +1806-01557 Africa/Nouakchott
MS +1643-06213 America/Montserrat
MT +3554+01431 Europe/Malta
MU -2010+05730 Indian/Mauritius
MV +0410+07330 Indian/Maldives
MW -1547+03500 Africa/Blantyre
MX +1924-09909 America/Mexico_City Central Time - most locations
MX +2105-08646 America/Cancun Central Time - Quintana Roo
MX +2058-08937 America/Merida Central Time - Campeche, Yucatan
MX +2540-10019 America/Monterrey Mexican Central Time - Coahuila, Durango, Nuevo Leon, Tamaulipas away from US border
MX +2550-09730 America/Matamoros US Central Time - Coahuila, Durango, Nuevo Leon, Tamaulipas near US border
MX +2313-10625 America/Mazatlan Mountain Time - S Baja, Nayarit, Sinaloa
MX +2838-10605 America/Chihuahua Mexican Mountain Time - Chihuahua away from US border
MX +2934-10425 America/Ojinaga US Mountain Time - Chihuahua near US border
MX +2904-11058 America/Hermosillo Mountain Standard Time - Sonora
MX +3232-11701 America/Tijuana US Pacific Time - Baja California near US border
MX +3018-11452 America/Santa_Isabel Mexican Pacific Time - Baja California away from US border
MX +2048-10515 America/Bahia_Banderas Mexican Central Time - Bahia de Banderas
MY +0310+10142 Asia/Kuala_Lumpur peninsular Malaysia
MY +0133+11020 Asia/Kuching Sabah & Sarawak
MZ -2558+03235 Africa/Maputo
NA -2234+01706 Africa/Windhoek
NC -2216+16627 Pacific/Noumea
NE +1331+00207 Africa/Niamey
NF -2903+16758 Pacific/Norfolk
NG +0627+00324 Africa/Lagos
NI +1209-08617 America/Managua
NL +5222+00454 Europe/Amsterdam
NO +5955+01045 Europe/Oslo
NP +2743+08519 Asia/Kathmandu
NR -0031+16655 Pacific/Nauru
NU -1901-16955 Pacific/Niue
NZ -3652+17446 Pacific/Auckland most locations
NZ -4357-17633 Pacific/Chatham Chatham Islands
OM +2336+05835 Asia/Muscat
PA +0858-07932 America/Panama
PE -1203-07703 America/Lima
PF -1732-14934 Pacific/Tahiti Society Islands
PF -0900-13930 Pacific/Marquesas Marquesas Islands
PF -2308-13457 Pacific/Gambier Gambier Islands
PG -0930+14710 Pacific/Port_Moresby
PH +1435+12100 Asia/Manila
PK +2452+06703 Asia/Karachi
PL +5215+02100 Europe/Warsaw
PM +4703-05620 America/Miquelon
PN -2504-13005 Pacific/Pitcairn
PR +182806-0660622 America/Puerto_Rico
PS +3130+03428 Asia/Gaza Gaza Strip
PS +313200+0350542 Asia/Hebron West Bank
PT +3843-00908 Europe/Lisbon mainland
PT +3238-01654 Atlantic/Madeira Madeira Islands
PT +3744-02540 Atlantic/Azores Azores
PW +0720+13429 Pacific/Palau
PY -2516-05740 America/Asuncion
QA +2517+05132 Asia/Qatar
RE -2052+05528 Indian/Reunion
RO +4426+02606 Europe/Bucharest
RS +4450+02030 Europe/Belgrade
RU +5443+02030 Europe/Kaliningrad Moscow-01 - Kaliningrad
RU +5545+03735 Europe/Moscow Moscow+00 - west Russia
RU +4844+04425 Europe/Volgograd Moscow+00 - Caspian Sea
RU +5312+05009 Europe/Samara Moscow+00 - Samara, Udmurtia
RU +5651+06036 Asia/Yekaterinburg Moscow+02 - Urals
RU +5500+07324 Asia/Omsk Moscow+03 - west Siberia
RU +5502+08255 Asia/Novosibirsk Moscow+03 - Novosibirsk
RU +5345+08707 Asia/Novokuznetsk Moscow+03 - Novokuznetsk
RU +5601+09250 Asia/Krasnoyarsk Moscow+04 - Yenisei River
RU +5216+10420 Asia/Irkutsk Moscow+05 - Lake Baikal
RU +6200+12940 Asia/Yakutsk Moscow+06 - Lena River
RU +4310+13156 Asia/Vladivostok Moscow+07 - Amur River
RU +4658+14242 Asia/Sakhalin Moscow+07 - Sakhalin Island
RU +5934+15048 Asia/Magadan Moscow+08 - Magadan
RU +5301+15839 Asia/Kamchatka Moscow+08 - Kamchatka
RU +6445+17729 Asia/Anadyr Moscow+08 - Bering Sea
RW -0157+03004 Africa/Kigali
SA +2438+04643 Asia/Riyadh
SB -0932+16012 Pacific/Guadalcanal
SC -0440+05528 Indian/Mahe
SD +1536+03232 Africa/Khartoum
SE +5920+01803 Europe/Stockholm
SG +0117+10351 Asia/Singapore
SH -1555-00542 Atlantic/St_Helena
SI +4603+01431 Europe/Ljubljana
SJ +7800+01600 Arctic/Longyearbyen
SK +4809+01707 Europe/Bratislava
SL +0830-01315 Africa/Freetown
SM +4355+01228 Europe/San_Marino
SN +1440-01726 Africa/Dakar
SO +0204+04522 Africa/Mogadishu
SR +0550-05510 America/Paramaribo
SS +0451+03136 Africa/Juba
ST +0020+00644 Africa/Sao_Tome
SV +1342-08912 America/El_Salvador
SX +180305-0630250 America/Lower_Princes
SY +3330+03618 Asia/Damascus
SZ -2618+03106 Africa/Mbabane
TC +2128-07108 America/Grand_Turk
TD +1207+01503 Africa/Ndjamena
TF -492110+0701303 Indian/Kerguelen
TG +0608+00113 Africa/Lome
TH +1345+10031 Asia/Bangkok
TJ +3835+06848 Asia/Dushanbe
TK -0922-17114 Pacific/Fakaofo
TL -0833+12535 Asia/Dili
TM +3757+05823 Asia/Ashgabat
TN +3648+01011 Africa/Tunis
TO -2110-17510 Pacific/Tongatapu
TR +4101+02858 Europe/Istanbul
TT +1039-06131 America/Port_of_Spain
TV -0831+17913 Pacific/Funafuti
TW +2503+12130 Asia/Taipei
TZ -0648+03917 Africa/Dar_es_Salaam
UA +5026+03031 Europe/Kiev most locations
UA +4837+02218 Europe/Uzhgorod Ruthenia
UA +4750+03510 Europe/Zaporozhye Zaporozh'ye, E Lugansk / Zaporizhia, E Luhansk
UA +4457+03406 Europe/Simferopol central Crimea
UG +0019+03225 Africa/Kampala
UM +1645-16931 Pacific/Johnston Johnston Atoll
UM +2813-17722 Pacific/Midway Midway Islands
UM +1917+16637 Pacific/Wake Wake Island
US +404251-0740023 America/New_York Eastern Time
US +421953-0830245 America/Detroit Eastern Time - Michigan - most locations
US +381515-0854534 America/Kentucky/Louisville Eastern Time - Kentucky - Louisville area
US +364947-0845057 America/Kentucky/Monticello Eastern Time - Kentucky - Wayne County
US +394606-0860929 America/Indiana/Indianapolis Eastern Time - Indiana - most locations
US +384038-0873143 America/Indiana/Vincennes Eastern Time - Indiana - Daviess, Dubois, Knox & Martin Counties
US +410305-0863611 America/Indiana/Winamac Eastern Time - Indiana - Pulaski County
US +382232-0862041 America/Indiana/Marengo Eastern Time - Indiana - Crawford County
US +382931-0871643 America/Indiana/Petersburg Eastern Time - Indiana - Pike County
US +384452-0850402 America/Indiana/Vevay Eastern Time - Indiana - Switzerland County
US +415100-0873900 America/Chicago Central Time
US +375711-0864541 America/Indiana/Tell_City Central Time - Indiana - Perry County
US +411745-0863730 America/Indiana/Knox Central Time - Indiana - Starke County
US +450628-0873651 America/Menominee Central Time - Michigan - Dickinson, Gogebic, Iron & Menominee Counties
US +470659-1011757 America/North_Dakota/Center Central Time - North Dakota - Oliver County
US +465042-1012439 America/North_Dakota/New_Salem Central Time - North Dakota - Morton County (except Mandan area)
US +471551-1014640 America/North_Dakota/Beulah Central Time - North Dakota - Mercer County
US +394421-1045903 America/Denver Mountain Time
US +433649-1161209 America/Boise Mountain Time - south Idaho & east Oregon
US +364708-1084111 America/Shiprock Mountain Time - Navajo
US +332654-1120424 America/Phoenix Mountain Standard Time - Arizona
US +340308-1181434 America/Los_Angeles Pacific Time
US +611305-1495401 America/Anchorage Alaska Time
US +581807-1342511 America/Juneau Alaska Time - Alaska panhandle
US +571035-1351807 America/Sitka Alaska Time - southeast Alaska panhandle
US +593249-1394338 America/Yakutat Alaska Time - Alaska panhandle neck
US +643004-1652423 America/Nome Alaska Time - west Alaska
US +515248-1763929 America/Adak Aleutian Islands
US +550737-1313435 America/Metlakatla Metlakatla Time - Annette Island
US +211825-1575130 Pacific/Honolulu Hawaii
UY -3453-05611 America/Montevideo
UZ +3940+06648 Asia/Samarkand west Uzbekistan
UZ +4120+06918 Asia/Tashkent east Uzbekistan
VA +415408+0122711 Europe/Vatican
VC +1309-06114 America/St_Vincent
VE +1030-06656 America/Caracas
VG +1827-06437 America/Tortola
VI +1821-06456 America/St_Thomas
VN +1045+10640 Asia/Ho_Chi_Minh
VU -1740+16825 Pacific/Efate
WF -1318-17610 Pacific/Wallis
WS -1350-17144 Pacific/Apia
YE +1245+04512 Asia/Aden
YT -1247+04514 Indian/Mayotte
ZA -2615+02800 Africa/Johannesburg
ZM -1525+02817 Africa/Lusaka
ZW -1750+03103 Africa/Harare
================================================
FILE: public/admin-panel/assets/libs/flot/examples/basic-options/index.html
================================================
Flot Examples: Basic Options
There are plenty of options you can set to control the precise looks of your plot. You can control the ticks on the axes, the legend, the graph type, etc.
Flot goes to great lengths to provide sensible defaults so that you don't have to customize much for a good-looking result.
================================================
FILE: public/admin-panel/assets/libs/flot/examples/basic-usage/index.html
================================================
Flot Examples: Basic Usage
You don't have to do much to get an attractive plot. Create a placeholder, make sure it has dimensions (so Flot knows at what size to draw the plot), then call the plot function with your data.
The axes are automatically scaled.
================================================
FILE: public/admin-panel/assets/libs/flot/examples/canvas/index.html
================================================
Flot Examples: Canvas text
================================================
FILE: public/admin-panel/assets/libs/flot/examples/categories/index.html
================================================
Flot Examples: Categories
With the categories plugin you can plot categories/textual data easily.
================================================
FILE: public/admin-panel/assets/libs/flot/examples/examples.css
================================================
* { padding: 0; margin: 0; vertical-align: top; }
body {
background: url(background.png) repeat-x;
font: 18px/1.5em "proxima-nova", Helvetica, Arial, sans-serif;
}
a { color: #069; }
a:hover { color: #28b; }
h2 {
margin-top: 15px;
font: normal 32px "omnes-pro", Helvetica, Arial, sans-serif;
}
h3 {
margin-left: 30px;
font: normal 26px "omnes-pro", Helvetica, Arial, sans-serif;
color: #666;
}
p {
margin-top: 10px;
}
button {
font-size: 18px;
padding: 1px 7px;
}
input {
font-size: 18px;
}
input[type=checkbox] {
margin: 7px;
}
#header {
position: relative;
width: 900px;
margin: auto;
}
#header h2 {
margin-left: 10px;
vertical-align: middle;
font-size: 42px;
font-weight: bold;
text-decoration: none;
color: #000;
}
#content {
width: 880px;
margin: 0 auto;
padding: 10px;
}
#footer {
margin-top: 25px;
margin-bottom: 10px;
text-align: center;
font-size: 12px;
color: #999;
}
.demo-container {
box-sizing: border-box;
width: 850px;
height: 450px;
padding: 20px 15px 15px 15px;
margin: 15px auto 30px auto;
border: 1px solid #ddd;
background: #fff;
background: linear-gradient(#f6f6f6 0, #fff 50px);
background: -o-linear-gradient(#f6f6f6 0, #fff 50px);
background: -ms-linear-gradient(#f6f6f6 0, #fff 50px);
background: -moz-linear-gradient(#f6f6f6 0, #fff 50px);
background: -webkit-linear-gradient(#f6f6f6 0, #fff 50px);
box-shadow: 0 3px 10px rgba(0,0,0,0.15);
-o-box-shadow: 0 3px 10px rgba(0,0,0,0.1);
-ms-box-shadow: 0 3px 10px rgba(0,0,0,0.1);
-moz-box-shadow: 0 3px 10px rgba(0,0,0,0.1);
-webkit-box-shadow: 0 3px 10px rgba(0,0,0,0.1);
}
.demo-placeholder {
width: 100%;
height: 100%;
font-size: 14px;
line-height: 1.2em;
}
.legend table {
border-spacing: 5px;
}
================================================
FILE: public/admin-panel/assets/libs/flot/examples/image/index.html
================================================
Flot Examples: Image Plots
The Cat's Eye Nebula (picture from Hubble ).
With the image plugin, you can plot static images against a set of axes. This is for useful for adding ticks to complex prerendered visualizations. Instead of inputting data points, you specify the images and where their two opposite corners are supposed to be in plot space.
Images represent a little further complication because you need to make sure they are loaded before you can use them (Flot skips incomplete images). The plugin comes with a couple of helpers for doing that.
================================================
FILE: public/admin-panel/assets/libs/flot/examples/index.html
================================================
Flot Examples
Here are some examples for Flot , the Javascript charting library for jQuery:
Basic Usage
Interactivity
Additional Features
================================================
FILE: public/admin-panel/assets/libs/flot/examples/interacting/index.html
================================================
Flot Examples: Interactivity
================================================
FILE: public/admin-panel/assets/libs/flot/examples/navigate/index.html
================================================
Flot Examples: Navigation
With the navigate plugin it is easy to add panning and zooming. Drag to pan, double click to zoom (or use the mouse scrollwheel).
The plugin fires events (useful for synchronizing several plots) and adds a couple of public methods so you can easily build a little user interface around it, like the little buttons at the top right in the plot.
================================================
FILE: public/admin-panel/assets/libs/flot/examples/percentiles/index.html
================================================
Flot Examples: Percentiles
Height in centimeters of individuals from the US (2003-2006) as function of age in years (source: CDC ). The 15%-85%, 25%-75% and 50% percentiles are indicated.
For each point of a filled curve, you can specify an arbitrary bottom. As this example illustrates, this can be useful for plotting percentiles. If you have the data sets available without appropriate fill bottoms, you can use the fillbetween plugin to compute the data point bottoms automatically.
================================================
FILE: public/admin-panel/assets/libs/flot/examples/realtime/index.html
================================================
Flot Examples: Real-time updates
================================================
FILE: public/admin-panel/assets/libs/flot/examples/resize/index.html
================================================
Flot Examples: Resizing
Sometimes it makes more sense to just let the plot take up the available space. In that case, we need to redraw the plot each time the placeholder changes its size. If you include the resize plugin, this is handled automatically.
Drag the bottom and right sides of the plot to resize it.
================================================
FILE: public/admin-panel/assets/libs/flot/examples/selection/index.html
================================================
Flot Examples: Selection
1000 kg. CO2 emissions per year per capita for various countries (source: Wikipedia ).
Flot supports selections through the selection plugin. You can enable rectangular selection or one-dimensional selection if the user should only be able to select on one axis. Try left-click and drag on the plot above where selection on the x axis is enabled.
You selected:
The plot command returns a plot object you can use to control the selection. Click the buttons below.
Clear selection
Select year 1994
Selections are really useful for zooming. Just replot the chart with min and max values for the axes set to the values in the "plotselected" event triggered. Enable the checkbox below and select a region again.
Zoom to selection.
================================================
FILE: public/admin-panel/assets/libs/flot/examples/series-errorbars/index.html
================================================
Flot Examples: Error Bars
With the errorbars plugin you can plot error bars to show standard deviation and other useful statistical properties.
================================================
FILE: public/admin-panel/assets/libs/flot/examples/series-pie/index.html
================================================
Flot Examples: Pie Charts
Source Code
Pie Options
option: default value - Description of option
show: false - Enable the plugin and draw as a pie.
radius: 'auto' - Sets the radius of the pie. If value is between 0 and 1 (inclusive) then it will use that as a percentage of the available space (size of the container), otherwise it will use the value as a direct pixel length. If set to 'auto', it will be set to 1 if the legend is enabled and 3/4 if not.
innerRadius: 0 - Sets the radius of the donut hole. If value is between 0 and 1 (inclusive) then it will use that as a percentage of the radius, otherwise it will use the value as a direct pixel length.
startAngle: 3/2 - Factor of PI used for the starting angle (in radians) It can range between 0 and 2 (where 0 and 2 have the same result).
tilt: 1 - Percentage of tilt ranging from 0 and 1, where 1 has no change (fully vertical) and 0 is completely flat (fully horizontal -- in which case nothing actually gets drawn).
shadow:
top: 5 - Vertical distance in pixel of the tilted pie shadow.
left: 15 - Horizontal distance in pixel of the tilted pie shadow.
alpha: 0.02 - Alpha value of the tilted pie shadow.
offset:
top: 0 - Pixel distance to move the pie up and down (relative to the center).
left: 'auto' - Pixel distance to move the pie left and right (relative to the center).
stroke:
color: '#FFF' - Color of the border of each slice. Hexadecimal color definitions are prefered (other formats may or may not work).
width: 1 - Pixel width of the border of each slice.
label:
show: 'auto' - Enable/Disable the labels. This can be set to true, false, or 'auto'. When set to 'auto', it will be set to false if the legend is enabled and true if not.
radius: 1 - Sets the radius at which to place the labels. If value is between 0 and 1 (inclusive) then it will use that as a percentage of the available space (size of the container), otherwise it will use the value as a direct pixel length.
threshold: 0 - Hides the labels of any pie slice that is smaller than the specified percentage (ranging from 0 to 1) i.e. a value of '0.03' will hide all slices 3% or less of the total.
formatter: [function] - This function specifies how the positioned labels should be formatted, and is applied after the legend's labelFormatter function. The labels can also still be styled using the class "pieLabel" (i.e. ".pieLabel" or "#graph1 .pieLabel").
radius: 1 - Sets the radius at which to place the labels. If value is between 0 and 1 (inclusive) then it will use that as a percentage of the available space (size of the container), otherwise it will use the value as a direct pixel length.
background:
color: null - Backgound color of the positioned labels. If null, the plugin will automatically use the color of the slice.
opacity: 0 - Opacity of the background for the positioned labels. Acceptable values range from 0 to 1, where 0 is completely transparent and 1 is completely opaque.
combine:
threshold: 0 - Combines all slices that are smaller than the specified percentage (ranging from 0 to 1) i.e. a value of '0.03' will combine all slices 3% or less into one slice).
color: null - Backgound color of the positioned labels. If null, the plugin will automatically use the color of the first slice to be combined.
label: 'Other' - Label text for the combined slice.
highlight:
opacity: 0.5 - Opacity of the highlight overlay on top of the current pie slice. Currently this just uses a white overlay, but support for changing the color of the overlay will also be added at a later date.
Changes/Features
v1.0 - November 20th, 2009 - Brian Medendorp
The pie plug-in is now part of the Flot repository! This should make it a lot easier to deal with.
Added a new option (innerRadius) to add a "donut hole" to the center of the pie, based on comtributions from Anthony Aragues. I was a little reluctant to add this feature because it doesn't work very well with the shadow created for the tilted pie, but figured it was worthwhile for non-tilted pies. Also, excanvas apparently doesn't support compositing, so it will fall back to using the stroke color to fill in the center (but I recommend setting the stroke color to the background color anyway).
Changed the lineJoin for the border of the pie slices to use the 'round' option. This should make the center of the pie look better, particularly when there are numerous thin slices.
Included a bug fix submitted by btburnett3 to display a slightly smaller slice in the event that the slice is 100% and being rendered with Internet Explorer. I haven't experienced this bug myself, but it doesn't seem to hurt anything so I've included it.
The tilt value is now used when calculating the maximum radius of the pie in relation to the height of the container. This should prevent the pie from being smaller than it needed to in some cases, as well as reducing the amount of extra white space generated above and below the pie.
Hover and Click functionality are now availabe!
Thanks to btburnett3 for the original hover functionality and Anthony Aragues for the modification that makes it compatable with excanvas, this was a huge help!
Added a new option (highlight opacity) to modify the highlight created when mousing over a slice. Currently this just uses a white overlay, but an option to change the hightlight color will be added when the appropriate functionality becomes available.
I had a major setback that required me to practically rebuild the hover/click events from scratch one piece at a time (I discovered that it only worked with a single pie on a page at a time), but the end result ended up being virtually identical to the original, so I'm not quite sure what exactly made it work.
Warning: There are some minor issues with using this functionality in conjuction with some of the other more advanced features (tilt and donut). When using a donut hole, the inner portion still triggers the events even though that portion of the pie is no longer visible. When tilted, the interactive portions still use the original, untilted version of the pie when determining mouse position (this is because the isPointInPath function apparently doesn't work with transformations), however hover and click both work this way, so the appropriate slice is still highlighted when clicking, and it isn't as noticable of a problem.
Included a bug fix submitted by Xavi Ivars to fix array issues when other javascript libraries are included in addition to jQuery
v0.4 - July 1st, 2009 - Brian Medendorp
Each series will now be shown in the legend, even if it's value is zero. The series will not get a positioned label because it will overlap with the other labels present and often makes them unreadable.
Data can now be passed in using the standard Flot method using an array of datapoints, the pie plugin will simply use the first y-value that it finds for each series in this case. The plugin uses this datastructure internally, but you can still use the old method of passing in a single numerical value for each series (the plugin will convert it as necessary). This should make it easier to transition from other types of graphs (such as a stacked bar graph) to a pie.
The pie can now be tilted at an angle with a new "tilt" option. Acceptable values range from 0-1, where 1 has no change (fully vertical) and 0 is completely flat (fully horizontal -- in which case nothing actually gets drawn). If the plugin determines that it will fit within the canvas, a drop shadow will be drawn under the tilted pie (this also requires a tilt value of 0.8 or less).
v0.3.2 - June 25th, 2009 - Brian Medendorp
Fixed a bug that was causing the pie to be shifted too far left or right when the legend is showing in some cases.
v0.3.1 - June 24th, 2009 - Brian Medendorp
Fixed a bug that was causing nothing to be drawn and generating a javascript error if any of the data values were set to zero.
v0.3 - June 23rd, 2009 - Brian Medendorp
The legend now works without any modifications! Because of changes made to flot and the plugin system (thanks Ole Laursen!) I was able to simplify a number of things and am now able to use the legend without the direct access hack that was required in the previous version.
v0.2 - June 22nd, 2009 - Brian Medendorp
The legend now works but only if you make the necessary changes to jquery.flot.js. Because of this, I changed the default values for pie.radius and pie.label.show to new 'auto' settings that change the default behavior of the size and labels depending on whether the legend functionality is available or not.
v0.1 - June 18th, 2009 - Brian Medendorp
Rewrote the entire pie code into a flot plugin (since that is now an option), so it should be much easier to use and the code is cleaned up a bit. However, the (standard flot) legend is no longer available because the only way to prevent the grid lines from being displayed also prevents the legend from being displayed. Hopefully this can be fixed at a later date.
Restructured and combined some of the options. It should be much easier to deal with now.
Added the ability to change the starting point of the pie (still defaults to the top).
Modified the default options to show the labels to compensate for the lack of a legend.
Modified this page to use a random dataset. Note: you may need to refresh the page to see the effects of some of the examples.
May 21st, 2009 - Brian Medendorp
Merged original pie modifications by Sergey Nosenko into the latest SVN version (as of May 15th, 2009) so that it will work with ie8.
Pie graph will now be centered in the canvas unless moved because of the legend or manually via the options. Additionally it prevents the pie from being moved beyond the edge of the canvas.
Modified the code related to the labelFormatter option to apply flot's legend labelFormatter first. This is so that the labels will be consistent, but still provide extra formatting for the positioned labels (such as adding the percentage value).
Positioned labels now have their backgrounds applied as a seperate element (much like the legend background) so that the opacity value can be set independently from the label itself (foreground). Additionally, the background color defaults to that of the matching slice.
As long as the labelOffset and radiusLimit are not set to hard values, the pie will be shrunk if the labels will extend outside the edge of the canvas
Added new options "radiusLimitFactor" and "radiusLimit" which limits how large the (visual) radius of the pie is in relation to the full radius (as calculated from the canvas dimensions) or a hard-pixel value (respectively). This allows for pushing the labels "outside" the pie.
Added a new option "labelHidePercent" that does not show the positioned labels of slices smaller than the specified percentage. This is to help prevent a bunch of overlapping labels from small slices.
Added a new option "sliceCombinePercent" that combines all slices smaller than the specified percentage into one larger slice. This is to help make the pie more attractive when there are a number of tiny slices. The options "sliceCombineColor" and "sliceCombineLabel" have also been added to change the color and name of the new slice if desired.
Tested in Firefox (3.0.10, 3.5b4), Internet Explorer (6.0.2900, 7.0.5730, 8.0.6001), Chrome (1.0.154), Opera (9.64), and Safari (3.1.1, 4 beta 5528.16).
================================================
FILE: public/admin-panel/assets/libs/flot/examples/series-toggle/index.html
================================================
Flot Examples: Toggling Series
This example shows military budgets for various countries in constant (2005) million US dollars (source: SIPRI ).
Since all data is available client-side, it's pretty easy to make the plot interactive. Try turning countries on and off with the checkboxes next to the plot.
================================================
FILE: public/admin-panel/assets/libs/flot/examples/series-types/index.html
================================================
Flot Examples: Series Types
Flot supports lines, points, filled areas, bars and any combinations of these, in the same plot and even on the same data series.
================================================
FILE: public/admin-panel/assets/libs/flot/examples/stacking/index.html
================================================
Flot Examples: Stacking
With the stack plugin, you can have Flot stack the series. This is useful if you wish to display both a total and the constituents it is made of. The only requirement is that you provide the input sorted on x.
With stacking
Without stacking
Bars
Lines
Lines with steps
================================================
FILE: public/admin-panel/assets/libs/flot/examples/symbols/index.html
================================================
Flot Examples: Symbols
Points can be marked in several ways, with circles being the built-in default. For other point types, you can define a callback function to draw the symbol. Some common symbols are available in the symbol plugin.
================================================
FILE: public/admin-panel/assets/libs/flot/examples/threshold/index.html
================================================
Flot Examples: Thresholds
With the threshold plugin, you can apply a specific color to the part of a data series below a threshold. This is can be useful for highlighting negative values, e.g. when displaying net results or what's in stock.
Threshold at 5
Threshold at 0
Threshold at -2.5
================================================
FILE: public/admin-panel/assets/libs/flot/examples/tracking/index.html
================================================
Flot Examples: Tracking
You can add crosshairs that'll track the mouse position, either on both axes or as here on only one.
If you combine it with listening on hover events, you can use it to track the intersection on the curves by interpolating the data points (look at the legend).
================================================
FILE: public/admin-panel/assets/libs/flot/examples/visitors/index.html
================================================
Flot Examples: Visitors
This plot shows visitors per day to the Flot homepage, with weekends colored.
The smaller plot is linked to the main plot, so it acts as an overview. Try dragging a selection on either plot, and watch the behavior of the other.
================================================
FILE: public/admin-panel/assets/libs/flot/examples/zooming/index.html
================================================
Flot Examples: Selection and zooming
Selection support makes it easy to construct flexible zooming schemes. With a few lines of code, the small overview plot to the right has been connected to the large plot. Try selecting a rectangle on either of them.
================================================
FILE: public/admin-panel/assets/libs/flot/excanvas.js
================================================
// Copyright 2006 Google Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
// Known Issues:
//
// * Patterns only support repeat.
// * Radial gradient are not implemented. The VML version of these look very
// different from the canvas one.
// * Clipping paths are not implemented.
// * Coordsize. The width and height attribute have higher priority than the
// width and height style values which isn't correct.
// * Painting mode isn't implemented.
// * Canvas width/height should is using content-box by default. IE in
// Quirks mode will draw the canvas using border-box. Either change your
// doctype to HTML5
// (http://www.whatwg.org/specs/web-apps/current-work/#the-doctype)
// or use Box Sizing Behavior from WebFX
// (http://webfx.eae.net/dhtml/boxsizing/boxsizing.html)
// * Non uniform scaling does not correctly scale strokes.
// * Filling very large shapes (above 5000 points) is buggy.
// * Optimize. There is always room for speed improvements.
// Only add this code if we do not already have a canvas implementation
if (!document.createElement('canvas').getContext) {
(function() {
// alias some functions to make (compiled) code shorter
var m = Math;
var mr = m.round;
var ms = m.sin;
var mc = m.cos;
var abs = m.abs;
var sqrt = m.sqrt;
// this is used for sub pixel precision
var Z = 10;
var Z2 = Z / 2;
var IE_VERSION = +navigator.userAgent.match(/MSIE ([\d.]+)?/)[1];
/**
* This funtion is assigned to the elements as element.getContext().
* @this {HTMLElement}
* @return {CanvasRenderingContext2D_}
*/
function getContext() {
return this.context_ ||
(this.context_ = new CanvasRenderingContext2D_(this));
}
var slice = Array.prototype.slice;
/**
* Binds a function to an object. The returned function will always use the
* passed in {@code obj} as {@code this}.
*
* Example:
*
* g = bind(f, obj, a, b)
* g(c, d) // will do f.call(obj, a, b, c, d)
*
* @param {Function} f The function to bind the object to
* @param {Object} obj The object that should act as this when the function
* is called
* @param {*} var_args Rest arguments that will be used as the initial
* arguments when the function is called
* @return {Function} A new function that has bound this
*/
function bind(f, obj, var_args) {
var a = slice.call(arguments, 2);
return function() {
return f.apply(obj, a.concat(slice.call(arguments)));
};
}
function encodeHtmlAttribute(s) {
return String(s).replace(/&/g, '&').replace(/"/g, '"');
}
function addNamespace(doc, prefix, urn) {
if (!doc.namespaces[prefix]) {
doc.namespaces.add(prefix, urn, '#default#VML');
}
}
function addNamespacesAndStylesheet(doc) {
addNamespace(doc, 'g_vml_', 'urn:schemas-microsoft-com:vml');
addNamespace(doc, 'g_o_', 'urn:schemas-microsoft-com:office:office');
// Setup default CSS. Only add one style sheet per document
if (!doc.styleSheets['ex_canvas_']) {
var ss = doc.createStyleSheet();
ss.owningElement.id = 'ex_canvas_';
ss.cssText = 'canvas{display:inline-block;overflow:hidden;' +
// default size is 300x150 in Gecko and Opera
'text-align:left;width:300px;height:150px}';
}
}
// Add namespaces and stylesheet at startup.
addNamespacesAndStylesheet(document);
var G_vmlCanvasManager_ = {
init: function(opt_doc) {
var doc = opt_doc || document;
// Create a dummy element so that IE will allow canvas elements to be
// recognized.
doc.createElement('canvas');
doc.attachEvent('onreadystatechange', bind(this.init_, this, doc));
},
init_: function(doc) {
// find all canvas elements
var els = doc.getElementsByTagName('canvas');
for (var i = 0; i < els.length; i++) {
this.initElement(els[i]);
}
},
/**
* Public initializes a canvas element so that it can be used as canvas
* element from now on. This is called automatically before the page is
* loaded but if you are creating elements using createElement you need to
* make sure this is called on the element.
* @param {HTMLElement} el The canvas element to initialize.
* @return {HTMLElement} the element that was created.
*/
initElement: function(el) {
if (!el.getContext) {
el.getContext = getContext;
// Add namespaces and stylesheet to document of the element.
addNamespacesAndStylesheet(el.ownerDocument);
// Remove fallback content. There is no way to hide text nodes so we
// just remove all childNodes. We could hide all elements and remove
// text nodes but who really cares about the fallback content.
el.innerHTML = '';
// do not use inline function because that will leak memory
el.attachEvent('onpropertychange', onPropertyChange);
el.attachEvent('onresize', onResize);
var attrs = el.attributes;
if (attrs.width && attrs.width.specified) {
// TODO: use runtimeStyle and coordsize
// el.getContext().setWidth_(attrs.width.nodeValue);
el.style.width = attrs.width.nodeValue + 'px';
} else {
el.width = el.clientWidth;
}
if (attrs.height && attrs.height.specified) {
// TODO: use runtimeStyle and coordsize
// el.getContext().setHeight_(attrs.height.nodeValue);
el.style.height = attrs.height.nodeValue + 'px';
} else {
el.height = el.clientHeight;
}
//el.getContext().setCoordsize_()
}
return el;
}
};
function onPropertyChange(e) {
var el = e.srcElement;
switch (e.propertyName) {
case 'width':
el.getContext().clearRect();
el.style.width = el.attributes.width.nodeValue + 'px';
// In IE8 this does not trigger onresize.
el.firstChild.style.width = el.clientWidth + 'px';
break;
case 'height':
el.getContext().clearRect();
el.style.height = el.attributes.height.nodeValue + 'px';
el.firstChild.style.height = el.clientHeight + 'px';
break;
}
}
function onResize(e) {
var el = e.srcElement;
if (el.firstChild) {
el.firstChild.style.width = el.clientWidth + 'px';
el.firstChild.style.height = el.clientHeight + 'px';
}
}
G_vmlCanvasManager_.init();
// precompute "00" to "FF"
var decToHex = [];
for (var i = 0; i < 16; i++) {
for (var j = 0; j < 16; j++) {
decToHex[i * 16 + j] = i.toString(16) + j.toString(16);
}
}
function createMatrixIdentity() {
return [
[1, 0, 0],
[0, 1, 0],
[0, 0, 1]
];
}
function matrixMultiply(m1, m2) {
var result = createMatrixIdentity();
for (var x = 0; x < 3; x++) {
for (var y = 0; y < 3; y++) {
var sum = 0;
for (var z = 0; z < 3; z++) {
sum += m1[x][z] * m2[z][y];
}
result[x][y] = sum;
}
}
return result;
}
function copyState(o1, o2) {
o2.fillStyle = o1.fillStyle;
o2.lineCap = o1.lineCap;
o2.lineJoin = o1.lineJoin;
o2.lineWidth = o1.lineWidth;
o2.miterLimit = o1.miterLimit;
o2.shadowBlur = o1.shadowBlur;
o2.shadowColor = o1.shadowColor;
o2.shadowOffsetX = o1.shadowOffsetX;
o2.shadowOffsetY = o1.shadowOffsetY;
o2.strokeStyle = o1.strokeStyle;
o2.globalAlpha = o1.globalAlpha;
o2.font = o1.font;
o2.textAlign = o1.textAlign;
o2.textBaseline = o1.textBaseline;
o2.arcScaleX_ = o1.arcScaleX_;
o2.arcScaleY_ = o1.arcScaleY_;
o2.lineScale_ = o1.lineScale_;
}
var colorData = {
aliceblue: '#F0F8FF',
antiquewhite: '#FAEBD7',
aquamarine: '#7FFFD4',
azure: '#F0FFFF',
beige: '#F5F5DC',
bisque: '#FFE4C4',
black: '#000000',
blanchedalmond: '#FFEBCD',
blueviolet: '#8A2BE2',
brown: '#A52A2A',
burlywood: '#DEB887',
cadetblue: '#5F9EA0',
chartreuse: '#7FFF00',
chocolate: '#D2691E',
coral: '#FF7F50',
cornflowerblue: '#6495ED',
cornsilk: '#FFF8DC',
crimson: '#DC143C',
cyan: '#00FFFF',
darkblue: '#00008B',
darkcyan: '#008B8B',
darkgoldenrod: '#B8860B',
darkgray: '#A9A9A9',
darkgreen: '#006400',
darkgrey: '#A9A9A9',
darkkhaki: '#BDB76B',
darkmagenta: '#8B008B',
darkolivegreen: '#556B2F',
darkorange: '#FF8C00',
darkorchid: '#9932CC',
darkred: '#8B0000',
darksalmon: '#E9967A',
darkseagreen: '#8FBC8F',
darkslateblue: '#483D8B',
darkslategray: '#2F4F4F',
darkslategrey: '#2F4F4F',
darkturquoise: '#00CED1',
darkviolet: '#9400D3',
deeppink: '#FF1493',
deepskyblue: '#00BFFF',
dimgray: '#696969',
dimgrey: '#696969',
dodgerblue: '#1E90FF',
firebrick: '#B22222',
floralwhite: '#FFFAF0',
forestgreen: '#228B22',
gainsboro: '#DCDCDC',
ghostwhite: '#F8F8FF',
gold: '#FFD700',
goldenrod: '#DAA520',
grey: '#808080',
greenyellow: '#ADFF2F',
honeydew: '#F0FFF0',
hotpink: '#FF69B4',
indianred: '#CD5C5C',
indigo: '#4B0082',
ivory: '#FFFFF0',
khaki: '#F0E68C',
lavender: '#E6E6FA',
lavenderblush: '#FFF0F5',
lawngreen: '#7CFC00',
lemonchiffon: '#FFFACD',
lightblue: '#ADD8E6',
lightcoral: '#F08080',
lightcyan: '#E0FFFF',
lightgoldenrodyellow: '#FAFAD2',
lightgreen: '#90EE90',
lightgrey: '#D3D3D3',
lightpink: '#FFB6C1',
lightsalmon: '#FFA07A',
lightseagreen: '#20B2AA',
lightskyblue: '#87CEFA',
lightslategray: '#778899',
lightslategrey: '#778899',
lightsteelblue: '#B0C4DE',
lightyellow: '#FFFFE0',
limegreen: '#32CD32',
linen: '#FAF0E6',
magenta: '#FF00FF',
mediumaquamarine: '#66CDAA',
mediumblue: '#0000CD',
mediumorchid: '#BA55D3',
mediumpurple: '#9370DB',
mediumseagreen: '#3CB371',
mediumslateblue: '#7B68EE',
mediumspringgreen: '#00FA9A',
mediumturquoise: '#48D1CC',
mediumvioletred: '#C71585',
midnightblue: '#191970',
mintcream: '#F5FFFA',
mistyrose: '#FFE4E1',
moccasin: '#FFE4B5',
navajowhite: '#FFDEAD',
oldlace: '#FDF5E6',
olivedrab: '#6B8E23',
orange: '#FFA500',
orangered: '#FF4500',
orchid: '#DA70D6',
palegoldenrod: '#EEE8AA',
palegreen: '#98FB98',
paleturquoise: '#AFEEEE',
palevioletred: '#DB7093',
papayawhip: '#FFEFD5',
peachpuff: '#FFDAB9',
peru: '#CD853F',
pink: '#FFC0CB',
plum: '#DDA0DD',
powderblue: '#B0E0E6',
rosybrown: '#BC8F8F',
royalblue: '#4169E1',
saddlebrown: '#8B4513',
salmon: '#FA8072',
sandybrown: '#F4A460',
seagreen: '#2E8B57',
seashell: '#FFF5EE',
sienna: '#A0522D',
skyblue: '#87CEEB',
slateblue: '#6A5ACD',
slategray: '#708090',
slategrey: '#708090',
snow: '#FFFAFA',
springgreen: '#00FF7F',
steelblue: '#4682B4',
tan: '#D2B48C',
thistle: '#D8BFD8',
tomato: '#FF6347',
turquoise: '#40E0D0',
violet: '#EE82EE',
wheat: '#F5DEB3',
whitesmoke: '#F5F5F5',
yellowgreen: '#9ACD32'
};
function getRgbHslContent(styleString) {
var start = styleString.indexOf('(', 3);
var end = styleString.indexOf(')', start + 1);
var parts = styleString.substring(start + 1, end).split(',');
// add alpha if needed
if (parts.length != 4 || styleString.charAt(3) != 'a') {
parts[3] = 1;
}
return parts;
}
function percent(s) {
return parseFloat(s) / 100;
}
function clamp(v, min, max) {
return Math.min(max, Math.max(min, v));
}
function hslToRgb(parts){
var r, g, b, h, s, l;
h = parseFloat(parts[0]) / 360 % 360;
if (h < 0)
h++;
s = clamp(percent(parts[1]), 0, 1);
l = clamp(percent(parts[2]), 0, 1);
if (s == 0) {
r = g = b = l; // achromatic
} else {
var q = l < 0.5 ? l * (1 + s) : l + s - l * s;
var p = 2 * l - q;
r = hueToRgb(p, q, h + 1 / 3);
g = hueToRgb(p, q, h);
b = hueToRgb(p, q, h - 1 / 3);
}
return '#' + decToHex[Math.floor(r * 255)] +
decToHex[Math.floor(g * 255)] +
decToHex[Math.floor(b * 255)];
}
function hueToRgb(m1, m2, h) {
if (h < 0)
h++;
if (h > 1)
h--;
if (6 * h < 1)
return m1 + (m2 - m1) * 6 * h;
else if (2 * h < 1)
return m2;
else if (3 * h < 2)
return m1 + (m2 - m1) * (2 / 3 - h) * 6;
else
return m1;
}
var processStyleCache = {};
function processStyle(styleString) {
if (styleString in processStyleCache) {
return processStyleCache[styleString];
}
var str, alpha = 1;
styleString = String(styleString);
if (styleString.charAt(0) == '#') {
str = styleString;
} else if (/^rgb/.test(styleString)) {
var parts = getRgbHslContent(styleString);
var str = '#', n;
for (var i = 0; i < 3; i++) {
if (parts[i].indexOf('%') != -1) {
n = Math.floor(percent(parts[i]) * 255);
} else {
n = +parts[i];
}
str += decToHex[clamp(n, 0, 255)];
}
alpha = +parts[3];
} else if (/^hsl/.test(styleString)) {
var parts = getRgbHslContent(styleString);
str = hslToRgb(parts);
alpha = parts[3];
} else {
str = colorData[styleString] || styleString;
}
return processStyleCache[styleString] = {color: str, alpha: alpha};
}
var DEFAULT_STYLE = {
style: 'normal',
variant: 'normal',
weight: 'normal',
size: 10,
family: 'sans-serif'
};
// Internal text style cache
var fontStyleCache = {};
function processFontStyle(styleString) {
if (fontStyleCache[styleString]) {
return fontStyleCache[styleString];
}
var el = document.createElement('div');
var style = el.style;
try {
style.font = styleString;
} catch (ex) {
// Ignore failures to set to invalid font.
}
return fontStyleCache[styleString] = {
style: style.fontStyle || DEFAULT_STYLE.style,
variant: style.fontVariant || DEFAULT_STYLE.variant,
weight: style.fontWeight || DEFAULT_STYLE.weight,
size: style.fontSize || DEFAULT_STYLE.size,
family: style.fontFamily || DEFAULT_STYLE.family
};
}
function getComputedStyle(style, element) {
var computedStyle = {};
for (var p in style) {
computedStyle[p] = style[p];
}
// Compute the size
var canvasFontSize = parseFloat(element.currentStyle.fontSize),
fontSize = parseFloat(style.size);
if (typeof style.size == 'number') {
computedStyle.size = style.size;
} else if (style.size.indexOf('px') != -1) {
computedStyle.size = fontSize;
} else if (style.size.indexOf('em') != -1) {
computedStyle.size = canvasFontSize * fontSize;
} else if(style.size.indexOf('%') != -1) {
computedStyle.size = (canvasFontSize / 100) * fontSize;
} else if (style.size.indexOf('pt') != -1) {
computedStyle.size = fontSize / .75;
} else {
computedStyle.size = canvasFontSize;
}
// Different scaling between normal text and VML text. This was found using
// trial and error to get the same size as non VML text.
computedStyle.size *= 0.981;
return computedStyle;
}
function buildStyle(style) {
return style.style + ' ' + style.variant + ' ' + style.weight + ' ' +
style.size + 'px ' + style.family;
}
var lineCapMap = {
'butt': 'flat',
'round': 'round'
};
function processLineCap(lineCap) {
return lineCapMap[lineCap] || 'square';
}
/**
* This class implements CanvasRenderingContext2D interface as described by
* the WHATWG.
* @param {HTMLElement} canvasElement The element that the 2D context should
* be associated with
*/
function CanvasRenderingContext2D_(canvasElement) {
this.m_ = createMatrixIdentity();
this.mStack_ = [];
this.aStack_ = [];
this.currentPath_ = [];
// Canvas context properties
this.strokeStyle = '#000';
this.fillStyle = '#000';
this.lineWidth = 1;
this.lineJoin = 'miter';
this.lineCap = 'butt';
this.miterLimit = Z * 1;
this.globalAlpha = 1;
this.font = '10px sans-serif';
this.textAlign = 'left';
this.textBaseline = 'alphabetic';
this.canvas = canvasElement;
var cssText = 'width:' + canvasElement.clientWidth + 'px;height:' +
canvasElement.clientHeight + 'px;overflow:hidden;position:absolute';
var el = canvasElement.ownerDocument.createElement('div');
el.style.cssText = cssText;
canvasElement.appendChild(el);
var overlayEl = el.cloneNode(false);
// Use a non transparent background.
overlayEl.style.backgroundColor = 'red';
overlayEl.style.filter = 'alpha(opacity=0)';
canvasElement.appendChild(overlayEl);
this.element_ = el;
this.arcScaleX_ = 1;
this.arcScaleY_ = 1;
this.lineScale_ = 1;
}
var contextPrototype = CanvasRenderingContext2D_.prototype;
contextPrototype.clearRect = function() {
if (this.textMeasureEl_) {
this.textMeasureEl_.removeNode(true);
this.textMeasureEl_ = null;
}
this.element_.innerHTML = '';
};
contextPrototype.beginPath = function() {
// TODO: Branch current matrix so that save/restore has no effect
// as per safari docs.
this.currentPath_ = [];
};
contextPrototype.moveTo = function(aX, aY) {
var p = getCoords(this, aX, aY);
this.currentPath_.push({type: 'moveTo', x: p.x, y: p.y});
this.currentX_ = p.x;
this.currentY_ = p.y;
};
contextPrototype.lineTo = function(aX, aY) {
var p = getCoords(this, aX, aY);
this.currentPath_.push({type: 'lineTo', x: p.x, y: p.y});
this.currentX_ = p.x;
this.currentY_ = p.y;
};
contextPrototype.bezierCurveTo = function(aCP1x, aCP1y,
aCP2x, aCP2y,
aX, aY) {
var p = getCoords(this, aX, aY);
var cp1 = getCoords(this, aCP1x, aCP1y);
var cp2 = getCoords(this, aCP2x, aCP2y);
bezierCurveTo(this, cp1, cp2, p);
};
// Helper function that takes the already fixed cordinates.
function bezierCurveTo(self, cp1, cp2, p) {
self.currentPath_.push({
type: 'bezierCurveTo',
cp1x: cp1.x,
cp1y: cp1.y,
cp2x: cp2.x,
cp2y: cp2.y,
x: p.x,
y: p.y
});
self.currentX_ = p.x;
self.currentY_ = p.y;
}
contextPrototype.quadraticCurveTo = function(aCPx, aCPy, aX, aY) {
// the following is lifted almost directly from
// http://developer.mozilla.org/en/docs/Canvas_tutorial:Drawing_shapes
var cp = getCoords(this, aCPx, aCPy);
var p = getCoords(this, aX, aY);
var cp1 = {
x: this.currentX_ + 2.0 / 3.0 * (cp.x - this.currentX_),
y: this.currentY_ + 2.0 / 3.0 * (cp.y - this.currentY_)
};
var cp2 = {
x: cp1.x + (p.x - this.currentX_) / 3.0,
y: cp1.y + (p.y - this.currentY_) / 3.0
};
bezierCurveTo(this, cp1, cp2, p);
};
contextPrototype.arc = function(aX, aY, aRadius,
aStartAngle, aEndAngle, aClockwise) {
aRadius *= Z;
var arcType = aClockwise ? 'at' : 'wa';
var xStart = aX + mc(aStartAngle) * aRadius - Z2;
var yStart = aY + ms(aStartAngle) * aRadius - Z2;
var xEnd = aX + mc(aEndAngle) * aRadius - Z2;
var yEnd = aY + ms(aEndAngle) * aRadius - Z2;
// IE won't render arches drawn counter clockwise if xStart == xEnd.
if (xStart == xEnd && !aClockwise) {
xStart += 0.125; // Offset xStart by 1/80 of a pixel. Use something
// that can be represented in binary
}
var p = getCoords(this, aX, aY);
var pStart = getCoords(this, xStart, yStart);
var pEnd = getCoords(this, xEnd, yEnd);
this.currentPath_.push({type: arcType,
x: p.x,
y: p.y,
radius: aRadius,
xStart: pStart.x,
yStart: pStart.y,
xEnd: pEnd.x,
yEnd: pEnd.y});
};
contextPrototype.rect = function(aX, aY, aWidth, aHeight) {
this.moveTo(aX, aY);
this.lineTo(aX + aWidth, aY);
this.lineTo(aX + aWidth, aY + aHeight);
this.lineTo(aX, aY + aHeight);
this.closePath();
};
contextPrototype.strokeRect = function(aX, aY, aWidth, aHeight) {
var oldPath = this.currentPath_;
this.beginPath();
this.moveTo(aX, aY);
this.lineTo(aX + aWidth, aY);
this.lineTo(aX + aWidth, aY + aHeight);
this.lineTo(aX, aY + aHeight);
this.closePath();
this.stroke();
this.currentPath_ = oldPath;
};
contextPrototype.fillRect = function(aX, aY, aWidth, aHeight) {
var oldPath = this.currentPath_;
this.beginPath();
this.moveTo(aX, aY);
this.lineTo(aX + aWidth, aY);
this.lineTo(aX + aWidth, aY + aHeight);
this.lineTo(aX, aY + aHeight);
this.closePath();
this.fill();
this.currentPath_ = oldPath;
};
contextPrototype.createLinearGradient = function(aX0, aY0, aX1, aY1) {
var gradient = new CanvasGradient_('gradient');
gradient.x0_ = aX0;
gradient.y0_ = aY0;
gradient.x1_ = aX1;
gradient.y1_ = aY1;
return gradient;
};
contextPrototype.createRadialGradient = function(aX0, aY0, aR0,
aX1, aY1, aR1) {
var gradient = new CanvasGradient_('gradientradial');
gradient.x0_ = aX0;
gradient.y0_ = aY0;
gradient.r0_ = aR0;
gradient.x1_ = aX1;
gradient.y1_ = aY1;
gradient.r1_ = aR1;
return gradient;
};
contextPrototype.drawImage = function(image, var_args) {
var dx, dy, dw, dh, sx, sy, sw, sh;
// to find the original width we overide the width and height
var oldRuntimeWidth = image.runtimeStyle.width;
var oldRuntimeHeight = image.runtimeStyle.height;
image.runtimeStyle.width = 'auto';
image.runtimeStyle.height = 'auto';
// get the original size
var w = image.width;
var h = image.height;
// and remove overides
image.runtimeStyle.width = oldRuntimeWidth;
image.runtimeStyle.height = oldRuntimeHeight;
if (arguments.length == 3) {
dx = arguments[1];
dy = arguments[2];
sx = sy = 0;
sw = dw = w;
sh = dh = h;
} else if (arguments.length == 5) {
dx = arguments[1];
dy = arguments[2];
dw = arguments[3];
dh = arguments[4];
sx = sy = 0;
sw = w;
sh = h;
} else if (arguments.length == 9) {
sx = arguments[1];
sy = arguments[2];
sw = arguments[3];
sh = arguments[4];
dx = arguments[5];
dy = arguments[6];
dw = arguments[7];
dh = arguments[8];
} else {
throw Error('Invalid number of arguments');
}
var d = getCoords(this, dx, dy);
var w2 = sw / 2;
var h2 = sh / 2;
var vmlStr = [];
var W = 10;
var H = 10;
// For some reason that I've now forgotten, using divs didn't work
vmlStr.push(' ' ,
' ',
' ');
this.element_.insertAdjacentHTML('BeforeEnd', vmlStr.join(''));
};
contextPrototype.stroke = function(aFill) {
var W = 10;
var H = 10;
// Divide the shape into chunks if it's too long because IE has a limit
// somewhere for how long a VML shape can be. This simple division does
// not work with fills, only strokes, unfortunately.
var chunkSize = 5000;
var min = {x: null, y: null};
var max = {x: null, y: null};
for (var j = 0; j < this.currentPath_.length; j += chunkSize) {
var lineStr = [];
var lineOpen = false;
lineStr.push('');
if (!aFill) {
appendStroke(this, lineStr);
} else {
appendFill(this, lineStr, min, max);
}
lineStr.push(' ');
this.element_.insertAdjacentHTML('beforeEnd', lineStr.join(''));
}
};
function appendStroke(ctx, lineStr) {
var a = processStyle(ctx.strokeStyle);
var color = a.color;
var opacity = a.alpha * ctx.globalAlpha;
var lineWidth = ctx.lineScale_ * ctx.lineWidth;
// VML cannot correctly render a line if the width is less than 1px.
// In that case, we dilute the color to make the line look thinner.
if (lineWidth < 1) {
opacity *= lineWidth;
}
lineStr.push(
' '
);
}
function appendFill(ctx, lineStr, min, max) {
var fillStyle = ctx.fillStyle;
var arcScaleX = ctx.arcScaleX_;
var arcScaleY = ctx.arcScaleY_;
var width = max.x - min.x;
var height = max.y - min.y;
if (fillStyle instanceof CanvasGradient_) {
// TODO: Gradients transformed with the transformation matrix.
var angle = 0;
var focus = {x: 0, y: 0};
// additional offset
var shift = 0;
// scale factor for offset
var expansion = 1;
if (fillStyle.type_ == 'gradient') {
var x0 = fillStyle.x0_ / arcScaleX;
var y0 = fillStyle.y0_ / arcScaleY;
var x1 = fillStyle.x1_ / arcScaleX;
var y1 = fillStyle.y1_ / arcScaleY;
var p0 = getCoords(ctx, x0, y0);
var p1 = getCoords(ctx, x1, y1);
var dx = p1.x - p0.x;
var dy = p1.y - p0.y;
angle = Math.atan2(dx, dy) * 180 / Math.PI;
// The angle should be a non-negative number.
if (angle < 0) {
angle += 360;
}
// Very small angles produce an unexpected result because they are
// converted to a scientific notation string.
if (angle < 1e-6) {
angle = 0;
}
} else {
var p0 = getCoords(ctx, fillStyle.x0_, fillStyle.y0_);
focus = {
x: (p0.x - min.x) / width,
y: (p0.y - min.y) / height
};
width /= arcScaleX * Z;
height /= arcScaleY * Z;
var dimension = m.max(width, height);
shift = 2 * fillStyle.r0_ / dimension;
expansion = 2 * fillStyle.r1_ / dimension - shift;
}
// We need to sort the color stops in ascending order by offset,
// otherwise IE won't interpret it correctly.
var stops = fillStyle.colors_;
stops.sort(function(cs1, cs2) {
return cs1.offset - cs2.offset;
});
var length = stops.length;
var color1 = stops[0].color;
var color2 = stops[length - 1].color;
var opacity1 = stops[0].alpha * ctx.globalAlpha;
var opacity2 = stops[length - 1].alpha * ctx.globalAlpha;
var colors = [];
for (var i = 0; i < length; i++) {
var stop = stops[i];
colors.push(stop.offset * expansion + shift + ' ' + stop.color);
}
// When colors attribute is used, the meanings of opacity and o:opacity2
// are reversed.
lineStr.push(' ');
} else if (fillStyle instanceof CanvasPattern_) {
if (width && height) {
var deltaLeft = -min.x;
var deltaTop = -min.y;
lineStr.push(' ');
}
} else {
var a = processStyle(ctx.fillStyle);
var color = a.color;
var opacity = a.alpha * ctx.globalAlpha;
lineStr.push(' ');
}
}
contextPrototype.fill = function() {
this.stroke(true);
};
contextPrototype.closePath = function() {
this.currentPath_.push({type: 'close'});
};
function getCoords(ctx, aX, aY) {
var m = ctx.m_;
return {
x: Z * (aX * m[0][0] + aY * m[1][0] + m[2][0]) - Z2,
y: Z * (aX * m[0][1] + aY * m[1][1] + m[2][1]) - Z2
};
};
contextPrototype.save = function() {
var o = {};
copyState(this, o);
this.aStack_.push(o);
this.mStack_.push(this.m_);
this.m_ = matrixMultiply(createMatrixIdentity(), this.m_);
};
contextPrototype.restore = function() {
if (this.aStack_.length) {
copyState(this.aStack_.pop(), this);
this.m_ = this.mStack_.pop();
}
};
function matrixIsFinite(m) {
return isFinite(m[0][0]) && isFinite(m[0][1]) &&
isFinite(m[1][0]) && isFinite(m[1][1]) &&
isFinite(m[2][0]) && isFinite(m[2][1]);
}
function setM(ctx, m, updateLineScale) {
if (!matrixIsFinite(m)) {
return;
}
ctx.m_ = m;
if (updateLineScale) {
// Get the line scale.
// Determinant of this.m_ means how much the area is enlarged by the
// transformation. So its square root can be used as a scale factor
// for width.
var det = m[0][0] * m[1][1] - m[0][1] * m[1][0];
ctx.lineScale_ = sqrt(abs(det));
}
}
contextPrototype.translate = function(aX, aY) {
var m1 = [
[1, 0, 0],
[0, 1, 0],
[aX, aY, 1]
];
setM(this, matrixMultiply(m1, this.m_), false);
};
contextPrototype.rotate = function(aRot) {
var c = mc(aRot);
var s = ms(aRot);
var m1 = [
[c, s, 0],
[-s, c, 0],
[0, 0, 1]
];
setM(this, matrixMultiply(m1, this.m_), false);
};
contextPrototype.scale = function(aX, aY) {
this.arcScaleX_ *= aX;
this.arcScaleY_ *= aY;
var m1 = [
[aX, 0, 0],
[0, aY, 0],
[0, 0, 1]
];
setM(this, matrixMultiply(m1, this.m_), true);
};
contextPrototype.transform = function(m11, m12, m21, m22, dx, dy) {
var m1 = [
[m11, m12, 0],
[m21, m22, 0],
[dx, dy, 1]
];
setM(this, matrixMultiply(m1, this.m_), true);
};
contextPrototype.setTransform = function(m11, m12, m21, m22, dx, dy) {
var m = [
[m11, m12, 0],
[m21, m22, 0],
[dx, dy, 1]
];
setM(this, m, true);
};
/**
* The text drawing function.
* The maxWidth argument isn't taken in account, since no browser supports
* it yet.
*/
contextPrototype.drawText_ = function(text, x, y, maxWidth, stroke) {
var m = this.m_,
delta = 1000,
left = 0,
right = delta,
offset = {x: 0, y: 0},
lineStr = [];
var fontStyle = getComputedStyle(processFontStyle(this.font),
this.element_);
var fontStyleString = buildStyle(fontStyle);
var elementStyle = this.element_.currentStyle;
var textAlign = this.textAlign.toLowerCase();
switch (textAlign) {
case 'left':
case 'center':
case 'right':
break;
case 'end':
textAlign = elementStyle.direction == 'ltr' ? 'right' : 'left';
break;
case 'start':
textAlign = elementStyle.direction == 'rtl' ? 'right' : 'left';
break;
default:
textAlign = 'left';
}
// 1.75 is an arbitrary number, as there is no info about the text baseline
switch (this.textBaseline) {
case 'hanging':
case 'top':
offset.y = fontStyle.size / 1.75;
break;
case 'middle':
break;
default:
case null:
case 'alphabetic':
case 'ideographic':
case 'bottom':
offset.y = -fontStyle.size / 2.25;
break;
}
switch(textAlign) {
case 'right':
left = delta;
right = 0.05;
break;
case 'center':
left = right = delta / 2;
break;
}
var d = getCoords(this, x + offset.x, y + offset.y);
lineStr.push('');
if (stroke) {
appendStroke(this, lineStr);
} else {
// TODO: Fix the min and max params.
appendFill(this, lineStr, {x: -left, y: 0},
{x: right, y: fontStyle.size});
}
var skewM = m[0][0].toFixed(3) + ',' + m[1][0].toFixed(3) + ',' +
m[0][1].toFixed(3) + ',' + m[1][1].toFixed(3) + ',0,0';
var skewOffset = mr(d.x / Z) + ',' + mr(d.y / Z);
lineStr.push(' ',
' ',
' ');
this.element_.insertAdjacentHTML('beforeEnd', lineStr.join(''));
};
contextPrototype.fillText = function(text, x, y, maxWidth) {
this.drawText_(text, x, y, maxWidth, false);
};
contextPrototype.strokeText = function(text, x, y, maxWidth) {
this.drawText_(text, x, y, maxWidth, true);
};
contextPrototype.measureText = function(text) {
if (!this.textMeasureEl_) {
var s = ' ';
this.element_.insertAdjacentHTML('beforeEnd', s);
this.textMeasureEl_ = this.element_.lastChild;
}
var doc = this.element_.ownerDocument;
this.textMeasureEl_.innerHTML = '';
this.textMeasureEl_.style.font = this.font;
// Don't use innerHTML or innerText because they allow markup/whitespace.
this.textMeasureEl_.appendChild(doc.createTextNode(text));
return {width: this.textMeasureEl_.offsetWidth};
};
/******** STUBS ********/
contextPrototype.clip = function() {
// TODO: Implement
};
contextPrototype.arcTo = function() {
// TODO: Implement
};
contextPrototype.createPattern = function(image, repetition) {
return new CanvasPattern_(image, repetition);
};
// Gradient / Pattern Stubs
function CanvasGradient_(aType) {
this.type_ = aType;
this.x0_ = 0;
this.y0_ = 0;
this.r0_ = 0;
this.x1_ = 0;
this.y1_ = 0;
this.r1_ = 0;
this.colors_ = [];
}
CanvasGradient_.prototype.addColorStop = function(aOffset, aColor) {
aColor = processStyle(aColor);
this.colors_.push({offset: aOffset,
color: aColor.color,
alpha: aColor.alpha});
};
function CanvasPattern_(image, repetition) {
assertImageIsValid(image);
switch (repetition) {
case 'repeat':
case null:
case '':
this.repetition_ = 'repeat';
break
case 'repeat-x':
case 'repeat-y':
case 'no-repeat':
this.repetition_ = repetition;
break;
default:
throwException('SYNTAX_ERR');
}
this.src_ = image.src;
this.width_ = image.width;
this.height_ = image.height;
}
function throwException(s) {
throw new DOMException_(s);
}
function assertImageIsValid(img) {
if (!img || img.nodeType != 1 || img.tagName != 'IMG') {
throwException('TYPE_MISMATCH_ERR');
}
if (img.readyState != 'complete') {
throwException('INVALID_STATE_ERR');
}
}
function DOMException_(s) {
this.code = this[s];
this.message = s +': DOM Exception ' + this.code;
}
var p = DOMException_.prototype = new Error;
p.INDEX_SIZE_ERR = 1;
p.DOMSTRING_SIZE_ERR = 2;
p.HIERARCHY_REQUEST_ERR = 3;
p.WRONG_DOCUMENT_ERR = 4;
p.INVALID_CHARACTER_ERR = 5;
p.NO_DATA_ALLOWED_ERR = 6;
p.NO_MODIFICATION_ALLOWED_ERR = 7;
p.NOT_FOUND_ERR = 8;
p.NOT_SUPPORTED_ERR = 9;
p.INUSE_ATTRIBUTE_ERR = 10;
p.INVALID_STATE_ERR = 11;
p.SYNTAX_ERR = 12;
p.INVALID_MODIFICATION_ERR = 13;
p.NAMESPACE_ERR = 14;
p.INVALID_ACCESS_ERR = 15;
p.VALIDATION_ERR = 16;
p.TYPE_MISMATCH_ERR = 17;
// set up externs
G_vmlCanvasManager = G_vmlCanvasManager_;
CanvasRenderingContext2D = CanvasRenderingContext2D_;
CanvasGradient = CanvasGradient_;
CanvasPattern = CanvasPattern_;
DOMException = DOMException_;
})();
} // if
================================================
FILE: public/admin-panel/assets/libs/flot/excanvas.min.js
================================================
if(!document.createElement("canvas").getContext){(function(){var ab=Math;var n=ab.round;var l=ab.sin;var A=ab.cos;var H=ab.abs;var N=ab.sqrt;var d=10;var f=d/2;var z=+navigator.userAgent.match(/MSIE ([\d.]+)?/)[1];function y(){return this.context_||(this.context_=new D(this))}var t=Array.prototype.slice;function g(j,m,p){var i=t.call(arguments,2);return function(){return j.apply(m,i.concat(t.call(arguments)))}}function af(i){return String(i).replace(/&/g,"&").replace(/"/g,""")}function Y(m,j,i){if(!m.namespaces[j]){m.namespaces.add(j,i,"#default#VML")}}function R(j){Y(j,"g_vml_","urn:schemas-microsoft-com:vml");Y(j,"g_o_","urn:schemas-microsoft-com:office:office");if(!j.styleSheets.ex_canvas_){var i=j.createStyleSheet();i.owningElement.id="ex_canvas_";i.cssText="canvas{display:inline-block;overflow:hidden;text-align:left;width:300px;height:150px}"}}R(document);var e={init:function(i){var j=i||document;j.createElement("canvas");j.attachEvent("onreadystatechange",g(this.init_,this,j))},init_:function(p){var m=p.getElementsByTagName("canvas");for(var j=0;j1){m--}if(6*m<1){return j+(i-j)*6*m}else{if(2*m<1){return i}else{if(3*m<2){return j+(i-j)*(2/3-m)*6}else{return j}}}}var C={};function F(j){if(j in C){return C[j]}var ag,Z=1;j=String(j);if(j.charAt(0)=="#"){ag=j}else{if(/^rgb/.test(j)){var p=M(j);var ag="#",ah;for(var m=0;m<3;m++){if(p[m].indexOf("%")!=-1){ah=Math.floor(c(p[m])*255)}else{ah=+p[m]}ag+=k[r(ah,0,255)]}Z=+p[3]}else{if(/^hsl/.test(j)){var p=M(j);ag=I(p);Z=p[3]}else{ag=b[j]||j}}}return C[j]={color:ag,alpha:Z}}var o={style:"normal",variant:"normal",weight:"normal",size:10,family:"sans-serif"};var L={};function E(i){if(L[i]){return L[i]}var p=document.createElement("div");var m=p.style;try{m.font=i}catch(j){}return L[i]={style:m.fontStyle||o.style,variant:m.fontVariant||o.variant,weight:m.fontWeight||o.weight,size:m.fontSize||o.size,family:m.fontFamily||o.family}}function u(m,j){var i={};for(var ah in m){i[ah]=m[ah]}var ag=parseFloat(j.currentStyle.fontSize),Z=parseFloat(m.size);if(typeof m.size=="number"){i.size=m.size}else{if(m.size.indexOf("px")!=-1){i.size=Z}else{if(m.size.indexOf("em")!=-1){i.size=ag*Z}else{if(m.size.indexOf("%")!=-1){i.size=(ag/100)*Z}else{if(m.size.indexOf("pt")!=-1){i.size=Z/0.75}else{i.size=ag}}}}}i.size*=0.981;return i}function ac(i){return i.style+" "+i.variant+" "+i.weight+" "+i.size+"px "+i.family}var s={butt:"flat",round:"round"};function S(i){return s[i]||"square"}function D(i){this.m_=B();this.mStack_=[];this.aStack_=[];this.currentPath_=[];this.strokeStyle="#000";this.fillStyle="#000";this.lineWidth=1;this.lineJoin="miter";this.lineCap="butt";this.miterLimit=d*1;this.globalAlpha=1;this.font="10px sans-serif";this.textAlign="left";this.textBaseline="alphabetic";this.canvas=i;var m="width:"+i.clientWidth+"px;height:"+i.clientHeight+"px;overflow:hidden;position:absolute";var j=i.ownerDocument.createElement("div");j.style.cssText=m;i.appendChild(j);var p=j.cloneNode(false);p.style.backgroundColor="red";p.style.filter="alpha(opacity=0)";i.appendChild(p);this.element_=j;this.arcScaleX_=1;this.arcScaleY_=1;this.lineScale_=1}var q=D.prototype;q.clearRect=function(){if(this.textMeasureEl_){this.textMeasureEl_.removeNode(true);this.textMeasureEl_=null}this.element_.innerHTML=""};q.beginPath=function(){this.currentPath_=[]};q.moveTo=function(j,i){var m=V(this,j,i);this.currentPath_.push({type:"moveTo",x:m.x,y:m.y});this.currentX_=m.x;this.currentY_=m.y};q.lineTo=function(j,i){var m=V(this,j,i);this.currentPath_.push({type:"lineTo",x:m.x,y:m.y});this.currentX_=m.x;this.currentY_=m.y};q.bezierCurveTo=function(m,j,ak,aj,ai,ag){var i=V(this,ai,ag);var ah=V(this,m,j);var Z=V(this,ak,aj);K(this,ah,Z,i)};function K(i,Z,m,j){i.currentPath_.push({type:"bezierCurveTo",cp1x:Z.x,cp1y:Z.y,cp2x:m.x,cp2y:m.y,x:j.x,y:j.y});i.currentX_=j.x;i.currentY_=j.y}q.quadraticCurveTo=function(ai,m,j,i){var ah=V(this,ai,m);var ag=V(this,j,i);var aj={x:this.currentX_+2/3*(ah.x-this.currentX_),y:this.currentY_+2/3*(ah.y-this.currentY_)};var Z={x:aj.x+(ag.x-this.currentX_)/3,y:aj.y+(ag.y-this.currentY_)/3};K(this,aj,Z,ag)};q.arc=function(al,aj,ak,ag,j,m){ak*=d;var ap=m?"at":"wa";var am=al+A(ag)*ak-f;var ao=aj+l(ag)*ak-f;var i=al+A(j)*ak-f;var an=aj+l(j)*ak-f;if(am==i&&!m){am+=0.125}var Z=V(this,al,aj);var ai=V(this,am,ao);var ah=V(this,i,an);this.currentPath_.push({type:ap,x:Z.x,y:Z.y,radius:ak,xStart:ai.x,yStart:ai.y,xEnd:ah.x,yEnd:ah.y})};q.rect=function(m,j,i,p){this.moveTo(m,j);this.lineTo(m+i,j);this.lineTo(m+i,j+p);this.lineTo(m,j+p);this.closePath()};q.strokeRect=function(m,j,i,p){var Z=this.currentPath_;this.beginPath();this.moveTo(m,j);this.lineTo(m+i,j);this.lineTo(m+i,j+p);this.lineTo(m,j+p);this.closePath();this.stroke();this.currentPath_=Z};q.fillRect=function(m,j,i,p){var Z=this.currentPath_;this.beginPath();this.moveTo(m,j);this.lineTo(m+i,j);this.lineTo(m+i,j+p);this.lineTo(m,j+p);this.closePath();this.fill();this.currentPath_=Z};q.createLinearGradient=function(j,p,i,m){var Z=new U("gradient");Z.x0_=j;Z.y0_=p;Z.x1_=i;Z.y1_=m;return Z};q.createRadialGradient=function(p,ag,m,j,Z,i){var ah=new U("gradientradial");ah.x0_=p;ah.y0_=ag;ah.r0_=m;ah.x1_=j;ah.y1_=Z;ah.r1_=i;return ah};q.drawImage=function(aq,m){var aj,ah,al,ay,ao,am,at,aA;var ak=aq.runtimeStyle.width;var ap=aq.runtimeStyle.height;aq.runtimeStyle.width="auto";aq.runtimeStyle.height="auto";var ai=aq.width;var aw=aq.height;aq.runtimeStyle.width=ak;aq.runtimeStyle.height=ap;if(arguments.length==3){aj=arguments[1];ah=arguments[2];ao=am=0;at=al=ai;aA=ay=aw}else{if(arguments.length==5){aj=arguments[1];ah=arguments[2];al=arguments[3];ay=arguments[4];ao=am=0;at=ai;aA=aw}else{if(arguments.length==9){ao=arguments[1];am=arguments[2];at=arguments[3];aA=arguments[4];aj=arguments[5];ah=arguments[6];al=arguments[7];ay=arguments[8]}else{throw Error("Invalid number of arguments")}}}var az=V(this,aj,ah);var p=at/2;var j=aA/2;var ax=[];var i=10;var ag=10;ax.push(" ',' "," ");this.element_.insertAdjacentHTML("BeforeEnd",ax.join(""))};q.stroke=function(ao){var Z=10;var ap=10;var ag=5000;var ai={x:null,y:null};var an={x:null,y:null};for(var aj=0;ajan.x){an.x=m.x}if(ai.y==null||m.yan.y){an.y=m.y}}}am.push(' ">');if(!ao){w(this,am)}else{G(this,am,ai,an)}am.push("");this.element_.insertAdjacentHTML("beforeEnd",am.join(""))}};function w(m,ag){var j=F(m.strokeStyle);var p=j.color;var Z=j.alpha*m.globalAlpha;var i=m.lineScale_*m.lineWidth;if(i<1){Z*=i}ag.push(" ')}function G(aq,ai,aK,ar){var aj=aq.fillStyle;var aB=aq.arcScaleX_;var aA=aq.arcScaleY_;var j=ar.x-aK.x;var p=ar.y-aK.y;if(aj instanceof U){var an=0;var aF={x:0,y:0};var ax=0;var am=1;if(aj.type_=="gradient"){var al=aj.x0_/aB;var m=aj.y0_/aA;var ak=aj.x1_/aB;var aM=aj.y1_/aA;var aJ=V(aq,al,m);var aI=V(aq,ak,aM);var ag=aI.x-aJ.x;var Z=aI.y-aJ.y;an=Math.atan2(ag,Z)*180/Math.PI;if(an<0){an+=360}if(an<0.000001){an=0}}else{var aJ=V(aq,aj.x0_,aj.y0_);aF={x:(aJ.x-aK.x)/j,y:(aJ.y-aK.y)/p};j/=aB*d;p/=aA*d;var aD=ab.max(j,p);ax=2*aj.r0_/aD;am=2*aj.r1_/aD-ax}var av=aj.colors_;av.sort(function(aN,i){return aN.offset-i.offset});var ap=av.length;var au=av[0].color;var at=av[ap-1].color;var az=av[0].alpha*aq.globalAlpha;var ay=av[ap-1].alpha*aq.globalAlpha;var aE=[];for(var aH=0;aH ')}else{if(aj instanceof T){if(j&&p){var ah=-aK.x;var aC=-aK.y;ai.push(" ')}}else{var aL=F(aq.fillStyle);var aw=aL.color;var aG=aL.alpha*aq.globalAlpha;ai.push(' ')}}}q.fill=function(){this.stroke(true)};q.closePath=function(){this.currentPath_.push({type:"close"})};function V(j,Z,p){var i=j.m_;return{x:d*(Z*i[0][0]+p*i[1][0]+i[2][0])-f,y:d*(Z*i[0][1]+p*i[1][1]+i[2][1])-f}}q.save=function(){var i={};v(this,i);this.aStack_.push(i);this.mStack_.push(this.m_);this.m_=J(B(),this.m_)};q.restore=function(){if(this.aStack_.length){v(this.aStack_.pop(),this);this.m_=this.mStack_.pop()}};function h(i){return isFinite(i[0][0])&&isFinite(i[0][1])&&isFinite(i[1][0])&&isFinite(i[1][1])&&isFinite(i[2][0])&&isFinite(i[2][1])}function aa(j,i,p){if(!h(i)){return}j.m_=i;if(p){var Z=i[0][0]*i[1][1]-i[0][1]*i[1][0];j.lineScale_=N(H(Z))}}q.translate=function(m,j){var i=[[1,0,0],[0,1,0],[m,j,1]];aa(this,J(i,this.m_),false)};q.rotate=function(j){var p=A(j);var m=l(j);var i=[[p,m,0],[-m,p,0],[0,0,1]];aa(this,J(i,this.m_),false)};q.scale=function(m,j){this.arcScaleX_*=m;this.arcScaleY_*=j;var i=[[m,0,0],[0,j,0],[0,0,1]];aa(this,J(i,this.m_),true)};q.transform=function(Z,p,ah,ag,j,i){var m=[[Z,p,0],[ah,ag,0],[j,i,1]];aa(this,J(m,this.m_),true)};q.setTransform=function(ag,Z,ai,ah,p,j){var i=[[ag,Z,0],[ai,ah,0],[p,j,1]];aa(this,i,true)};q.drawText_=function(am,ak,aj,ap,ai){var ao=this.m_,at=1000,j=0,ar=at,ah={x:0,y:0},ag=[];var i=u(E(this.font),this.element_);var p=ac(i);var au=this.element_.currentStyle;var Z=this.textAlign.toLowerCase();switch(Z){case"left":case"center":case"right":break;case"end":Z=au.direction=="ltr"?"right":"left";break;case"start":Z=au.direction=="rtl"?"right":"left";break;default:Z="left"}switch(this.textBaseline){case"hanging":case"top":ah.y=i.size/1.75;break;case"middle":break;default:case null:case"alphabetic":case"ideographic":case"bottom":ah.y=-i.size/2.25;break}switch(Z){case"right":j=at;ar=0.05;break;case"center":j=ar=at/2;break}var aq=V(this,ak+ah.x,aj+ah.y);ag.push('');if(ai){w(this,ag)}else{G(this,ag,{x:-j,y:0},{x:ar,y:i.size})}var an=ao[0][0].toFixed(3)+","+ao[1][0].toFixed(3)+","+ao[0][1].toFixed(3)+","+ao[1][1].toFixed(3)+",0,0";var al=n(aq.x/d)+","+n(aq.y/d);ag.push(' ',' ',' ');this.element_.insertAdjacentHTML("beforeEnd",ag.join(""))};q.fillText=function(m,i,p,j){this.drawText_(m,i,p,j,false)};q.strokeText=function(m,i,p,j){this.drawText_(m,i,p,j,true)};q.measureText=function(m){if(!this.textMeasureEl_){var i=' ';this.element_.insertAdjacentHTML("beforeEnd",i);this.textMeasureEl_=this.element_.lastChild}var j=this.element_.ownerDocument;this.textMeasureEl_.innerHTML="";this.textMeasureEl_.style.font=this.font;this.textMeasureEl_.appendChild(j.createTextNode(m));return{width:this.textMeasureEl_.offsetWidth}};q.clip=function(){};q.arcTo=function(){};q.createPattern=function(j,i){return new T(j,i)};function U(i){this.type_=i;this.x0_=0;this.y0_=0;this.r0_=0;this.x1_=0;this.y1_=0;this.r1_=0;this.colors_=[]}U.prototype.addColorStop=function(j,i){i=F(i);this.colors_.push({offset:j,color:i.color,alpha:i.alpha})};function T(j,i){Q(j);switch(i){case"repeat":case null:case"":this.repetition_="repeat";break;case"repeat-x":case"repeat-y":case"no-repeat":this.repetition_=i;break;default:O("SYNTAX_ERR")}this.src_=j.src;this.width_=j.width;this.height_=j.height}function O(i){throw new P(i)}function Q(i){if(!i||i.nodeType!=1||i.tagName!="IMG"){O("TYPE_MISMATCH_ERR")}if(i.readyState!="complete"){O("INVALID_STATE_ERR")}}function P(i){this.code=this[i];this.message=i+": DOM Exception "+this.code}var X=P.prototype=new Error;X.INDEX_SIZE_ERR=1;X.DOMSTRING_SIZE_ERR=2;X.HIERARCHY_REQUEST_ERR=3;X.WRONG_DOCUMENT_ERR=4;X.INVALID_CHARACTER_ERR=5;X.NO_DATA_ALLOWED_ERR=6;X.NO_MODIFICATION_ALLOWED_ERR=7;X.NOT_FOUND_ERR=8;X.NOT_SUPPORTED_ERR=9;X.INUSE_ATTRIBUTE_ERR=10;X.INVALID_STATE_ERR=11;X.SYNTAX_ERR=12;X.INVALID_MODIFICATION_ERR=13;X.NAMESPACE_ERR=14;X.INVALID_ACCESS_ERR=15;X.VALIDATION_ERR=16;X.TYPE_MISMATCH_ERR=17;G_vmlCanvasManager=e;CanvasRenderingContext2D=D;CanvasGradient=U;CanvasPattern=T;DOMException=P})()};
================================================
FILE: public/admin-panel/assets/libs/flot/flot.jquery.json
================================================
{
"name": "flot",
"version": "0.8.3",
"title": "Flot",
"author": {
"name": "Ole Laursen",
"url": "https://github.com/OleLaursen"
},
"licenses": [{
"type": "MIT",
"url": "http://github.com/flot/flot/blob/master/LICENSE.txt"
}],
"dependencies": {
"jquery": ">=1.2.6"
},
"description": "Flot is a pure JavaScript plotting library for jQuery, with a focus on simple usage, attractive looks and interactive features.",
"keywords": ["plot", "chart", "graph", "visualization", "canvas", "graphics"],
"homepage": "http://www.flotcharts.org",
"docs": "http://github.com/flot/flot/blob/master/API.md",
"demo": "http://www.flotcharts.org/flot/examples/",
"bugs": "http://github.com/flot/flot/issues",
"maintainers": [{
"name": "David Schnur",
"email": "dnschnur@gmail.com",
"url": "http://github.com/dnschnur"
}]
}
================================================
FILE: public/admin-panel/assets/libs/flot/jquery.colorhelpers.js
================================================
/* Plugin for jQuery for working with colors.
*
* Version 1.1.
*
* Inspiration from jQuery color animation plugin by John Resig.
*
* Released under the MIT license by Ole Laursen, October 2009.
*
* Examples:
*
* $.color.parse("#fff").scale('rgb', 0.25).add('a', -0.5).toString()
* var c = $.color.extract($("#mydiv"), 'background-color');
* console.log(c.r, c.g, c.b, c.a);
* $.color.make(100, 50, 25, 0.4).toString() // returns "rgba(100,50,25,0.4)"
*
* Note that .scale() and .add() return the same modified object
* instead of making a new one.
*
* V. 1.1: Fix error handling so e.g. parsing an empty string does
* produce a color rather than just crashing.
*/
(function($) {
$.color = {};
// construct color object with some convenient chainable helpers
$.color.make = function (r, g, b, a) {
var o = {};
o.r = r || 0;
o.g = g || 0;
o.b = b || 0;
o.a = a != null ? a : 1;
o.add = function (c, d) {
for (var i = 0; i < c.length; ++i)
o[c.charAt(i)] += d;
return o.normalize();
};
o.scale = function (c, f) {
for (var i = 0; i < c.length; ++i)
o[c.charAt(i)] *= f;
return o.normalize();
};
o.toString = function () {
if (o.a >= 1.0) {
return "rgb("+[o.r, o.g, o.b].join(",")+")";
} else {
return "rgba("+[o.r, o.g, o.b, o.a].join(",")+")";
}
};
o.normalize = function () {
function clamp(min, value, max) {
return value < min ? min: (value > max ? max: value);
}
o.r = clamp(0, parseInt(o.r), 255);
o.g = clamp(0, parseInt(o.g), 255);
o.b = clamp(0, parseInt(o.b), 255);
o.a = clamp(0, o.a, 1);
return o;
};
o.clone = function () {
return $.color.make(o.r, o.b, o.g, o.a);
};
return o.normalize();
}
// extract CSS color property from element, going up in the DOM
// if it's "transparent"
$.color.extract = function (elem, css) {
var c;
do {
c = elem.css(css).toLowerCase();
// keep going until we find an element that has color, or
// we hit the body or root (have no parent)
if (c != '' && c != 'transparent')
break;
elem = elem.parent();
} while (elem.length && !$.nodeName(elem.get(0), "body"));
// catch Safari's way of signalling transparent
if (c == "rgba(0, 0, 0, 0)")
c = "transparent";
return $.color.parse(c);
}
// parse CSS color string (like "rgb(10, 32, 43)" or "#fff"),
// returns color object, if parsing failed, you get black (0, 0,
// 0) out
$.color.parse = function (str) {
var res, m = $.color.make;
// Look for rgb(num,num,num)
if (res = /rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(str))
return m(parseInt(res[1], 10), parseInt(res[2], 10), parseInt(res[3], 10));
// Look for rgba(num,num,num,num)
if (res = /rgba\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]+(?:\.[0-9]+)?)\s*\)/.exec(str))
return m(parseInt(res[1], 10), parseInt(res[2], 10), parseInt(res[3], 10), parseFloat(res[4]));
// Look for rgb(num%,num%,num%)
if (res = /rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec(str))
return m(parseFloat(res[1])*2.55, parseFloat(res[2])*2.55, parseFloat(res[3])*2.55);
// Look for rgba(num%,num%,num%,num)
if (res = /rgba\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\s*\)/.exec(str))
return m(parseFloat(res[1])*2.55, parseFloat(res[2])*2.55, parseFloat(res[3])*2.55, parseFloat(res[4]));
// Look for #a0b1c2
if (res = /#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(str))
return m(parseInt(res[1], 16), parseInt(res[2], 16), parseInt(res[3], 16));
// Look for #fff
if (res = /#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(str))
return m(parseInt(res[1]+res[1], 16), parseInt(res[2]+res[2], 16), parseInt(res[3]+res[3], 16));
// Otherwise, we're most likely dealing with a named color
var name = $.trim(str).toLowerCase();
if (name == "transparent")
return m(255, 255, 255, 0);
else {
// default to black
res = lookupColors[name] || [0, 0, 0];
return m(res[0], res[1], res[2]);
}
}
var lookupColors = {
aqua:[0,255,255],
azure:[240,255,255],
beige:[245,245,220],
black:[0,0,0],
blue:[0,0,255],
brown:[165,42,42],
cyan:[0,255,255],
darkblue:[0,0,139],
darkcyan:[0,139,139],
darkgrey:[169,169,169],
darkgreen:[0,100,0],
darkkhaki:[189,183,107],
darkmagenta:[139,0,139],
darkolivegreen:[85,107,47],
darkorange:[255,140,0],
darkorchid:[153,50,204],
darkred:[139,0,0],
darksalmon:[233,150,122],
darkviolet:[148,0,211],
fuchsia:[255,0,255],
gold:[255,215,0],
green:[0,128,0],
indigo:[75,0,130],
khaki:[240,230,140],
lightblue:[173,216,230],
lightcyan:[224,255,255],
lightgreen:[144,238,144],
lightgrey:[211,211,211],
lightpink:[255,182,193],
lightyellow:[255,255,224],
lime:[0,255,0],
magenta:[255,0,255],
maroon:[128,0,0],
navy:[0,0,128],
olive:[128,128,0],
orange:[255,165,0],
pink:[255,192,203],
purple:[128,0,128],
violet:[128,0,128],
red:[255,0,0],
silver:[192,192,192],
white:[255,255,255],
yellow:[255,255,0]
};
})(jQuery);
================================================
FILE: public/admin-panel/assets/libs/flot/jquery.flot.canvas.js
================================================
/* Flot plugin for drawing all elements of a plot on the canvas.
Copyright (c) 2007-2014 IOLA and Ole Laursen.
Licensed under the MIT license.
Flot normally produces certain elements, like axis labels and the legend, using
HTML elements. This permits greater interactivity and customization, and often
looks better, due to cross-browser canvas text inconsistencies and limitations.
It can also be desirable to render the plot entirely in canvas, particularly
if the goal is to save it as an image, or if Flot is being used in a context
where the HTML DOM does not exist, as is the case within Node.js. This plugin
switches out Flot's standard drawing operations for canvas-only replacements.
Currently the plugin supports only axis labels, but it will eventually allow
every element of the plot to be rendered directly to canvas.
The plugin supports these options:
{
canvas: boolean
}
The "canvas" option controls whether full canvas drawing is enabled, making it
possible to toggle on and off. This is useful when a plot uses HTML text in the
browser, but needs to redraw with canvas text when exporting as an image.
*/
(function($) {
var options = {
canvas: true
};
var render, getTextInfo, addText;
// Cache the prototype hasOwnProperty for faster access
var hasOwnProperty = Object.prototype.hasOwnProperty;
function init(plot, classes) {
var Canvas = classes.Canvas;
// We only want to replace the functions once; the second time around
// we would just get our new function back. This whole replacing of
// prototype functions is a disaster, and needs to be changed ASAP.
if (render == null) {
getTextInfo = Canvas.prototype.getTextInfo,
addText = Canvas.prototype.addText,
render = Canvas.prototype.render;
}
// Finishes rendering the canvas, including overlaid text
Canvas.prototype.render = function() {
if (!plot.getOptions().canvas) {
return render.call(this);
}
var context = this.context,
cache = this._textCache;
// For each text layer, render elements marked as active
context.save();
context.textBaseline = "middle";
for (var layerKey in cache) {
if (hasOwnProperty.call(cache, layerKey)) {
var layerCache = cache[layerKey];
for (var styleKey in layerCache) {
if (hasOwnProperty.call(layerCache, styleKey)) {
var styleCache = layerCache[styleKey],
updateStyles = true;
for (var key in styleCache) {
if (hasOwnProperty.call(styleCache, key)) {
var info = styleCache[key],
positions = info.positions,
lines = info.lines;
// Since every element at this level of the cache have the
// same font and fill styles, we can just change them once
// using the values from the first element.
if (updateStyles) {
context.fillStyle = info.font.color;
context.font = info.font.definition;
updateStyles = false;
}
for (var i = 0, position; position = positions[i]; i++) {
if (position.active) {
for (var j = 0, line; line = position.lines[j]; j++) {
context.fillText(lines[j].text, line[0], line[1]);
}
} else {
positions.splice(i--, 1);
}
}
if (positions.length == 0) {
delete styleCache[key];
}
}
}
}
}
}
}
context.restore();
};
// Creates (if necessary) and returns a text info object.
//
// When the canvas option is set, the object looks like this:
//
// {
// width: Width of the text's bounding box.
// height: Height of the text's bounding box.
// positions: Array of positions at which this text is drawn.
// lines: [{
// height: Height of this line.
// widths: Width of this line.
// text: Text on this line.
// }],
// font: {
// definition: Canvas font property string.
// color: Color of the text.
// },
// }
//
// The positions array contains objects that look like this:
//
// {
// active: Flag indicating whether the text should be visible.
// lines: Array of [x, y] coordinates at which to draw the line.
// x: X coordinate at which to draw the text.
// y: Y coordinate at which to draw the text.
// }
Canvas.prototype.getTextInfo = function(layer, text, font, angle, width) {
if (!plot.getOptions().canvas) {
return getTextInfo.call(this, layer, text, font, angle, width);
}
var textStyle, layerCache, styleCache, info;
// Cast the value to a string, in case we were given a number
text = "" + text;
// If the font is a font-spec object, generate a CSS definition
if (typeof font === "object") {
textStyle = font.style + " " + font.variant + " " + font.weight + " " + font.size + "px " + font.family;
} else {
textStyle = font;
}
// Retrieve (or create) the cache for the text's layer and styles
layerCache = this._textCache[layer];
if (layerCache == null) {
layerCache = this._textCache[layer] = {};
}
styleCache = layerCache[textStyle];
if (styleCache == null) {
styleCache = layerCache[textStyle] = {};
}
info = styleCache[text];
if (info == null) {
var context = this.context;
// If the font was provided as CSS, create a div with those
// classes and examine it to generate a canvas font spec.
if (typeof font !== "object") {
var element = $("
")
.css("position", "absolute")
.addClass(typeof font === "string" ? font : null)
.appendTo(this.getTextLayer(layer));
font = {
lineHeight: element.height(),
style: element.css("font-style"),
variant: element.css("font-variant"),
weight: element.css("font-weight"),
family: element.css("font-family"),
color: element.css("color")
};
// Setting line-height to 1, without units, sets it equal
// to the font-size, even if the font-size is abstract,
// like 'smaller'. This enables us to read the real size
// via the element's height, working around browsers that
// return the literal 'smaller' value.
font.size = element.css("line-height", 1).height();
element.remove();
}
textStyle = font.style + " " + font.variant + " " + font.weight + " " + font.size + "px " + font.family;
// Create a new info object, initializing the dimensions to
// zero so we can count them up line-by-line.
info = styleCache[text] = {
width: 0,
height: 0,
positions: [],
lines: [],
font: {
definition: textStyle,
color: font.color
}
};
context.save();
context.font = textStyle;
// Canvas can't handle multi-line strings; break on various
// newlines, including HTML brs, to build a list of lines.
// Note that we could split directly on regexps, but IE < 9 is
// broken; revisit when we drop IE 7/8 support.
var lines = (text + "").replace(/ |\r\n|\r/g, "\n").split("\n");
for (var i = 0; i < lines.length; ++i) {
var lineText = lines[i],
measured = context.measureText(lineText);
info.width = Math.max(measured.width, info.width);
info.height += font.lineHeight;
info.lines.push({
text: lineText,
width: measured.width,
height: font.lineHeight
});
}
context.restore();
}
return info;
};
// Adds a text string to the canvas text overlay.
Canvas.prototype.addText = function(layer, x, y, text, font, angle, width, halign, valign) {
if (!plot.getOptions().canvas) {
return addText.call(this, layer, x, y, text, font, angle, width, halign, valign);
}
var info = this.getTextInfo(layer, text, font, angle, width),
positions = info.positions,
lines = info.lines;
// Text is drawn with baseline 'middle', which we need to account
// for by adding half a line's height to the y position.
y += info.height / lines.length / 2;
// Tweak the initial y-position to match vertical alignment
if (valign == "middle") {
y = Math.round(y - info.height / 2);
} else if (valign == "bottom") {
y = Math.round(y - info.height);
} else {
y = Math.round(y);
}
// FIXME: LEGACY BROWSER FIX
// AFFECTS: Opera < 12.00
// Offset the y coordinate, since Opera is off pretty
// consistently compared to the other browsers.
if (!!(window.opera && window.opera.version().split(".")[0] < 12)) {
y -= 2;
}
// Determine whether this text already exists at this position.
// If so, mark it for inclusion in the next render pass.
for (var i = 0, position; position = positions[i]; i++) {
if (position.x == x && position.y == y) {
position.active = true;
return;
}
}
// If the text doesn't exist at this position, create a new entry
position = {
active: true,
lines: [],
x: x,
y: y
};
positions.push(position);
// Fill in the x & y positions of each line, adjusting them
// individually for horizontal alignment.
for (var i = 0, line; line = lines[i]; i++) {
if (halign == "center") {
position.lines.push([Math.round(x - line.width / 2), y]);
} else if (halign == "right") {
position.lines.push([Math.round(x - line.width), y]);
} else {
position.lines.push([Math.round(x), y]);
}
y += line.height;
}
};
}
$.plot.plugins.push({
init: init,
options: options,
name: "canvas",
version: "1.0"
});
})(jQuery);
================================================
FILE: public/admin-panel/assets/libs/flot/jquery.flot.categories.js
================================================
/* Flot plugin for plotting textual data or categories.
Copyright (c) 2007-2014 IOLA and Ole Laursen.
Licensed under the MIT license.
Consider a dataset like [["February", 34], ["March", 20], ...]. This plugin
allows you to plot such a dataset directly.
To enable it, you must specify mode: "categories" on the axis with the textual
labels, e.g.
$.plot("#placeholder", data, { xaxis: { mode: "categories" } });
By default, the labels are ordered as they are met in the data series. If you
need a different ordering, you can specify "categories" on the axis options
and list the categories there:
xaxis: {
mode: "categories",
categories: ["February", "March", "April"]
}
If you need to customize the distances between the categories, you can specify
"categories" as an object mapping labels to values
xaxis: {
mode: "categories",
categories: { "February": 1, "March": 3, "April": 4 }
}
If you don't specify all categories, the remaining categories will be numbered
from the max value plus 1 (with a spacing of 1 between each).
Internally, the plugin works by transforming the input data through an auto-
generated mapping where the first category becomes 0, the second 1, etc.
Hence, a point like ["February", 34] becomes [0, 34] internally in Flot (this
is visible in hover and click events that return numbers rather than the
category labels). The plugin also overrides the tick generator to spit out the
categories as ticks instead of the values.
If you need to map a value back to its label, the mapping is always accessible
as "categories" on the axis object, e.g. plot.getAxes().xaxis.categories.
*/
(function ($) {
var options = {
xaxis: {
categories: null
},
yaxis: {
categories: null
}
};
function processRawData(plot, series, data, datapoints) {
// if categories are enabled, we need to disable
// auto-transformation to numbers so the strings are intact
// for later processing
var xCategories = series.xaxis.options.mode == "categories",
yCategories = series.yaxis.options.mode == "categories";
if (!(xCategories || yCategories))
return;
var format = datapoints.format;
if (!format) {
// FIXME: auto-detection should really not be defined here
var s = series;
format = [];
format.push({ x: true, number: true, required: true });
format.push({ y: true, number: true, required: true });
if (s.bars.show || (s.lines.show && s.lines.fill)) {
var autoscale = !!((s.bars.show && s.bars.zero) || (s.lines.show && s.lines.zero));
format.push({ y: true, number: true, required: false, defaultValue: 0, autoscale: autoscale });
if (s.bars.horizontal) {
delete format[format.length - 1].y;
format[format.length - 1].x = true;
}
}
datapoints.format = format;
}
for (var m = 0; m < format.length; ++m) {
if (format[m].x && xCategories)
format[m].number = false;
if (format[m].y && yCategories)
format[m].number = false;
}
}
function getNextIndex(categories) {
var index = -1;
for (var v in categories)
if (categories[v] > index)
index = categories[v];
return index + 1;
}
function categoriesTickGenerator(axis) {
var res = [];
for (var label in axis.categories) {
var v = axis.categories[label];
if (v >= axis.min && v <= axis.max)
res.push([v, label]);
}
res.sort(function (a, b) { return a[0] - b[0]; });
return res;
}
function setupCategoriesForAxis(series, axis, datapoints) {
if (series[axis].options.mode != "categories")
return;
if (!series[axis].categories) {
// parse options
var c = {}, o = series[axis].options.categories || {};
if ($.isArray(o)) {
for (var i = 0; i < o.length; ++i)
c[o[i]] = i;
}
else {
for (var v in o)
c[v] = o[v];
}
series[axis].categories = c;
}
// fix ticks
if (!series[axis].options.ticks)
series[axis].options.ticks = categoriesTickGenerator;
transformPointsOnAxis(datapoints, axis, series[axis].categories);
}
function transformPointsOnAxis(datapoints, axis, categories) {
// go through the points, transforming them
var points = datapoints.points,
ps = datapoints.pointsize,
format = datapoints.format,
formatColumn = axis.charAt(0),
index = getNextIndex(categories);
for (var i = 0; i < points.length; i += ps) {
if (points[i] == null)
continue;
for (var m = 0; m < ps; ++m) {
var val = points[i + m];
if (val == null || !format[m][formatColumn])
continue;
if (!(val in categories)) {
categories[val] = index;
++index;
}
points[i + m] = categories[val];
}
}
}
function processDatapoints(plot, series, datapoints) {
setupCategoriesForAxis(series, "xaxis", datapoints);
setupCategoriesForAxis(series, "yaxis", datapoints);
}
function init(plot) {
plot.hooks.processRawData.push(processRawData);
plot.hooks.processDatapoints.push(processDatapoints);
}
$.plot.plugins.push({
init: init,
options: options,
name: 'categories',
version: '1.0'
});
})(jQuery);
================================================
FILE: public/admin-panel/assets/libs/flot/jquery.flot.crosshair.js
================================================
/* Flot plugin for showing crosshairs when the mouse hovers over the plot.
Copyright (c) 2007-2014 IOLA and Ole Laursen.
Licensed under the MIT license.
The plugin supports these options:
crosshair: {
mode: null or "x" or "y" or "xy"
color: color
lineWidth: number
}
Set the mode to one of "x", "y" or "xy". The "x" mode enables a vertical
crosshair that lets you trace the values on the x axis, "y" enables a
horizontal crosshair and "xy" enables them both. "color" is the color of the
crosshair (default is "rgba(170, 0, 0, 0.80)"), "lineWidth" is the width of
the drawn lines (default is 1).
The plugin also adds four public methods:
- setCrosshair( pos )
Set the position of the crosshair. Note that this is cleared if the user
moves the mouse. "pos" is in coordinates of the plot and should be on the
form { x: xpos, y: ypos } (you can use x2/x3/... if you're using multiple
axes), which is coincidentally the same format as what you get from a
"plothover" event. If "pos" is null, the crosshair is cleared.
- clearCrosshair()
Clear the crosshair.
- lockCrosshair(pos)
Cause the crosshair to lock to the current location, no longer updating if
the user moves the mouse. Optionally supply a position (passed on to
setCrosshair()) to move it to.
Example usage:
var myFlot = $.plot( $("#graph"), ..., { crosshair: { mode: "x" } } };
$("#graph").bind( "plothover", function ( evt, position, item ) {
if ( item ) {
// Lock the crosshair to the data point being hovered
myFlot.lockCrosshair({
x: item.datapoint[ 0 ],
y: item.datapoint[ 1 ]
});
} else {
// Return normal crosshair operation
myFlot.unlockCrosshair();
}
});
- unlockCrosshair()
Free the crosshair to move again after locking it.
*/
(function ($) {
var options = {
crosshair: {
mode: null, // one of null, "x", "y" or "xy",
color: "rgba(170, 0, 0, 0.80)",
lineWidth: 1
}
};
function init(plot) {
// position of crosshair in pixels
var crosshair = { x: -1, y: -1, locked: false };
plot.setCrosshair = function setCrosshair(pos) {
if (!pos)
crosshair.x = -1;
else {
var o = plot.p2c(pos);
crosshair.x = Math.max(0, Math.min(o.left, plot.width()));
crosshair.y = Math.max(0, Math.min(o.top, plot.height()));
}
plot.triggerRedrawOverlay();
};
plot.clearCrosshair = plot.setCrosshair; // passes null for pos
plot.lockCrosshair = function lockCrosshair(pos) {
if (pos)
plot.setCrosshair(pos);
crosshair.locked = true;
};
plot.unlockCrosshair = function unlockCrosshair() {
crosshair.locked = false;
};
function onMouseOut(e) {
if (crosshair.locked)
return;
if (crosshair.x != -1) {
crosshair.x = -1;
plot.triggerRedrawOverlay();
}
}
function onMouseMove(e) {
if (crosshair.locked)
return;
if (plot.getSelection && plot.getSelection()) {
crosshair.x = -1; // hide the crosshair while selecting
return;
}
var offset = plot.offset();
crosshair.x = Math.max(0, Math.min(e.pageX - offset.left, plot.width()));
crosshair.y = Math.max(0, Math.min(e.pageY - offset.top, plot.height()));
plot.triggerRedrawOverlay();
}
plot.hooks.bindEvents.push(function (plot, eventHolder) {
if (!plot.getOptions().crosshair.mode)
return;
eventHolder.mouseout(onMouseOut);
eventHolder.mousemove(onMouseMove);
});
plot.hooks.drawOverlay.push(function (plot, ctx) {
var c = plot.getOptions().crosshair;
if (!c.mode)
return;
var plotOffset = plot.getPlotOffset();
ctx.save();
ctx.translate(plotOffset.left, plotOffset.top);
if (crosshair.x != -1) {
var adj = plot.getOptions().crosshair.lineWidth % 2 ? 0.5 : 0;
ctx.strokeStyle = c.color;
ctx.lineWidth = c.lineWidth;
ctx.lineJoin = "round";
ctx.beginPath();
if (c.mode.indexOf("x") != -1) {
var drawX = Math.floor(crosshair.x) + adj;
ctx.moveTo(drawX, 0);
ctx.lineTo(drawX, plot.height());
}
if (c.mode.indexOf("y") != -1) {
var drawY = Math.floor(crosshair.y) + adj;
ctx.moveTo(0, drawY);
ctx.lineTo(plot.width(), drawY);
}
ctx.stroke();
}
ctx.restore();
});
plot.hooks.shutdown.push(function (plot, eventHolder) {
eventHolder.unbind("mouseout", onMouseOut);
eventHolder.unbind("mousemove", onMouseMove);
});
}
$.plot.plugins.push({
init: init,
options: options,
name: 'crosshair',
version: '1.0'
});
})(jQuery);
================================================
FILE: public/admin-panel/assets/libs/flot/jquery.flot.errorbars.js
================================================
/* Flot plugin for plotting error bars.
Copyright (c) 2007-2014 IOLA and Ole Laursen.
Licensed under the MIT license.
Error bars are used to show standard deviation and other statistical
properties in a plot.
* Created by Rui Pereira - rui (dot) pereira (at) gmail (dot) com
This plugin allows you to plot error-bars over points. Set "errorbars" inside
the points series to the axis name over which there will be error values in
your data array (*even* if you do not intend to plot them later, by setting
"show: null" on xerr/yerr).
The plugin supports these options:
series: {
points: {
errorbars: "x" or "y" or "xy",
xerr: {
show: null/false or true,
asymmetric: null/false or true,
upperCap: null or "-" or function,
lowerCap: null or "-" or function,
color: null or color,
radius: null or number
},
yerr: { same options as xerr }
}
}
Each data point array is expected to be of the type:
"x" [ x, y, xerr ]
"y" [ x, y, yerr ]
"xy" [ x, y, xerr, yerr ]
Where xerr becomes xerr_lower,xerr_upper for the asymmetric error case, and
equivalently for yerr. Eg., a datapoint for the "xy" case with symmetric
error-bars on X and asymmetric on Y would be:
[ x, y, xerr, yerr_lower, yerr_upper ]
By default no end caps are drawn. Setting upperCap and/or lowerCap to "-" will
draw a small cap perpendicular to the error bar. They can also be set to a
user-defined drawing function, with (ctx, x, y, radius) as parameters, as eg.
function drawSemiCircle( ctx, x, y, radius ) {
ctx.beginPath();
ctx.arc( x, y, radius, 0, Math.PI, false );
ctx.moveTo( x - radius, y );
ctx.lineTo( x + radius, y );
ctx.stroke();
}
Color and radius both default to the same ones of the points series if not
set. The independent radius parameter on xerr/yerr is useful for the case when
we may want to add error-bars to a line, without showing the interconnecting
points (with radius: 0), and still showing end caps on the error-bars.
shadowSize and lineWidth are derived as well from the points series.
*/
(function ($) {
var options = {
series: {
points: {
errorbars: null, //should be 'x', 'y' or 'xy'
xerr: { err: 'x', show: null, asymmetric: null, upperCap: null, lowerCap: null, color: null, radius: null},
yerr: { err: 'y', show: null, asymmetric: null, upperCap: null, lowerCap: null, color: null, radius: null}
}
}
};
function processRawData(plot, series, data, datapoints){
if (!series.points.errorbars)
return;
// x,y values
var format = [
{ x: true, number: true, required: true },
{ y: true, number: true, required: true }
];
var errors = series.points.errorbars;
// error bars - first X then Y
if (errors == 'x' || errors == 'xy') {
// lower / upper error
if (series.points.xerr.asymmetric) {
format.push({ x: true, number: true, required: true });
format.push({ x: true, number: true, required: true });
} else
format.push({ x: true, number: true, required: true });
}
if (errors == 'y' || errors == 'xy') {
// lower / upper error
if (series.points.yerr.asymmetric) {
format.push({ y: true, number: true, required: true });
format.push({ y: true, number: true, required: true });
} else
format.push({ y: true, number: true, required: true });
}
datapoints.format = format;
}
function parseErrors(series, i){
var points = series.datapoints.points;
// read errors from points array
var exl = null,
exu = null,
eyl = null,
eyu = null;
var xerr = series.points.xerr,
yerr = series.points.yerr;
var eb = series.points.errorbars;
// error bars - first X
if (eb == 'x' || eb == 'xy') {
if (xerr.asymmetric) {
exl = points[i + 2];
exu = points[i + 3];
if (eb == 'xy')
if (yerr.asymmetric){
eyl = points[i + 4];
eyu = points[i + 5];
} else eyl = points[i + 4];
} else {
exl = points[i + 2];
if (eb == 'xy')
if (yerr.asymmetric) {
eyl = points[i + 3];
eyu = points[i + 4];
} else eyl = points[i + 3];
}
// only Y
} else if (eb == 'y')
if (yerr.asymmetric) {
eyl = points[i + 2];
eyu = points[i + 3];
} else eyl = points[i + 2];
// symmetric errors?
if (exu == null) exu = exl;
if (eyu == null) eyu = eyl;
var errRanges = [exl, exu, eyl, eyu];
// nullify if not showing
if (!xerr.show){
errRanges[0] = null;
errRanges[1] = null;
}
if (!yerr.show){
errRanges[2] = null;
errRanges[3] = null;
}
return errRanges;
}
function drawSeriesErrors(plot, ctx, s){
var points = s.datapoints.points,
ps = s.datapoints.pointsize,
ax = [s.xaxis, s.yaxis],
radius = s.points.radius,
err = [s.points.xerr, s.points.yerr];
//sanity check, in case some inverted axis hack is applied to flot
var invertX = false;
if (ax[0].p2c(ax[0].max) < ax[0].p2c(ax[0].min)) {
invertX = true;
var tmp = err[0].lowerCap;
err[0].lowerCap = err[0].upperCap;
err[0].upperCap = tmp;
}
var invertY = false;
if (ax[1].p2c(ax[1].min) < ax[1].p2c(ax[1].max)) {
invertY = true;
var tmp = err[1].lowerCap;
err[1].lowerCap = err[1].upperCap;
err[1].upperCap = tmp;
}
for (var i = 0; i < s.datapoints.points.length; i += ps) {
//parse
var errRanges = parseErrors(s, i);
//cycle xerr & yerr
for (var e = 0; e < err.length; e++){
var minmax = [ax[e].min, ax[e].max];
//draw this error?
if (errRanges[e * err.length]){
//data coordinates
var x = points[i],
y = points[i + 1];
//errorbar ranges
var upper = [x, y][e] + errRanges[e * err.length + 1],
lower = [x, y][e] - errRanges[e * err.length];
//points outside of the canvas
if (err[e].err == 'x')
if (y > ax[1].max || y < ax[1].min || upper < ax[0].min || lower > ax[0].max)
continue;
if (err[e].err == 'y')
if (x > ax[0].max || x < ax[0].min || upper < ax[1].min || lower > ax[1].max)
continue;
// prevent errorbars getting out of the canvas
var drawUpper = true,
drawLower = true;
if (upper > minmax[1]) {
drawUpper = false;
upper = minmax[1];
}
if (lower < minmax[0]) {
drawLower = false;
lower = minmax[0];
}
//sanity check, in case some inverted axis hack is applied to flot
if ((err[e].err == 'x' && invertX) || (err[e].err == 'y' && invertY)) {
//swap coordinates
var tmp = lower;
lower = upper;
upper = tmp;
tmp = drawLower;
drawLower = drawUpper;
drawUpper = tmp;
tmp = minmax[0];
minmax[0] = minmax[1];
minmax[1] = tmp;
}
// convert to pixels
x = ax[0].p2c(x),
y = ax[1].p2c(y),
upper = ax[e].p2c(upper);
lower = ax[e].p2c(lower);
minmax[0] = ax[e].p2c(minmax[0]);
minmax[1] = ax[e].p2c(minmax[1]);
//same style as points by default
var lw = err[e].lineWidth ? err[e].lineWidth : s.points.lineWidth,
sw = s.points.shadowSize != null ? s.points.shadowSize : s.shadowSize;
//shadow as for points
if (lw > 0 && sw > 0) {
var w = sw / 2;
ctx.lineWidth = w;
ctx.strokeStyle = "rgba(0,0,0,0.1)";
drawError(ctx, err[e], x, y, upper, lower, drawUpper, drawLower, radius, w + w/2, minmax);
ctx.strokeStyle = "rgba(0,0,0,0.2)";
drawError(ctx, err[e], x, y, upper, lower, drawUpper, drawLower, radius, w/2, minmax);
}
ctx.strokeStyle = err[e].color? err[e].color: s.color;
ctx.lineWidth = lw;
//draw it
drawError(ctx, err[e], x, y, upper, lower, drawUpper, drawLower, radius, 0, minmax);
}
}
}
}
function drawError(ctx,err,x,y,upper,lower,drawUpper,drawLower,radius,offset,minmax){
//shadow offset
y += offset;
upper += offset;
lower += offset;
// error bar - avoid plotting over circles
if (err.err == 'x'){
if (upper > x + radius) drawPath(ctx, [[upper,y],[Math.max(x + radius,minmax[0]),y]]);
else drawUpper = false;
if (lower < x - radius) drawPath(ctx, [[Math.min(x - radius,minmax[1]),y],[lower,y]] );
else drawLower = false;
}
else {
if (upper < y - radius) drawPath(ctx, [[x,upper],[x,Math.min(y - radius,minmax[0])]] );
else drawUpper = false;
if (lower > y + radius) drawPath(ctx, [[x,Math.max(y + radius,minmax[1])],[x,lower]] );
else drawLower = false;
}
//internal radius value in errorbar, allows to plot radius 0 points and still keep proper sized caps
//this is a way to get errorbars on lines without visible connecting dots
radius = err.radius != null? err.radius: radius;
// upper cap
if (drawUpper) {
if (err.upperCap == '-'){
if (err.err=='x') drawPath(ctx, [[upper,y - radius],[upper,y + radius]] );
else drawPath(ctx, [[x - radius,upper],[x + radius,upper]] );
} else if ($.isFunction(err.upperCap)){
if (err.err=='x') err.upperCap(ctx, upper, y, radius);
else err.upperCap(ctx, x, upper, radius);
}
}
// lower cap
if (drawLower) {
if (err.lowerCap == '-'){
if (err.err=='x') drawPath(ctx, [[lower,y - radius],[lower,y + radius]] );
else drawPath(ctx, [[x - radius,lower],[x + radius,lower]] );
} else if ($.isFunction(err.lowerCap)){
if (err.err=='x') err.lowerCap(ctx, lower, y, radius);
else err.lowerCap(ctx, x, lower, radius);
}
}
}
function drawPath(ctx, pts){
ctx.beginPath();
ctx.moveTo(pts[0][0], pts[0][1]);
for (var p=1; p < pts.length; p++)
ctx.lineTo(pts[p][0], pts[p][1]);
ctx.stroke();
}
function draw(plot, ctx){
var plotOffset = plot.getPlotOffset();
ctx.save();
ctx.translate(plotOffset.left, plotOffset.top);
$.each(plot.getData(), function (i, s) {
if (s.points.errorbars && (s.points.xerr.show || s.points.yerr.show))
drawSeriesErrors(plot, ctx, s);
});
ctx.restore();
}
function init(plot) {
plot.hooks.processRawData.push(processRawData);
plot.hooks.draw.push(draw);
}
$.plot.plugins.push({
init: init,
options: options,
name: 'errorbars',
version: '1.0'
});
})(jQuery);
================================================
FILE: public/admin-panel/assets/libs/flot/jquery.flot.fillbetween.js
================================================
/* Flot plugin for computing bottoms for filled line and bar charts.
Copyright (c) 2007-2014 IOLA and Ole Laursen.
Licensed under the MIT license.
The case: you've got two series that you want to fill the area between. In Flot
terms, you need to use one as the fill bottom of the other. You can specify the
bottom of each data point as the third coordinate manually, or you can use this
plugin to compute it for you.
In order to name the other series, you need to give it an id, like this:
var dataset = [
{ data: [ ... ], id: "foo" } , // use default bottom
{ data: [ ... ], fillBetween: "foo" }, // use first dataset as bottom
];
$.plot($("#placeholder"), dataset, { lines: { show: true, fill: true }});
As a convenience, if the id given is a number that doesn't appear as an id in
the series, it is interpreted as the index in the array instead (so fillBetween:
0 can also mean the first series).
Internally, the plugin modifies the datapoints in each series. For line series,
extra data points might be inserted through interpolation. Note that at points
where the bottom line is not defined (due to a null point or start/end of line),
the current line will show a gap too. The algorithm comes from the
jquery.flot.stack.js plugin, possibly some code could be shared.
*/
(function ( $ ) {
var options = {
series: {
fillBetween: null // or number
}
};
function init( plot ) {
function findBottomSeries( s, allseries ) {
var i;
for ( i = 0; i < allseries.length; ++i ) {
if ( allseries[ i ].id === s.fillBetween ) {
return allseries[ i ];
}
}
if ( typeof s.fillBetween === "number" ) {
if ( s.fillBetween < 0 || s.fillBetween >= allseries.length ) {
return null;
}
return allseries[ s.fillBetween ];
}
return null;
}
function computeFillBottoms( plot, s, datapoints ) {
if ( s.fillBetween == null ) {
return;
}
var other = findBottomSeries( s, plot.getData() );
if ( !other ) {
return;
}
var ps = datapoints.pointsize,
points = datapoints.points,
otherps = other.datapoints.pointsize,
otherpoints = other.datapoints.points,
newpoints = [],
px, py, intery, qx, qy, bottom,
withlines = s.lines.show,
withbottom = ps > 2 && datapoints.format[2].y,
withsteps = withlines && s.lines.steps,
fromgap = true,
i = 0,
j = 0,
l, m;
while ( true ) {
if ( i >= points.length ) {
break;
}
l = newpoints.length;
if ( points[ i ] == null ) {
// copy gaps
for ( m = 0; m < ps; ++m ) {
newpoints.push( points[ i + m ] );
}
i += ps;
} else if ( j >= otherpoints.length ) {
// for lines, we can't use the rest of the points
if ( !withlines ) {
for ( m = 0; m < ps; ++m ) {
newpoints.push( points[ i + m ] );
}
}
i += ps;
} else if ( otherpoints[ j ] == null ) {
// oops, got a gap
for ( m = 0; m < ps; ++m ) {
newpoints.push( null );
}
fromgap = true;
j += otherps;
} else {
// cases where we actually got two points
px = points[ i ];
py = points[ i + 1 ];
qx = otherpoints[ j ];
qy = otherpoints[ j + 1 ];
bottom = 0;
if ( px === qx ) {
for ( m = 0; m < ps; ++m ) {
newpoints.push( points[ i + m ] );
}
//newpoints[ l + 1 ] += qy;
bottom = qy;
i += ps;
j += otherps;
} else if ( px > qx ) {
// we got past point below, might need to
// insert interpolated extra point
if ( withlines && i > 0 && points[ i - ps ] != null ) {
intery = py + ( points[ i - ps + 1 ] - py ) * ( qx - px ) / ( points[ i - ps ] - px );
newpoints.push( qx );
newpoints.push( intery );
for ( m = 2; m < ps; ++m ) {
newpoints.push( points[ i + m ] );
}
bottom = qy;
}
j += otherps;
} else { // px < qx
// if we come from a gap, we just skip this point
if ( fromgap && withlines ) {
i += ps;
continue;
}
for ( m = 0; m < ps; ++m ) {
newpoints.push( points[ i + m ] );
}
// we might be able to interpolate a point below,
// this can give us a better y
if ( withlines && j > 0 && otherpoints[ j - otherps ] != null ) {
bottom = qy + ( otherpoints[ j - otherps + 1 ] - qy ) * ( px - qx ) / ( otherpoints[ j - otherps ] - qx );
}
//newpoints[l + 1] += bottom;
i += ps;
}
fromgap = false;
if ( l !== newpoints.length && withbottom ) {
newpoints[ l + 2 ] = bottom;
}
}
// maintain the line steps invariant
if ( withsteps && l !== newpoints.length && l > 0 &&
newpoints[ l ] !== null &&
newpoints[ l ] !== newpoints[ l - ps ] &&
newpoints[ l + 1 ] !== newpoints[ l - ps + 1 ] ) {
for (m = 0; m < ps; ++m) {
newpoints[ l + ps + m ] = newpoints[ l + m ];
}
newpoints[ l + 1 ] = newpoints[ l - ps + 1 ];
}
}
datapoints.points = newpoints;
}
plot.hooks.processDatapoints.push( computeFillBottoms );
}
$.plot.plugins.push({
init: init,
options: options,
name: "fillbetween",
version: "1.0"
});
})(jQuery);
================================================
FILE: public/admin-panel/assets/libs/flot/jquery.flot.image.js
================================================
/* Flot plugin for plotting images.
Copyright (c) 2007-2014 IOLA and Ole Laursen.
Licensed under the MIT license.
The data syntax is [ [ image, x1, y1, x2, y2 ], ... ] where (x1, y1) and
(x2, y2) are where you intend the two opposite corners of the image to end up
in the plot. Image must be a fully loaded Javascript image (you can make one
with new Image()). If the image is not complete, it's skipped when plotting.
There are two helpers included for retrieving images. The easiest work the way
that you put in URLs instead of images in the data, like this:
[ "myimage.png", 0, 0, 10, 10 ]
Then call $.plot.image.loadData( data, options, callback ) where data and
options are the same as you pass in to $.plot. This loads the images, replaces
the URLs in the data with the corresponding images and calls "callback" when
all images are loaded (or failed loading). In the callback, you can then call
$.plot with the data set. See the included example.
A more low-level helper, $.plot.image.load(urls, callback) is also included.
Given a list of URLs, it calls callback with an object mapping from URL to
Image object when all images are loaded or have failed loading.
The plugin supports these options:
series: {
images: {
show: boolean
anchor: "corner" or "center"
alpha: [ 0, 1 ]
}
}
They can be specified for a specific series:
$.plot( $("#placeholder"), [{
data: [ ... ],
images: { ... }
])
Note that because the data format is different from usual data points, you
can't use images with anything else in a specific data series.
Setting "anchor" to "center" causes the pixels in the image to be anchored at
the corner pixel centers inside of at the pixel corners, effectively letting
half a pixel stick out to each side in the plot.
A possible future direction could be support for tiling for large images (like
Google Maps).
*/
(function ($) {
var options = {
series: {
images: {
show: false,
alpha: 1,
anchor: "corner" // or "center"
}
}
};
$.plot.image = {};
$.plot.image.loadDataImages = function (series, options, callback) {
var urls = [], points = [];
var defaultShow = options.series.images.show;
$.each(series, function (i, s) {
if (!(defaultShow || s.images.show))
return;
if (s.data)
s = s.data;
$.each(s, function (i, p) {
if (typeof p[0] == "string") {
urls.push(p[0]);
points.push(p);
}
});
});
$.plot.image.load(urls, function (loadedImages) {
$.each(points, function (i, p) {
var url = p[0];
if (loadedImages[url])
p[0] = loadedImages[url];
});
callback();
});
}
$.plot.image.load = function (urls, callback) {
var missing = urls.length, loaded = {};
if (missing == 0)
callback({});
$.each(urls, function (i, url) {
var handler = function () {
--missing;
loaded[url] = this;
if (missing == 0)
callback(loaded);
};
$(' ').load(handler).error(handler).attr('src', url);
});
};
function drawSeries(plot, ctx, series) {
var plotOffset = plot.getPlotOffset();
if (!series.images || !series.images.show)
return;
var points = series.datapoints.points,
ps = series.datapoints.pointsize;
for (var i = 0; i < points.length; i += ps) {
var img = points[i],
x1 = points[i + 1], y1 = points[i + 2],
x2 = points[i + 3], y2 = points[i + 4],
xaxis = series.xaxis, yaxis = series.yaxis,
tmp;
// actually we should check img.complete, but it
// appears to be a somewhat unreliable indicator in
// IE6 (false even after load event)
if (!img || img.width <= 0 || img.height <= 0)
continue;
if (x1 > x2) {
tmp = x2;
x2 = x1;
x1 = tmp;
}
if (y1 > y2) {
tmp = y2;
y2 = y1;
y1 = tmp;
}
// if the anchor is at the center of the pixel, expand the
// image by 1/2 pixel in each direction
if (series.images.anchor == "center") {
tmp = 0.5 * (x2-x1) / (img.width - 1);
x1 -= tmp;
x2 += tmp;
tmp = 0.5 * (y2-y1) / (img.height - 1);
y1 -= tmp;
y2 += tmp;
}
// clip
if (x1 == x2 || y1 == y2 ||
x1 >= xaxis.max || x2 <= xaxis.min ||
y1 >= yaxis.max || y2 <= yaxis.min)
continue;
var sx1 = 0, sy1 = 0, sx2 = img.width, sy2 = img.height;
if (x1 < xaxis.min) {
sx1 += (sx2 - sx1) * (xaxis.min - x1) / (x2 - x1);
x1 = xaxis.min;
}
if (x2 > xaxis.max) {
sx2 += (sx2 - sx1) * (xaxis.max - x2) / (x2 - x1);
x2 = xaxis.max;
}
if (y1 < yaxis.min) {
sy2 += (sy1 - sy2) * (yaxis.min - y1) / (y2 - y1);
y1 = yaxis.min;
}
if (y2 > yaxis.max) {
sy1 += (sy1 - sy2) * (yaxis.max - y2) / (y2 - y1);
y2 = yaxis.max;
}
x1 = xaxis.p2c(x1);
x2 = xaxis.p2c(x2);
y1 = yaxis.p2c(y1);
y2 = yaxis.p2c(y2);
// the transformation may have swapped us
if (x1 > x2) {
tmp = x2;
x2 = x1;
x1 = tmp;
}
if (y1 > y2) {
tmp = y2;
y2 = y1;
y1 = tmp;
}
tmp = ctx.globalAlpha;
ctx.globalAlpha *= series.images.alpha;
ctx.drawImage(img,
sx1, sy1, sx2 - sx1, sy2 - sy1,
x1 + plotOffset.left, y1 + plotOffset.top,
x2 - x1, y2 - y1);
ctx.globalAlpha = tmp;
}
}
function processRawData(plot, series, data, datapoints) {
if (!series.images.show)
return;
// format is Image, x1, y1, x2, y2 (opposite corners)
datapoints.format = [
{ required: true },
{ x: true, number: true, required: true },
{ y: true, number: true, required: true },
{ x: true, number: true, required: true },
{ y: true, number: true, required: true }
];
}
function init(plot) {
plot.hooks.processRawData.push(processRawData);
plot.hooks.drawSeries.push(drawSeries);
}
$.plot.plugins.push({
init: init,
options: options,
name: 'image',
version: '1.1'
});
})(jQuery);
================================================
FILE: public/admin-panel/assets/libs/flot/jquery.flot.js
================================================
/* Javascript plotting library for jQuery, version 0.8.3.
Copyright (c) 2007-2014 IOLA and Ole Laursen.
Licensed under the MIT license.
*/
// first an inline dependency, jquery.colorhelpers.js, we inline it here
// for convenience
/* Plugin for jQuery for working with colors.
*
* Version 1.1.
*
* Inspiration from jQuery color animation plugin by John Resig.
*
* Released under the MIT license by Ole Laursen, October 2009.
*
* Examples:
*
* $.color.parse("#fff").scale('rgb', 0.25).add('a', -0.5).toString()
* var c = $.color.extract($("#mydiv"), 'background-color');
* console.log(c.r, c.g, c.b, c.a);
* $.color.make(100, 50, 25, 0.4).toString() // returns "rgba(100,50,25,0.4)"
*
* Note that .scale() and .add() return the same modified object
* instead of making a new one.
*
* V. 1.1: Fix error handling so e.g. parsing an empty string does
* produce a color rather than just crashing.
*/
(function($){$.color={};$.color.make=function(r,g,b,a)
{var o={};o.r=r||0;o.g=g||0;o.b=b||0;o.a=a!=null?a:1;o.add=function(c,d)
{
for(var i=0;i=1){return"rgb("+[o.r,o.g,o.b].join(",")+")"}else{return"rgba("+[o.r,o.g,o.b,o.a].join(",")+")"}};o.normalize=function(){function clamp(min,value,max){return valuemax?max:value}o.r=clamp(0,parseInt(o.r),255);o.g=clamp(0,parseInt(o.g),255);
o.b=clamp(0,parseInt(o.b),255);o.a=clamp(0,o.a,1);return o};o.clone=function(){return $.color.make(o.r,o.b,o.g,o.a)};
return o.normalize()};$.color.extract=function(elem,css){var c;do{c=elem.css(css);if(c!=""&&c!="transparent")break;
elem=elem.parent()}while(elem.length&&!$.nodeName(elem.get(0),"body"));if(c=="rgba(0, 0, 0, 0)")c="transparent";return $.color.parse(c)};
$.color.parse=function(str){var res,m=$.color.make;if(res=/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(str))return m(parseInt(res[1],10),parseInt(res[2],10),parseInt(res[3],10));if(res=/rgba\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]+(?:\.[0-9]+)?)\s*\)/.exec(str))return m(parseInt(res[1],10),parseInt(res[2],10),parseInt(res[3],10),parseFloat(res[4]));if(res=/rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec(str))return m(parseFloat(res[1])*2.55,parseFloat(res[2])*2.55,parseFloat(res[3])*2.55);
if(res=/rgba\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\s*\)/.exec(str))return m(parseFloat(res[1])*2.55,parseFloat(res[2])*2.55,parseFloat(res[3])*2.55,parseFloat(res[4]));if(res=/#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(str))return m(parseInt(res[1],16),parseInt(res[2],16),parseInt(res[3],16));if(res=/#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(str))return m(parseInt(res[1]+res[1],16),parseInt(res[2]+res[2],16),parseInt(res[3]+res[3],16));var name=$.trim(str).toLowerCase();if(name=="transparent")return m(255,255,255,0);else{res=lookupColors[name]||[0,0,0];return m(res[0],res[1],res[2])}};
var lookupColors={aqua:[0,255,255],azure:[240,255,255],beige:[245,245,220],black:[0,0,0],blue:[0,0,255],brown:[165,42,42],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgrey:[169,169,169],darkgreen:[0,100,0],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkviolet:[148,0,211],fuchsia:[255,0,255],gold:[255,215,0],green:[0,128,0],indigo:[75,0,130],khaki:[240,230,140],lightblue:[173,216,230],lightcyan:[224,255,255],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightyellow:[255,255,224],lime:[0,255,0],magenta:[255,0,255],maroon:[128,0,0],navy:[0,0,128],olive:[128,128,0],orange:[255,165,0],pink:[255,192,203],purple:[128,0,128],violet:[128,0,128],red:[255,0,0],silver:[192,192,192],white:[255,255,255],yellow:[255,255,0]}})(jQuery);
// the actual Flot code
(function($) {
// Cache the prototype hasOwnProperty for faster access
var hasOwnProperty = Object.prototype.hasOwnProperty;
// A shim to provide 'detach' to jQuery versions prior to 1.4. Using a DOM
// operation produces the same effect as detach, i.e. removing the element
// without touching its jQuery data.
// Do not merge this into Flot 0.9, since it requires jQuery 1.4.4+.
if (!$.fn.detach) {
$.fn.detach = function() {
return this.each(function() {
if (this.parentNode) {
this.parentNode.removeChild( this );
}
});
};
}
///////////////////////////////////////////////////////////////////////////
// The Canvas object is a wrapper around an HTML5 tag.
//
// @constructor
// @param {string} cls List of classes to apply to the canvas.
// @param {element} container Element onto which to append the canvas.
//
// Requiring a container is a little iffy, but unfortunately canvas
// operations don't work unless the canvas is attached to the DOM.
function Canvas(cls, container) {
var element = container.children("." + cls)[0];
if (element == null) {
element = document.createElement("canvas");
element.className = cls;
$(element).css({ direction: "ltr", position: "absolute", left: 0, top: 0 })
.appendTo(container);
// If HTML5 Canvas isn't available, fall back to [Ex|Flash]canvas
if (!element.getContext) {
if (window.G_vmlCanvasManager) {
element = window.G_vmlCanvasManager.initElement(element);
} else {
throw new Error("Canvas is not available. If you're using IE with a fall-back such as Excanvas, then there's either a mistake in your conditional include, or the page has no DOCTYPE and is rendering in Quirks Mode.");
}
}
}
this.element = element;
var context = this.context = element.getContext("2d");
// Determine the screen's ratio of physical to device-independent
// pixels. This is the ratio between the canvas width that the browser
// advertises and the number of pixels actually present in that space.
// The iPhone 4, for example, has a device-independent width of 320px,
// but its screen is actually 640px wide. It therefore has a pixel
// ratio of 2, while most normal devices have a ratio of 1.
var devicePixelRatio = window.devicePixelRatio || 1,
backingStoreRatio =
context.webkitBackingStorePixelRatio ||
context.mozBackingStorePixelRatio ||
context.msBackingStorePixelRatio ||
context.oBackingStorePixelRatio ||
context.backingStorePixelRatio || 1;
this.pixelRatio = devicePixelRatio / backingStoreRatio;
// Size the canvas to match the internal dimensions of its container
this.resize(container.width(), container.height());
// Collection of HTML div layers for text overlaid onto the canvas
this.textContainer = null;
this.text = {};
// Cache of text fragments and metrics, so we can avoid expensively
// re-calculating them when the plot is re-rendered in a loop.
this._textCache = {};
}
// Resizes the canvas to the given dimensions.
//
// @param {number} width New width of the canvas, in pixels.
// @param {number} width New height of the canvas, in pixels.
Canvas.prototype.resize = function(width, height) {
if (width <= 0 || height <= 0) {
throw new Error("Invalid dimensions for plot, width = " + width + ", height = " + height);
}
var element = this.element,
context = this.context,
pixelRatio = this.pixelRatio;
// Resize the canvas, increasing its density based on the display's
// pixel ratio; basically giving it more pixels without increasing the
// size of its element, to take advantage of the fact that retina
// displays have that many more pixels in the same advertised space.
// Resizing should reset the state (excanvas seems to be buggy though)
if (this.width != width) {
element.width = width * pixelRatio;
element.style.width = width + "px";
this.width = width;
}
if (this.height != height) {
element.height = height * pixelRatio;
element.style.height = height + "px";
this.height = height;
}
// Save the context, so we can reset in case we get replotted. The
// restore ensure that we're really back at the initial state, and
// should be safe even if we haven't saved the initial state yet.
context.restore();
context.save();
// Scale the coordinate space to match the display density; so even though we
// may have twice as many pixels, we still want lines and other drawing to
// appear at the same size; the extra pixels will just make them crisper.
context.scale(pixelRatio, pixelRatio);
};
// Clears the entire canvas area, not including any overlaid HTML text
Canvas.prototype.clear = function() {
this.context.clearRect(0, 0, this.width, this.height);
};
// Finishes rendering the canvas, including managing the text overlay.
Canvas.prototype.render = function() {
var cache = this._textCache;
// For each text layer, add elements marked as active that haven't
// already been rendered, and remove those that are no longer active.
for (var layerKey in cache) {
if (hasOwnProperty.call(cache, layerKey)) {
var layer = this.getTextLayer(layerKey),
layerCache = cache[layerKey];
layer.hide();
for (var styleKey in layerCache) {
if (hasOwnProperty.call(layerCache, styleKey)) {
var styleCache = layerCache[styleKey];
for (var key in styleCache) {
if (hasOwnProperty.call(styleCache, key)) {
var positions = styleCache[key].positions;
for (var i = 0, position; position = positions[i]; i++) {
if (position.active) {
if (!position.rendered) {
layer.append(position.element);
position.rendered = true;
}
} else {
positions.splice(i--, 1);
if (position.rendered) {
position.element.detach();
}
}
}
if (positions.length == 0) {
delete styleCache[key];
}
}
}
}
}
layer.show();
}
}
};
// Creates (if necessary) and returns the text overlay container.
//
// @param {string} classes String of space-separated CSS classes used to
// uniquely identify the text layer.
// @return {object} The jQuery-wrapped text-layer div.
Canvas.prototype.getTextLayer = function(classes) {
var layer = this.text[classes];
// Create the text layer if it doesn't exist
if (layer == null) {
// Create the text layer container, if it doesn't exist
if (this.textContainer == null) {
this.textContainer = $("
")
.css({
position: "absolute",
top: 0,
left: 0,
bottom: 0,
right: 0,
'font-size': "smaller",
color: "#545454"
})
.insertAfter(this.element);
}
layer = this.text[classes] = $("
")
.addClass(classes)
.css({
position: "absolute",
top: 0,
left: 0,
bottom: 0,
right: 0
})
.appendTo(this.textContainer);
}
return layer;
};
// Creates (if necessary) and returns a text info object.
//
// The object looks like this:
//
// {
// width: Width of the text's wrapper div.
// height: Height of the text's wrapper div.
// element: The jQuery-wrapped HTML div containing the text.
// positions: Array of positions at which this text is drawn.
// }
//
// The positions array contains objects that look like this:
//
// {
// active: Flag indicating whether the text should be visible.
// rendered: Flag indicating whether the text is currently visible.
// element: The jQuery-wrapped HTML div containing the text.
// x: X coordinate at which to draw the text.
// y: Y coordinate at which to draw the text.
// }
//
// Each position after the first receives a clone of the original element.
//
// The idea is that that the width, height, and general 'identity' of the
// text is constant no matter where it is placed; the placements are a
// secondary property.
//
// Canvas maintains a cache of recently-used text info objects; getTextInfo
// either returns the cached element or creates a new entry.
//
// @param {string} layer A string of space-separated CSS classes uniquely
// identifying the layer containing this text.
// @param {string} text Text string to retrieve info for.
// @param {(string|object)=} font Either a string of space-separated CSS
// classes or a font-spec object, defining the text's font and style.
// @param {number=} angle Angle at which to rotate the text, in degrees.
// Angle is currently unused, it will be implemented in the future.
// @param {number=} width Maximum width of the text before it wraps.
// @return {object} a text info object.
Canvas.prototype.getTextInfo = function(layer, text, font, angle, width) {
var textStyle, layerCache, styleCache, info;
// Cast the value to a string, in case we were given a number or such
text = "" + text;
// If the font is a font-spec object, generate a CSS font definition
if (typeof font === "object") {
textStyle = font.style + " " + font.variant + " " + font.weight + " " + font.size + "px/" + font.lineHeight + "px " + font.family;
} else {
textStyle = font;
}
// Retrieve (or create) the cache for the text's layer and styles
layerCache = this._textCache[layer];
if (layerCache == null) {
layerCache = this._textCache[layer] = {};
}
styleCache = layerCache[textStyle];
if (styleCache == null) {
styleCache = layerCache[textStyle] = {};
}
info = styleCache[text];
// If we can't find a matching element in our cache, create a new one
if (info == null) {
var element = $("
").html(text)
.css({
position: "absolute",
'max-width': width,
top: -9999
})
.appendTo(this.getTextLayer(layer));
if (typeof font === "object") {
element.css({
font: textStyle,
color: font.color
});
} else if (typeof font === "string") {
element.addClass(font);
}
info = styleCache[text] = {
width: element.outerWidth(true),
height: element.outerHeight(true),
element: element,
positions: []
};
element.detach();
}
return info;
};
// Adds a text string to the canvas text overlay.
//
// The text isn't drawn immediately; it is marked as rendering, which will
// result in its addition to the canvas on the next render pass.
//
// @param {string} layer A string of space-separated CSS classes uniquely
// identifying the layer containing this text.
// @param {number} x X coordinate at which to draw the text.
// @param {number} y Y coordinate at which to draw the text.
// @param {string} text Text string to draw.
// @param {(string|object)=} font Either a string of space-separated CSS
// classes or a font-spec object, defining the text's font and style.
// @param {number=} angle Angle at which to rotate the text, in degrees.
// Angle is currently unused, it will be implemented in the future.
// @param {number=} width Maximum width of the text before it wraps.
// @param {string=} halign Horizontal alignment of the text; either "left",
// "center" or "right".
// @param {string=} valign Vertical alignment of the text; either "top",
// "middle" or "bottom".
Canvas.prototype.addText = function(layer, x, y, text, font, angle, width, halign, valign) {
var info = this.getTextInfo(layer, text, font, angle, width),
positions = info.positions;
// Tweak the div's position to match the text's alignment
if (halign == "center") {
x -= info.width / 2;
} else if (halign == "right") {
x -= info.width;
}
if (valign == "middle") {
y -= info.height / 2;
} else if (valign == "bottom") {
y -= info.height;
}
// Determine whether this text already exists at this position.
// If so, mark it for inclusion in the next render pass.
for (var i = 0, position; position = positions[i]; i++) {
if (position.x == x && position.y == y) {
position.active = true;
return;
}
}
// If the text doesn't exist at this position, create a new entry
// For the very first position we'll re-use the original element,
// while for subsequent ones we'll clone it.
position = {
active: true,
rendered: false,
element: positions.length ? info.element.clone() : info.element,
x: x,
y: y
};
positions.push(position);
// Move the element to its final position within the container
position.element.css({
top: Math.round(y),
left: Math.round(x),
'text-align': halign // In case the text wraps
});
};
// Removes one or more text strings from the canvas text overlay.
//
// If no parameters are given, all text within the layer is removed.
//
// Note that the text is not immediately removed; it is simply marked as
// inactive, which will result in its removal on the next render pass.
// This avoids the performance penalty for 'clear and redraw' behavior,
// where we potentially get rid of all text on a layer, but will likely
// add back most or all of it later, as when redrawing axes, for example.
//
// @param {string} layer A string of space-separated CSS classes uniquely
// identifying the layer containing this text.
// @param {number=} x X coordinate of the text.
// @param {number=} y Y coordinate of the text.
// @param {string=} text Text string to remove.
// @param {(string|object)=} font Either a string of space-separated CSS
// classes or a font-spec object, defining the text's font and style.
// @param {number=} angle Angle at which the text is rotated, in degrees.
// Angle is currently unused, it will be implemented in the future.
Canvas.prototype.removeText = function(layer, x, y, text, font, angle) {
if (text == null) {
var layerCache = this._textCache[layer];
if (layerCache != null) {
for (var styleKey in layerCache) {
if (hasOwnProperty.call(layerCache, styleKey)) {
var styleCache = layerCache[styleKey];
for (var key in styleCache) {
if (hasOwnProperty.call(styleCache, key)) {
var positions = styleCache[key].positions;
for (var i = 0, position; position = positions[i]; i++) {
position.active = false;
}
}
}
}
}
}
} else {
var positions = this.getTextInfo(layer, text, font, angle).positions;
for (var i = 0, position; position = positions[i]; i++) {
if (position.x == x && position.y == y) {
position.active = false;
}
}
}
};
///////////////////////////////////////////////////////////////////////////
// The top-level container for the entire plot.
function Plot(placeholder, data_, options_, plugins) {
// data is on the form:
// [ series1, series2 ... ]
// where series is either just the data as [ [x1, y1], [x2, y2], ... ]
// or { data: [ [x1, y1], [x2, y2], ... ], label: "some label", ... }
var series = [],
options = {
// the color theme used for graphs
colors: ["#488c13", "#1b55c0", "#da4b0f", "#e9b104", "#ae3c0c"],
legend: {
show: true,
noColumns: 1, // number of colums in legend table
labelFormatter: null, // fn: string -> string
labelBoxBorderColor: "#ccc", // border color for the little label boxes
container: null, // container (as jQuery object) to put legend in, null means default on top of graph
position: "ne", // position of default legend container within plot
margin: 5, // distance from grid edge to default legend container within plot
backgroundColor: null, // null means auto-detect
backgroundOpacity: 0.85, // set to 0 to avoid background
sorted: null // default to no legend sorting
},
xaxis: {
show: null, // null = auto-detect, true = always, false = never
position: "bottom", // or "top"
mode: null, // null or "time"
font: null, // null (derived from CSS in placeholder) or object like { size: 11, lineHeight: 13, style: "italic", weight: "bold", family: "sans-serif", variant: "small-caps" }
color: null, // base color, labels, ticks
tickColor: null, // possibly different color of ticks, e.g. "rgba(0,0,0,0.15)"
transform: null, // null or f: number -> number to transform axis
inverseTransform: null, // if transform is set, this should be the inverse function
min: null, // min. value to show, null means set automatically
max: null, // max. value to show, null means set automatically
autoscaleMargin: null, // margin in % to add if auto-setting min/max
ticks: null, // either [1, 3] or [[1, "a"], 3] or (fn: axis info -> ticks) or app. number of ticks for auto-ticks
tickFormatter: null, // fn: number -> string
labelWidth: null, // size of tick labels in pixels
labelHeight: null,
reserveSpace: null, // whether to reserve space even if axis isn't shown
tickLength: null, // size in pixels of ticks, or "full" for whole line
alignTicksWithAxis: null, // axis number or null for no sync
tickDecimals: null, // no. of decimals, null means auto
tickSize: null, // number or [number, "unit"]
minTickSize: null // number or [number, "unit"]
},
yaxis: {
autoscaleMargin: 0.02,
position: "left" // or "right"
},
xaxes: [],
yaxes: [],
series: {
points: {
show: false,
radius: 3,
lineWidth: 2, // in pixels
fill: true,
fillColor: "#ffffff",
symbol: "circle" // or callback
},
lines: {
// we don't put in show: false so we can see
// whether lines were actively disabled
lineWidth: 2, // in pixels
fill: false,
fillColor: null,
steps: false
// Omit 'zero', so we can later default its value to
// match that of the 'fill' option.
},
bars: {
show: false,
lineWidth: 2, // in pixels
barWidth: 1, // in units of the x axis
fill: true,
fillColor: null,
align: "left", // "left", "right", or "center"
horizontal: false,
zero: true
},
shadowSize: 3,
highlightColor: null
},
grid: {
show: true,
aboveData: false,
color: "#545454", // primary color used for outline and labels
backgroundColor: null, // null for transparent, else color
borderColor: null, // set if different from the grid color
tickColor: null, // color for the ticks, e.g. "rgba(0,0,0,0.15)"
margin: 0, // distance from the canvas edge to the grid
labelMargin: 5, // in pixels
axisMargin: 8, // in pixels
borderWidth: 2, // in pixels
minBorderMargin: null, // in pixels, null means taken from points radius
markings: null, // array of ranges or fn: axes -> array of ranges
markingsColor: "#f4f4f4",
markingsLineWidth: 2,
// interactive stuff
clickable: false,
hoverable: false,
autoHighlight: true, // highlight in case mouse is near
mouseActiveRadius: 10 // how far the mouse can be away to activate an item
},
interaction: {
redrawOverlayInterval: 1000/60 // time between updates, -1 means in same flow
},
hooks: {}
},
surface = null, // the canvas for the plot itself
overlay = null, // canvas for interactive stuff on top of plot
eventHolder = null, // jQuery object that events should be bound to
ctx = null, octx = null,
xaxes = [], yaxes = [],
plotOffset = { left: 0, right: 0, top: 0, bottom: 0},
plotWidth = 0, plotHeight = 0,
hooks = {
processOptions: [],
processRawData: [],
processDatapoints: [],
processOffset: [],
drawBackground: [],
drawSeries: [],
draw: [],
bindEvents: [],
drawOverlay: [],
shutdown: []
},
plot = this;
// public functions
plot.setData = setData;
plot.setupGrid = setupGrid;
plot.draw = draw;
plot.getPlaceholder = function() { return placeholder; };
plot.getCanvas = function() { return surface.element; };
plot.getPlotOffset = function() { return plotOffset; };
plot.width = function () { return plotWidth; };
plot.height = function () { return plotHeight; };
plot.offset = function () {
var o = eventHolder.offset();
o.left += plotOffset.left;
o.top += plotOffset.top;
return o;
};
plot.getData = function () { return series; };
plot.getAxes = function () {
var res = {}, i;
$.each(xaxes.concat(yaxes), function (_, axis) {
if (axis)
res[axis.direction + (axis.n != 1 ? axis.n : "") + "axis"] = axis;
});
return res;
};
plot.getXAxes = function () { return xaxes; };
plot.getYAxes = function () { return yaxes; };
plot.c2p = canvasToAxisCoords;
plot.p2c = axisToCanvasCoords;
plot.getOptions = function () { return options; };
plot.highlight = highlight;
plot.unhighlight = unhighlight;
plot.triggerRedrawOverlay = triggerRedrawOverlay;
plot.pointOffset = function(point) {
return {
left: parseInt(xaxes[axisNumber(point, "x") - 1].p2c(+point.x) + plotOffset.left, 10),
top: parseInt(yaxes[axisNumber(point, "y") - 1].p2c(+point.y) + plotOffset.top, 10)
};
};
plot.shutdown = shutdown;
plot.destroy = function () {
shutdown();
placeholder.removeData("plot").empty();
series = [];
options = null;
surface = null;
overlay = null;
eventHolder = null;
ctx = null;
octx = null;
xaxes = [];
yaxes = [];
hooks = null;
highlights = [];
plot = null;
};
plot.resize = function () {
var width = placeholder.width(),
height = placeholder.height();
surface.resize(width, height);
overlay.resize(width, height);
};
// public attributes
plot.hooks = hooks;
// initialize
initPlugins(plot);
parseOptions(options_);
setupCanvases();
setData(data_);
setupGrid();
draw();
bindEvents();
function executeHooks(hook, args) {
args = [plot].concat(args);
for (var i = 0; i < hook.length; ++i)
hook[i].apply(this, args);
}
function initPlugins() {
// References to key classes, allowing plugins to modify them
var classes = {
Canvas: Canvas
};
for (var i = 0; i < plugins.length; ++i) {
var p = plugins[i];
p.init(plot, classes);
if (p.options)
$.extend(true, options, p.options);
}
}
function parseOptions(opts) {
$.extend(true, options, opts);
// $.extend merges arrays, rather than replacing them. When less
// colors are provided than the size of the default palette, we
// end up with those colors plus the remaining defaults, which is
// not expected behavior; avoid it by replacing them here.
if (opts && opts.colors) {
options.colors = opts.colors;
}
if (options.xaxis.color == null)
options.xaxis.color = $.color.parse(options.grid.color).scale('a', 0.22).toString();
if (options.yaxis.color == null)
options.yaxis.color = $.color.parse(options.grid.color).scale('a', 0.22).toString();
if (options.xaxis.tickColor == null) // grid.tickColor for back-compatibility
options.xaxis.tickColor = options.grid.tickColor || options.xaxis.color;
if (options.yaxis.tickColor == null) // grid.tickColor for back-compatibility
options.yaxis.tickColor = options.grid.tickColor || options.yaxis.color;
if (options.grid.borderColor == null)
options.grid.borderColor = options.grid.color;
if (options.grid.tickColor == null)
options.grid.tickColor = $.color.parse(options.grid.color).scale('a', 0.22).toString();
// Fill in defaults for axis options, including any unspecified
// font-spec fields, if a font-spec was provided.
// If no x/y axis options were provided, create one of each anyway,
// since the rest of the code assumes that they exist.
var i, axisOptions, axisCount,
fontSize = placeholder.css("font-size"),
fontSizeDefault = fontSize ? +fontSize.replace("px", "") : 13,
fontDefaults = {
style: placeholder.css("font-style"),
size: Math.round(0.8 * fontSizeDefault),
variant: placeholder.css("font-variant"),
weight: placeholder.css("font-weight"),
family: placeholder.css("font-family")
};
axisCount = options.xaxes.length || 1;
for (i = 0; i < axisCount; ++i) {
axisOptions = options.xaxes[i];
if (axisOptions && !axisOptions.tickColor) {
axisOptions.tickColor = axisOptions.color;
}
axisOptions = $.extend(true, {}, options.xaxis, axisOptions);
options.xaxes[i] = axisOptions;
if (axisOptions.font) {
axisOptions.font = $.extend({}, fontDefaults, axisOptions.font);
if (!axisOptions.font.color) {
axisOptions.font.color = axisOptions.color;
}
if (!axisOptions.font.lineHeight) {
axisOptions.font.lineHeight = Math.round(axisOptions.font.size * 1.15);
}
}
}
axisCount = options.yaxes.length || 1;
for (i = 0; i < axisCount; ++i) {
axisOptions = options.yaxes[i];
if (axisOptions && !axisOptions.tickColor) {
axisOptions.tickColor = axisOptions.color;
}
axisOptions = $.extend(true, {}, options.yaxis, axisOptions);
options.yaxes[i] = axisOptions;
if (axisOptions.font) {
axisOptions.font = $.extend({}, fontDefaults, axisOptions.font);
if (!axisOptions.font.color) {
axisOptions.font.color = axisOptions.color;
}
if (!axisOptions.font.lineHeight) {
axisOptions.font.lineHeight = Math.round(axisOptions.font.size * 1.15);
}
}
}
// backwards compatibility, to be removed in future
if (options.xaxis.noTicks && options.xaxis.ticks == null)
options.xaxis.ticks = options.xaxis.noTicks;
if (options.yaxis.noTicks && options.yaxis.ticks == null)
options.yaxis.ticks = options.yaxis.noTicks;
if (options.x2axis) {
options.xaxes[1] = $.extend(true, {}, options.xaxis, options.x2axis);
options.xaxes[1].position = "top";
// Override the inherit to allow the axis to auto-scale
if (options.x2axis.min == null) {
options.xaxes[1].min = null;
}
if (options.x2axis.max == null) {
options.xaxes[1].max = null;
}
}
if (options.y2axis) {
options.yaxes[1] = $.extend(true, {}, options.yaxis, options.y2axis);
options.yaxes[1].position = "right";
// Override the inherit to allow the axis to auto-scale
if (options.y2axis.min == null) {
options.yaxes[1].min = null;
}
if (options.y2axis.max == null) {
options.yaxes[1].max = null;
}
}
if (options.grid.coloredAreas)
options.grid.markings = options.grid.coloredAreas;
if (options.grid.coloredAreasColor)
options.grid.markingsColor = options.grid.coloredAreasColor;
if (options.lines)
$.extend(true, options.series.lines, options.lines);
if (options.points)
$.extend(true, options.series.points, options.points);
if (options.bars)
$.extend(true, options.series.bars, options.bars);
if (options.shadowSize != null)
options.series.shadowSize = options.shadowSize;
if (options.highlightColor != null)
options.series.highlightColor = options.highlightColor;
// save options on axes for future reference
for (i = 0; i < options.xaxes.length; ++i)
getOrCreateAxis(xaxes, i + 1).options = options.xaxes[i];
for (i = 0; i < options.yaxes.length; ++i)
getOrCreateAxis(yaxes, i + 1).options = options.yaxes[i];
// add hooks from options
for (var n in hooks)
if (options.hooks[n] && options.hooks[n].length)
hooks[n] = hooks[n].concat(options.hooks[n]);
executeHooks(hooks.processOptions, [options]);
}
function setData(d) {
series = parseData(d);
fillInSeriesOptions();
processData();
}
function parseData(d) {
var res = [];
for (var i = 0; i < d.length; ++i) {
var s = $.extend(true, {}, options.series);
if (d[i].data != null) {
s.data = d[i].data; // move the data instead of deep-copy
delete d[i].data;
$.extend(true, s, d[i]);
d[i].data = s.data;
}
else
s.data = d[i];
res.push(s);
}
return res;
}
function axisNumber(obj, coord) {
var a = obj[coord + "axis"];
if (typeof a == "object") // if we got a real axis, extract number
a = a.n;
if (typeof a != "number")
a = 1; // default to first axis
return a;
}
function allAxes() {
// return flat array without annoying null entries
return $.grep(xaxes.concat(yaxes), function (a) { return a; });
}
function canvasToAxisCoords(pos) {
// return an object with x/y corresponding to all used axes
var res = {}, i, axis;
for (i = 0; i < xaxes.length; ++i) {
axis = xaxes[i];
if (axis && axis.used)
res["x" + axis.n] = axis.c2p(pos.left);
}
for (i = 0; i < yaxes.length; ++i) {
axis = yaxes[i];
if (axis && axis.used)
res["y" + axis.n] = axis.c2p(pos.top);
}
if (res.x1 !== undefined)
res.x = res.x1;
if (res.y1 !== undefined)
res.y = res.y1;
return res;
}
function axisToCanvasCoords(pos) {
// get canvas coords from the first pair of x/y found in pos
var res = {}, i, axis, key;
for (i = 0; i < xaxes.length; ++i) {
axis = xaxes[i];
if (axis && axis.used) {
key = "x" + axis.n;
if (pos[key] == null && axis.n == 1)
key = "x";
if (pos[key] != null) {
res.left = axis.p2c(pos[key]);
break;
}
}
}
for (i = 0; i < yaxes.length; ++i) {
axis = yaxes[i];
if (axis && axis.used) {
key = "y" + axis.n;
if (pos[key] == null && axis.n == 1)
key = "y";
if (pos[key] != null) {
res.top = axis.p2c(pos[key]);
break;
}
}
}
return res;
}
function getOrCreateAxis(axes, number) {
if (!axes[number - 1])
axes[number - 1] = {
n: number, // save the number for future reference
direction: axes == xaxes ? "x" : "y",
options: $.extend(true, {}, axes == xaxes ? options.xaxis : options.yaxis)
};
return axes[number - 1];
}
function fillInSeriesOptions() {
var neededColors = series.length, maxIndex = -1, i;
// Subtract the number of series that already have fixed colors or
// color indexes from the number that we still need to generate.
for (i = 0; i < series.length; ++i) {
var sc = series[i].color;
if (sc != null) {
neededColors--;
if (typeof sc == "number" && sc > maxIndex) {
maxIndex = sc;
}
}
}
// If any of the series have fixed color indexes, then we need to
// generate at least as many colors as the highest index.
if (neededColors <= maxIndex) {
neededColors = maxIndex + 1;
}
// Generate all the colors, using first the option colors and then
// variations on those colors once they're exhausted.
var c, colors = [], colorPool = options.colors,
colorPoolSize = colorPool.length, variation = 0;
for (i = 0; i < neededColors; i++) {
c = $.color.parse(colorPool[i % colorPoolSize] || "#666");
// Each time we exhaust the colors in the pool we adjust
// a scaling factor used to produce more variations on
// those colors. The factor alternates negative/positive
// to produce lighter/darker colors.
// Reset the variation after every few cycles, or else
// it will end up producing only white or black colors.
if (i % colorPoolSize == 0 && i) {
if (variation >= 0) {
if (variation < 0.5) {
variation = -variation - 0.2;
} else variation = 0;
} else variation = -variation;
}
colors[i] = c.scale('rgb', 1 + variation);
}
// Finalize the series options, filling in their colors
var colori = 0, s;
for (i = 0; i < series.length; ++i) {
s = series[i];
// assign colors
if (s.color == null) {
s.color = colors[colori].toString();
++colori;
}
else if (typeof s.color == "number")
s.color = colors[s.color].toString();
// turn on lines automatically in case nothing is set
if (s.lines.show == null) {
var v, show = true;
for (v in s)
if (s[v] && s[v].show) {
show = false;
break;
}
if (show)
s.lines.show = true;
}
// If nothing was provided for lines.zero, default it to match
// lines.fill, since areas by default should extend to zero.
if (s.lines.zero == null) {
s.lines.zero = !!s.lines.fill;
}
// setup axes
s.xaxis = getOrCreateAxis(xaxes, axisNumber(s, "x"));
s.yaxis = getOrCreateAxis(yaxes, axisNumber(s, "y"));
}
}
function processData() {
var topSentry = Number.POSITIVE_INFINITY,
bottomSentry = Number.NEGATIVE_INFINITY,
fakeInfinity = Number.MAX_VALUE,
i, j, k, m, length,
s, points, ps, x, y, axis, val, f, p,
data, format;
function updateAxis(axis, min, max) {
if (min < axis.datamin && min != -fakeInfinity)
axis.datamin = min;
if (max > axis.datamax && max != fakeInfinity)
axis.datamax = max;
}
$.each(allAxes(), function (_, axis) {
// init axis
axis.datamin = topSentry;
axis.datamax = bottomSentry;
axis.used = false;
});
for (i = 0; i < series.length; ++i) {
s = series[i];
s.datapoints = { points: [] };
executeHooks(hooks.processRawData, [ s, s.data, s.datapoints ]);
}
// first pass: clean and copy data
for (i = 0; i < series.length; ++i) {
s = series[i];
data = s.data;
format = s.datapoints.format;
if (!format) {
format = [];
// find out how to copy
format.push({ x: true, number: true, required: true });
format.push({ y: true, number: true, required: true });
if (s.bars.show || (s.lines.show && s.lines.fill)) {
var autoscale = !!((s.bars.show && s.bars.zero) || (s.lines.show && s.lines.zero));
format.push({ y: true, number: true, required: false, defaultValue: 0, autoscale: autoscale });
if (s.bars.horizontal) {
delete format[format.length - 1].y;
format[format.length - 1].x = true;
}
}
s.datapoints.format = format;
}
if (s.datapoints.pointsize != null)
continue; // already filled in
s.datapoints.pointsize = format.length;
ps = s.datapoints.pointsize;
points = s.datapoints.points;
var insertSteps = s.lines.show && s.lines.steps;
s.xaxis.used = s.yaxis.used = true;
for (j = k = 0; j < data.length; ++j, k += ps) {
p = data[j];
var nullify = p == null;
if (!nullify) {
for (m = 0; m < ps; ++m) {
val = p[m];
f = format[m];
if (f) {
if (f.number && val != null) {
val = +val; // convert to number
if (isNaN(val))
val = null;
else if (val == Infinity)
val = fakeInfinity;
else if (val == -Infinity)
val = -fakeInfinity;
}
if (val == null) {
if (f.required)
nullify = true;
if (f.defaultValue != null)
val = f.defaultValue;
}
}
points[k + m] = val;
}
}
if (nullify) {
for (m = 0; m < ps; ++m) {
val = points[k + m];
if (val != null) {
f = format[m];
// extract min/max info
if (f.autoscale !== false) {
if (f.x) {
updateAxis(s.xaxis, val, val);
}
if (f.y) {
updateAxis(s.yaxis, val, val);
}
}
}
points[k + m] = null;
}
}
else {
// a little bit of line specific stuff that
// perhaps shouldn't be here, but lacking
// better means...
if (insertSteps && k > 0
&& points[k - ps] != null
&& points[k - ps] != points[k]
&& points[k - ps + 1] != points[k + 1]) {
// copy the point to make room for a middle point
for (m = 0; m < ps; ++m)
points[k + ps + m] = points[k + m];
// middle point has same y
points[k + 1] = points[k - ps + 1];
// we've added a point, better reflect that
k += ps;
}
}
}
}
// give the hooks a chance to run
for (i = 0; i < series.length; ++i) {
s = series[i];
executeHooks(hooks.processDatapoints, [ s, s.datapoints]);
}
// second pass: find datamax/datamin for auto-scaling
for (i = 0; i < series.length; ++i) {
s = series[i];
points = s.datapoints.points;
ps = s.datapoints.pointsize;
format = s.datapoints.format;
var xmin = topSentry, ymin = topSentry,
xmax = bottomSentry, ymax = bottomSentry;
for (j = 0; j < points.length; j += ps) {
if (points[j] == null)
continue;
for (m = 0; m < ps; ++m) {
val = points[j + m];
f = format[m];
if (!f || f.autoscale === false || val == fakeInfinity || val == -fakeInfinity)
continue;
if (f.x) {
if (val < xmin)
xmin = val;
if (val > xmax)
xmax = val;
}
if (f.y) {
if (val < ymin)
ymin = val;
if (val > ymax)
ymax = val;
}
}
}
if (s.bars.show) {
// make sure we got room for the bar on the dancing floor
var delta;
switch (s.bars.align) {
case "left":
delta = 0;
break;
case "right":
delta = -s.bars.barWidth;
break;
default:
delta = -s.bars.barWidth / 2;
}
if (s.bars.horizontal) {
ymin += delta;
ymax += delta + s.bars.barWidth;
}
else {
xmin += delta;
xmax += delta + s.bars.barWidth;
}
}
updateAxis(s.xaxis, xmin, xmax);
updateAxis(s.yaxis, ymin, ymax);
}
$.each(allAxes(), function (_, axis) {
if (axis.datamin == topSentry)
axis.datamin = null;
if (axis.datamax == bottomSentry)
axis.datamax = null;
});
}
function setupCanvases() {
// Make sure the placeholder is clear of everything except canvases
// from a previous plot in this container that we'll try to re-use.
placeholder.css("padding", 0) // padding messes up the positioning
.children().filter(function(){
return !$(this).hasClass("flot-overlay") && !$(this).hasClass('flot-base');
}).remove();
if (placeholder.css("position") == 'static')
placeholder.css("position", "relative"); // for positioning labels and overlay
surface = new Canvas("flot-base", placeholder);
overlay = new Canvas("flot-overlay", placeholder); // overlay canvas for interactive features
ctx = surface.context;
octx = overlay.context;
// define which element we're listening for events on
eventHolder = $(overlay.element).unbind();
// If we're re-using a plot object, shut down the old one
var existing = placeholder.data("plot");
if (existing) {
existing.shutdown();
overlay.clear();
}
// save in case we get replotted
placeholder.data("plot", plot);
}
function bindEvents() {
// bind events
if (options.grid.hoverable) {
eventHolder.mousemove(onMouseMove);
// Use bind, rather than .mouseleave, because we officially
// still support jQuery 1.2.6, which doesn't define a shortcut
// for mouseenter or mouseleave. This was a bug/oversight that
// was fixed somewhere around 1.3.x. We can return to using
// .mouseleave when we drop support for 1.2.6.
eventHolder.bind("mouseleave", onMouseLeave);
}
if (options.grid.clickable)
eventHolder.click(onClick);
executeHooks(hooks.bindEvents, [eventHolder]);
}
function shutdown() {
if (redrawTimeout)
clearTimeout(redrawTimeout);
eventHolder.unbind("mousemove", onMouseMove);
eventHolder.unbind("mouseleave", onMouseLeave);
eventHolder.unbind("click", onClick);
executeHooks(hooks.shutdown, [eventHolder]);
}
function setTransformationHelpers(axis) {
// set helper functions on the axis, assumes plot area
// has been computed already
function identity(x) { return x; }
var s, m, t = axis.options.transform || identity,
it = axis.options.inverseTransform;
// precompute how much the axis is scaling a point
// in canvas space
if (axis.direction == "x") {
s = axis.scale = plotWidth / Math.abs(t(axis.max) - t(axis.min));
m = Math.min(t(axis.max), t(axis.min));
}
else {
s = axis.scale = plotHeight / Math.abs(t(axis.max) - t(axis.min));
s = -s;
m = Math.max(t(axis.max), t(axis.min));
}
// data point to canvas coordinate
if (t == identity) // slight optimization
axis.p2c = function (p) { return (p - m) * s; };
else
axis.p2c = function (p) { return (t(p) - m) * s; };
// canvas coordinate to data point
if (!it)
axis.c2p = function (c) { return m + c / s; };
else
axis.c2p = function (c) { return it(m + c / s); };
}
function measureTickLabels(axis) {
var opts = axis.options,
ticks = axis.ticks || [],
labelWidth = opts.labelWidth || 0,
labelHeight = opts.labelHeight || 0,
maxWidth = labelWidth || (axis.direction == "x" ? Math.floor(surface.width / (ticks.length || 1)) : null),
legacyStyles = axis.direction + "Axis " + axis.direction + axis.n + "Axis",
layer = "flot-" + axis.direction + "-axis flot-" + axis.direction + axis.n + "-axis " + legacyStyles,
font = opts.font || "flot-tick-label tickLabel";
for (var i = 0; i < ticks.length; ++i) {
var t = ticks[i];
if (!t.label)
continue;
var info = surface.getTextInfo(layer, t.label, font, null, maxWidth);
labelWidth = Math.max(labelWidth, info.width);
labelHeight = Math.max(labelHeight, info.height);
}
axis.labelWidth = opts.labelWidth || labelWidth;
axis.labelHeight = opts.labelHeight || labelHeight;
}
function allocateAxisBoxFirstPhase(axis) {
// find the bounding box of the axis by looking at label
// widths/heights and ticks, make room by diminishing the
// plotOffset; this first phase only looks at one
// dimension per axis, the other dimension depends on the
// other axes so will have to wait
var lw = axis.labelWidth,
lh = axis.labelHeight,
pos = axis.options.position,
isXAxis = axis.direction === "x",
tickLength = axis.options.tickLength,
axisMargin = options.grid.axisMargin,
padding = options.grid.labelMargin,
innermost = true,
outermost = true,
first = true,
found = false;
// Determine the axis's position in its direction and on its side
$.each(isXAxis ? xaxes : yaxes, function(i, a) {
if (a && (a.show || a.reserveSpace)) {
if (a === axis) {
found = true;
} else if (a.options.position === pos) {
if (found) {
outermost = false;
} else {
innermost = false;
}
}
if (!found) {
first = false;
}
}
});
// The outermost axis on each side has no margin
if (outermost) {
axisMargin = 0;
}
// The ticks for the first axis in each direction stretch across
if (tickLength == null) {
tickLength = first ? "full" : 5;
}
if (!isNaN(+tickLength))
padding += +tickLength;
if (isXAxis) {
lh += padding;
if (pos == "bottom") {
plotOffset.bottom += lh + axisMargin;
axis.box = { top: surface.height - plotOffset.bottom, height: lh };
}
else {
axis.box = { top: plotOffset.top + axisMargin, height: lh };
plotOffset.top += lh + axisMargin;
}
}
else {
lw += padding;
if (pos == "left") {
axis.box = { left: plotOffset.left + axisMargin, width: lw };
plotOffset.left += lw + axisMargin;
}
else {
plotOffset.right += lw + axisMargin;
axis.box = { left: surface.width - plotOffset.right, width: lw };
}
}
// save for future reference
axis.position = pos;
axis.tickLength = tickLength;
axis.box.padding = padding;
axis.innermost = innermost;
}
function allocateAxisBoxSecondPhase(axis) {
// now that all axis boxes have been placed in one
// dimension, we can set the remaining dimension coordinates
if (axis.direction == "x") {
axis.box.left = plotOffset.left - axis.labelWidth / 2;
axis.box.width = surface.width - plotOffset.left - plotOffset.right + axis.labelWidth;
}
else {
axis.box.top = plotOffset.top - axis.labelHeight / 2;
axis.box.height = surface.height - plotOffset.bottom - plotOffset.top + axis.labelHeight;
}
}
function adjustLayoutForThingsStickingOut() {
// possibly adjust plot offset to ensure everything stays
// inside the canvas and isn't clipped off
var minMargin = options.grid.minBorderMargin,
axis, i;
// check stuff from the plot (FIXME: this should just read
// a value from the series, otherwise it's impossible to
// customize)
if (minMargin == null) {
minMargin = 0;
for (i = 0; i < series.length; ++i)
minMargin = Math.max(minMargin, 2 * (series[i].points.radius + series[i].points.lineWidth/2));
}
var margins = {
left: minMargin,
right: minMargin,
top: minMargin,
bottom: minMargin
};
// check axis labels, note we don't check the actual
// labels but instead use the overall width/height to not
// jump as much around with replots
$.each(allAxes(), function (_, axis) {
if (axis.reserveSpace && axis.ticks && axis.ticks.length) {
if (axis.direction === "x") {
margins.left = Math.max(margins.left, axis.labelWidth / 2);
margins.right = Math.max(margins.right, axis.labelWidth / 2);
} else {
margins.bottom = Math.max(margins.bottom, axis.labelHeight / 2);
margins.top = Math.max(margins.top, axis.labelHeight / 2);
}
}
});
plotOffset.left = Math.ceil(Math.max(margins.left, plotOffset.left));
plotOffset.right = Math.ceil(Math.max(margins.right, plotOffset.right));
plotOffset.top = Math.ceil(Math.max(margins.top, plotOffset.top));
plotOffset.bottom = Math.ceil(Math.max(margins.bottom, plotOffset.bottom));
}
function setupGrid() {
var i, axes = allAxes(), showGrid = options.grid.show;
// Initialize the plot's offset from the edge of the canvas
for (var a in plotOffset) {
var margin = options.grid.margin || 0;
plotOffset[a] = typeof margin == "number" ? margin : margin[a] || 0;
}
executeHooks(hooks.processOffset, [plotOffset]);
// If the grid is visible, add its border width to the offset
for (var a in plotOffset) {
if(typeof(options.grid.borderWidth) == "object") {
plotOffset[a] += showGrid ? options.grid.borderWidth[a] : 0;
}
else {
plotOffset[a] += showGrid ? options.grid.borderWidth : 0;
}
}
$.each(axes, function (_, axis) {
var axisOpts = axis.options;
axis.show = axisOpts.show == null ? axis.used : axisOpts.show;
axis.reserveSpace = axisOpts.reserveSpace == null ? axis.show : axisOpts.reserveSpace;
setRange(axis);
});
if (showGrid) {
var allocatedAxes = $.grep(axes, function (axis) {
return axis.show || axis.reserveSpace;
});
$.each(allocatedAxes, function (_, axis) {
// make the ticks
setupTickGeneration(axis);
setTicks(axis);
snapRangeToTicks(axis, axis.ticks);
// find labelWidth/Height for axis
measureTickLabels(axis);
});
// with all dimensions calculated, we can compute the
// axis bounding boxes, start from the outside
// (reverse order)
for (i = allocatedAxes.length - 1; i >= 0; --i)
allocateAxisBoxFirstPhase(allocatedAxes[i]);
// make sure we've got enough space for things that
// might stick out
adjustLayoutForThingsStickingOut();
$.each(allocatedAxes, function (_, axis) {
allocateAxisBoxSecondPhase(axis);
});
}
plotWidth = surface.width - plotOffset.left - plotOffset.right;
plotHeight = surface.height - plotOffset.bottom - plotOffset.top;
// now we got the proper plot dimensions, we can compute the scaling
$.each(axes, function (_, axis) {
setTransformationHelpers(axis);
});
if (showGrid) {
drawAxisLabels();
}
insertLegend();
}
function setRange(axis) {
var opts = axis.options,
min = +(opts.min != null ? opts.min : axis.datamin),
max = +(opts.max != null ? opts.max : axis.datamax),
delta = max - min;
if (delta == 0.0) {
// degenerate case
var widen = max == 0 ? 1 : 0.01;
if (opts.min == null)
min -= widen;
// always widen max if we couldn't widen min to ensure we
// don't fall into min == max which doesn't work
if (opts.max == null || opts.min != null)
max += widen;
}
else {
// consider autoscaling
var margin = opts.autoscaleMargin;
if (margin != null) {
if (opts.min == null) {
min -= delta * margin;
// make sure we don't go below zero if all values
// are positive
if (min < 0 && axis.datamin != null && axis.datamin >= 0)
min = 0;
}
if (opts.max == null) {
max += delta * margin;
if (max > 0 && axis.datamax != null && axis.datamax <= 0)
max = 0;
}
}
}
axis.min = min;
axis.max = max;
}
function setupTickGeneration(axis) {
var opts = axis.options;
// estimate number of ticks
var noTicks;
if (typeof opts.ticks == "number" && opts.ticks > 0)
noTicks = opts.ticks;
else
// heuristic based on the model a*sqrt(x) fitted to
// some data points that seemed reasonable
noTicks = 0.3 * Math.sqrt(axis.direction == "x" ? surface.width : surface.height);
var delta = (axis.max - axis.min) / noTicks,
dec = -Math.floor(Math.log(delta) / Math.LN10),
maxDec = opts.tickDecimals;
if (maxDec != null && dec > maxDec) {
dec = maxDec;
}
var magn = Math.pow(10, -dec),
norm = delta / magn, // norm is between 1.0 and 10.0
size;
if (norm < 1.5) {
size = 1;
} else if (norm < 3) {
size = 2;
// special case for 2.5, requires an extra decimal
if (norm > 2.25 && (maxDec == null || dec + 1 <= maxDec)) {
size = 2.5;
++dec;
}
} else if (norm < 7.5) {
size = 5;
} else {
size = 10;
}
size *= magn;
if (opts.minTickSize != null && size < opts.minTickSize) {
size = opts.minTickSize;
}
axis.delta = delta;
axis.tickDecimals = Math.max(0, maxDec != null ? maxDec : dec);
axis.tickSize = opts.tickSize || size;
// Time mode was moved to a plug-in in 0.8, and since so many people use it
// we'll add an especially friendly reminder to make sure they included it.
if (opts.mode == "time" && !axis.tickGenerator) {
throw new Error("Time mode requires the flot.time plugin.");
}
// Flot supports base-10 axes; any other mode else is handled by a plug-in,
// like flot.time.js.
if (!axis.tickGenerator) {
axis.tickGenerator = function (axis) {
var ticks = [],
start = floorInBase(axis.min, axis.tickSize),
i = 0,
v = Number.NaN,
prev;
do {
prev = v;
v = start + i * axis.tickSize;
ticks.push(v);
++i;
} while (v < axis.max && v != prev);
return ticks;
};
axis.tickFormatter = function (value, axis) {
var factor = axis.tickDecimals ? Math.pow(10, axis.tickDecimals) : 1;
var formatted = "" + Math.round(value * factor) / factor;
// If tickDecimals was specified, ensure that we have exactly that
// much precision; otherwise default to the value's own precision.
if (axis.tickDecimals != null) {
var decimal = formatted.indexOf(".");
var precision = decimal == -1 ? 0 : formatted.length - decimal - 1;
if (precision < axis.tickDecimals) {
return (precision ? formatted : formatted + ".") + ("" + factor).substr(1, axis.tickDecimals - precision);
}
}
return formatted;
};
}
if ($.isFunction(opts.tickFormatter))
axis.tickFormatter = function (v, axis) { return "" + opts.tickFormatter(v, axis); };
if (opts.alignTicksWithAxis != null) {
var otherAxis = (axis.direction == "x" ? xaxes : yaxes)[opts.alignTicksWithAxis - 1];
if (otherAxis && otherAxis.used && otherAxis != axis) {
// consider snapping min/max to outermost nice ticks
var niceTicks = axis.tickGenerator(axis);
if (niceTicks.length > 0) {
if (opts.min == null)
axis.min = Math.min(axis.min, niceTicks[0]);
if (opts.max == null && niceTicks.length > 1)
axis.max = Math.max(axis.max, niceTicks[niceTicks.length - 1]);
}
axis.tickGenerator = function (axis) {
// copy ticks, scaled to this axis
var ticks = [], v, i;
for (i = 0; i < otherAxis.ticks.length; ++i) {
v = (otherAxis.ticks[i].v - otherAxis.min) / (otherAxis.max - otherAxis.min);
v = axis.min + v * (axis.max - axis.min);
ticks.push(v);
}
return ticks;
};
// we might need an extra decimal since forced
// ticks don't necessarily fit naturally
if (!axis.mode && opts.tickDecimals == null) {
var extraDec = Math.max(0, -Math.floor(Math.log(axis.delta) / Math.LN10) + 1),
ts = axis.tickGenerator(axis);
// only proceed if the tick interval rounded
// with an extra decimal doesn't give us a
// zero at end
if (!(ts.length > 1 && /\..*0$/.test((ts[1] - ts[0]).toFixed(extraDec))))
axis.tickDecimals = extraDec;
}
}
}
}
function setTicks(axis) {
var oticks = axis.options.ticks, ticks = [];
if (oticks == null || (typeof oticks == "number" && oticks > 0))
ticks = axis.tickGenerator(axis);
else if (oticks) {
if ($.isFunction(oticks))
// generate the ticks
ticks = oticks(axis);
else
ticks = oticks;
}
// clean up/labelify the supplied ticks, copy them over
var i, v;
axis.ticks = [];
for (i = 0; i < ticks.length; ++i) {
var label = null;
var t = ticks[i];
if (typeof t == "object") {
v = +t[0];
if (t.length > 1)
label = t[1];
}
else
v = +t;
if (label == null)
label = axis.tickFormatter(v, axis);
if (!isNaN(v))
axis.ticks.push({ v: v, label: label });
}
}
function snapRangeToTicks(axis, ticks) {
if (axis.options.autoscaleMargin && ticks.length > 0) {
// snap to ticks
if (axis.options.min == null)
axis.min = Math.min(axis.min, ticks[0].v);
if (axis.options.max == null && ticks.length > 1)
axis.max = Math.max(axis.max, ticks[ticks.length - 1].v);
}
}
function draw() {
surface.clear();
executeHooks(hooks.drawBackground, [ctx]);
var grid = options.grid;
// draw background, if any
if (grid.show && grid.backgroundColor)
drawBackground();
if (grid.show && !grid.aboveData) {
drawGrid();
}
for (var i = 0; i < series.length; ++i) {
executeHooks(hooks.drawSeries, [ctx, series[i]]);
drawSeries(series[i]);
}
executeHooks(hooks.draw, [ctx]);
if (grid.show && grid.aboveData) {
drawGrid();
}
surface.render();
// A draw implies that either the axes or data have changed, so we
// should probably update the overlay highlights as well.
triggerRedrawOverlay();
}
function extractRange(ranges, coord) {
var axis, from, to, key, axes = allAxes();
for (var i = 0; i < axes.length; ++i) {
axis = axes[i];
if (axis.direction == coord) {
key = coord + axis.n + "axis";
if (!ranges[key] && axis.n == 1)
key = coord + "axis"; // support x1axis as xaxis
if (ranges[key]) {
from = ranges[key].from;
to = ranges[key].to;
break;
}
}
}
// backwards-compat stuff - to be removed in future
if (!ranges[key]) {
axis = coord == "x" ? xaxes[0] : yaxes[0];
from = ranges[coord + "1"];
to = ranges[coord + "2"];
}
// auto-reverse as an added bonus
if (from != null && to != null && from > to) {
var tmp = from;
from = to;
to = tmp;
}
return { from: from, to: to, axis: axis };
}
function drawBackground() {
ctx.save();
ctx.translate(plotOffset.left, plotOffset.top);
ctx.fillStyle = getColorOrGradient(options.grid.backgroundColor, plotHeight, 0, "rgba(255, 255, 255, 0)");
ctx.fillRect(0, 0, plotWidth, plotHeight);
ctx.restore();
}
function drawGrid() {
var i, axes, bw, bc;
ctx.save();
ctx.translate(plotOffset.left, plotOffset.top);
// draw markings
var markings = options.grid.markings;
if (markings) {
if ($.isFunction(markings)) {
axes = plot.getAxes();
// xmin etc. is backwards compatibility, to be
// removed in the future
axes.xmin = axes.xaxis.min;
axes.xmax = axes.xaxis.max;
axes.ymin = axes.yaxis.min;
axes.ymax = axes.yaxis.max;
markings = markings(axes);
}
for (i = 0; i < markings.length; ++i) {
var m = markings[i],
xrange = extractRange(m, "x"),
yrange = extractRange(m, "y");
// fill in missing
if (xrange.from == null)
xrange.from = xrange.axis.min;
if (xrange.to == null)
xrange.to = xrange.axis.max;
if (yrange.from == null)
yrange.from = yrange.axis.min;
if (yrange.to == null)
yrange.to = yrange.axis.max;
// clip
if (xrange.to < xrange.axis.min || xrange.from > xrange.axis.max ||
yrange.to < yrange.axis.min || yrange.from > yrange.axis.max)
continue;
xrange.from = Math.max(xrange.from, xrange.axis.min);
xrange.to = Math.min(xrange.to, xrange.axis.max);
yrange.from = Math.max(yrange.from, yrange.axis.min);
yrange.to = Math.min(yrange.to, yrange.axis.max);
var xequal = xrange.from === xrange.to,
yequal = yrange.from === yrange.to;
if (xequal && yequal) {
continue;
}
// then draw
xrange.from = Math.floor(xrange.axis.p2c(xrange.from));
xrange.to = Math.floor(xrange.axis.p2c(xrange.to));
yrange.from = Math.floor(yrange.axis.p2c(yrange.from));
yrange.to = Math.floor(yrange.axis.p2c(yrange.to));
if (xequal || yequal) {
var lineWidth = m.lineWidth || options.grid.markingsLineWidth,
subPixel = lineWidth % 2 ? 0.5 : 0;
ctx.beginPath();
ctx.strokeStyle = m.color || options.grid.markingsColor;
ctx.lineWidth = lineWidth;
if (xequal) {
ctx.moveTo(xrange.to + subPixel, yrange.from);
ctx.lineTo(xrange.to + subPixel, yrange.to);
} else {
ctx.moveTo(xrange.from, yrange.to + subPixel);
ctx.lineTo(xrange.to, yrange.to + subPixel);
}
ctx.stroke();
} else {
ctx.fillStyle = m.color || options.grid.markingsColor;
ctx.fillRect(xrange.from, yrange.to,
xrange.to - xrange.from,
yrange.from - yrange.to);
}
}
}
// draw the ticks
axes = allAxes();
bw = options.grid.borderWidth;
for (var j = 0; j < axes.length; ++j) {
var axis = axes[j], box = axis.box,
t = axis.tickLength, x, y, xoff, yoff;
if (!axis.show || axis.ticks.length == 0)
continue;
ctx.lineWidth = 1;
// find the edges
if (axis.direction == "x") {
x = 0;
if (t == "full")
y = (axis.position == "top" ? 0 : plotHeight);
else
y = box.top - plotOffset.top + (axis.position == "top" ? box.height : 0);
}
else {
y = 0;
if (t == "full")
x = (axis.position == "left" ? 0 : plotWidth);
else
x = box.left - plotOffset.left + (axis.position == "left" ? box.width : 0);
}
// draw tick bar
if (!axis.innermost) {
ctx.strokeStyle = axis.options.color;
ctx.beginPath();
xoff = yoff = 0;
if (axis.direction == "x")
xoff = plotWidth + 1;
else
yoff = plotHeight + 1;
if (ctx.lineWidth == 1) {
if (axis.direction == "x") {
y = Math.floor(y) + 0.5;
} else {
x = Math.floor(x) + 0.5;
}
}
ctx.moveTo(x, y);
ctx.lineTo(x + xoff, y + yoff);
ctx.stroke();
}
// draw ticks
ctx.strokeStyle = axis.options.tickColor;
ctx.beginPath();
for (i = 0; i < axis.ticks.length; ++i) {
var v = axis.ticks[i].v;
xoff = yoff = 0;
if (isNaN(v) || v < axis.min || v > axis.max
// skip those lying on the axes if we got a border
|| (t == "full"
&& ((typeof bw == "object" && bw[axis.position] > 0) || bw > 0)
&& (v == axis.min || v == axis.max)))
continue;
if (axis.direction == "x") {
x = axis.p2c(v);
yoff = t == "full" ? -plotHeight : t;
if (axis.position == "top")
yoff = -yoff;
}
else {
y = axis.p2c(v);
xoff = t == "full" ? -plotWidth : t;
if (axis.position == "left")
xoff = -xoff;
}
if (ctx.lineWidth == 1) {
if (axis.direction == "x")
x = Math.floor(x) + 0.5;
else
y = Math.floor(y) + 0.5;
}
ctx.moveTo(x, y);
ctx.lineTo(x + xoff, y + yoff);
}
ctx.stroke();
}
// draw border
if (bw) {
// If either borderWidth or borderColor is an object, then draw the border
// line by line instead of as one rectangle
bc = options.grid.borderColor;
if(typeof bw == "object" || typeof bc == "object") {
if (typeof bw !== "object") {
bw = {top: bw, right: bw, bottom: bw, left: bw};
}
if (typeof bc !== "object") {
bc = {top: bc, right: bc, bottom: bc, left: bc};
}
if (bw.top > 0) {
ctx.strokeStyle = bc.top;
ctx.lineWidth = bw.top;
ctx.beginPath();
ctx.moveTo(0 - bw.left, 0 - bw.top/2);
ctx.lineTo(plotWidth, 0 - bw.top/2);
ctx.stroke();
}
if (bw.right > 0) {
ctx.strokeStyle = bc.right;
ctx.lineWidth = bw.right;
ctx.beginPath();
ctx.moveTo(plotWidth + bw.right / 2, 0 - bw.top);
ctx.lineTo(plotWidth + bw.right / 2, plotHeight);
ctx.stroke();
}
if (bw.bottom > 0) {
ctx.strokeStyle = bc.bottom;
ctx.lineWidth = bw.bottom;
ctx.beginPath();
ctx.moveTo(plotWidth + bw.right, plotHeight + bw.bottom / 2);
ctx.lineTo(0, plotHeight + bw.bottom / 2);
ctx.stroke();
}
if (bw.left > 0) {
ctx.strokeStyle = bc.left;
ctx.lineWidth = bw.left;
ctx.beginPath();
ctx.moveTo(0 - bw.left/2, plotHeight + bw.bottom);
ctx.lineTo(0- bw.left/2, 0);
ctx.stroke();
}
}
else {
ctx.lineWidth = bw;
ctx.strokeStyle = options.grid.borderColor;
ctx.strokeRect(-bw/2, -bw/2, plotWidth + bw, plotHeight + bw);
}
}
ctx.restore();
}
function drawAxisLabels() {
$.each(allAxes(), function (_, axis) {
var box = axis.box,
legacyStyles = axis.direction + "Axis " + axis.direction + axis.n + "Axis",
layer = "flot-" + axis.direction + "-axis flot-" + axis.direction + axis.n + "-axis " + legacyStyles,
font = axis.options.font || "flot-tick-label tickLabel",
tick, x, y, halign, valign;
// Remove text before checking for axis.show and ticks.length;
// otherwise plugins, like flot-tickrotor, that draw their own
// tick labels will end up with both theirs and the defaults.
surface.removeText(layer);
if (!axis.show || axis.ticks.length == 0)
return;
for (var i = 0; i < axis.ticks.length; ++i) {
tick = axis.ticks[i];
if (!tick.label || tick.v < axis.min || tick.v > axis.max)
continue;
if (axis.direction == "x") {
halign = "center";
x = plotOffset.left + axis.p2c(tick.v);
if (axis.position == "bottom") {
y = box.top + box.padding;
} else {
y = box.top + box.height - box.padding;
valign = "bottom";
}
} else {
valign = "middle";
y = plotOffset.top + axis.p2c(tick.v);
if (axis.position == "left") {
x = box.left + box.width - box.padding;
halign = "right";
} else {
x = box.left + box.padding;
}
}
surface.addText(layer, x, y, tick.label, font, null, null, halign, valign);
}
});
}
function drawSeries(series) {
if (series.lines.show)
drawSeriesLines(series);
if (series.bars.show)
drawSeriesBars(series);
if (series.points.show)
drawSeriesPoints(series);
}
function drawSeriesLines(series) {
function plotLine(datapoints, xoffset, yoffset, axisx, axisy) {
var points = datapoints.points,
ps = datapoints.pointsize,
prevx = null, prevy = null;
ctx.beginPath();
for (var i = ps; i < points.length; i += ps) {
var x1 = points[i - ps], y1 = points[i - ps + 1],
x2 = points[i], y2 = points[i + 1];
if (x1 == null || x2 == null)
continue;
// clip with ymin
if (y1 <= y2 && y1 < axisy.min) {
if (y2 < axisy.min)
continue; // line segment is outside
// compute new intersection point
x1 = (axisy.min - y1) / (y2 - y1) * (x2 - x1) + x1;
y1 = axisy.min;
}
else if (y2 <= y1 && y2 < axisy.min) {
if (y1 < axisy.min)
continue;
x2 = (axisy.min - y1) / (y2 - y1) * (x2 - x1) + x1;
y2 = axisy.min;
}
// clip with ymax
if (y1 >= y2 && y1 > axisy.max) {
if (y2 > axisy.max)
continue;
x1 = (axisy.max - y1) / (y2 - y1) * (x2 - x1) + x1;
y1 = axisy.max;
}
else if (y2 >= y1 && y2 > axisy.max) {
if (y1 > axisy.max)
continue;
x2 = (axisy.max - y1) / (y2 - y1) * (x2 - x1) + x1;
y2 = axisy.max;
}
// clip with xmin
if (x1 <= x2 && x1 < axisx.min) {
if (x2 < axisx.min)
continue;
y1 = (axisx.min - x1) / (x2 - x1) * (y2 - y1) + y1;
x1 = axisx.min;
}
else if (x2 <= x1 && x2 < axisx.min) {
if (x1 < axisx.min)
continue;
y2 = (axisx.min - x1) / (x2 - x1) * (y2 - y1) + y1;
x2 = axisx.min;
}
// clip with xmax
if (x1 >= x2 && x1 > axisx.max) {
if (x2 > axisx.max)
continue;
y1 = (axisx.max - x1) / (x2 - x1) * (y2 - y1) + y1;
x1 = axisx.max;
}
else if (x2 >= x1 && x2 > axisx.max) {
if (x1 > axisx.max)
continue;
y2 = (axisx.max - x1) / (x2 - x1) * (y2 - y1) + y1;
x2 = axisx.max;
}
if (x1 != prevx || y1 != prevy)
ctx.moveTo(axisx.p2c(x1) + xoffset, axisy.p2c(y1) + yoffset);
prevx = x2;
prevy = y2;
ctx.lineTo(axisx.p2c(x2) + xoffset, axisy.p2c(y2) + yoffset);
}
ctx.stroke();
}
function plotLineArea(datapoints, axisx, axisy) {
var points = datapoints.points,
ps = datapoints.pointsize,
bottom = Math.min(Math.max(0, axisy.min), axisy.max),
i = 0, top, areaOpen = false,
ypos = 1, segmentStart = 0, segmentEnd = 0;
// we process each segment in two turns, first forward
// direction to sketch out top, then once we hit the
// end we go backwards to sketch the bottom
while (true) {
if (ps > 0 && i > points.length + ps)
break;
i += ps; // ps is negative if going backwards
var x1 = points[i - ps],
y1 = points[i - ps + ypos],
x2 = points[i], y2 = points[i + ypos];
if (areaOpen) {
if (ps > 0 && x1 != null && x2 == null) {
// at turning point
segmentEnd = i;
ps = -ps;
ypos = 2;
continue;
}
if (ps < 0 && i == segmentStart + ps) {
// done with the reverse sweep
ctx.fill();
areaOpen = false;
ps = -ps;
ypos = 1;
i = segmentStart = segmentEnd + ps;
continue;
}
}
if (x1 == null || x2 == null)
continue;
// clip x values
// clip with xmin
if (x1 <= x2 && x1 < axisx.min) {
if (x2 < axisx.min)
continue;
y1 = (axisx.min - x1) / (x2 - x1) * (y2 - y1) + y1;
x1 = axisx.min;
}
else if (x2 <= x1 && x2 < axisx.min) {
if (x1 < axisx.min)
continue;
y2 = (axisx.min - x1) / (x2 - x1) * (y2 - y1) + y1;
x2 = axisx.min;
}
// clip with xmax
if (x1 >= x2 && x1 > axisx.max) {
if (x2 > axisx.max)
continue;
y1 = (axisx.max - x1) / (x2 - x1) * (y2 - y1) + y1;
x1 = axisx.max;
}
else if (x2 >= x1 && x2 > axisx.max) {
if (x1 > axisx.max)
continue;
y2 = (axisx.max - x1) / (x2 - x1) * (y2 - y1) + y1;
x2 = axisx.max;
}
if (!areaOpen) {
// open area
ctx.beginPath();
ctx.moveTo(axisx.p2c(x1), axisy.p2c(bottom));
areaOpen = true;
}
// now first check the case where both is outside
if (y1 >= axisy.max && y2 >= axisy.max) {
ctx.lineTo(axisx.p2c(x1), axisy.p2c(axisy.max));
ctx.lineTo(axisx.p2c(x2), axisy.p2c(axisy.max));
continue;
}
else if (y1 <= axisy.min && y2 <= axisy.min) {
ctx.lineTo(axisx.p2c(x1), axisy.p2c(axisy.min));
ctx.lineTo(axisx.p2c(x2), axisy.p2c(axisy.min));
continue;
}
// else it's a bit more complicated, there might
// be a flat maxed out rectangle first, then a
// triangular cutout or reverse; to find these
// keep track of the current x values
var x1old = x1, x2old = x2;
// clip the y values, without shortcutting, we
// go through all cases in turn
// clip with ymin
if (y1 <= y2 && y1 < axisy.min && y2 >= axisy.min) {
x1 = (axisy.min - y1) / (y2 - y1) * (x2 - x1) + x1;
y1 = axisy.min;
}
else if (y2 <= y1 && y2 < axisy.min && y1 >= axisy.min) {
x2 = (axisy.min - y1) / (y2 - y1) * (x2 - x1) + x1;
y2 = axisy.min;
}
// clip with ymax
if (y1 >= y2 && y1 > axisy.max && y2 <= axisy.max) {
x1 = (axisy.max - y1) / (y2 - y1) * (x2 - x1) + x1;
y1 = axisy.max;
}
else if (y2 >= y1 && y2 > axisy.max && y1 <= axisy.max) {
x2 = (axisy.max - y1) / (y2 - y1) * (x2 - x1) + x1;
y2 = axisy.max;
}
// if the x value was changed we got a rectangle
// to fill
if (x1 != x1old) {
ctx.lineTo(axisx.p2c(x1old), axisy.p2c(y1));
// it goes to (x1, y1), but we fill that below
}
// fill triangular section, this sometimes result
// in redundant points if (x1, y1) hasn't changed
// from previous line to, but we just ignore that
ctx.lineTo(axisx.p2c(x1), axisy.p2c(y1));
ctx.lineTo(axisx.p2c(x2), axisy.p2c(y2));
// fill the other rectangle if it's there
if (x2 != x2old) {
ctx.lineTo(axisx.p2c(x2), axisy.p2c(y2));
ctx.lineTo(axisx.p2c(x2old), axisy.p2c(y2));
}
}
}
ctx.save();
ctx.translate(plotOffset.left, plotOffset.top);
ctx.lineJoin = "round";
var lw = series.lines.lineWidth,
sw = series.shadowSize;
// FIXME: consider another form of shadow when filling is turned on
if (lw > 0 && sw > 0) {
// draw shadow as a thick and thin line with transparency
ctx.lineWidth = sw;
ctx.strokeStyle = "rgba(0,0,0,0.1)";
// position shadow at angle from the mid of line
var angle = Math.PI/18;
plotLine(series.datapoints, Math.sin(angle) * (lw/2 + sw/2), Math.cos(angle) * (lw/2 + sw/2), series.xaxis, series.yaxis);
ctx.lineWidth = sw/2;
plotLine(series.datapoints, Math.sin(angle) * (lw/2 + sw/4), Math.cos(angle) * (lw/2 + sw/4), series.xaxis, series.yaxis);
}
ctx.lineWidth = lw;
ctx.strokeStyle = series.color;
var fillStyle = getFillStyle(series.lines, series.color, 0, plotHeight);
if (fillStyle) {
ctx.fillStyle = fillStyle;
plotLineArea(series.datapoints, series.xaxis, series.yaxis);
}
if (lw > 0)
plotLine(series.datapoints, 0, 0, series.xaxis, series.yaxis);
ctx.restore();
}
function drawSeriesPoints(series) {
function plotPoints(datapoints, radius, fillStyle, offset, shadow, axisx, axisy, symbol) {
var points = datapoints.points, ps = datapoints.pointsize;
for (var i = 0; i < points.length; i += ps) {
var x = points[i], y = points[i + 1];
if (x == null || x < axisx.min || x > axisx.max || y < axisy.min || y > axisy.max)
continue;
ctx.beginPath();
x = axisx.p2c(x);
y = axisy.p2c(y) + offset;
if (symbol == "circle")
ctx.arc(x, y, radius, 0, shadow ? Math.PI : Math.PI * 2, false);
else
symbol(ctx, x, y, radius, shadow);
ctx.closePath();
if (fillStyle) {
ctx.fillStyle = fillStyle;
ctx.fill();
}
ctx.stroke();
}
}
ctx.save();
ctx.translate(plotOffset.left, plotOffset.top);
var lw = series.points.lineWidth,
sw = series.shadowSize,
radius = series.points.radius,
symbol = series.points.symbol;
// If the user sets the line width to 0, we change it to a very
// small value. A line width of 0 seems to force the default of 1.
// Doing the conditional here allows the shadow setting to still be
// optional even with a lineWidth of 0.
if( lw == 0 )
lw = 0.0001;
if (lw > 0 && sw > 0) {
// draw shadow in two steps
var w = sw / 2;
ctx.lineWidth = w;
ctx.strokeStyle = "rgba(0,0,0,0.1)";
plotPoints(series.datapoints, radius, null, w + w/2, true,
series.xaxis, series.yaxis, symbol);
ctx.strokeStyle = "rgba(0,0,0,0.2)";
plotPoints(series.datapoints, radius, null, w/2, true,
series.xaxis, series.yaxis, symbol);
}
ctx.lineWidth = lw;
ctx.strokeStyle = series.color;
plotPoints(series.datapoints, radius,
getFillStyle(series.points, series.color), 0, false,
series.xaxis, series.yaxis, symbol);
ctx.restore();
}
function drawBar(x, y, b, barLeft, barRight, fillStyleCallback, axisx, axisy, c, horizontal, lineWidth) {
var left, right, bottom, top,
drawLeft, drawRight, drawTop, drawBottom,
tmp;
// in horizontal mode, we start the bar from the left
// instead of from the bottom so it appears to be
// horizontal rather than vertical
if (horizontal) {
drawBottom = drawRight = drawTop = true;
drawLeft = false;
left = b;
right = x;
top = y + barLeft;
bottom = y + barRight;
// account for negative bars
if (right < left) {
tmp = right;
right = left;
left = tmp;
drawLeft = true;
drawRight = false;
}
}
else {
drawLeft = drawRight = drawTop = true;
drawBottom = false;
left = x + barLeft;
right = x + barRight;
bottom = b;
top = y;
// account for negative bars
if (top < bottom) {
tmp = top;
top = bottom;
bottom = tmp;
drawBottom = true;
drawTop = false;
}
}
// clip
if (right < axisx.min || left > axisx.max ||
top < axisy.min || bottom > axisy.max)
return;
if (left < axisx.min) {
left = axisx.min;
drawLeft = false;
}
if (right > axisx.max) {
right = axisx.max;
drawRight = false;
}
if (bottom < axisy.min) {
bottom = axisy.min;
drawBottom = false;
}
if (top > axisy.max) {
top = axisy.max;
drawTop = false;
}
left = axisx.p2c(left);
bottom = axisy.p2c(bottom);
right = axisx.p2c(right);
top = axisy.p2c(top);
// fill the bar
if (fillStyleCallback) {
c.fillStyle = fillStyleCallback(bottom, top);
c.fillRect(left, top, right - left, bottom - top)
}
// draw outline
if (lineWidth > 0 && (drawLeft || drawRight || drawTop || drawBottom)) {
c.beginPath();
// FIXME: inline moveTo is buggy with excanvas
c.moveTo(left, bottom);
if (drawLeft)
c.lineTo(left, top);
else
c.moveTo(left, top);
if (drawTop)
c.lineTo(right, top);
else
c.moveTo(right, top);
if (drawRight)
c.lineTo(right, bottom);
else
c.moveTo(right, bottom);
if (drawBottom)
c.lineTo(left, bottom);
else
c.moveTo(left, bottom);
c.stroke();
}
}
function drawSeriesBars(series) {
function plotBars(datapoints, barLeft, barRight, fillStyleCallback, axisx, axisy) {
var points = datapoints.points, ps = datapoints.pointsize;
for (var i = 0; i < points.length; i += ps) {
if (points[i] == null)
continue;
drawBar(points[i], points[i + 1], points[i + 2], barLeft, barRight, fillStyleCallback, axisx, axisy, ctx, series.bars.horizontal, series.bars.lineWidth);
}
}
ctx.save();
ctx.translate(plotOffset.left, plotOffset.top);
// FIXME: figure out a way to add shadows (for instance along the right edge)
ctx.lineWidth = series.bars.lineWidth;
ctx.strokeStyle = series.color;
var barLeft;
switch (series.bars.align) {
case "left":
barLeft = 0;
break;
case "right":
barLeft = -series.bars.barWidth;
break;
default:
barLeft = -series.bars.barWidth / 2;
}
var fillStyleCallback = series.bars.fill ? function (bottom, top) { return getFillStyle(series.bars, series.color, bottom, top); } : null;
plotBars(series.datapoints, barLeft, barLeft + series.bars.barWidth, fillStyleCallback, series.xaxis, series.yaxis);
ctx.restore();
}
function getFillStyle(filloptions, seriesColor, bottom, top) {
var fill = filloptions.fill;
if (!fill)
return null;
if (filloptions.fillColor)
return getColorOrGradient(filloptions.fillColor, bottom, top, seriesColor);
var c = $.color.parse(seriesColor);
c.a = typeof fill == "number" ? fill : 0.4;
c.normalize();
return c.toString();
}
function insertLegend() {
if (options.legend.container != null) {
$(options.legend.container).html("");
} else {
placeholder.find(".legend").remove();
}
if (!options.legend.show) {
return;
}
var fragments = [], entries = [], rowStarted = false,
lf = options.legend.labelFormatter, s, label;
// Build a list of legend entries, with each having a label and a color
for (var i = 0; i < series.length; ++i) {
s = series[i];
if (s.label) {
label = lf ? lf(s.label, s) : s.label;
if (label) {
entries.push({
label: label,
color: s.color
});
}
}
}
// Sort the legend using either the default or a custom comparator
if (options.legend.sorted) {
if ($.isFunction(options.legend.sorted)) {
entries.sort(options.legend.sorted);
} else if (options.legend.sorted == "reverse") {
entries.reverse();
} else {
var ascending = options.legend.sorted != "descending";
entries.sort(function(a, b) {
return a.label == b.label ? 0 : (
(a.label < b.label) != ascending ? 1 : -1 // Logical XOR
);
});
}
}
// Generate markup for the list of entries, in their final order
for (var i = 0; i < entries.length; ++i) {
var entry = entries[i];
if (i % options.legend.noColumns == 0) {
if (rowStarted)
fragments.push('');
fragments.push('');
rowStarted = true;
}
fragments.push(
' ' +
'' + entry.label + ' '
);
}
if (rowStarted)
fragments.push(' ');
if (fragments.length == 0)
return;
var table = '' + fragments.join("") + '
';
if (options.legend.container != null)
$(options.legend.container).html(table);
else {
var pos = "",
p = options.legend.position,
m = options.legend.margin;
if (m[0] == null)
m = [m, m];
if (p.charAt(0) == "n")
pos += 'top:' + (m[1] + plotOffset.top) + 'px;';
else if (p.charAt(0) == "s")
pos += 'bottom:' + (m[1] + plotOffset.bottom) + 'px;';
if (p.charAt(1) == "e")
pos += 'right:' + (m[0] + plotOffset.right) + 'px;';
else if (p.charAt(1) == "w")
pos += 'left:' + (m[0] + plotOffset.left) + 'px;';
var legend = $('' + table.replace('style="', 'style="position:absolute;' + pos +';') + '
').appendTo(placeholder);
if (options.legend.backgroundOpacity != 0.0) {
// put in the transparent background
// separately to avoid blended labels and
// label boxes
var c = options.legend.backgroundColor;
if (c == null) {
c = options.grid.backgroundColor;
if (c && typeof c == "string")
c = $.color.parse(c);
else
c = $.color.extract(legend, 'background-color');
c.a = 1;
c = c.toString();
}
var div = legend.children();
$('
').prependTo(legend).css('opacity', options.legend.backgroundOpacity);
}
}
}
// interactive features
var highlights = [],
redrawTimeout = null;
// returns the data item the mouse is over, or null if none is found
function findNearbyItem(mouseX, mouseY, seriesFilter) {
var maxDistance = options.grid.mouseActiveRadius,
smallestDistance = maxDistance * maxDistance + 1,
item = null, foundPoint = false, i, j, ps;
for (i = series.length - 1; i >= 0; --i) {
if (!seriesFilter(series[i]))
continue;
var s = series[i],
axisx = s.xaxis,
axisy = s.yaxis,
points = s.datapoints.points,
mx = axisx.c2p(mouseX), // precompute some stuff to make the loop faster
my = axisy.c2p(mouseY),
maxx = maxDistance / axisx.scale,
maxy = maxDistance / axisy.scale;
ps = s.datapoints.pointsize;
// with inverse transforms, we can't use the maxx/maxy
// optimization, sadly
if (axisx.options.inverseTransform)
maxx = Number.MAX_VALUE;
if (axisy.options.inverseTransform)
maxy = Number.MAX_VALUE;
if (s.lines.show || s.points.show) {
for (j = 0; j < points.length; j += ps) {
var x = points[j], y = points[j + 1];
if (x == null)
continue;
// For points and lines, the cursor must be within a
// certain distance to the data point
if (x - mx > maxx || x - mx < -maxx ||
y - my > maxy || y - my < -maxy)
continue;
// We have to calculate distances in pixels, not in
// data units, because the scales of the axes may be different
var dx = Math.abs(axisx.p2c(x) - mouseX),
dy = Math.abs(axisy.p2c(y) - mouseY),
dist = dx * dx + dy * dy; // we save the sqrt
// use <= to ensure last point takes precedence
// (last generally means on top of)
if (dist < smallestDistance) {
smallestDistance = dist;
item = [i, j / ps];
}
}
}
if (s.bars.show && !item) { // no other point can be nearby
var barLeft, barRight;
switch (s.bars.align) {
case "left":
barLeft = 0;
break;
case "right":
barLeft = -s.bars.barWidth;
break;
default:
barLeft = -s.bars.barWidth / 2;
}
barRight = barLeft + s.bars.barWidth;
for (j = 0; j < points.length; j += ps) {
var x = points[j], y = points[j + 1], b = points[j + 2];
if (x == null)
continue;
// for a bar graph, the cursor must be inside the bar
if (series[i].bars.horizontal ?
(mx <= Math.max(b, x) && mx >= Math.min(b, x) &&
my >= y + barLeft && my <= y + barRight) :
(mx >= x + barLeft && mx <= x + barRight &&
my >= Math.min(b, y) && my <= Math.max(b, y)))
item = [i, j / ps];
}
}
}
if (item) {
i = item[0];
j = item[1];
ps = series[i].datapoints.pointsize;
return { datapoint: series[i].datapoints.points.slice(j * ps, (j + 1) * ps),
dataIndex: j,
series: series[i],
seriesIndex: i };
}
return null;
}
function onMouseMove(e) {
if (options.grid.hoverable)
triggerClickHoverEvent("plothover", e,
function (s) { return s["hoverable"] != false; });
}
function onMouseLeave(e) {
if (options.grid.hoverable)
triggerClickHoverEvent("plothover", e,
function (s) { return false; });
}
function onClick(e) {
triggerClickHoverEvent("plotclick", e,
function (s) { return s["clickable"] != false; });
}
// trigger click or hover event (they send the same parameters
// so we share their code)
function triggerClickHoverEvent(eventname, event, seriesFilter) {
var offset = eventHolder.offset(),
canvasX = event.pageX - offset.left - plotOffset.left,
canvasY = event.pageY - offset.top - plotOffset.top,
pos = canvasToAxisCoords({ left: canvasX, top: canvasY });
pos.pageX = event.pageX;
pos.pageY = event.pageY;
var item = findNearbyItem(canvasX, canvasY, seriesFilter);
if (item) {
// fill in mouse pos for any listeners out there
item.pageX = parseInt(item.series.xaxis.p2c(item.datapoint[0]) + offset.left + plotOffset.left, 10);
item.pageY = parseInt(item.series.yaxis.p2c(item.datapoint[1]) + offset.top + plotOffset.top, 10);
}
if (options.grid.autoHighlight) {
// clear auto-highlights
for (var i = 0; i < highlights.length; ++i) {
var h = highlights[i];
if (h.auto == eventname &&
!(item && h.series == item.series &&
h.point[0] == item.datapoint[0] &&
h.point[1] == item.datapoint[1]))
unhighlight(h.series, h.point);
}
if (item)
highlight(item.series, item.datapoint, eventname);
}
placeholder.trigger(eventname, [ pos, item ]);
}
function triggerRedrawOverlay() {
var t = options.interaction.redrawOverlayInterval;
if (t == -1) { // skip event queue
drawOverlay();
return;
}
if (!redrawTimeout)
redrawTimeout = setTimeout(drawOverlay, t);
}
function drawOverlay() {
redrawTimeout = null;
// draw highlights
octx.save();
overlay.clear();
octx.translate(plotOffset.left, plotOffset.top);
var i, hi;
for (i = 0; i < highlights.length; ++i) {
hi = highlights[i];
if (hi.series.bars.show)
drawBarHighlight(hi.series, hi.point);
else
drawPointHighlight(hi.series, hi.point);
}
octx.restore();
executeHooks(hooks.drawOverlay, [octx]);
}
function highlight(s, point, auto) {
if (typeof s == "number")
s = series[s];
if (typeof point == "number") {
var ps = s.datapoints.pointsize;
point = s.datapoints.points.slice(ps * point, ps * (point + 1));
}
var i = indexOfHighlight(s, point);
if (i == -1) {
highlights.push({ series: s, point: point, auto: auto });
triggerRedrawOverlay();
}
else if (!auto)
highlights[i].auto = false;
}
function unhighlight(s, point) {
if (s == null && point == null) {
highlights = [];
triggerRedrawOverlay();
return;
}
if (typeof s == "number")
s = series[s];
if (typeof point == "number") {
var ps = s.datapoints.pointsize;
point = s.datapoints.points.slice(ps * point, ps * (point + 1));
}
var i = indexOfHighlight(s, point);
if (i != -1) {
highlights.splice(i, 1);
triggerRedrawOverlay();
}
}
function indexOfHighlight(s, p) {
for (var i = 0; i < highlights.length; ++i) {
var h = highlights[i];
if (h.series == s && h.point[0] == p[0]
&& h.point[1] == p[1])
return i;
}
return -1;
}
function drawPointHighlight(series, point) {
var x = point[0], y = point[1],
axisx = series.xaxis, axisy = series.yaxis,
highlightColor = (typeof series.highlightColor === "string") ? series.highlightColor : $.color.parse(series.color).scale('a', 0.5).toString();
if (x < axisx.min || x > axisx.max || y < axisy.min || y > axisy.max)
return;
var pointRadius = series.points.radius + series.points.lineWidth / 2;
octx.lineWidth = pointRadius;
octx.strokeStyle = highlightColor;
var radius = 1.5 * pointRadius;
x = axisx.p2c(x);
y = axisy.p2c(y);
octx.beginPath();
if (series.points.symbol == "circle")
octx.arc(x, y, radius, 0, 2 * Math.PI, false);
else
series.points.symbol(octx, x, y, radius, false);
octx.closePath();
octx.stroke();
}
function drawBarHighlight(series, point) {
var highlightColor = (typeof series.highlightColor === "string") ? series.highlightColor : $.color.parse(series.color).scale('a', 0.5).toString(),
fillStyle = highlightColor,
barLeft;
switch (series.bars.align) {
case "left":
barLeft = 0;
break;
case "right":
barLeft = -series.bars.barWidth;
break;
default:
barLeft = -series.bars.barWidth / 2;
}
octx.lineWidth = series.bars.lineWidth;
octx.strokeStyle = highlightColor;
drawBar(point[0], point[1], point[2] || 0, barLeft, barLeft + series.bars.barWidth,
function () { return fillStyle; }, series.xaxis, series.yaxis, octx, series.bars.horizontal, series.bars.lineWidth);
}
function getColorOrGradient(spec, bottom, top, defaultColor) {
if (typeof spec == "string")
return spec;
else {
// assume this is a gradient spec; IE currently only
// supports a simple vertical gradient properly, so that's
// what we support too
var gradient = ctx.createLinearGradient(0, top, 0, bottom);
for (var i = 0, l = spec.colors.length; i < l; ++i) {
var c = spec.colors[i];
if (typeof c != "string") {
var co = $.color.parse(defaultColor);
if (c.brightness != null)
co = co.scale('rgb', c.brightness);
if (c.opacity != null)
co.a *= c.opacity;
c = co.toString();
}
gradient.addColorStop(i / (l - 1), c);
}
return gradient;
}
}
}
// Add the plot function to the top level of the jQuery object
$.plot = function(placeholder, data, options) {
//var t0 = new Date();
var plot = new Plot($(placeholder), data, options, $.plot.plugins);
//(window.console ? console.log : alert)("time used (msecs): " + ((new Date()).getTime() - t0.getTime()));
return plot;
};
$.plot.version = "0.8.3";
$.plot.plugins = [];
// Also add the plot function as a chainable property
$.fn.plot = function(data, options) {
return this.each(function() {
$.plot(this, data, options);
});
};
// round to nearby lower multiple of base
function floorInBase(n, base) {
return base * Math.floor(n / base);
}
})(jQuery);
================================================
FILE: public/admin-panel/assets/libs/flot/jquery.flot.navigate.js
================================================
/* Flot plugin for adding the ability to pan and zoom the plot.
Copyright (c) 2007-2014 IOLA and Ole Laursen.
Licensed under the MIT license.
The default behaviour is double click and scrollwheel up/down to zoom in, drag
to pan. The plugin defines plot.zoom({ center }), plot.zoomOut() and
plot.pan( offset ) so you easily can add custom controls. It also fires
"plotpan" and "plotzoom" events, useful for synchronizing plots.
The plugin supports these options:
zoom: {
interactive: false
trigger: "dblclick" // or "click" for single click
amount: 1.5 // 2 = 200% (zoom in), 0.5 = 50% (zoom out)
}
pan: {
interactive: false
cursor: "move" // CSS mouse cursor value used when dragging, e.g. "pointer"
frameRate: 20
}
xaxis, yaxis, x2axis, y2axis: {
zoomRange: null // or [ number, number ] (min range, max range) or false
panRange: null // or [ number, number ] (min, max) or false
}
"interactive" enables the built-in drag/click behaviour. If you enable
interactive for pan, then you'll have a basic plot that supports moving
around; the same for zoom.
"amount" specifies the default amount to zoom in (so 1.5 = 150%) relative to
the current viewport.
"cursor" is a standard CSS mouse cursor string used for visual feedback to the
user when dragging.
"frameRate" specifies the maximum number of times per second the plot will
update itself while the user is panning around on it (set to null to disable
intermediate pans, the plot will then not update until the mouse button is
released).
"zoomRange" is the interval in which zooming can happen, e.g. with zoomRange:
[1, 100] the zoom will never scale the axis so that the difference between min
and max is smaller than 1 or larger than 100. You can set either end to null
to ignore, e.g. [1, null]. If you set zoomRange to false, zooming on that axis
will be disabled.
"panRange" confines the panning to stay within a range, e.g. with panRange:
[-10, 20] panning stops at -10 in one end and at 20 in the other. Either can
be null, e.g. [-10, null]. If you set panRange to false, panning on that axis
will be disabled.
Example API usage:
plot = $.plot(...);
// zoom default amount in on the pixel ( 10, 20 )
plot.zoom({ center: { left: 10, top: 20 } });
// zoom out again
plot.zoomOut({ center: { left: 10, top: 20 } });
// zoom 200% in on the pixel (10, 20)
plot.zoom({ amount: 2, center: { left: 10, top: 20 } });
// pan 100 pixels to the left and 20 down
plot.pan({ left: -100, top: 20 })
Here, "center" specifies where the center of the zooming should happen. Note
that this is defined in pixel space, not the space of the data points (you can
use the p2c helpers on the axes in Flot to help you convert between these).
"amount" is the amount to zoom the viewport relative to the current range, so
1 is 100% (i.e. no change), 1.5 is 150% (zoom in), 0.7 is 70% (zoom out). You
can set the default in the options.
*/
// First two dependencies, jquery.event.drag.js and
// jquery.mousewheel.js, we put them inline here to save people the
// effort of downloading them.
/*
jquery.event.drag.js ~ v1.5 ~ Copyright (c) 2008, Three Dub Media (http://threedubmedia.com)
Licensed under the MIT License ~ http://threedubmedia.googlecode.com/files/MIT-LICENSE.txt
*/
(function(a){function e(h){var k,j=this,l=h.data||{};if(l.elem)j=h.dragTarget=l.elem,h.dragProxy=d.proxy||j,h.cursorOffsetX=l.pageX-l.left,h.cursorOffsetY=l.pageY-l.top,h.offsetX=h.pageX-h.cursorOffsetX,h.offsetY=h.pageY-h.cursorOffsetY;else if(d.dragging||l.which>0&&h.which!=l.which||a(h.target).is(l.not))return;switch(h.type){case"mousedown":return a.extend(l,a(j).offset(),{elem:j,target:h.target,pageX:h.pageX,pageY:h.pageY}),b.add(document,"mousemove mouseup",e,l),i(j,!1),d.dragging=null,!1;case!d.dragging&&"mousemove":if(g(h.pageX-l.pageX)+g(h.pageY-l.pageY) max) {
// make sure min < max
var tmp = min;
min = max;
max = tmp;
}
//Check that we are in panRange
if (pr) {
if (pr[0] != null && min < pr[0]) {
min = pr[0];
}
if (pr[1] != null && max > pr[1]) {
max = pr[1];
}
}
var range = max - min;
if (zr &&
((zr[0] != null && range < zr[0] && amount >1) ||
(zr[1] != null && range > zr[1] && amount <1)))
return;
opts.min = min;
opts.max = max;
});
plot.setupGrid();
plot.draw();
if (!args.preventEvent)
plot.getPlaceholder().trigger("plotzoom", [ plot, args ]);
};
plot.pan = function (args) {
var delta = {
x: +args.left,
y: +args.top
};
if (isNaN(delta.x))
delta.x = 0;
if (isNaN(delta.y))
delta.y = 0;
$.each(plot.getAxes(), function (_, axis) {
var opts = axis.options,
min, max, d = delta[axis.direction];
min = axis.c2p(axis.p2c(axis.min) + d),
max = axis.c2p(axis.p2c(axis.max) + d);
var pr = opts.panRange;
if (pr === false) // no panning on this axis
return;
if (pr) {
// check whether we hit the wall
if (pr[0] != null && pr[0] > min) {
d = pr[0] - min;
min += d;
max += d;
}
if (pr[1] != null && pr[1] < max) {
d = pr[1] - max;
min += d;
max += d;
}
}
opts.min = min;
opts.max = max;
});
plot.setupGrid();
plot.draw();
if (!args.preventEvent)
plot.getPlaceholder().trigger("plotpan", [ plot, args ]);
};
function shutdown(plot, eventHolder) {
eventHolder.unbind(plot.getOptions().zoom.trigger, onZoomClick);
eventHolder.unbind("mousewheel", onMouseWheel);
eventHolder.unbind("dragstart", onDragStart);
eventHolder.unbind("drag", onDrag);
eventHolder.unbind("dragend", onDragEnd);
if (panTimeout)
clearTimeout(panTimeout);
}
plot.hooks.bindEvents.push(bindEvents);
plot.hooks.shutdown.push(shutdown);
}
$.plot.plugins.push({
init: init,
options: options,
name: 'navigate',
version: '1.3'
});
})(jQuery);
================================================
FILE: public/admin-panel/assets/libs/flot/jquery.flot.pie.js
================================================
/* Flot plugin for rendering pie charts.
Copyright (c) 2007-2014 IOLA and Ole Laursen.
Licensed under the MIT license.
The plugin assumes that each series has a single data value, and that each
value is a positive integer or zero. Negative numbers don't make sense for a
pie chart, and have unpredictable results. The values do NOT need to be
passed in as percentages; the plugin will calculate the total and per-slice
percentages internally.
* Created by Brian Medendorp
* Updated with contributions from btburnett3, Anthony Aragues and Xavi Ivars
The plugin supports these options:
series: {
pie: {
show: true/false
radius: 0-1 for percentage of fullsize, or a specified pixel length, or 'auto'
innerRadius: 0-1 for percentage of fullsize or a specified pixel length, for creating a donut effect
startAngle: 0-2 factor of PI used for starting angle (in radians) i.e 3/2 starts at the top, 0 and 2 have the same result
tilt: 0-1 for percentage to tilt the pie, where 1 is no tilt, and 0 is completely flat (nothing will show)
offset: {
top: integer value to move the pie up or down
left: integer value to move the pie left or right, or 'auto'
},
stroke: {
color: any hexidecimal color value (other formats may or may not work, so best to stick with something like '#FFF')
width: integer pixel width of the stroke
},
label: {
show: true/false, or 'auto'
formatter: a user-defined function that modifies the text/style of the label text
radius: 0-1 for percentage of fullsize, or a specified pixel length
background: {
color: any hexidecimal color value (other formats may or may not work, so best to stick with something like '#000')
opacity: 0-1
},
threshold: 0-1 for the percentage value at which to hide labels (if they're too small)
},
combine: {
threshold: 0-1 for the percentage value at which to combine slices (if they're too small)
color: any hexidecimal color value (other formats may or may not work, so best to stick with something like '#CCC'), if null, the plugin will automatically use the color of the first slice to be combined
label: any text value of what the combined slice should be labeled
}
highlight: {
opacity: 0-1
}
}
}
More detail and specific examples can be found in the included HTML file.
*/
(function($) {
// Maximum redraw attempts when fitting labels within the plot
var REDRAW_ATTEMPTS = 10;
// Factor by which to shrink the pie when fitting labels within the plot
var REDRAW_SHRINK = 0.95;
function init(plot) {
var canvas = null,
target = null,
options = null,
maxRadius = null,
centerLeft = null,
centerTop = null,
processed = false,
ctx = null;
// interactive variables
var highlights = [];
// add hook to determine if pie plugin in enabled, and then perform necessary operations
plot.hooks.processOptions.push(function(plot, options) {
if (options.series.pie.show) {
options.grid.show = false;
// set labels.show
if (options.series.pie.label.show == "auto") {
if (options.legend.show) {
options.series.pie.label.show = false;
} else {
options.series.pie.label.show = true;
}
}
// set radius
if (options.series.pie.radius == "auto") {
if (options.series.pie.label.show) {
options.series.pie.radius = 3/4;
} else {
options.series.pie.radius = 1;
}
}
// ensure sane tilt
if (options.series.pie.tilt > 1) {
options.series.pie.tilt = 1;
} else if (options.series.pie.tilt < 0) {
options.series.pie.tilt = 0;
}
}
});
plot.hooks.bindEvents.push(function(plot, eventHolder) {
var options = plot.getOptions();
if (options.series.pie.show) {
if (options.grid.hoverable) {
eventHolder.unbind("mousemove").mousemove(onMouseMove);
}
if (options.grid.clickable) {
eventHolder.unbind("click").click(onClick);
}
}
});
plot.hooks.processDatapoints.push(function(plot, series, data, datapoints) {
var options = plot.getOptions();
if (options.series.pie.show) {
processDatapoints(plot, series, data, datapoints);
}
});
plot.hooks.drawOverlay.push(function(plot, octx) {
var options = plot.getOptions();
if (options.series.pie.show) {
drawOverlay(plot, octx);
}
});
plot.hooks.draw.push(function(plot, newCtx) {
var options = plot.getOptions();
if (options.series.pie.show) {
draw(plot, newCtx);
}
});
function processDatapoints(plot, series, datapoints) {
if (!processed) {
processed = true;
canvas = plot.getCanvas();
target = $(canvas).parent();
options = plot.getOptions();
plot.setData(combine(plot.getData()));
}
}
function combine(data) {
var total = 0,
combined = 0,
numCombined = 0,
color = options.series.pie.combine.color,
newdata = [];
// Fix up the raw data from Flot, ensuring the data is numeric
for (var i = 0; i < data.length; ++i) {
var value = data[i].data;
// If the data is an array, we'll assume that it's a standard
// Flot x-y pair, and are concerned only with the second value.
// Note how we use the original array, rather than creating a
// new one; this is more efficient and preserves any extra data
// that the user may have stored in higher indexes.
if ($.isArray(value) && value.length == 1) {
value = value[0];
}
if ($.isArray(value)) {
// Equivalent to $.isNumeric() but compatible with jQuery < 1.7
if (!isNaN(parseFloat(value[1])) && isFinite(value[1])) {
value[1] = +value[1];
} else {
value[1] = 0;
}
} else if (!isNaN(parseFloat(value)) && isFinite(value)) {
value = [1, +value];
} else {
value = [1, 0];
}
data[i].data = [value];
}
// Sum up all the slices, so we can calculate percentages for each
for (var i = 0; i < data.length; ++i) {
total += data[i].data[0][1];
}
// Count the number of slices with percentages below the combine
// threshold; if it turns out to be just one, we won't combine.
for (var i = 0; i < data.length; ++i) {
var value = data[i].data[0][1];
if (value / total <= options.series.pie.combine.threshold) {
combined += value;
numCombined++;
if (!color) {
color = data[i].color;
}
}
}
for (var i = 0; i < data.length; ++i) {
var value = data[i].data[0][1];
if (numCombined < 2 || value / total > options.series.pie.combine.threshold) {
newdata.push(
$.extend(data[i], { /* extend to allow keeping all other original data values
and using them e.g. in labelFormatter. */
data: [[1, value]],
color: data[i].color,
label: data[i].label,
angle: value * Math.PI * 2 / total,
percent: value / (total / 100)
})
);
}
}
if (numCombined > 1) {
newdata.push({
data: [[1, combined]],
color: color,
label: options.series.pie.combine.label,
angle: combined * Math.PI * 2 / total,
percent: combined / (total / 100)
});
}
return newdata;
}
function draw(plot, newCtx) {
if (!target) {
return; // if no series were passed
}
var canvasWidth = plot.getPlaceholder().width(),
canvasHeight = plot.getPlaceholder().height(),
legendWidth = target.children().filter(".legend").children().width() || 0;
ctx = newCtx;
// WARNING: HACK! REWRITE THIS CODE AS SOON AS POSSIBLE!
// When combining smaller slices into an 'other' slice, we need to
// add a new series. Since Flot gives plugins no way to modify the
// list of series, the pie plugin uses a hack where the first call
// to processDatapoints results in a call to setData with the new
// list of series, then subsequent processDatapoints do nothing.
// The plugin-global 'processed' flag is used to control this hack;
// it starts out false, and is set to true after the first call to
// processDatapoints.
// Unfortunately this turns future setData calls into no-ops; they
// call processDatapoints, the flag is true, and nothing happens.
// To fix this we'll set the flag back to false here in draw, when
// all series have been processed, so the next sequence of calls to
// processDatapoints once again starts out with a slice-combine.
// This is really a hack; in 0.9 we need to give plugins a proper
// way to modify series before any processing begins.
processed = false;
// calculate maximum radius and center point
maxRadius = Math.min(canvasWidth, canvasHeight / options.series.pie.tilt) / 2;
centerTop = canvasHeight / 2 + options.series.pie.offset.top;
centerLeft = canvasWidth / 2;
if (options.series.pie.offset.left == "auto") {
if (options.legend.position.match("w")) {
centerLeft += legendWidth / 2;
} else {
centerLeft -= legendWidth / 2;
}
if (centerLeft < maxRadius) {
centerLeft = maxRadius;
} else if (centerLeft > canvasWidth - maxRadius) {
centerLeft = canvasWidth - maxRadius;
}
} else {
centerLeft += options.series.pie.offset.left;
}
var slices = plot.getData(),
attempts = 0;
// Keep shrinking the pie's radius until drawPie returns true,
// indicating that all the labels fit, or we try too many times.
do {
if (attempts > 0) {
maxRadius *= REDRAW_SHRINK;
}
attempts += 1;
clear();
if (options.series.pie.tilt <= 0.8) {
drawShadow();
}
} while (!drawPie() && attempts < REDRAW_ATTEMPTS)
if (attempts >= REDRAW_ATTEMPTS) {
clear();
target.prepend("Could not draw pie with labels contained inside canvas
");
}
if (plot.setSeries && plot.insertLegend) {
plot.setSeries(slices);
plot.insertLegend();
}
// we're actually done at this point, just defining internal functions at this point
function clear() {
ctx.clearRect(0, 0, canvasWidth, canvasHeight);
target.children().filter(".pieLabel, .pieLabelBackground").remove();
}
function drawShadow() {
var shadowLeft = options.series.pie.shadow.left;
var shadowTop = options.series.pie.shadow.top;
var edge = 10;
var alpha = options.series.pie.shadow.alpha;
var radius = options.series.pie.radius > 1 ? options.series.pie.radius : maxRadius * options.series.pie.radius;
if (radius >= canvasWidth / 2 - shadowLeft || radius * options.series.pie.tilt >= canvasHeight / 2 - shadowTop || radius <= edge) {
return; // shadow would be outside canvas, so don't draw it
}
ctx.save();
ctx.translate(shadowLeft,shadowTop);
ctx.globalAlpha = alpha;
ctx.fillStyle = "#000";
// center and rotate to starting position
ctx.translate(centerLeft,centerTop);
ctx.scale(1, options.series.pie.tilt);
//radius -= edge;
for (var i = 1; i <= edge; i++) {
ctx.beginPath();
ctx.arc(0, 0, radius, 0, Math.PI * 2, false);
ctx.fill();
radius -= i;
}
ctx.restore();
}
function drawPie() {
var startAngle = Math.PI * options.series.pie.startAngle;
var radius = options.series.pie.radius > 1 ? options.series.pie.radius : maxRadius * options.series.pie.radius;
// center and rotate to starting position
ctx.save();
ctx.translate(centerLeft,centerTop);
ctx.scale(1, options.series.pie.tilt);
//ctx.rotate(startAngle); // start at top; -- This doesn't work properly in Opera
// draw slices
ctx.save();
var currentAngle = startAngle;
for (var i = 0; i < slices.length; ++i) {
slices[i].startAngle = currentAngle;
drawSlice(slices[i].angle, slices[i].color, true);
}
ctx.restore();
// draw slice outlines
if (options.series.pie.stroke.width > 0) {
ctx.save();
ctx.lineWidth = options.series.pie.stroke.width;
currentAngle = startAngle;
for (var i = 0; i < slices.length; ++i) {
drawSlice(slices[i].angle, options.series.pie.stroke.color, false);
}
ctx.restore();
}
// draw donut hole
drawDonutHole(ctx);
ctx.restore();
// Draw the labels, returning true if they fit within the plot
if (options.series.pie.label.show) {
return drawLabels();
} else return true;
function drawSlice(angle, color, fill) {
if (angle <= 0 || isNaN(angle)) {
return;
}
if (fill) {
ctx.fillStyle = color;
} else {
ctx.strokeStyle = color;
ctx.lineJoin = "round";
}
ctx.beginPath();
if (Math.abs(angle - Math.PI * 2) > 0.000000001) {
ctx.moveTo(0, 0); // Center of the pie
}
//ctx.arc(0, 0, radius, 0, angle, false); // This doesn't work properly in Opera
ctx.arc(0, 0, radius,currentAngle, currentAngle + angle / 2, false);
ctx.arc(0, 0, radius,currentAngle + angle / 2, currentAngle + angle, false);
ctx.closePath();
//ctx.rotate(angle); // This doesn't work properly in Opera
currentAngle += angle;
if (fill) {
ctx.fill();
} else {
ctx.stroke();
}
}
function drawLabels() {
var currentAngle = startAngle;
var radius = options.series.pie.label.radius > 1 ? options.series.pie.label.radius : maxRadius * options.series.pie.label.radius;
for (var i = 0; i < slices.length; ++i) {
if (slices[i].percent >= options.series.pie.label.threshold * 100) {
if (!drawLabel(slices[i], currentAngle, i)) {
return false;
}
}
currentAngle += slices[i].angle;
}
return true;
function drawLabel(slice, startAngle, index) {
if (slice.data[0][1] == 0) {
return true;
}
// format label text
var lf = options.legend.labelFormatter, text, plf = options.series.pie.label.formatter;
if (lf) {
text = lf(slice.label, slice);
} else {
text = slice.label;
}
if (plf) {
text = plf(text, slice);
}
var halfAngle = ((startAngle + slice.angle) + startAngle) / 2;
var x = centerLeft + Math.round(Math.cos(halfAngle) * radius);
var y = centerTop + Math.round(Math.sin(halfAngle) * radius) * options.series.pie.tilt;
var html = "" + text + " ";
target.append(html);
var label = target.children("#pieLabel" + index);
var labelTop = (y - label.height() / 2);
var labelLeft = (x - label.width() / 2);
label.css("top", labelTop);
label.css("left", labelLeft);
// check to make sure that the label is not outside the canvas
if (0 - labelTop > 0 || 0 - labelLeft > 0 || canvasHeight - (labelTop + label.height()) < 0 || canvasWidth - (labelLeft + label.width()) < 0) {
return false;
}
if (options.series.pie.label.background.opacity != 0) {
// put in the transparent background separately to avoid blended labels and label boxes
var c = options.series.pie.label.background.color;
if (c == null) {
c = slice.color;
}
var pos = "top:" + labelTop + "px;left:" + labelLeft + "px;";
$("
")
.css("opacity", options.series.pie.label.background.opacity)
.insertBefore(label);
}
return true;
} // end individual label function
} // end drawLabels function
} // end drawPie function
} // end draw function
// Placed here because it needs to be accessed from multiple locations
function drawDonutHole(layer) {
if (options.series.pie.innerRadius > 0) {
// subtract the center
layer.save();
var innerRadius = options.series.pie.innerRadius > 1 ? options.series.pie.innerRadius : maxRadius * options.series.pie.innerRadius;
layer.globalCompositeOperation = "destination-out"; // this does not work with excanvas, but it will fall back to using the stroke color
layer.beginPath();
layer.fillStyle = options.series.pie.stroke.color;
layer.arc(0, 0, innerRadius, 0, Math.PI * 2, false);
layer.fill();
layer.closePath();
layer.restore();
// add inner stroke
layer.save();
layer.beginPath();
layer.strokeStyle = options.series.pie.stroke.color;
layer.arc(0, 0, innerRadius, 0, Math.PI * 2, false);
layer.stroke();
layer.closePath();
layer.restore();
// TODO: add extra shadow inside hole (with a mask) if the pie is tilted.
}
}
//-- Additional Interactive related functions --
function isPointInPoly(poly, pt) {
for(var c = false, i = -1, l = poly.length, j = l - 1; ++i < l; j = i)
((poly[i][1] <= pt[1] && pt[1] < poly[j][1]) || (poly[j][1] <= pt[1] && pt[1]< poly[i][1]))
&& (pt[0] < (poly[j][0] - poly[i][0]) * (pt[1] - poly[i][1]) / (poly[j][1] - poly[i][1]) + poly[i][0])
&& (c = !c);
return c;
}
function findNearbySlice(mouseX, mouseY) {
var slices = plot.getData(),
options = plot.getOptions(),
radius = options.series.pie.radius > 1 ? options.series.pie.radius : maxRadius * options.series.pie.radius,
x, y;
for (var i = 0; i < slices.length; ++i) {
var s = slices[i];
if (s.pie.show) {
ctx.save();
ctx.beginPath();
ctx.moveTo(0, 0); // Center of the pie
//ctx.scale(1, options.series.pie.tilt); // this actually seems to break everything when here.
ctx.arc(0, 0, radius, s.startAngle, s.startAngle + s.angle / 2, false);
ctx.arc(0, 0, radius, s.startAngle + s.angle / 2, s.startAngle + s.angle, false);
ctx.closePath();
x = mouseX - centerLeft;
y = mouseY - centerTop;
if (ctx.isPointInPath) {
if (ctx.isPointInPath(mouseX - centerLeft, mouseY - centerTop)) {
ctx.restore();
return {
datapoint: [s.percent, s.data],
dataIndex: 0,
series: s,
seriesIndex: i
};
}
} else {
// excanvas for IE doesn;t support isPointInPath, this is a workaround.
var p1X = radius * Math.cos(s.startAngle),
p1Y = radius * Math.sin(s.startAngle),
p2X = radius * Math.cos(s.startAngle + s.angle / 4),
p2Y = radius * Math.sin(s.startAngle + s.angle / 4),
p3X = radius * Math.cos(s.startAngle + s.angle / 2),
p3Y = radius * Math.sin(s.startAngle + s.angle / 2),
p4X = radius * Math.cos(s.startAngle + s.angle / 1.5),
p4Y = radius * Math.sin(s.startAngle + s.angle / 1.5),
p5X = radius * Math.cos(s.startAngle + s.angle),
p5Y = radius * Math.sin(s.startAngle + s.angle),
arrPoly = [[0, 0], [p1X, p1Y], [p2X, p2Y], [p3X, p3Y], [p4X, p4Y], [p5X, p5Y]],
arrPoint = [x, y];
// TODO: perhaps do some mathmatical trickery here with the Y-coordinate to compensate for pie tilt?
if (isPointInPoly(arrPoly, arrPoint)) {
ctx.restore();
return {
datapoint: [s.percent, s.data],
dataIndex: 0,
series: s,
seriesIndex: i
};
}
}
ctx.restore();
}
}
return null;
}
function onMouseMove(e) {
triggerClickHoverEvent("plothover", e);
}
function onClick(e) {
triggerClickHoverEvent("plotclick", e);
}
// trigger click or hover event (they send the same parameters so we share their code)
function triggerClickHoverEvent(eventname, e) {
var offset = plot.offset();
var canvasX = parseInt(e.pageX - offset.left);
var canvasY = parseInt(e.pageY - offset.top);
var item = findNearbySlice(canvasX, canvasY);
if (options.grid.autoHighlight) {
// clear auto-highlights
for (var i = 0; i < highlights.length; ++i) {
var h = highlights[i];
if (h.auto == eventname && !(item && h.series == item.series)) {
unhighlight(h.series);
}
}
}
// highlight the slice
if (item) {
highlight(item.series, eventname);
}
// trigger any hover bind events
var pos = { pageX: e.pageX, pageY: e.pageY };
target.trigger(eventname, [pos, item]);
}
function highlight(s, auto) {
//if (typeof s == "number") {
// s = series[s];
//}
var i = indexOfHighlight(s);
if (i == -1) {
highlights.push({ series: s, auto: auto });
plot.triggerRedrawOverlay();
} else if (!auto) {
highlights[i].auto = false;
}
}
function unhighlight(s) {
if (s == null) {
highlights = [];
plot.triggerRedrawOverlay();
}
//if (typeof s == "number") {
// s = series[s];
//}
var i = indexOfHighlight(s);
if (i != -1) {
highlights.splice(i, 1);
plot.triggerRedrawOverlay();
}
}
function indexOfHighlight(s) {
for (var i = 0; i < highlights.length; ++i) {
var h = highlights[i];
if (h.series == s)
return i;
}
return -1;
}
function drawOverlay(plot, octx) {
var options = plot.getOptions();
var radius = options.series.pie.radius > 1 ? options.series.pie.radius : maxRadius * options.series.pie.radius;
octx.save();
octx.translate(centerLeft, centerTop);
octx.scale(1, options.series.pie.tilt);
for (var i = 0; i < highlights.length; ++i) {
drawHighlight(highlights[i].series);
}
drawDonutHole(octx);
octx.restore();
function drawHighlight(series) {
if (series.angle <= 0 || isNaN(series.angle)) {
return;
}
//octx.fillStyle = parseColor(options.series.pie.highlight.color).scale(null, null, null, options.series.pie.highlight.opacity).toString();
octx.fillStyle = "rgba(255, 255, 255, " + options.series.pie.highlight.opacity + ")"; // this is temporary until we have access to parseColor
octx.beginPath();
if (Math.abs(series.angle - Math.PI * 2) > 0.000000001) {
octx.moveTo(0, 0); // Center of the pie
}
octx.arc(0, 0, radius, series.startAngle, series.startAngle + series.angle / 2, false);
octx.arc(0, 0, radius, series.startAngle + series.angle / 2, series.startAngle + series.angle, false);
octx.closePath();
octx.fill();
}
}
} // end init (plugin body)
// define pie specific options and their default values
var options = {
series: {
pie: {
show: false,
radius: "auto", // actual radius of the visible pie (based on full calculated radius if <=1, or hard pixel value)
innerRadius: 0, /* for donut */
startAngle: 3/2,
tilt: 1,
shadow: {
left: 5, // shadow left offset
top: 15, // shadow top offset
alpha: 0.02 // shadow alpha
},
offset: {
top: 0,
left: "auto"
},
stroke: {
color: "#fff",
width: 1
},
label: {
show: "auto",
formatter: function(label, slice) {
return "" + label + " " + Math.round(slice.percent) + "%
";
}, // formatter function
radius: 1, // radius at which to place the labels (based on full calculated radius if <=1, or hard pixel value)
background: {
color: null,
opacity: 0
},
threshold: 0 // percentage at which to hide the label (i.e. the slice is too narrow)
},
combine: {
threshold: -1, // percentage at which to combine little slices into one larger slice
color: null, // color to give the new slice (auto-generated if null)
label: "Other" // label to give the new slice
},
highlight: {
//color: "#fff", // will add this functionality once parseColor is available
opacity: 0.5
}
}
}
};
$.plot.plugins.push({
init: init,
options: options,
name: "pie",
version: "1.1"
});
})(jQuery);
================================================
FILE: public/admin-panel/assets/libs/flot/jquery.flot.resize.js
================================================
/* Flot plugin for automatically redrawing plots as the placeholder resizes.
Copyright (c) 2007-2014 IOLA and Ole Laursen.
Licensed under the MIT license.
It works by listening for changes on the placeholder div (through the jQuery
resize event plugin) - if the size changes, it will redraw the plot.
There are no options. If you need to disable the plugin for some plots, you
can just fix the size of their placeholders.
*/
/* Inline dependency:
* jQuery resize event - v1.1 - 3/14/2010
* http://benalman.com/projects/jquery-resize-plugin/
*
* Copyright (c) 2010 "Cowboy" Ben Alman
* Dual licensed under the MIT and GPL licenses.
* http://benalman.com/about/license/
*/
(function($,e,t){"$:nomunge";var i=[],n=$.resize=$.extend($.resize,{}),a,r=false,s="setTimeout",u="resize",m=u+"-special-event",o="pendingDelay",l="activeDelay",f="throttleWindow";n[o]=200;n[l]=20;n[f]=true;$.event.special[u]={setup:function(){if(!n[f]&&this[s]){return false}var e=$(this);i.push(this);e.data(m,{w:e.width(),h:e.height()});if(i.length===1){a=t;h()}},teardown:function(){if(!n[f]&&this[s]){return false}var e=$(this);for(var t=i.length-1;t>=0;t--){if(i[t]==this){i.splice(t,1);break}}e.removeData(m);if(!i.length){if(r){cancelAnimationFrame(a)}else{clearTimeout(a)}a=null}},add:function(e){if(!n[f]&&this[s]){return false}var i;function a(e,n,a){var r=$(this),s=r.data(m)||{};s.w=n!==t?n:r.width();s.h=a!==t?a:r.height();i.apply(this,arguments)}if($.isFunction(e)){i=e;return a}else{i=e.handler;e.handler=a}}};function h(t){if(r===true){r=t||1}for(var s=i.length-1;s>=0;s--){var l=$(i[s]);if(l[0]==e||l.is(":visible")){var f=l.width(),c=l.height(),d=l.data(m);if(d&&(f!==d.w||c!==d.h)){l.trigger(u,[d.w=f,d.h=c]);r=t||true}}else{d=l.data(m);d.w=0;d.h=0}}if(a!==null){if(r&&(t==null||t-r<1e3)){a=e.requestAnimationFrame(h)}else{a=setTimeout(h,n[o]);r=false}}}if(!e.requestAnimationFrame){e.requestAnimationFrame=function(){return e.webkitRequestAnimationFrame||e.mozRequestAnimationFrame||e.oRequestAnimationFrame||e.msRequestAnimationFrame||function(t,i){return e.setTimeout(function(){t((new Date).getTime())},n[l])}}()}if(!e.cancelAnimationFrame){e.cancelAnimationFrame=function(){return e.webkitCancelRequestAnimationFrame||e.mozCancelRequestAnimationFrame||e.oCancelRequestAnimationFrame||e.msCancelRequestAnimationFrame||clearTimeout}()}})(jQuery,this);
(function ($) {
var options = { }; // no options
function init(plot) {
function onResize() {
var placeholder = plot.getPlaceholder();
// somebody might have hidden us and we can't plot
// when we don't have the dimensions
if (placeholder.width() == 0 || placeholder.height() == 0)
return;
plot.resize();
plot.setupGrid();
plot.draw();
}
function bindEvents(plot, eventHolder) {
plot.getPlaceholder().resize(onResize);
}
function shutdown(plot, eventHolder) {
plot.getPlaceholder().unbind("resize", onResize);
}
plot.hooks.bindEvents.push(bindEvents);
plot.hooks.shutdown.push(shutdown);
}
$.plot.plugins.push({
init: init,
options: options,
name: 'resize',
version: '1.0'
});
})(jQuery);
================================================
FILE: public/admin-panel/assets/libs/flot/jquery.flot.selection.js
================================================
/* Flot plugin for selecting regions of a plot.
Copyright (c) 2007-2014 IOLA and Ole Laursen.
Licensed under the MIT license.
The plugin supports these options:
selection: {
mode: null or "x" or "y" or "xy",
color: color,
shape: "round" or "miter" or "bevel",
minSize: number of pixels
}
Selection support is enabled by setting the mode to one of "x", "y" or "xy".
In "x" mode, the user will only be able to specify the x range, similarly for
"y" mode. For "xy", the selection becomes a rectangle where both ranges can be
specified. "color" is color of the selection (if you need to change the color
later on, you can get to it with plot.getOptions().selection.color). "shape"
is the shape of the corners of the selection.
"minSize" is the minimum size a selection can be in pixels. This value can
be customized to determine the smallest size a selection can be and still
have the selection rectangle be displayed. When customizing this value, the
fact that it refers to pixels, not axis units must be taken into account.
Thus, for example, if there is a bar graph in time mode with BarWidth set to 1
minute, setting "minSize" to 1 will not make the minimum selection size 1
minute, but rather 1 pixel. Note also that setting "minSize" to 0 will prevent
"plotunselected" events from being fired when the user clicks the mouse without
dragging.
When selection support is enabled, a "plotselected" event will be emitted on
the DOM element you passed into the plot function. The event handler gets a
parameter with the ranges selected on the axes, like this:
placeholder.bind( "plotselected", function( event, ranges ) {
alert("You selected " + ranges.xaxis.from + " to " + ranges.xaxis.to)
// similar for yaxis - with multiple axes, the extra ones are in
// x2axis, x3axis, ...
});
The "plotselected" event is only fired when the user has finished making the
selection. A "plotselecting" event is fired during the process with the same
parameters as the "plotselected" event, in case you want to know what's
happening while it's happening,
A "plotunselected" event with no arguments is emitted when the user clicks the
mouse to remove the selection. As stated above, setting "minSize" to 0 will
destroy this behavior.
The plugin allso adds the following methods to the plot object:
- setSelection( ranges, preventEvent )
Set the selection rectangle. The passed in ranges is on the same form as
returned in the "plotselected" event. If the selection mode is "x", you
should put in either an xaxis range, if the mode is "y" you need to put in
an yaxis range and both xaxis and yaxis if the selection mode is "xy", like
this:
setSelection({ xaxis: { from: 0, to: 10 }, yaxis: { from: 40, to: 60 } });
setSelection will trigger the "plotselected" event when called. If you don't
want that to happen, e.g. if you're inside a "plotselected" handler, pass
true as the second parameter. If you are using multiple axes, you can
specify the ranges on any of those, e.g. as x2axis/x3axis/... instead of
xaxis, the plugin picks the first one it sees.
- clearSelection( preventEvent )
Clear the selection rectangle. Pass in true to avoid getting a
"plotunselected" event.
- getSelection()
Returns the current selection in the same format as the "plotselected"
event. If there's currently no selection, the function returns null.
*/
(function ($) {
function init(plot) {
var selection = {
first: { x: -1, y: -1}, second: { x: -1, y: -1},
show: false,
active: false
};
// FIXME: The drag handling implemented here should be
// abstracted out, there's some similar code from a library in
// the navigation plugin, this should be massaged a bit to fit
// the Flot cases here better and reused. Doing this would
// make this plugin much slimmer.
var savedhandlers = {};
var mouseUpHandler = null;
function onMouseMove(e) {
if (selection.active) {
updateSelection(e);
plot.getPlaceholder().trigger("plotselecting", [ getSelection() ]);
}
}
function onMouseDown(e) {
if (e.which != 1) // only accept left-click
return;
// cancel out any text selections
document.body.focus();
// prevent text selection and drag in old-school browsers
if (document.onselectstart !== undefined && savedhandlers.onselectstart == null) {
savedhandlers.onselectstart = document.onselectstart;
document.onselectstart = function () { return false; };
}
if (document.ondrag !== undefined && savedhandlers.ondrag == null) {
savedhandlers.ondrag = document.ondrag;
document.ondrag = function () { return false; };
}
setSelectionPos(selection.first, e);
selection.active = true;
// this is a bit silly, but we have to use a closure to be
// able to whack the same handler again
mouseUpHandler = function (e) { onMouseUp(e); };
$(document).one("mouseup", mouseUpHandler);
}
function onMouseUp(e) {
mouseUpHandler = null;
// revert drag stuff for old-school browsers
if (document.onselectstart !== undefined)
document.onselectstart = savedhandlers.onselectstart;
if (document.ondrag !== undefined)
document.ondrag = savedhandlers.ondrag;
// no more dragging
selection.active = false;
updateSelection(e);
if (selectionIsSane())
triggerSelectedEvent();
else {
// this counts as a clear
plot.getPlaceholder().trigger("plotunselected", [ ]);
plot.getPlaceholder().trigger("plotselecting", [ null ]);
}
return false;
}
function getSelection() {
if (!selectionIsSane())
return null;
if (!selection.show) return null;
var r = {}, c1 = selection.first, c2 = selection.second;
$.each(plot.getAxes(), function (name, axis) {
if (axis.used) {
var p1 = axis.c2p(c1[axis.direction]), p2 = axis.c2p(c2[axis.direction]);
r[name] = { from: Math.min(p1, p2), to: Math.max(p1, p2) };
}
});
return r;
}
function triggerSelectedEvent() {
var r = getSelection();
plot.getPlaceholder().trigger("plotselected", [ r ]);
// backwards-compat stuff, to be removed in future
if (r.xaxis && r.yaxis)
plot.getPlaceholder().trigger("selected", [ { x1: r.xaxis.from, y1: r.yaxis.from, x2: r.xaxis.to, y2: r.yaxis.to } ]);
}
function clamp(min, value, max) {
return value < min ? min: (value > max ? max: value);
}
function setSelectionPos(pos, e) {
var o = plot.getOptions();
var offset = plot.getPlaceholder().offset();
var plotOffset = plot.getPlotOffset();
pos.x = clamp(0, e.pageX - offset.left - plotOffset.left, plot.width());
pos.y = clamp(0, e.pageY - offset.top - plotOffset.top, plot.height());
if (o.selection.mode == "y")
pos.x = pos == selection.first ? 0 : plot.width();
if (o.selection.mode == "x")
pos.y = pos == selection.first ? 0 : plot.height();
}
function updateSelection(pos) {
if (pos.pageX == null)
return;
setSelectionPos(selection.second, pos);
if (selectionIsSane()) {
selection.show = true;
plot.triggerRedrawOverlay();
}
else
clearSelection(true);
}
function clearSelection(preventEvent) {
if (selection.show) {
selection.show = false;
plot.triggerRedrawOverlay();
if (!preventEvent)
plot.getPlaceholder().trigger("plotunselected", [ ]);
}
}
// function taken from markings support in Flot
function extractRange(ranges, coord) {
var axis, from, to, key, axes = plot.getAxes();
for (var k in axes) {
axis = axes[k];
if (axis.direction == coord) {
key = coord + axis.n + "axis";
if (!ranges[key] && axis.n == 1)
key = coord + "axis"; // support x1axis as xaxis
if (ranges[key]) {
from = ranges[key].from;
to = ranges[key].to;
break;
}
}
}
// backwards-compat stuff - to be removed in future
if (!ranges[key]) {
axis = coord == "x" ? plot.getXAxes()[0] : plot.getYAxes()[0];
from = ranges[coord + "1"];
to = ranges[coord + "2"];
}
// auto-reverse as an added bonus
if (from != null && to != null && from > to) {
var tmp = from;
from = to;
to = tmp;
}
return { from: from, to: to, axis: axis };
}
function setSelection(ranges, preventEvent) {
var axis, range, o = plot.getOptions();
if (o.selection.mode == "y") {
selection.first.x = 0;
selection.second.x = plot.width();
}
else {
range = extractRange(ranges, "x");
selection.first.x = range.axis.p2c(range.from);
selection.second.x = range.axis.p2c(range.to);
}
if (o.selection.mode == "x") {
selection.first.y = 0;
selection.second.y = plot.height();
}
else {
range = extractRange(ranges, "y");
selection.first.y = range.axis.p2c(range.from);
selection.second.y = range.axis.p2c(range.to);
}
selection.show = true;
plot.triggerRedrawOverlay();
if (!preventEvent && selectionIsSane())
triggerSelectedEvent();
}
function selectionIsSane() {
var minSize = plot.getOptions().selection.minSize;
return Math.abs(selection.second.x - selection.first.x) >= minSize &&
Math.abs(selection.second.y - selection.first.y) >= minSize;
}
plot.clearSelection = clearSelection;
plot.setSelection = setSelection;
plot.getSelection = getSelection;
plot.hooks.bindEvents.push(function(plot, eventHolder) {
var o = plot.getOptions();
if (o.selection.mode != null) {
eventHolder.mousemove(onMouseMove);
eventHolder.mousedown(onMouseDown);
}
});
plot.hooks.drawOverlay.push(function (plot, ctx) {
// draw selection
if (selection.show && selectionIsSane()) {
var plotOffset = plot.getPlotOffset();
var o = plot.getOptions();
ctx.save();
ctx.translate(plotOffset.left, plotOffset.top);
var c = $.color.parse(o.selection.color);
ctx.strokeStyle = c.scale('a', 0.8).toString();
ctx.lineWidth = 1;
ctx.lineJoin = o.selection.shape;
ctx.fillStyle = c.scale('a', 0.4).toString();
var x = Math.min(selection.first.x, selection.second.x) + 0.5,
y = Math.min(selection.first.y, selection.second.y) + 0.5,
w = Math.abs(selection.second.x - selection.first.x) - 1,
h = Math.abs(selection.second.y - selection.first.y) - 1;
ctx.fillRect(x, y, w, h);
ctx.strokeRect(x, y, w, h);
ctx.restore();
}
});
plot.hooks.shutdown.push(function (plot, eventHolder) {
eventHolder.unbind("mousemove", onMouseMove);
eventHolder.unbind("mousedown", onMouseDown);
if (mouseUpHandler)
$(document).unbind("mouseup", mouseUpHandler);
});
}
$.plot.plugins.push({
init: init,
options: {
selection: {
mode: null, // one of null, "x", "y" or "xy"
color: "#e8cfac",
shape: "round", // one of "round", "miter", or "bevel"
minSize: 5 // minimum number of pixels
}
},
name: 'selection',
version: '1.1'
});
})(jQuery);
================================================
FILE: public/admin-panel/assets/libs/flot/jquery.flot.stack.js
================================================
/* Flot plugin for stacking data sets rather than overlyaing them.
Copyright (c) 2007-2014 IOLA and Ole Laursen.
Licensed under the MIT license.
The plugin assumes the data is sorted on x (or y if stacking horizontally).
For line charts, it is assumed that if a line has an undefined gap (from a
null point), then the line above it should have the same gap - insert zeros
instead of "null" if you want another behaviour. This also holds for the start
and end of the chart. Note that stacking a mix of positive and negative values
in most instances doesn't make sense (so it looks weird).
Two or more series are stacked when their "stack" attribute is set to the same
key (which can be any number or string or just "true"). To specify the default
stack, you can set the stack option like this:
series: {
stack: null/false, true, or a key (number/string)
}
You can also specify it for a single series, like this:
$.plot( $("#placeholder"), [{
data: [ ... ],
stack: true
}])
The stacking order is determined by the order of the data series in the array
(later series end up on top of the previous).
Internally, the plugin modifies the datapoints in each series, adding an
offset to the y value. For line series, extra data points are inserted through
interpolation. If there's a second y value, it's also adjusted (e.g for bar
charts or filled areas).
*/
(function ($) {
var options = {
series: { stack: null } // or number/string
};
function init(plot) {
function findMatchingSeries(s, allseries) {
var res = null;
for (var i = 0; i < allseries.length; ++i) {
if (s == allseries[i])
break;
if (allseries[i].stack == s.stack)
res = allseries[i];
}
return res;
}
function stackData(plot, s, datapoints) {
if (s.stack == null || s.stack === false)
return;
var other = findMatchingSeries(s, plot.getData());
if (!other)
return;
var ps = datapoints.pointsize,
points = datapoints.points,
otherps = other.datapoints.pointsize,
otherpoints = other.datapoints.points,
newpoints = [],
px, py, intery, qx, qy, bottom,
withlines = s.lines.show,
horizontal = s.bars.horizontal,
withbottom = ps > 2 && (horizontal ? datapoints.format[2].x : datapoints.format[2].y),
withsteps = withlines && s.lines.steps,
fromgap = true,
keyOffset = horizontal ? 1 : 0,
accumulateOffset = horizontal ? 0 : 1,
i = 0, j = 0, l, m;
while (true) {
if (i >= points.length)
break;
l = newpoints.length;
if (points[i] == null) {
// copy gaps
for (m = 0; m < ps; ++m)
newpoints.push(points[i + m]);
i += ps;
}
else if (j >= otherpoints.length) {
// for lines, we can't use the rest of the points
if (!withlines) {
for (m = 0; m < ps; ++m)
newpoints.push(points[i + m]);
}
i += ps;
}
else if (otherpoints[j] == null) {
// oops, got a gap
for (m = 0; m < ps; ++m)
newpoints.push(null);
fromgap = true;
j += otherps;
}
else {
// cases where we actually got two points
px = points[i + keyOffset];
py = points[i + accumulateOffset];
qx = otherpoints[j + keyOffset];
qy = otherpoints[j + accumulateOffset];
bottom = 0;
if (px == qx) {
for (m = 0; m < ps; ++m)
newpoints.push(points[i + m]);
newpoints[l + accumulateOffset] += qy;
bottom = qy;
i += ps;
j += otherps;
}
else if (px > qx) {
// we got past point below, might need to
// insert interpolated extra point
if (withlines && i > 0 && points[i - ps] != null) {
intery = py + (points[i - ps + accumulateOffset] - py) * (qx - px) / (points[i - ps + keyOffset] - px);
newpoints.push(qx);
newpoints.push(intery + qy);
for (m = 2; m < ps; ++m)
newpoints.push(points[i + m]);
bottom = qy;
}
j += otherps;
}
else { // px < qx
if (fromgap && withlines) {
// if we come from a gap, we just skip this point
i += ps;
continue;
}
for (m = 0; m < ps; ++m)
newpoints.push(points[i + m]);
// we might be able to interpolate a point below,
// this can give us a better y
if (withlines && j > 0 && otherpoints[j - otherps] != null)
bottom = qy + (otherpoints[j - otherps + accumulateOffset] - qy) * (px - qx) / (otherpoints[j - otherps + keyOffset] - qx);
newpoints[l + accumulateOffset] += bottom;
i += ps;
}
fromgap = false;
if (l != newpoints.length && withbottom)
newpoints[l + 2] += bottom;
}
// maintain the line steps invariant
if (withsteps && l != newpoints.length && l > 0
&& newpoints[l] != null
&& newpoints[l] != newpoints[l - ps]
&& newpoints[l + 1] != newpoints[l - ps + 1]) {
for (m = 0; m < ps; ++m)
newpoints[l + ps + m] = newpoints[l + m];
newpoints[l + 1] = newpoints[l - ps + 1];
}
}
datapoints.points = newpoints;
}
plot.hooks.processDatapoints.push(stackData);
}
$.plot.plugins.push({
init: init,
options: options,
name: 'stack',
version: '1.2'
});
})(jQuery);
================================================
FILE: public/admin-panel/assets/libs/flot/jquery.flot.symbol.js
================================================
/* Flot plugin that adds some extra symbols for plotting points.
Copyright (c) 2007-2014 IOLA and Ole Laursen.
Licensed under the MIT license.
The symbols are accessed as strings through the standard symbol options:
series: {
points: {
symbol: "square" // or "diamond", "triangle", "cross"
}
}
*/
(function ($) {
function processRawData(plot, series, datapoints) {
// we normalize the area of each symbol so it is approximately the
// same as a circle of the given radius
var handlers = {
square: function (ctx, x, y, radius, shadow) {
// pi * r^2 = (2s)^2 => s = r * sqrt(pi)/2
var size = radius * Math.sqrt(Math.PI) / 2;
ctx.rect(x - size, y - size, size + size, size + size);
},
diamond: function (ctx, x, y, radius, shadow) {
// pi * r^2 = 2s^2 => s = r * sqrt(pi/2)
var size = radius * Math.sqrt(Math.PI / 2);
ctx.moveTo(x - size, y);
ctx.lineTo(x, y - size);
ctx.lineTo(x + size, y);
ctx.lineTo(x, y + size);
ctx.lineTo(x - size, y);
},
triangle: function (ctx, x, y, radius, shadow) {
// pi * r^2 = 1/2 * s^2 * sin (pi / 3) => s = r * sqrt(2 * pi / sin(pi / 3))
var size = radius * Math.sqrt(2 * Math.PI / Math.sin(Math.PI / 3));
var height = size * Math.sin(Math.PI / 3);
ctx.moveTo(x - size/2, y + height/2);
ctx.lineTo(x + size/2, y + height/2);
if (!shadow) {
ctx.lineTo(x, y - height/2);
ctx.lineTo(x - size/2, y + height/2);
}
},
cross: function (ctx, x, y, radius, shadow) {
// pi * r^2 = (2s)^2 => s = r * sqrt(pi)/2
var size = radius * Math.sqrt(Math.PI) / 2;
ctx.moveTo(x - size, y - size);
ctx.lineTo(x + size, y + size);
ctx.moveTo(x - size, y + size);
ctx.lineTo(x + size, y - size);
}
};
var s = series.points.symbol;
if (handlers[s])
series.points.symbol = handlers[s];
}
function init(plot) {
plot.hooks.processDatapoints.push(processRawData);
}
$.plot.plugins.push({
init: init,
name: 'symbols',
version: '1.0'
});
})(jQuery);
================================================
FILE: public/admin-panel/assets/libs/flot/jquery.flot.threshold.js
================================================
/* Flot plugin for thresholding data.
Copyright (c) 2007-2014 IOLA and Ole Laursen.
Licensed under the MIT license.
The plugin supports these options:
series: {
threshold: {
below: number
color: colorspec
}
}
It can also be applied to a single series, like this:
$.plot( $("#placeholder"), [{
data: [ ... ],
threshold: { ... }
}])
An array can be passed for multiple thresholding, like this:
threshold: [{
below: number1
color: color1
},{
below: number2
color: color2
}]
These multiple threshold objects can be passed in any order since they are
sorted by the processing function.
The data points below "below" are drawn with the specified color. This makes
it easy to mark points below 0, e.g. for budget data.
Internally, the plugin works by splitting the data into two series, above and
below the threshold. The extra series below the threshold will have its label
cleared and the special "originSeries" attribute set to the original series.
You may need to check for this in hover events.
*/
(function ($) {
var options = {
series: { threshold: null } // or { below: number, color: color spec}
};
function init(plot) {
function thresholdData(plot, s, datapoints, below, color) {
var ps = datapoints.pointsize, i, x, y, p, prevp,
thresholded = $.extend({}, s); // note: shallow copy
thresholded.datapoints = { points: [], pointsize: ps, format: datapoints.format };
thresholded.label = null;
thresholded.color = color;
thresholded.threshold = null;
thresholded.originSeries = s;
thresholded.data = [];
var origpoints = datapoints.points,
addCrossingPoints = s.lines.show;
var threspoints = [];
var newpoints = [];
var m;
for (i = 0; i < origpoints.length; i += ps) {
x = origpoints[i];
y = origpoints[i + 1];
prevp = p;
if (y < below)
p = threspoints;
else
p = newpoints;
if (addCrossingPoints && prevp != p && x != null
&& i > 0 && origpoints[i - ps] != null) {
var interx = x + (below - y) * (x - origpoints[i - ps]) / (y - origpoints[i - ps + 1]);
prevp.push(interx);
prevp.push(below);
for (m = 2; m < ps; ++m)
prevp.push(origpoints[i + m]);
p.push(null); // start new segment
p.push(null);
for (m = 2; m < ps; ++m)
p.push(origpoints[i + m]);
p.push(interx);
p.push(below);
for (m = 2; m < ps; ++m)
p.push(origpoints[i + m]);
}
p.push(x);
p.push(y);
for (m = 2; m < ps; ++m)
p.push(origpoints[i + m]);
}
datapoints.points = newpoints;
thresholded.datapoints.points = threspoints;
if (thresholded.datapoints.points.length > 0) {
var origIndex = $.inArray(s, plot.getData());
// Insert newly-generated series right after original one (to prevent it from becoming top-most)
plot.getData().splice(origIndex + 1, 0, thresholded);
}
// FIXME: there are probably some edge cases left in bars
}
function processThresholds(plot, s, datapoints) {
if (!s.threshold)
return;
if (s.threshold instanceof Array) {
s.threshold.sort(function(a, b) {
return a.below - b.below;
});
$(s.threshold).each(function(i, th) {
thresholdData(plot, s, datapoints, th.below, th.color);
});
}
else {
thresholdData(plot, s, datapoints, s.threshold.below, s.threshold.color);
}
}
plot.hooks.processDatapoints.push(processThresholds);
}
$.plot.plugins.push({
init: init,
options: options,
name: 'threshold',
version: '1.2'
});
})(jQuery);
================================================
FILE: public/admin-panel/assets/libs/flot/jquery.flot.time.js
================================================
/* Pretty handling of time axes.
Copyright (c) 2007-2014 IOLA and Ole Laursen.
Licensed under the MIT license.
Set axis.mode to "time" to enable. See the section "Time series data" in
API.txt for details.
*/
(function($) {
var options = {
xaxis: {
timezone: null, // "browser" for local to the client or timezone for timezone-js
timeformat: null, // format string to use
twelveHourClock: false, // 12 or 24 time in time mode
monthNames: null // list of names of months
}
};
// round to nearby lower multiple of base
function floorInBase(n, base) {
return base * Math.floor(n / base);
}
// Returns a string with the date d formatted according to fmt.
// A subset of the Open Group's strftime format is supported.
function formatDate(d, fmt, monthNames, dayNames) {
if (typeof d.strftime == "function") {
return d.strftime(fmt);
}
var leftPad = function(n, pad) {
n = "" + n;
pad = "" + (pad == null ? "0" : pad);
return n.length == 1 ? pad + n : n;
};
var r = [];
var escape = false;
var hours = d.getHours();
var isAM = hours < 12;
if (monthNames == null) {
monthNames = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"];
}
if (dayNames == null) {
dayNames = ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"];
}
var hours12;
if (hours > 12) {
hours12 = hours - 12;
} else if (hours == 0) {
hours12 = 12;
} else {
hours12 = hours;
}
for (var i = 0; i < fmt.length; ++i) {
var c = fmt.charAt(i);
if (escape) {
switch (c) {
case 'a': c = "" + dayNames[d.getDay()]; break;
case 'b': c = "" + monthNames[d.getMonth()]; break;
case 'd': c = leftPad(d.getDate()); break;
case 'e': c = leftPad(d.getDate(), " "); break;
case 'h': // For back-compat with 0.7; remove in 1.0
case 'H': c = leftPad(hours); break;
case 'I': c = leftPad(hours12); break;
case 'l': c = leftPad(hours12, " "); break;
case 'm': c = leftPad(d.getMonth() + 1); break;
case 'M': c = leftPad(d.getMinutes()); break;
// quarters not in Open Group's strftime specification
case 'q':
c = "" + (Math.floor(d.getMonth() / 3) + 1); break;
case 'S': c = leftPad(d.getSeconds()); break;
case 'y': c = leftPad(d.getFullYear() % 100); break;
case 'Y': c = "" + d.getFullYear(); break;
case 'p': c = (isAM) ? ("" + "am") : ("" + "pm"); break;
case 'P': c = (isAM) ? ("" + "AM") : ("" + "PM"); break;
case 'w': c = "" + d.getDay(); break;
}
r.push(c);
escape = false;
} else {
if (c == "%") {
escape = true;
} else {
r.push(c);
}
}
}
return r.join("");
}
// To have a consistent view of time-based data independent of which time
// zone the client happens to be in we need a date-like object independent
// of time zones. This is done through a wrapper that only calls the UTC
// versions of the accessor methods.
function makeUtcWrapper(d) {
function addProxyMethod(sourceObj, sourceMethod, targetObj, targetMethod) {
sourceObj[sourceMethod] = function() {
return targetObj[targetMethod].apply(targetObj, arguments);
};
};
var utc = {
date: d
};
// support strftime, if found
if (d.strftime != undefined) {
addProxyMethod(utc, "strftime", d, "strftime");
}
addProxyMethod(utc, "getTime", d, "getTime");
addProxyMethod(utc, "setTime", d, "setTime");
var props = ["Date", "Day", "FullYear", "Hours", "Milliseconds", "Minutes", "Month", "Seconds"];
for (var p = 0; p < props.length; p++) {
addProxyMethod(utc, "get" + props[p], d, "getUTC" + props[p]);
addProxyMethod(utc, "set" + props[p], d, "setUTC" + props[p]);
}
return utc;
};
// select time zone strategy. This returns a date-like object tied to the
// desired timezone
function dateGenerator(ts, opts) {
if (opts.timezone == "browser") {
return new Date(ts);
} else if (!opts.timezone || opts.timezone == "utc") {
return makeUtcWrapper(new Date(ts));
} else if (typeof timezoneJS != "undefined" && typeof timezoneJS.Date != "undefined") {
var d = new timezoneJS.Date();
// timezone-js is fickle, so be sure to set the time zone before
// setting the time.
d.setTimezone(opts.timezone);
d.setTime(ts);
return d;
} else {
return makeUtcWrapper(new Date(ts));
}
}
// map of app. size of time units in milliseconds
var timeUnitSize = {
"second": 1000,
"minute": 60 * 1000,
"hour": 60 * 60 * 1000,
"day": 24 * 60 * 60 * 1000,
"month": 30 * 24 * 60 * 60 * 1000,
"quarter": 3 * 30 * 24 * 60 * 60 * 1000,
"year": 365.2425 * 24 * 60 * 60 * 1000
};
// the allowed tick sizes, after 1 year we use
// an integer algorithm
var baseSpec = [
[1, "second"], [2, "second"], [5, "second"], [10, "second"],
[30, "second"],
[1, "minute"], [2, "minute"], [5, "minute"], [10, "minute"],
[30, "minute"],
[1, "hour"], [2, "hour"], [4, "hour"],
[8, "hour"], [12, "hour"],
[1, "day"], [2, "day"], [3, "day"],
[0.25, "month"], [0.5, "month"], [1, "month"],
[2, "month"]
];
// we don't know which variant(s) we'll need yet, but generating both is
// cheap
var specMonths = baseSpec.concat([[3, "month"], [6, "month"],
[1, "year"]]);
var specQuarters = baseSpec.concat([[1, "quarter"], [2, "quarter"],
[1, "year"]]);
function init(plot) {
plot.hooks.processOptions.push(function (plot, options) {
$.each(plot.getAxes(), function(axisName, axis) {
var opts = axis.options;
if (opts.mode == "time") {
axis.tickGenerator = function(axis) {
var ticks = [];
var d = dateGenerator(axis.min, opts);
var minSize = 0;
// make quarter use a possibility if quarters are
// mentioned in either of these options
var spec = (opts.tickSize && opts.tickSize[1] ===
"quarter") ||
(opts.minTickSize && opts.minTickSize[1] ===
"quarter") ? specQuarters : specMonths;
if (opts.minTickSize != null) {
if (typeof opts.tickSize == "number") {
minSize = opts.tickSize;
} else {
minSize = opts.minTickSize[0] * timeUnitSize[opts.minTickSize[1]];
}
}
for (var i = 0; i < spec.length - 1; ++i) {
if (axis.delta < (spec[i][0] * timeUnitSize[spec[i][1]]
+ spec[i + 1][0] * timeUnitSize[spec[i + 1][1]]) / 2
&& spec[i][0] * timeUnitSize[spec[i][1]] >= minSize) {
break;
}
}
var size = spec[i][0];
var unit = spec[i][1];
// special-case the possibility of several years
if (unit == "year") {
// if given a minTickSize in years, just use it,
// ensuring that it's an integer
if (opts.minTickSize != null && opts.minTickSize[1] == "year") {
size = Math.floor(opts.minTickSize[0]);
} else {
var magn = Math.pow(10, Math.floor(Math.log(axis.delta / timeUnitSize.year) / Math.LN10));
var norm = (axis.delta / timeUnitSize.year) / magn;
if (norm < 1.5) {
size = 1;
} else if (norm < 3) {
size = 2;
} else if (norm < 7.5) {
size = 5;
} else {
size = 10;
}
size *= magn;
}
// minimum size for years is 1
if (size < 1) {
size = 1;
}
}
axis.tickSize = opts.tickSize || [size, unit];
var tickSize = axis.tickSize[0];
unit = axis.tickSize[1];
var step = tickSize * timeUnitSize[unit];
if (unit == "second") {
d.setSeconds(floorInBase(d.getSeconds(), tickSize));
} else if (unit == "minute") {
d.setMinutes(floorInBase(d.getMinutes(), tickSize));
} else if (unit == "hour") {
d.setHours(floorInBase(d.getHours(), tickSize));
} else if (unit == "month") {
d.setMonth(floorInBase(d.getMonth(), tickSize));
} else if (unit == "quarter") {
d.setMonth(3 * floorInBase(d.getMonth() / 3,
tickSize));
} else if (unit == "year") {
d.setFullYear(floorInBase(d.getFullYear(), tickSize));
}
// reset smaller components
d.setMilliseconds(0);
if (step >= timeUnitSize.minute) {
d.setSeconds(0);
}
if (step >= timeUnitSize.hour) {
d.setMinutes(0);
}
if (step >= timeUnitSize.day) {
d.setHours(0);
}
if (step >= timeUnitSize.day * 4) {
d.setDate(1);
}
if (step >= timeUnitSize.month * 2) {
d.setMonth(floorInBase(d.getMonth(), 3));
}
if (step >= timeUnitSize.quarter * 2) {
d.setMonth(floorInBase(d.getMonth(), 6));
}
if (step >= timeUnitSize.year) {
d.setMonth(0);
}
var carry = 0;
var v = Number.NaN;
var prev;
do {
prev = v;
v = d.getTime();
ticks.push(v);
if (unit == "month" || unit == "quarter") {
if (tickSize < 1) {
// a bit complicated - we'll divide the
// month/quarter up but we need to take
// care of fractions so we don't end up in
// the middle of a day
d.setDate(1);
var start = d.getTime();
d.setMonth(d.getMonth() +
(unit == "quarter" ? 3 : 1));
var end = d.getTime();
d.setTime(v + carry * timeUnitSize.hour + (end - start) * tickSize);
carry = d.getHours();
d.setHours(0);
} else {
d.setMonth(d.getMonth() +
tickSize * (unit == "quarter" ? 3 : 1));
}
} else if (unit == "year") {
d.setFullYear(d.getFullYear() + tickSize);
} else {
d.setTime(v + step);
}
} while (v < axis.max && v != prev);
return ticks;
};
axis.tickFormatter = function (v, axis) {
var d = dateGenerator(v, axis.options);
// first check global format
if (opts.timeformat != null) {
return formatDate(d, opts.timeformat, opts.monthNames, opts.dayNames);
}
// possibly use quarters if quarters are mentioned in
// any of these places
var useQuarters = (axis.options.tickSize &&
axis.options.tickSize[1] == "quarter") ||
(axis.options.minTickSize &&
axis.options.minTickSize[1] == "quarter");
var t = axis.tickSize[0] * timeUnitSize[axis.tickSize[1]];
var span = axis.max - axis.min;
var suffix = (opts.twelveHourClock) ? " %p" : "";
var hourCode = (opts.twelveHourClock) ? "%I" : "%H";
var fmt;
if (t < timeUnitSize.minute) {
fmt = hourCode + ":%M:%S" + suffix;
} else if (t < timeUnitSize.day) {
if (span < 2 * timeUnitSize.day) {
fmt = hourCode + ":%M" + suffix;
} else {
fmt = "%b %d " + hourCode + ":%M" + suffix;
}
} else if (t < timeUnitSize.month) {
fmt = "%b %d";
} else if ((useQuarters && t < timeUnitSize.quarter) ||
(!useQuarters && t < timeUnitSize.year)) {
if (span < timeUnitSize.year) {
fmt = "%b";
} else {
fmt = "%b %Y";
}
} else if (useQuarters && t < timeUnitSize.year) {
if (span < timeUnitSize.year) {
fmt = "Q%q";
} else {
fmt = "Q%q %Y";
}
} else {
fmt = "%Y";
}
var rt = formatDate(d, fmt, opts.monthNames, opts.dayNames);
return rt;
};
}
});
});
}
$.plot.plugins.push({
init: init,
options: options,
name: 'time',
version: '1.0'
});
// Time-axis support used to be in Flot core, which exposed the
// formatDate function on the plot object. Various plugins depend
// on the function, so we need to re-expose it here.
$.plot.formatDate = formatDate;
$.plot.dateGenerator = dateGenerator;
})(jQuery);
================================================
FILE: public/admin-panel/assets/libs/flot/jquery.js
================================================
/*!
* jQuery JavaScript Library v1.8.3
* http://jquery.com/
*
* Includes Sizzle.js
* http://sizzlejs.com/
*
* Copyright 2012 jQuery Foundation and other contributors
* Released under the MIT license
* http://jquery.org/license
*
* Date: Tue Nov 13 2012 08:20:33 GMT-0500 (Eastern Standard Time)
*/
(function( window, undefined ) {
var
// A central reference to the root jQuery(document)
rootjQuery,
// The deferred used on DOM ready
readyList,
// Use the correct document accordingly with window argument (sandbox)
document = window.document,
location = window.location,
navigator = window.navigator,
// Map over jQuery in case of overwrite
_jQuery = window.jQuery,
// Map over the $ in case of overwrite
_$ = window.$,
// Save a reference to some core methods
core_push = Array.prototype.push,
core_slice = Array.prototype.slice,
core_indexOf = Array.prototype.indexOf,
core_toString = Object.prototype.toString,
core_hasOwn = Object.prototype.hasOwnProperty,
core_trim = String.prototype.trim,
// Define a local copy of jQuery
jQuery = function( selector, context ) {
// The jQuery object is actually just the init constructor 'enhanced'
return new jQuery.fn.init( selector, context, rootjQuery );
},
// Used for matching numbers
core_pnum = /[\-+]?(?:\d*\.|)\d+(?:[eE][\-+]?\d+|)/.source,
// Used for detecting and trimming whitespace
core_rnotwhite = /\S/,
core_rspace = /\s+/,
// Make sure we trim BOM and NBSP (here's looking at you, Safari 5.0 and IE)
rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,
// A simple way to check for HTML strings
// Prioritize #id over to avoid XSS via location.hash (#9521)
rquickExpr = /^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,
// Match a standalone tag
rsingleTag = /^<(\w+)\s*\/?>(?:<\/\1>|)$/,
// JSON RegExp
rvalidchars = /^[\],:{}\s]*$/,
rvalidbraces = /(?:^|:|,)(?:\s*\[)+/g,
rvalidescape = /\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g,
rvalidtokens = /"[^"\\\r\n]*"|true|false|null|-?(?:\d\d*\.|)\d+(?:[eE][\-+]?\d+|)/g,
// Matches dashed string for camelizing
rmsPrefix = /^-ms-/,
rdashAlpha = /-([\da-z])/gi,
// Used by jQuery.camelCase as callback to replace()
fcamelCase = function( all, letter ) {
return ( letter + "" ).toUpperCase();
},
// The ready event handler and self cleanup method
DOMContentLoaded = function() {
if ( document.addEventListener ) {
document.removeEventListener( "DOMContentLoaded", DOMContentLoaded, false );
jQuery.ready();
} else if ( document.readyState === "complete" ) {
// we're here because readyState === "complete" in oldIE
// which is good enough for us to call the dom ready!
document.detachEvent( "onreadystatechange", DOMContentLoaded );
jQuery.ready();
}
},
// [[Class]] -> type pairs
class2type = {};
jQuery.fn = jQuery.prototype = {
constructor: jQuery,
init: function( selector, context, rootjQuery ) {
var match, elem, ret, doc;
// Handle $(""), $(null), $(undefined), $(false)
if ( !selector ) {
return this;
}
// Handle $(DOMElement)
if ( selector.nodeType ) {
this.context = this[0] = selector;
this.length = 1;
return this;
}
// Handle HTML strings
if ( typeof selector === "string" ) {
if ( selector.charAt(0) === "<" && selector.charAt( selector.length - 1 ) === ">" && selector.length >= 3 ) {
// Assume that strings that start and end with <> are HTML and skip the regex check
match = [ null, selector, null ];
} else {
match = rquickExpr.exec( selector );
}
// Match html or make sure no context is specified for #id
if ( match && (match[1] || !context) ) {
// HANDLE: $(html) -> $(array)
if ( match[1] ) {
context = context instanceof jQuery ? context[0] : context;
doc = ( context && context.nodeType ? context.ownerDocument || context : document );
// scripts is true for back-compat
selector = jQuery.parseHTML( match[1], doc, true );
if ( rsingleTag.test( match[1] ) && jQuery.isPlainObject( context ) ) {
this.attr.call( selector, context, true );
}
return jQuery.merge( this, selector );
// HANDLE: $(#id)
} else {
elem = document.getElementById( match[2] );
// Check parentNode to catch when Blackberry 4.6 returns
// nodes that are no longer in the document #6963
if ( elem && elem.parentNode ) {
// Handle the case where IE and Opera return items
// by name instead of ID
if ( elem.id !== match[2] ) {
return rootjQuery.find( selector );
}
// Otherwise, we inject the element directly into the jQuery object
this.length = 1;
this[0] = elem;
}
this.context = document;
this.selector = selector;
return this;
}
// HANDLE: $(expr, $(...))
} else if ( !context || context.jquery ) {
return ( context || rootjQuery ).find( selector );
// HANDLE: $(expr, context)
// (which is just equivalent to: $(context).find(expr)
} else {
return this.constructor( context ).find( selector );
}
// HANDLE: $(function)
// Shortcut for document ready
} else if ( jQuery.isFunction( selector ) ) {
return rootjQuery.ready( selector );
}
if ( selector.selector !== undefined ) {
this.selector = selector.selector;
this.context = selector.context;
}
return jQuery.makeArray( selector, this );
},
// Start with an empty selector
selector: "",
// The current version of jQuery being used
jquery: "1.8.3",
// The default length of a jQuery object is 0
length: 0,
// The number of elements contained in the matched element set
size: function() {
return this.length;
},
toArray: function() {
return core_slice.call( this );
},
// Get the Nth element in the matched element set OR
// Get the whole matched element set as a clean array
get: function( num ) {
return num == null ?
// Return a 'clean' array
this.toArray() :
// Return just the object
( num < 0 ? this[ this.length + num ] : this[ num ] );
},
// Take an array of elements and push it onto the stack
// (returning the new matched element set)
pushStack: function( elems, name, selector ) {
// Build a new jQuery matched element set
var ret = jQuery.merge( this.constructor(), elems );
// Add the old object onto the stack (as a reference)
ret.prevObject = this;
ret.context = this.context;
if ( name === "find" ) {
ret.selector = this.selector + ( this.selector ? " " : "" ) + selector;
} else if ( name ) {
ret.selector = this.selector + "." + name + "(" + selector + ")";
}
// Return the newly-formed element set
return ret;
},
// Execute a callback for every element in the matched set.
// (You can seed the arguments with an array of args, but this is
// only used internally.)
each: function( callback, args ) {
return jQuery.each( this, callback, args );
},
ready: function( fn ) {
// Add the callback
jQuery.ready.promise().done( fn );
return this;
},
eq: function( i ) {
i = +i;
return i === -1 ?
this.slice( i ) :
this.slice( i, i + 1 );
},
first: function() {
return this.eq( 0 );
},
last: function() {
return this.eq( -1 );
},
slice: function() {
return this.pushStack( core_slice.apply( this, arguments ),
"slice", core_slice.call(arguments).join(",") );
},
map: function( callback ) {
return this.pushStack( jQuery.map(this, function( elem, i ) {
return callback.call( elem, i, elem );
}));
},
end: function() {
return this.prevObject || this.constructor(null);
},
// For internal use only.
// Behaves like an Array's method, not like a jQuery method.
push: core_push,
sort: [].sort,
splice: [].splice
};
// Give the init function the jQuery prototype for later instantiation
jQuery.fn.init.prototype = jQuery.fn;
jQuery.extend = jQuery.fn.extend = function() {
var options, name, src, copy, copyIsArray, clone,
target = arguments[0] || {},
i = 1,
length = arguments.length,
deep = false;
// Handle a deep copy situation
if ( typeof target === "boolean" ) {
deep = target;
target = arguments[1] || {};
// skip the boolean and the target
i = 2;
}
// Handle case when target is a string or something (possible in deep copy)
if ( typeof target !== "object" && !jQuery.isFunction(target) ) {
target = {};
}
// extend jQuery itself if only one argument is passed
if ( length === i ) {
target = this;
--i;
}
for ( ; i < length; i++ ) {
// Only deal with non-null/undefined values
if ( (options = arguments[ i ]) != null ) {
// Extend the base object
for ( name in options ) {
src = target[ name ];
copy = options[ name ];
// Prevent never-ending loop
if ( target === copy ) {
continue;
}
// Recurse if we're merging plain objects or arrays
if ( deep && copy && ( jQuery.isPlainObject(copy) || (copyIsArray = jQuery.isArray(copy)) ) ) {
if ( copyIsArray ) {
copyIsArray = false;
clone = src && jQuery.isArray(src) ? src : [];
} else {
clone = src && jQuery.isPlainObject(src) ? src : {};
}
// Never move original objects, clone them
target[ name ] = jQuery.extend( deep, clone, copy );
// Don't bring in undefined values
} else if ( copy !== undefined ) {
target[ name ] = copy;
}
}
}
}
// Return the modified object
return target;
};
jQuery.extend({
noConflict: function( deep ) {
if ( window.$ === jQuery ) {
window.$ = _$;
}
if ( deep && window.jQuery === jQuery ) {
window.jQuery = _jQuery;
}
return jQuery;
},
// Is the DOM ready to be used? Set to true once it occurs.
isReady: false,
// A counter to track how many items to wait for before
// the ready event fires. See #6781
readyWait: 1,
// Hold (or release) the ready event
holdReady: function( hold ) {
if ( hold ) {
jQuery.readyWait++;
} else {
jQuery.ready( true );
}
},
// Handle when the DOM is ready
ready: function( wait ) {
// Abort if there are pending holds or we're already ready
if ( wait === true ? --jQuery.readyWait : jQuery.isReady ) {
return;
}
// Make sure body exists, at least, in case IE gets a little overzealous (ticket #5443).
if ( !document.body ) {
return setTimeout( jQuery.ready, 1 );
}
// Remember that the DOM is ready
jQuery.isReady = true;
// If a normal DOM Ready event fired, decrement, and wait if need be
if ( wait !== true && --jQuery.readyWait > 0 ) {
return;
}
// If there are functions bound, to execute
readyList.resolveWith( document, [ jQuery ] );
// Trigger any bound ready events
if ( jQuery.fn.trigger ) {
jQuery( document ).trigger("ready").off("ready");
}
},
// See test/unit/core.js for details concerning isFunction.
// Since version 1.3, DOM methods and functions like alert
// aren't supported. They return false on IE (#2968).
isFunction: function( obj ) {
return jQuery.type(obj) === "function";
},
isArray: Array.isArray || function( obj ) {
return jQuery.type(obj) === "array";
},
isWindow: function( obj ) {
return obj != null && obj == obj.window;
},
isNumeric: function( obj ) {
return !isNaN( parseFloat(obj) ) && isFinite( obj );
},
type: function( obj ) {
return obj == null ?
String( obj ) :
class2type[ core_toString.call(obj) ] || "object";
},
isPlainObject: function( obj ) {
// Must be an Object.
// Because of IE, we also have to check the presence of the constructor property.
// Make sure that DOM nodes and window objects don't pass through, as well
if ( !obj || jQuery.type(obj) !== "object" || obj.nodeType || jQuery.isWindow( obj ) ) {
return false;
}
try {
// Not own constructor property must be Object
if ( obj.constructor &&
!core_hasOwn.call(obj, "constructor") &&
!core_hasOwn.call(obj.constructor.prototype, "isPrototypeOf") ) {
return false;
}
} catch ( e ) {
// IE8,9 Will throw exceptions on certain host objects #9897
return false;
}
// Own properties are enumerated firstly, so to speed up,
// if last one is own, then all properties are own.
var key;
for ( key in obj ) {}
return key === undefined || core_hasOwn.call( obj, key );
},
isEmptyObject: function( obj ) {
var name;
for ( name in obj ) {
return false;
}
return true;
},
error: function( msg ) {
throw new Error( msg );
},
// data: string of html
// context (optional): If specified, the fragment will be created in this context, defaults to document
// scripts (optional): If true, will include scripts passed in the html string
parseHTML: function( data, context, scripts ) {
var parsed;
if ( !data || typeof data !== "string" ) {
return null;
}
if ( typeof context === "boolean" ) {
scripts = context;
context = 0;
}
context = context || document;
// Single tag
if ( (parsed = rsingleTag.exec( data )) ) {
return [ context.createElement( parsed[1] ) ];
}
parsed = jQuery.buildFragment( [ data ], context, scripts ? null : [] );
return jQuery.merge( [],
(parsed.cacheable ? jQuery.clone( parsed.fragment ) : parsed.fragment).childNodes );
},
parseJSON: function( data ) {
if ( !data || typeof data !== "string") {
return null;
}
// Make sure leading/trailing whitespace is removed (IE can't handle it)
data = jQuery.trim( data );
// Attempt to parse using the native JSON parser first
if ( window.JSON && window.JSON.parse ) {
return window.JSON.parse( data );
}
// Make sure the incoming data is actual JSON
// Logic borrowed from http://json.org/json2.js
if ( rvalidchars.test( data.replace( rvalidescape, "@" )
.replace( rvalidtokens, "]" )
.replace( rvalidbraces, "")) ) {
return ( new Function( "return " + data ) )();
}
jQuery.error( "Invalid JSON: " + data );
},
// Cross-browser xml parsing
parseXML: function( data ) {
var xml, tmp;
if ( !data || typeof data !== "string" ) {
return null;
}
try {
if ( window.DOMParser ) { // Standard
tmp = new DOMParser();
xml = tmp.parseFromString( data , "text/xml" );
} else { // IE
xml = new ActiveXObject( "Microsoft.XMLDOM" );
xml.async = "false";
xml.loadXML( data );
}
} catch( e ) {
xml = undefined;
}
if ( !xml || !xml.documentElement || xml.getElementsByTagName( "parsererror" ).length ) {
jQuery.error( "Invalid XML: " + data );
}
return xml;
},
noop: function() {},
// Evaluates a script in a global context
// Workarounds based on findings by Jim Driscoll
// http://weblogs.java.net/blog/driscoll/archive/2009/09/08/eval-javascript-global-context
globalEval: function( data ) {
if ( data && core_rnotwhite.test( data ) ) {
// We use execScript on Internet Explorer
// We use an anonymous function so that context is window
// rather than jQuery in Firefox
( window.execScript || function( data ) {
window[ "eval" ].call( window, data );
} )( data );
}
},
// Convert dashed to camelCase; used by the css and data modules
// Microsoft forgot to hump their vendor prefix (#9572)
camelCase: function( string ) {
return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase );
},
nodeName: function( elem, name ) {
return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();
},
// args is for internal usage only
each: function( obj, callback, args ) {
var name,
i = 0,
length = obj.length,
isObj = length === undefined || jQuery.isFunction( obj );
if ( args ) {
if ( isObj ) {
for ( name in obj ) {
if ( callback.apply( obj[ name ], args ) === false ) {
break;
}
}
} else {
for ( ; i < length; ) {
if ( callback.apply( obj[ i++ ], args ) === false ) {
break;
}
}
}
// A special, fast, case for the most common use of each
} else {
if ( isObj ) {
for ( name in obj ) {
if ( callback.call( obj[ name ], name, obj[ name ] ) === false ) {
break;
}
}
} else {
for ( ; i < length; ) {
if ( callback.call( obj[ i ], i, obj[ i++ ] ) === false ) {
break;
}
}
}
}
return obj;
},
// Use native String.trim function wherever possible
trim: core_trim && !core_trim.call("\uFEFF\xA0") ?
function( text ) {
return text == null ?
"" :
core_trim.call( text );
} :
// Otherwise use our own trimming functionality
function( text ) {
return text == null ?
"" :
( text + "" ).replace( rtrim, "" );
},
// results is for internal usage only
makeArray: function( arr, results ) {
var type,
ret = results || [];
if ( arr != null ) {
// The window, strings (and functions) also have 'length'
// Tweaked logic slightly to handle Blackberry 4.7 RegExp issues #6930
type = jQuery.type( arr );
if ( arr.length == null || type === "string" || type === "function" || type === "regexp" || jQuery.isWindow( arr ) ) {
core_push.call( ret, arr );
} else {
jQuery.merge( ret, arr );
}
}
return ret;
},
inArray: function( elem, arr, i ) {
var len;
if ( arr ) {
if ( core_indexOf ) {
return core_indexOf.call( arr, elem, i );
}
len = arr.length;
i = i ? i < 0 ? Math.max( 0, len + i ) : i : 0;
for ( ; i < len; i++ ) {
// Skip accessing in sparse arrays
if ( i in arr && arr[ i ] === elem ) {
return i;
}
}
}
return -1;
},
merge: function( first, second ) {
var l = second.length,
i = first.length,
j = 0;
if ( typeof l === "number" ) {
for ( ; j < l; j++ ) {
first[ i++ ] = second[ j ];
}
} else {
while ( second[j] !== undefined ) {
first[ i++ ] = second[ j++ ];
}
}
first.length = i;
return first;
},
grep: function( elems, callback, inv ) {
var retVal,
ret = [],
i = 0,
length = elems.length;
inv = !!inv;
// Go through the array, only saving the items
// that pass the validator function
for ( ; i < length; i++ ) {
retVal = !!callback( elems[ i ], i );
if ( inv !== retVal ) {
ret.push( elems[ i ] );
}
}
return ret;
},
// arg is for internal usage only
map: function( elems, callback, arg ) {
var value, key,
ret = [],
i = 0,
length = elems.length,
// jquery objects are treated as arrays
isArray = elems instanceof jQuery || length !== undefined && typeof length === "number" && ( ( length > 0 && elems[ 0 ] && elems[ length -1 ] ) || length === 0 || jQuery.isArray( elems ) ) ;
// Go through the array, translating each of the items to their
if ( isArray ) {
for ( ; i < length; i++ ) {
value = callback( elems[ i ], i, arg );
if ( value != null ) {
ret[ ret.length ] = value;
}
}
// Go through every key on the object,
} else {
for ( key in elems ) {
value = callback( elems[ key ], key, arg );
if ( value != null ) {
ret[ ret.length ] = value;
}
}
}
// Flatten any nested arrays
return ret.concat.apply( [], ret );
},
// A global GUID counter for objects
guid: 1,
// Bind a function to a context, optionally partially applying any
// arguments.
proxy: function( fn, context ) {
var tmp, args, proxy;
if ( typeof context === "string" ) {
tmp = fn[ context ];
context = fn;
fn = tmp;
}
// Quick check to determine if target is callable, in the spec
// this throws a TypeError, but we will just return undefined.
if ( !jQuery.isFunction( fn ) ) {
return undefined;
}
// Simulated bind
args = core_slice.call( arguments, 2 );
proxy = function() {
return fn.apply( context, args.concat( core_slice.call( arguments ) ) );
};
// Set the guid of unique handler to the same of original handler, so it can be removed
proxy.guid = fn.guid = fn.guid || jQuery.guid++;
return proxy;
},
// Multifunctional method to get and set values of a collection
// The value/s can optionally be executed if it's a function
access: function( elems, fn, key, value, chainable, emptyGet, pass ) {
var exec,
bulk = key == null,
i = 0,
length = elems.length;
// Sets many values
if ( key && typeof key === "object" ) {
for ( i in key ) {
jQuery.access( elems, fn, i, key[i], 1, emptyGet, value );
}
chainable = 1;
// Sets one value
} else if ( value !== undefined ) {
// Optionally, function values get executed if exec is true
exec = pass === undefined && jQuery.isFunction( value );
if ( bulk ) {
// Bulk operations only iterate when executing function values
if ( exec ) {
exec = fn;
fn = function( elem, key, value ) {
return exec.call( jQuery( elem ), value );
};
// Otherwise they run against the entire set
} else {
fn.call( elems, value );
fn = null;
}
}
if ( fn ) {
for (; i < length; i++ ) {
fn( elems[i], key, exec ? value.call( elems[i], i, fn( elems[i], key ) ) : value, pass );
}
}
chainable = 1;
}
return chainable ?
elems :
// Gets
bulk ?
fn.call( elems ) :
length ? fn( elems[0], key ) : emptyGet;
},
now: function() {
return ( new Date() ).getTime();
}
});
jQuery.ready.promise = function( obj ) {
if ( !readyList ) {
readyList = jQuery.Deferred();
// Catch cases where $(document).ready() is called after the browser event has already occurred.
// we once tried to use readyState "interactive" here, but it caused issues like the one
// discovered by ChrisS here: http://bugs.jquery.com/ticket/12282#comment:15
if ( document.readyState === "complete" ) {
// Handle it asynchronously to allow scripts the opportunity to delay ready
setTimeout( jQuery.ready, 1 );
// Standards-based browsers support DOMContentLoaded
} else if ( document.addEventListener ) {
// Use the handy event callback
document.addEventListener( "DOMContentLoaded", DOMContentLoaded, false );
// A fallback to window.onload, that will always work
window.addEventListener( "load", jQuery.ready, false );
// If IE event model is used
} else {
// Ensure firing before onload, maybe late but safe also for iframes
document.attachEvent( "onreadystatechange", DOMContentLoaded );
// A fallback to window.onload, that will always work
window.attachEvent( "onload", jQuery.ready );
// If IE and not a frame
// continually check to see if the document is ready
var top = false;
try {
top = window.frameElement == null && document.documentElement;
} catch(e) {}
if ( top && top.doScroll ) {
(function doScrollCheck() {
if ( !jQuery.isReady ) {
try {
// Use the trick by Diego Perini
// http://javascript.nwbox.com/IEContentLoaded/
top.doScroll("left");
} catch(e) {
return setTimeout( doScrollCheck, 50 );
}
// and execute any waiting functions
jQuery.ready();
}
})();
}
}
}
return readyList.promise( obj );
};
// Populate the class2type map
jQuery.each("Boolean Number String Function Array Date RegExp Object".split(" "), function(i, name) {
class2type[ "[object " + name + "]" ] = name.toLowerCase();
});
// All jQuery objects should point back to these
rootjQuery = jQuery(document);
// String to Object options format cache
var optionsCache = {};
// Convert String-formatted options into Object-formatted ones and store in cache
function createOptions( options ) {
var object = optionsCache[ options ] = {};
jQuery.each( options.split( core_rspace ), function( _, flag ) {
object[ flag ] = true;
});
return object;
}
/*
* Create a callback list using the following parameters:
*
* options: an optional list of space-separated options that will change how
* the callback list behaves or a more traditional option object
*
* By default a callback list will act like an event callback list and can be
* "fired" multiple times.
*
* Possible options:
*
* once: will ensure the callback list can only be fired once (like a Deferred)
*
* memory: will keep track of previous values and will call any callback added
* after the list has been fired right away with the latest "memorized"
* values (like a Deferred)
*
* unique: will ensure a callback can only be added once (no duplicate in the list)
*
* stopOnFalse: interrupt callings when a callback returns false
*
*/
jQuery.Callbacks = function( options ) {
// Convert options from String-formatted to Object-formatted if needed
// (we check in cache first)
options = typeof options === "string" ?
( optionsCache[ options ] || createOptions( options ) ) :
jQuery.extend( {}, options );
var // Last fire value (for non-forgettable lists)
memory,
// Flag to know if list was already fired
fired,
// Flag to know if list is currently firing
firing,
// First callback to fire (used internally by add and fireWith)
firingStart,
// End of the loop when firing
firingLength,
// Index of currently firing callback (modified by remove if needed)
firingIndex,
// Actual callback list
list = [],
// Stack of fire calls for repeatable lists
stack = !options.once && [],
// Fire callbacks
fire = function( data ) {
memory = options.memory && data;
fired = true;
firingIndex = firingStart || 0;
firingStart = 0;
firingLength = list.length;
firing = true;
for ( ; list && firingIndex < firingLength; firingIndex++ ) {
if ( list[ firingIndex ].apply( data[ 0 ], data[ 1 ] ) === false && options.stopOnFalse ) {
memory = false; // To prevent further calls using add
break;
}
}
firing = false;
if ( list ) {
if ( stack ) {
if ( stack.length ) {
fire( stack.shift() );
}
} else if ( memory ) {
list = [];
} else {
self.disable();
}
}
},
// Actual Callbacks object
self = {
// Add a callback or a collection of callbacks to the list
add: function() {
if ( list ) {
// First, we save the current length
var start = list.length;
(function add( args ) {
jQuery.each( args, function( _, arg ) {
var type = jQuery.type( arg );
if ( type === "function" ) {
if ( !options.unique || !self.has( arg ) ) {
list.push( arg );
}
} else if ( arg && arg.length && type !== "string" ) {
// Inspect recursively
add( arg );
}
});
})( arguments );
// Do we need to add the callbacks to the
// current firing batch?
if ( firing ) {
firingLength = list.length;
// With memory, if we're not firing then
// we should call right away
} else if ( memory ) {
firingStart = start;
fire( memory );
}
}
return this;
},
// Remove a callback from the list
remove: function() {
if ( list ) {
jQuery.each( arguments, function( _, arg ) {
var index;
while( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) {
list.splice( index, 1 );
// Handle firing indexes
if ( firing ) {
if ( index <= firingLength ) {
firingLength--;
}
if ( index <= firingIndex ) {
firingIndex--;
}
}
}
});
}
return this;
},
// Control if a given callback is in the list
has: function( fn ) {
return jQuery.inArray( fn, list ) > -1;
},
// Remove all callbacks from the list
empty: function() {
list = [];
return this;
},
// Have the list do nothing anymore
disable: function() {
list = stack = memory = undefined;
return this;
},
// Is it disabled?
disabled: function() {
return !list;
},
// Lock the list in its current state
lock: function() {
stack = undefined;
if ( !memory ) {
self.disable();
}
return this;
},
// Is it locked?
locked: function() {
return !stack;
},
// Call all callbacks with the given context and arguments
fireWith: function( context, args ) {
args = args || [];
args = [ context, args.slice ? args.slice() : args ];
if ( list && ( !fired || stack ) ) {
if ( firing ) {
stack.push( args );
} else {
fire( args );
}
}
return this;
},
// Call all the callbacks with the given arguments
fire: function() {
self.fireWith( this, arguments );
return this;
},
// To know if the callbacks have already been called at least once
fired: function() {
return !!fired;
}
};
return self;
};
jQuery.extend({
Deferred: function( func ) {
var tuples = [
// action, add listener, listener list, final state
[ "resolve", "done", jQuery.Callbacks("once memory"), "resolved" ],
[ "reject", "fail", jQuery.Callbacks("once memory"), "rejected" ],
[ "notify", "progress", jQuery.Callbacks("memory") ]
],
state = "pending",
promise = {
state: function() {
return state;
},
always: function() {
deferred.done( arguments ).fail( arguments );
return this;
},
then: function( /* fnDone, fnFail, fnProgress */ ) {
var fns = arguments;
return jQuery.Deferred(function( newDefer ) {
jQuery.each( tuples, function( i, tuple ) {
var action = tuple[ 0 ],
fn = fns[ i ];
// deferred[ done | fail | progress ] for forwarding actions to newDefer
deferred[ tuple[1] ]( jQuery.isFunction( fn ) ?
function() {
var returned = fn.apply( this, arguments );
if ( returned && jQuery.isFunction( returned.promise ) ) {
returned.promise()
.done( newDefer.resolve )
.fail( newDefer.reject )
.progress( newDefer.notify );
} else {
newDefer[ action + "With" ]( this === deferred ? newDefer : this, [ returned ] );
}
} :
newDefer[ action ]
);
});
fns = null;
}).promise();
},
// Get a promise for this deferred
// If obj is provided, the promise aspect is added to the object
promise: function( obj ) {
return obj != null ? jQuery.extend( obj, promise ) : promise;
}
},
deferred = {};
// Keep pipe for back-compat
promise.pipe = promise.then;
// Add list-specific methods
jQuery.each( tuples, function( i, tuple ) {
var list = tuple[ 2 ],
stateString = tuple[ 3 ];
// promise[ done | fail | progress ] = list.add
promise[ tuple[1] ] = list.add;
// Handle state
if ( stateString ) {
list.add(function() {
// state = [ resolved | rejected ]
state = stateString;
// [ reject_list | resolve_list ].disable; progress_list.lock
}, tuples[ i ^ 1 ][ 2 ].disable, tuples[ 2 ][ 2 ].lock );
}
// deferred[ resolve | reject | notify ] = list.fire
deferred[ tuple[0] ] = list.fire;
deferred[ tuple[0] + "With" ] = list.fireWith;
});
// Make the deferred a promise
promise.promise( deferred );
// Call given func if any
if ( func ) {
func.call( deferred, deferred );
}
// All done!
return deferred;
},
// Deferred helper
when: function( subordinate /* , ..., subordinateN */ ) {
var i = 0,
resolveValues = core_slice.call( arguments ),
length = resolveValues.length,
// the count of uncompleted subordinates
remaining = length !== 1 || ( subordinate && jQuery.isFunction( subordinate.promise ) ) ? length : 0,
// the master Deferred. If resolveValues consist of only a single Deferred, just use that.
deferred = remaining === 1 ? subordinate : jQuery.Deferred(),
// Update function for both resolve and progress values
updateFunc = function( i, contexts, values ) {
return function( value ) {
contexts[ i ] = this;
values[ i ] = arguments.length > 1 ? core_slice.call( arguments ) : value;
if( values === progressValues ) {
deferred.notifyWith( contexts, values );
} else if ( !( --remaining ) ) {
deferred.resolveWith( contexts, values );
}
};
},
progressValues, progressContexts, resolveContexts;
// add listeners to Deferred subordinates; treat others as resolved
if ( length > 1 ) {
progressValues = new Array( length );
progressContexts = new Array( length );
resolveContexts = new Array( length );
for ( ; i < length; i++ ) {
if ( resolveValues[ i ] && jQuery.isFunction( resolveValues[ i ].promise ) ) {
resolveValues[ i ].promise()
.done( updateFunc( i, resolveContexts, resolveValues ) )
.fail( deferred.reject )
.progress( updateFunc( i, progressContexts, progressValues ) );
} else {
--remaining;
}
}
}
// if we're not waiting on anything, resolve the master
if ( !remaining ) {
deferred.resolveWith( resolveContexts, resolveValues );
}
return deferred.promise();
}
});
jQuery.support = (function() {
var support,
all,
a,
select,
opt,
input,
fragment,
eventName,
i,
isSupported,
clickFn,
div = document.createElement("div");
// Setup
div.setAttribute( "className", "t" );
div.innerHTML = " a ";
// Support tests won't run in some limited or non-browser environments
all = div.getElementsByTagName("*");
a = div.getElementsByTagName("a")[ 0 ];
if ( !all || !a || !all.length ) {
return {};
}
// First batch of tests
select = document.createElement("select");
opt = select.appendChild( document.createElement("option") );
input = div.getElementsByTagName("input")[ 0 ];
a.style.cssText = "top:1px;float:left;opacity:.5";
support = {
// IE strips leading whitespace when .innerHTML is used
leadingWhitespace: ( div.firstChild.nodeType === 3 ),
// Make sure that tbody elements aren't automatically inserted
// IE will insert them into empty tables
tbody: !div.getElementsByTagName("tbody").length,
// Make sure that link elements get serialized correctly by innerHTML
// This requires a wrapper element in IE
htmlSerialize: !!div.getElementsByTagName("link").length,
// Get the style information from getAttribute
// (IE uses .cssText instead)
style: /top/.test( a.getAttribute("style") ),
// Make sure that URLs aren't manipulated
// (IE normalizes it by default)
hrefNormalized: ( a.getAttribute("href") === "/a" ),
// Make sure that element opacity exists
// (IE uses filter instead)
// Use a regex to work around a WebKit issue. See #5145
opacity: /^0.5/.test( a.style.opacity ),
// Verify style float existence
// (IE uses styleFloat instead of cssFloat)
cssFloat: !!a.style.cssFloat,
// Make sure that if no value is specified for a checkbox
// that it defaults to "on".
// (WebKit defaults to "" instead)
checkOn: ( input.value === "on" ),
// Make sure that a selected-by-default option has a working selected property.
// (WebKit defaults to false instead of true, IE too, if it's in an optgroup)
optSelected: opt.selected,
// Test setAttribute on camelCase class. If it works, we need attrFixes when doing get/setAttribute (ie6/7)
getSetAttribute: div.className !== "t",
// Tests for enctype support on a form (#6743)
enctype: !!document.createElement("form").enctype,
// Makes sure cloning an html5 element does not cause problems
// Where outerHTML is undefined, this still works
html5Clone: document.createElement("nav").cloneNode( true ).outerHTML !== "<:nav>",
// jQuery.support.boxModel DEPRECATED in 1.8 since we don't support Quirks Mode
boxModel: ( document.compatMode === "CSS1Compat" ),
// Will be defined later
submitBubbles: true,
changeBubbles: true,
focusinBubbles: false,
deleteExpando: true,
noCloneEvent: true,
inlineBlockNeedsLayout: false,
shrinkWrapBlocks: false,
reliableMarginRight: true,
boxSizingReliable: true,
pixelPosition: false
};
// Make sure checked status is properly cloned
input.checked = true;
support.noCloneChecked = input.cloneNode( true ).checked;
// Make sure that the options inside disabled selects aren't marked as disabled
// (WebKit marks them as disabled)
select.disabled = true;
support.optDisabled = !opt.disabled;
// Test to see if it's possible to delete an expando from an element
// Fails in Internet Explorer
try {
delete div.test;
} catch( e ) {
support.deleteExpando = false;
}
if ( !div.addEventListener && div.attachEvent && div.fireEvent ) {
div.attachEvent( "onclick", clickFn = function() {
// Cloning a node shouldn't copy over any
// bound event handlers (IE does this)
support.noCloneEvent = false;
});
div.cloneNode( true ).fireEvent("onclick");
div.detachEvent( "onclick", clickFn );
}
// Check if a radio maintains its value
// after being appended to the DOM
input = document.createElement("input");
input.value = "t";
input.setAttribute( "type", "radio" );
support.radioValue = input.value === "t";
input.setAttribute( "checked", "checked" );
// #11217 - WebKit loses check when the name is after the checked attribute
input.setAttribute( "name", "t" );
div.appendChild( input );
fragment = document.createDocumentFragment();
fragment.appendChild( div.lastChild );
// WebKit doesn't clone checked state correctly in fragments
support.checkClone = fragment.cloneNode( true ).cloneNode( true ).lastChild.checked;
// Check if a disconnected checkbox will retain its checked
// value of true after appended to the DOM (IE6/7)
support.appendChecked = input.checked;
fragment.removeChild( input );
fragment.appendChild( div );
// Technique from Juriy Zaytsev
// http://perfectionkills.com/detecting-event-support-without-browser-sniffing/
// We only care about the case where non-standard event systems
// are used, namely in IE. Short-circuiting here helps us to
// avoid an eval call (in setAttribute) which can cause CSP
// to go haywire. See: https://developer.mozilla.org/en/Security/CSP
if ( div.attachEvent ) {
for ( i in {
submit: true,
change: true,
focusin: true
}) {
eventName = "on" + i;
isSupported = ( eventName in div );
if ( !isSupported ) {
div.setAttribute( eventName, "return;" );
isSupported = ( typeof div[ eventName ] === "function" );
}
support[ i + "Bubbles" ] = isSupported;
}
}
// Run tests that need a body at doc ready
jQuery(function() {
var container, div, tds, marginDiv,
divReset = "padding:0;margin:0;border:0;display:block;overflow:hidden;",
body = document.getElementsByTagName("body")[0];
if ( !body ) {
// Return for frameset docs that don't have a body
return;
}
container = document.createElement("div");
container.style.cssText = "visibility:hidden;border:0;width:0;height:0;position:static;top:0;margin-top:1px";
body.insertBefore( container, body.firstChild );
// Construct the test element
div = document.createElement("div");
container.appendChild( div );
// Check if table cells still have offsetWidth/Height when they are set
// to display:none and there are still other visible table cells in a
// table row; if so, offsetWidth/Height are not reliable for use when
// determining if an element has been hidden directly using
// display:none (it is still safe to use offsets if a parent element is
// hidden; don safety goggles and see bug #4512 for more information).
// (only IE 8 fails this test)
div.innerHTML = "";
tds = div.getElementsByTagName("td");
tds[ 0 ].style.cssText = "padding:0;margin:0;border:0;display:none";
isSupported = ( tds[ 0 ].offsetHeight === 0 );
tds[ 0 ].style.display = "";
tds[ 1 ].style.display = "none";
// Check if empty table cells still have offsetWidth/Height
// (IE <= 8 fail this test)
support.reliableHiddenOffsets = isSupported && ( tds[ 0 ].offsetHeight === 0 );
// Check box-sizing and margin behavior
div.innerHTML = "";
div.style.cssText = "box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%;";
support.boxSizing = ( div.offsetWidth === 4 );
support.doesNotIncludeMarginInBodyOffset = ( body.offsetTop !== 1 );
// NOTE: To any future maintainer, we've window.getComputedStyle
// because jsdom on node.js will break without it.
if ( window.getComputedStyle ) {
support.pixelPosition = ( window.getComputedStyle( div, null ) || {} ).top !== "1%";
support.boxSizingReliable = ( window.getComputedStyle( div, null ) || { width: "4px" } ).width === "4px";
// Check if div with explicit width and no margin-right incorrectly
// gets computed margin-right based on width of container. For more
// info see bug #3333
// Fails in WebKit before Feb 2011 nightlies
// WebKit Bug 13343 - getComputedStyle returns wrong value for margin-right
marginDiv = document.createElement("div");
marginDiv.style.cssText = div.style.cssText = divReset;
marginDiv.style.marginRight = marginDiv.style.width = "0";
div.style.width = "1px";
div.appendChild( marginDiv );
support.reliableMarginRight =
!parseFloat( ( window.getComputedStyle( marginDiv, null ) || {} ).marginRight );
}
if ( typeof div.style.zoom !== "undefined" ) {
// Check if natively block-level elements act like inline-block
// elements when setting their display to 'inline' and giving
// them layout
// (IE < 8 does this)
div.innerHTML = "";
div.style.cssText = divReset + "width:1px;padding:1px;display:inline;zoom:1";
support.inlineBlockNeedsLayout = ( div.offsetWidth === 3 );
// Check if elements with layout shrink-wrap their children
// (IE 6 does this)
div.style.display = "block";
div.style.overflow = "visible";
div.innerHTML = "
";
div.firstChild.style.width = "5px";
support.shrinkWrapBlocks = ( div.offsetWidth !== 3 );
container.style.zoom = 1;
}
// Null elements to avoid leaks in IE
body.removeChild( container );
container = div = tds = marginDiv = null;
});
// Null elements to avoid leaks in IE
fragment.removeChild( div );
all = a = select = opt = input = fragment = div = null;
return support;
})();
var rbrace = /(?:\{[\s\S]*\}|\[[\s\S]*\])$/,
rmultiDash = /([A-Z])/g;
jQuery.extend({
cache: {},
deletedIds: [],
// Remove at next major release (1.9/2.0)
uuid: 0,
// Unique for each copy of jQuery on the page
// Non-digits removed to match rinlinejQuery
expando: "jQuery" + ( jQuery.fn.jquery + Math.random() ).replace( /\D/g, "" ),
// The following elements throw uncatchable exceptions if you
// attempt to add expando properties to them.
noData: {
"embed": true,
// Ban all objects except for Flash (which handle expandos)
"object": "clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",
"applet": true
},
hasData: function( elem ) {
elem = elem.nodeType ? jQuery.cache[ elem[jQuery.expando] ] : elem[ jQuery.expando ];
return !!elem && !isEmptyDataObject( elem );
},
data: function( elem, name, data, pvt /* Internal Use Only */ ) {
if ( !jQuery.acceptData( elem ) ) {
return;
}
var thisCache, ret,
internalKey = jQuery.expando,
getByName = typeof name === "string",
// We have to handle DOM nodes and JS objects differently because IE6-7
// can't GC object references properly across the DOM-JS boundary
isNode = elem.nodeType,
// Only DOM nodes need the global jQuery cache; JS object data is
// attached directly to the object so GC can occur automatically
cache = isNode ? jQuery.cache : elem,
// Only defining an ID for JS objects if its cache already exists allows
// the code to shortcut on the same path as a DOM node with no cache
id = isNode ? elem[ internalKey ] : elem[ internalKey ] && internalKey;
// Avoid doing any more work than we need to when trying to get data on an
// object that has no data at all
if ( (!id || !cache[id] || (!pvt && !cache[id].data)) && getByName && data === undefined ) {
return;
}
if ( !id ) {
// Only DOM nodes need a new unique ID for each element since their data
// ends up in the global cache
if ( isNode ) {
elem[ internalKey ] = id = jQuery.deletedIds.pop() || jQuery.guid++;
} else {
id = internalKey;
}
}
if ( !cache[ id ] ) {
cache[ id ] = {};
// Avoids exposing jQuery metadata on plain JS objects when the object
// is serialized using JSON.stringify
if ( !isNode ) {
cache[ id ].toJSON = jQuery.noop;
}
}
// An object can be passed to jQuery.data instead of a key/value pair; this gets
// shallow copied over onto the existing cache
if ( typeof name === "object" || typeof name === "function" ) {
if ( pvt ) {
cache[ id ] = jQuery.extend( cache[ id ], name );
} else {
cache[ id ].data = jQuery.extend( cache[ id ].data, name );
}
}
thisCache = cache[ id ];
// jQuery data() is stored in a separate object inside the object's internal data
// cache in order to avoid key collisions between internal data and user-defined
// data.
if ( !pvt ) {
if ( !thisCache.data ) {
thisCache.data = {};
}
thisCache = thisCache.data;
}
if ( data !== undefined ) {
thisCache[ jQuery.camelCase( name ) ] = data;
}
// Check for both converted-to-camel and non-converted data property names
// If a data property was specified
if ( getByName ) {
// First Try to find as-is property data
ret = thisCache[ name ];
// Test for null|undefined property data
if ( ret == null ) {
// Try to find the camelCased property
ret = thisCache[ jQuery.camelCase( name ) ];
}
} else {
ret = thisCache;
}
return ret;
},
removeData: function( elem, name, pvt /* Internal Use Only */ ) {
if ( !jQuery.acceptData( elem ) ) {
return;
}
var thisCache, i, l,
isNode = elem.nodeType,
// See jQuery.data for more information
cache = isNode ? jQuery.cache : elem,
id = isNode ? elem[ jQuery.expando ] : jQuery.expando;
// If there is already no cache entry for this object, there is no
// purpose in continuing
if ( !cache[ id ] ) {
return;
}
if ( name ) {
thisCache = pvt ? cache[ id ] : cache[ id ].data;
if ( thisCache ) {
// Support array or space separated string names for data keys
if ( !jQuery.isArray( name ) ) {
// try the string as a key before any manipulation
if ( name in thisCache ) {
name = [ name ];
} else {
// split the camel cased version by spaces unless a key with the spaces exists
name = jQuery.camelCase( name );
if ( name in thisCache ) {
name = [ name ];
} else {
name = name.split(" ");
}
}
}
for ( i = 0, l = name.length; i < l; i++ ) {
delete thisCache[ name[i] ];
}
// If there is no data left in the cache, we want to continue
// and let the cache object itself get destroyed
if ( !( pvt ? isEmptyDataObject : jQuery.isEmptyObject )( thisCache ) ) {
return;
}
}
}
// See jQuery.data for more information
if ( !pvt ) {
delete cache[ id ].data;
// Don't destroy the parent cache unless the internal data object
// had been the only thing left in it
if ( !isEmptyDataObject( cache[ id ] ) ) {
return;
}
}
// Destroy the cache
if ( isNode ) {
jQuery.cleanData( [ elem ], true );
// Use delete when supported for expandos or `cache` is not a window per isWindow (#10080)
} else if ( jQuery.support.deleteExpando || cache != cache.window ) {
delete cache[ id ];
// When all else fails, null
} else {
cache[ id ] = null;
}
},
// For internal use only.
_data: function( elem, name, data ) {
return jQuery.data( elem, name, data, true );
},
// A method for determining if a DOM node can handle the data expando
acceptData: function( elem ) {
var noData = elem.nodeName && jQuery.noData[ elem.nodeName.toLowerCase() ];
// nodes accept data unless otherwise specified; rejection can be conditional
return !noData || noData !== true && elem.getAttribute("classid") === noData;
}
});
jQuery.fn.extend({
data: function( key, value ) {
var parts, part, attr, name, l,
elem = this[0],
i = 0,
data = null;
// Gets all values
if ( key === undefined ) {
if ( this.length ) {
data = jQuery.data( elem );
if ( elem.nodeType === 1 && !jQuery._data( elem, "parsedAttrs" ) ) {
attr = elem.attributes;
for ( l = attr.length; i < l; i++ ) {
name = attr[i].name;
if ( !name.indexOf( "data-" ) ) {
name = jQuery.camelCase( name.substring(5) );
dataAttr( elem, name, data[ name ] );
}
}
jQuery._data( elem, "parsedAttrs", true );
}
}
return data;
}
// Sets multiple values
if ( typeof key === "object" ) {
return this.each(function() {
jQuery.data( this, key );
});
}
parts = key.split( ".", 2 );
parts[1] = parts[1] ? "." + parts[1] : "";
part = parts[1] + "!";
return jQuery.access( this, function( value ) {
if ( value === undefined ) {
data = this.triggerHandler( "getData" + part, [ parts[0] ] );
// Try to fetch any internally stored data first
if ( data === undefined && elem ) {
data = jQuery.data( elem, key );
data = dataAttr( elem, key, data );
}
return data === undefined && parts[1] ?
this.data( parts[0] ) :
data;
}
parts[1] = value;
this.each(function() {
var self = jQuery( this );
self.triggerHandler( "setData" + part, parts );
jQuery.data( this, key, value );
self.triggerHandler( "changeData" + part, parts );
});
}, null, value, arguments.length > 1, null, false );
},
removeData: function( key ) {
return this.each(function() {
jQuery.removeData( this, key );
});
}
});
function dataAttr( elem, key, data ) {
// If nothing was found internally, try to fetch any
// data from the HTML5 data-* attribute
if ( data === undefined && elem.nodeType === 1 ) {
var name = "data-" + key.replace( rmultiDash, "-$1" ).toLowerCase();
data = elem.getAttribute( name );
if ( typeof data === "string" ) {
try {
data = data === "true" ? true :
data === "false" ? false :
data === "null" ? null :
// Only convert to a number if it doesn't change the string
+data + "" === data ? +data :
rbrace.test( data ) ? jQuery.parseJSON( data ) :
data;
} catch( e ) {}
// Make sure we set the data so it isn't changed later
jQuery.data( elem, key, data );
} else {
data = undefined;
}
}
return data;
}
// checks a cache object for emptiness
function isEmptyDataObject( obj ) {
var name;
for ( name in obj ) {
// if the public data object is empty, the private is still empty
if ( name === "data" && jQuery.isEmptyObject( obj[name] ) ) {
continue;
}
if ( name !== "toJSON" ) {
return false;
}
}
return true;
}
jQuery.extend({
queue: function( elem, type, data ) {
var queue;
if ( elem ) {
type = ( type || "fx" ) + "queue";
queue = jQuery._data( elem, type );
// Speed up dequeue by getting out quickly if this is just a lookup
if ( data ) {
if ( !queue || jQuery.isArray(data) ) {
queue = jQuery._data( elem, type, jQuery.makeArray(data) );
} else {
queue.push( data );
}
}
return queue || [];
}
},
dequeue: function( elem, type ) {
type = type || "fx";
var queue = jQuery.queue( elem, type ),
startLength = queue.length,
fn = queue.shift(),
hooks = jQuery._queueHooks( elem, type ),
next = function() {
jQuery.dequeue( elem, type );
};
// If the fx queue is dequeued, always remove the progress sentinel
if ( fn === "inprogress" ) {
fn = queue.shift();
startLength--;
}
if ( fn ) {
// Add a progress sentinel to prevent the fx queue from being
// automatically dequeued
if ( type === "fx" ) {
queue.unshift( "inprogress" );
}
// clear up the last queue stop function
delete hooks.stop;
fn.call( elem, next, hooks );
}
if ( !startLength && hooks ) {
hooks.empty.fire();
}
},
// not intended for public consumption - generates a queueHooks object, or returns the current one
_queueHooks: function( elem, type ) {
var key = type + "queueHooks";
return jQuery._data( elem, key ) || jQuery._data( elem, key, {
empty: jQuery.Callbacks("once memory").add(function() {
jQuery.removeData( elem, type + "queue", true );
jQuery.removeData( elem, key, true );
})
});
}
});
jQuery.fn.extend({
queue: function( type, data ) {
var setter = 2;
if ( typeof type !== "string" ) {
data = type;
type = "fx";
setter--;
}
if ( arguments.length < setter ) {
return jQuery.queue( this[0], type );
}
return data === undefined ?
this :
this.each(function() {
var queue = jQuery.queue( this, type, data );
// ensure a hooks for this queue
jQuery._queueHooks( this, type );
if ( type === "fx" && queue[0] !== "inprogress" ) {
jQuery.dequeue( this, type );
}
});
},
dequeue: function( type ) {
return this.each(function() {
jQuery.dequeue( this, type );
});
},
// Based off of the plugin by Clint Helfers, with permission.
// http://blindsignals.com/index.php/2009/07/jquery-delay/
delay: function( time, type ) {
time = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time;
type = type || "fx";
return this.queue( type, function( next, hooks ) {
var timeout = setTimeout( next, time );
hooks.stop = function() {
clearTimeout( timeout );
};
});
},
clearQueue: function( type ) {
return this.queue( type || "fx", [] );
},
// Get a promise resolved when queues of a certain type
// are emptied (fx is the type by default)
promise: function( type, obj ) {
var tmp,
count = 1,
defer = jQuery.Deferred(),
elements = this,
i = this.length,
resolve = function() {
if ( !( --count ) ) {
defer.resolveWith( elements, [ elements ] );
}
};
if ( typeof type !== "string" ) {
obj = type;
type = undefined;
}
type = type || "fx";
while( i-- ) {
tmp = jQuery._data( elements[ i ], type + "queueHooks" );
if ( tmp && tmp.empty ) {
count++;
tmp.empty.add( resolve );
}
}
resolve();
return defer.promise( obj );
}
});
var nodeHook, boolHook, fixSpecified,
rclass = /[\t\r\n]/g,
rreturn = /\r/g,
rtype = /^(?:button|input)$/i,
rfocusable = /^(?:button|input|object|select|textarea)$/i,
rclickable = /^a(?:rea|)$/i,
rboolean = /^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,
getSetAttribute = jQuery.support.getSetAttribute;
jQuery.fn.extend({
attr: function( name, value ) {
return jQuery.access( this, jQuery.attr, name, value, arguments.length > 1 );
},
removeAttr: function( name ) {
return this.each(function() {
jQuery.removeAttr( this, name );
});
},
prop: function( name, value ) {
return jQuery.access( this, jQuery.prop, name, value, arguments.length > 1 );
},
removeProp: function( name ) {
name = jQuery.propFix[ name ] || name;
return this.each(function() {
// try/catch handles cases where IE balks (such as removing a property on window)
try {
this[ name ] = undefined;
delete this[ name ];
} catch( e ) {}
});
},
addClass: function( value ) {
var classNames, i, l, elem,
setClass, c, cl;
if ( jQuery.isFunction( value ) ) {
return this.each(function( j ) {
jQuery( this ).addClass( value.call(this, j, this.className) );
});
}
if ( value && typeof value === "string" ) {
classNames = value.split( core_rspace );
for ( i = 0, l = this.length; i < l; i++ ) {
elem = this[ i ];
if ( elem.nodeType === 1 ) {
if ( !elem.className && classNames.length === 1 ) {
elem.className = value;
} else {
setClass = " " + elem.className + " ";
for ( c = 0, cl = classNames.length; c < cl; c++ ) {
if ( setClass.indexOf( " " + classNames[ c ] + " " ) < 0 ) {
setClass += classNames[ c ] + " ";
}
}
elem.className = jQuery.trim( setClass );
}
}
}
}
return this;
},
removeClass: function( value ) {
var removes, className, elem, c, cl, i, l;
if ( jQuery.isFunction( value ) ) {
return this.each(function( j ) {
jQuery( this ).removeClass( value.call(this, j, this.className) );
});
}
if ( (value && typeof value === "string") || value === undefined ) {
removes = ( value || "" ).split( core_rspace );
for ( i = 0, l = this.length; i < l; i++ ) {
elem = this[ i ];
if ( elem.nodeType === 1 && elem.className ) {
className = (" " + elem.className + " ").replace( rclass, " " );
// loop over each item in the removal list
for ( c = 0, cl = removes.length; c < cl; c++ ) {
// Remove until there is nothing to remove,
while ( className.indexOf(" " + removes[ c ] + " ") >= 0 ) {
className = className.replace( " " + removes[ c ] + " " , " " );
}
}
elem.className = value ? jQuery.trim( className ) : "";
}
}
}
return this;
},
toggleClass: function( value, stateVal ) {
var type = typeof value,
isBool = typeof stateVal === "boolean";
if ( jQuery.isFunction( value ) ) {
return this.each(function( i ) {
jQuery( this ).toggleClass( value.call(this, i, this.className, stateVal), stateVal );
});
}
return this.each(function() {
if ( type === "string" ) {
// toggle individual class names
var className,
i = 0,
self = jQuery( this ),
state = stateVal,
classNames = value.split( core_rspace );
while ( (className = classNames[ i++ ]) ) {
// check each className given, space separated list
state = isBool ? state : !self.hasClass( className );
self[ state ? "addClass" : "removeClass" ]( className );
}
} else if ( type === "undefined" || type === "boolean" ) {
if ( this.className ) {
// store className if set
jQuery._data( this, "__className__", this.className );
}
// toggle whole className
this.className = this.className || value === false ? "" : jQuery._data( this, "__className__" ) || "";
}
});
},
hasClass: function( selector ) {
var className = " " + selector + " ",
i = 0,
l = this.length;
for ( ; i < l; i++ ) {
if ( this[i].nodeType === 1 && (" " + this[i].className + " ").replace(rclass, " ").indexOf( className ) >= 0 ) {
return true;
}
}
return false;
},
val: function( value ) {
var hooks, ret, isFunction,
elem = this[0];
if ( !arguments.length ) {
if ( elem ) {
hooks = jQuery.valHooks[ elem.type ] || jQuery.valHooks[ elem.nodeName.toLowerCase() ];
if ( hooks && "get" in hooks && (ret = hooks.get( elem, "value" )) !== undefined ) {
return ret;
}
ret = elem.value;
return typeof ret === "string" ?
// handle most common string cases
ret.replace(rreturn, "") :
// handle cases where value is null/undef or number
ret == null ? "" : ret;
}
return;
}
isFunction = jQuery.isFunction( value );
return this.each(function( i ) {
var val,
self = jQuery(this);
if ( this.nodeType !== 1 ) {
return;
}
if ( isFunction ) {
val = value.call( this, i, self.val() );
} else {
val = value;
}
// Treat null/undefined as ""; convert numbers to string
if ( val == null ) {
val = "";
} else if ( typeof val === "number" ) {
val += "";
} else if ( jQuery.isArray( val ) ) {
val = jQuery.map(val, function ( value ) {
return value == null ? "" : value + "";
});
}
hooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ];
// If set returns undefined, fall back to normal setting
if ( !hooks || !("set" in hooks) || hooks.set( this, val, "value" ) === undefined ) {
this.value = val;
}
});
}
});
jQuery.extend({
valHooks: {
option: {
get: function( elem ) {
// attributes.value is undefined in Blackberry 4.7 but
// uses .value. See #6932
var val = elem.attributes.value;
return !val || val.specified ? elem.value : elem.text;
}
},
select: {
get: function( elem ) {
var value, option,
options = elem.options,
index = elem.selectedIndex,
one = elem.type === "select-one" || index < 0,
values = one ? null : [],
max = one ? index + 1 : options.length,
i = index < 0 ?
max :
one ? index : 0;
// Loop through all the selected options
for ( ; i < max; i++ ) {
option = options[ i ];
// oldIE doesn't update selected after form reset (#2551)
if ( ( option.selected || i === index ) &&
// Don't return options that are disabled or in a disabled optgroup
( jQuery.support.optDisabled ? !option.disabled : option.getAttribute("disabled") === null ) &&
( !option.parentNode.disabled || !jQuery.nodeName( option.parentNode, "optgroup" ) ) ) {
// Get the specific value for the option
value = jQuery( option ).val();
// We don't need an array for one selects
if ( one ) {
return value;
}
// Multi-Selects return an array
values.push( value );
}
}
return values;
},
set: function( elem, value ) {
var values = jQuery.makeArray( value );
jQuery(elem).find("option").each(function() {
this.selected = jQuery.inArray( jQuery(this).val(), values ) >= 0;
});
if ( !values.length ) {
elem.selectedIndex = -1;
}
return values;
}
}
},
// Unused in 1.8, left in so attrFn-stabbers won't die; remove in 1.9
attrFn: {},
attr: function( elem, name, value, pass ) {
var ret, hooks, notxml,
nType = elem.nodeType;
// don't get/set attributes on text, comment and attribute nodes
if ( !elem || nType === 3 || nType === 8 || nType === 2 ) {
return;
}
if ( pass && jQuery.isFunction( jQuery.fn[ name ] ) ) {
return jQuery( elem )[ name ]( value );
}
// Fallback to prop when attributes are not supported
if ( typeof elem.getAttribute === "undefined" ) {
return jQuery.prop( elem, name, value );
}
notxml = nType !== 1 || !jQuery.isXMLDoc( elem );
// All attributes are lowercase
// Grab necessary hook if one is defined
if ( notxml ) {
name = name.toLowerCase();
hooks = jQuery.attrHooks[ name ] || ( rboolean.test( name ) ? boolHook : nodeHook );
}
if ( value !== undefined ) {
if ( value === null ) {
jQuery.removeAttr( elem, name );
return;
} else if ( hooks && "set" in hooks && notxml && (ret = hooks.set( elem, value, name )) !== undefined ) {
return ret;
} else {
elem.setAttribute( name, value + "" );
return value;
}
} else if ( hooks && "get" in hooks && notxml && (ret = hooks.get( elem, name )) !== null ) {
return ret;
} else {
ret = elem.getAttribute( name );
// Non-existent attributes return null, we normalize to undefined
return ret === null ?
undefined :
ret;
}
},
removeAttr: function( elem, value ) {
var propName, attrNames, name, isBool,
i = 0;
if ( value && elem.nodeType === 1 ) {
attrNames = value.split( core_rspace );
for ( ; i < attrNames.length; i++ ) {
name = attrNames[ i ];
if ( name ) {
propName = jQuery.propFix[ name ] || name;
isBool = rboolean.test( name );
// See #9699 for explanation of this approach (setting first, then removal)
// Do not do this for boolean attributes (see #10870)
if ( !isBool ) {
jQuery.attr( elem, name, "" );
}
elem.removeAttribute( getSetAttribute ? name : propName );
// Set corresponding property to false for boolean attributes
if ( isBool && propName in elem ) {
elem[ propName ] = false;
}
}
}
}
},
attrHooks: {
type: {
set: function( elem, value ) {
// We can't allow the type property to be changed (since it causes problems in IE)
if ( rtype.test( elem.nodeName ) && elem.parentNode ) {
jQuery.error( "type property can't be changed" );
} else if ( !jQuery.support.radioValue && value === "radio" && jQuery.nodeName(elem, "input") ) {
// Setting the type on a radio button after the value resets the value in IE6-9
// Reset value to it's default in case type is set after value
// This is for element creation
var val = elem.value;
elem.setAttribute( "type", value );
if ( val ) {
elem.value = val;
}
return value;
}
}
},
// Use the value property for back compat
// Use the nodeHook for button elements in IE6/7 (#1954)
value: {
get: function( elem, name ) {
if ( nodeHook && jQuery.nodeName( elem, "button" ) ) {
return nodeHook.get( elem, name );
}
return name in elem ?
elem.value :
null;
},
set: function( elem, value, name ) {
if ( nodeHook && jQuery.nodeName( elem, "button" ) ) {
return nodeHook.set( elem, value, name );
}
// Does not return so that setAttribute is also used
elem.value = value;
}
}
},
propFix: {
tabindex: "tabIndex",
readonly: "readOnly",
"for": "htmlFor",
"class": "className",
maxlength: "maxLength",
cellspacing: "cellSpacing",
cellpadding: "cellPadding",
rowspan: "rowSpan",
colspan: "colSpan",
usemap: "useMap",
frameborder: "frameBorder",
contenteditable: "contentEditable"
},
prop: function( elem, name, value ) {
var ret, hooks, notxml,
nType = elem.nodeType;
// don't get/set properties on text, comment and attribute nodes
if ( !elem || nType === 3 || nType === 8 || nType === 2 ) {
return;
}
notxml = nType !== 1 || !jQuery.isXMLDoc( elem );
if ( notxml ) {
// Fix name and attach hooks
name = jQuery.propFix[ name ] || name;
hooks = jQuery.propHooks[ name ];
}
if ( value !== undefined ) {
if ( hooks && "set" in hooks && (ret = hooks.set( elem, value, name )) !== undefined ) {
return ret;
} else {
return ( elem[ name ] = value );
}
} else {
if ( hooks && "get" in hooks && (ret = hooks.get( elem, name )) !== null ) {
return ret;
} else {
return elem[ name ];
}
}
},
propHooks: {
tabIndex: {
get: function( elem ) {
// elem.tabIndex doesn't always return the correct value when it hasn't been explicitly set
// http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/
var attributeNode = elem.getAttributeNode("tabindex");
return attributeNode && attributeNode.specified ?
parseInt( attributeNode.value, 10 ) :
rfocusable.test( elem.nodeName ) || rclickable.test( elem.nodeName ) && elem.href ?
0 :
undefined;
}
}
}
});
// Hook for boolean attributes
boolHook = {
get: function( elem, name ) {
// Align boolean attributes with corresponding properties
// Fall back to attribute presence where some booleans are not supported
var attrNode,
property = jQuery.prop( elem, name );
return property === true || typeof property !== "boolean" && ( attrNode = elem.getAttributeNode(name) ) && attrNode.nodeValue !== false ?
name.toLowerCase() :
undefined;
},
set: function( elem, value, name ) {
var propName;
if ( value === false ) {
// Remove boolean attributes when set to false
jQuery.removeAttr( elem, name );
} else {
// value is true since we know at this point it's type boolean and not false
// Set boolean attributes to the same name and set the DOM property
propName = jQuery.propFix[ name ] || name;
if ( propName in elem ) {
// Only set the IDL specifically if it already exists on the element
elem[ propName ] = true;
}
elem.setAttribute( name, name.toLowerCase() );
}
return name;
}
};
// IE6/7 do not support getting/setting some attributes with get/setAttribute
if ( !getSetAttribute ) {
fixSpecified = {
name: true,
id: true,
coords: true
};
// Use this for any attribute in IE6/7
// This fixes almost every IE6/7 issue
nodeHook = jQuery.valHooks.button = {
get: function( elem, name ) {
var ret;
ret = elem.getAttributeNode( name );
return ret && ( fixSpecified[ name ] ? ret.value !== "" : ret.specified ) ?
ret.value :
undefined;
},
set: function( elem, value, name ) {
// Set the existing or create a new attribute node
var ret = elem.getAttributeNode( name );
if ( !ret ) {
ret = document.createAttribute( name );
elem.setAttributeNode( ret );
}
return ( ret.value = value + "" );
}
};
// Set width and height to auto instead of 0 on empty string( Bug #8150 )
// This is for removals
jQuery.each([ "width", "height" ], function( i, name ) {
jQuery.attrHooks[ name ] = jQuery.extend( jQuery.attrHooks[ name ], {
set: function( elem, value ) {
if ( value === "" ) {
elem.setAttribute( name, "auto" );
return value;
}
}
});
});
// Set contenteditable to false on removals(#10429)
// Setting to empty string throws an error as an invalid value
jQuery.attrHooks.contenteditable = {
get: nodeHook.get,
set: function( elem, value, name ) {
if ( value === "" ) {
value = "false";
}
nodeHook.set( elem, value, name );
}
};
}
// Some attributes require a special call on IE
if ( !jQuery.support.hrefNormalized ) {
jQuery.each([ "href", "src", "width", "height" ], function( i, name ) {
jQuery.attrHooks[ name ] = jQuery.extend( jQuery.attrHooks[ name ], {
get: function( elem ) {
var ret = elem.getAttribute( name, 2 );
return ret === null ? undefined : ret;
}
});
});
}
if ( !jQuery.support.style ) {
jQuery.attrHooks.style = {
get: function( elem ) {
// Return undefined in the case of empty string
// Normalize to lowercase since IE uppercases css property names
return elem.style.cssText.toLowerCase() || undefined;
},
set: function( elem, value ) {
return ( elem.style.cssText = value + "" );
}
};
}
// Safari mis-reports the default selected property of an option
// Accessing the parent's selectedIndex property fixes it
if ( !jQuery.support.optSelected ) {
jQuery.propHooks.selected = jQuery.extend( jQuery.propHooks.selected, {
get: function( elem ) {
var parent = elem.parentNode;
if ( parent ) {
parent.selectedIndex;
// Make sure that it also works with optgroups, see #5701
if ( parent.parentNode ) {
parent.parentNode.selectedIndex;
}
}
return null;
}
});
}
// IE6/7 call enctype encoding
if ( !jQuery.support.enctype ) {
jQuery.propFix.enctype = "encoding";
}
// Radios and checkboxes getter/setter
if ( !jQuery.support.checkOn ) {
jQuery.each([ "radio", "checkbox" ], function() {
jQuery.valHooks[ this ] = {
get: function( elem ) {
// Handle the case where in Webkit "" is returned instead of "on" if a value isn't specified
return elem.getAttribute("value") === null ? "on" : elem.value;
}
};
});
}
jQuery.each([ "radio", "checkbox" ], function() {
jQuery.valHooks[ this ] = jQuery.extend( jQuery.valHooks[ this ], {
set: function( elem, value ) {
if ( jQuery.isArray( value ) ) {
return ( elem.checked = jQuery.inArray( jQuery(elem).val(), value ) >= 0 );
}
}
});
});
var rformElems = /^(?:textarea|input|select)$/i,
rtypenamespace = /^([^\.]*|)(?:\.(.+)|)$/,
rhoverHack = /(?:^|\s)hover(\.\S+|)\b/,
rkeyEvent = /^key/,
rmouseEvent = /^(?:mouse|contextmenu)|click/,
rfocusMorph = /^(?:focusinfocus|focusoutblur)$/,
hoverHack = function( events ) {
return jQuery.event.special.hover ? events : events.replace( rhoverHack, "mouseenter$1 mouseleave$1" );
};
/*
* Helper functions for managing events -- not part of the public interface.
* Props to Dean Edwards' addEvent library for many of the ideas.
*/
jQuery.event = {
add: function( elem, types, handler, data, selector ) {
var elemData, eventHandle, events,
t, tns, type, namespaces, handleObj,
handleObjIn, handlers, special;
// Don't attach events to noData or text/comment nodes (allow plain objects tho)
if ( elem.nodeType === 3 || elem.nodeType === 8 || !types || !handler || !(elemData = jQuery._data( elem )) ) {
return;
}
// Caller can pass in an object of custom data in lieu of the handler
if ( handler.handler ) {
handleObjIn = handler;
handler = handleObjIn.handler;
selector = handleObjIn.selector;
}
// Make sure that the handler has a unique ID, used to find/remove it later
if ( !handler.guid ) {
handler.guid = jQuery.guid++;
}
// Init the element's event structure and main handler, if this is the first
events = elemData.events;
if ( !events ) {
elemData.events = events = {};
}
eventHandle = elemData.handle;
if ( !eventHandle ) {
elemData.handle = eventHandle = function( e ) {
// Discard the second event of a jQuery.event.trigger() and
// when an event is called after a page has unloaded
return typeof jQuery !== "undefined" && (!e || jQuery.event.triggered !== e.type) ?
jQuery.event.dispatch.apply( eventHandle.elem, arguments ) :
undefined;
};
// Add elem as a property of the handle fn to prevent a memory leak with IE non-native events
eventHandle.elem = elem;
}
// Handle multiple events separated by a space
// jQuery(...).bind("mouseover mouseout", fn);
types = jQuery.trim( hoverHack(types) ).split( " " );
for ( t = 0; t < types.length; t++ ) {
tns = rtypenamespace.exec( types[t] ) || [];
type = tns[1];
namespaces = ( tns[2] || "" ).split( "." ).sort();
// If event changes its type, use the special event handlers for the changed type
special = jQuery.event.special[ type ] || {};
// If selector defined, determine special event api type, otherwise given type
type = ( selector ? special.delegateType : special.bindType ) || type;
// Update special based on newly reset type
special = jQuery.event.special[ type ] || {};
// handleObj is passed to all event handlers
handleObj = jQuery.extend({
type: type,
origType: tns[1],
data: data,
handler: handler,
guid: handler.guid,
selector: selector,
needsContext: selector && jQuery.expr.match.needsContext.test( selector ),
namespace: namespaces.join(".")
}, handleObjIn );
// Init the event handler queue if we're the first
handlers = events[ type ];
if ( !handlers ) {
handlers = events[ type ] = [];
handlers.delegateCount = 0;
// Only use addEventListener/attachEvent if the special events handler returns false
if ( !special.setup || special.setup.call( elem, data, namespaces, eventHandle ) === false ) {
// Bind the global event handler to the element
if ( elem.addEventListener ) {
elem.addEventListener( type, eventHandle, false );
} else if ( elem.attachEvent ) {
elem.attachEvent( "on" + type, eventHandle );
}
}
}
if ( special.add ) {
special.add.call( elem, handleObj );
if ( !handleObj.handler.guid ) {
handleObj.handler.guid = handler.guid;
}
}
// Add to the element's handler list, delegates in front
if ( selector ) {
handlers.splice( handlers.delegateCount++, 0, handleObj );
} else {
handlers.push( handleObj );
}
// Keep track of which events have ever been used, for event optimization
jQuery.event.global[ type ] = true;
}
// Nullify elem to prevent memory leaks in IE
elem = null;
},
global: {},
// Detach an event or set of events from an element
remove: function( elem, types, handler, selector, mappedTypes ) {
var t, tns, type, origType, namespaces, origCount,
j, events, special, eventType, handleObj,
elemData = jQuery.hasData( elem ) && jQuery._data( elem );
if ( !elemData || !(events = elemData.events) ) {
return;
}
// Once for each type.namespace in types; type may be omitted
types = jQuery.trim( hoverHack( types || "" ) ).split(" ");
for ( t = 0; t < types.length; t++ ) {
tns = rtypenamespace.exec( types[t] ) || [];
type = origType = tns[1];
namespaces = tns[2];
// Unbind all events (on this namespace, if provided) for the element
if ( !type ) {
for ( type in events ) {
jQuery.event.remove( elem, type + types[ t ], handler, selector, true );
}
continue;
}
special = jQuery.event.special[ type ] || {};
type = ( selector? special.delegateType : special.bindType ) || type;
eventType = events[ type ] || [];
origCount = eventType.length;
namespaces = namespaces ? new RegExp("(^|\\.)" + namespaces.split(".").sort().join("\\.(?:.*\\.|)") + "(\\.|$)") : null;
// Remove matching events
for ( j = 0; j < eventType.length; j++ ) {
handleObj = eventType[ j ];
if ( ( mappedTypes || origType === handleObj.origType ) &&
( !handler || handler.guid === handleObj.guid ) &&
( !namespaces || namespaces.test( handleObj.namespace ) ) &&
( !selector || selector === handleObj.selector || selector === "**" && handleObj.selector ) ) {
eventType.splice( j--, 1 );
if ( handleObj.selector ) {
eventType.delegateCount--;
}
if ( special.remove ) {
special.remove.call( elem, handleObj );
}
}
}
// Remove generic event handler if we removed something and no more handlers exist
// (avoids potential for endless recursion during removal of special event handlers)
if ( eventType.length === 0 && origCount !== eventType.length ) {
if ( !special.teardown || special.teardown.call( elem, namespaces, elemData.handle ) === false ) {
jQuery.removeEvent( elem, type, elemData.handle );
}
delete events[ type ];
}
}
// Remove the expando if it's no longer used
if ( jQuery.isEmptyObject( events ) ) {
delete elemData.handle;
// removeData also checks for emptiness and clears the expando if empty
// so use it instead of delete
jQuery.removeData( elem, "events", true );
}
},
// Events that are safe to short-circuit if no handlers are attached.
// Native DOM events should not be added, they may have inline handlers.
customEvent: {
"getData": true,
"setData": true,
"changeData": true
},
trigger: function( event, data, elem, onlyHandlers ) {
// Don't do events on text and comment nodes
if ( elem && (elem.nodeType === 3 || elem.nodeType === 8) ) {
return;
}
// Event object or event type
var cache, exclusive, i, cur, old, ontype, special, handle, eventPath, bubbleType,
type = event.type || event,
namespaces = [];
// focus/blur morphs to focusin/out; ensure we're not firing them right now
if ( rfocusMorph.test( type + jQuery.event.triggered ) ) {
return;
}
if ( type.indexOf( "!" ) >= 0 ) {
// Exclusive events trigger only for the exact event (no namespaces)
type = type.slice(0, -1);
exclusive = true;
}
if ( type.indexOf( "." ) >= 0 ) {
// Namespaced trigger; create a regexp to match event type in handle()
namespaces = type.split(".");
type = namespaces.shift();
namespaces.sort();
}
if ( (!elem || jQuery.event.customEvent[ type ]) && !jQuery.event.global[ type ] ) {
// No jQuery handlers for this event type, and it can't have inline handlers
return;
}
// Caller can pass in an Event, Object, or just an event type string
event = typeof event === "object" ?
// jQuery.Event object
event[ jQuery.expando ] ? event :
// Object literal
new jQuery.Event( type, event ) :
// Just the event type (string)
new jQuery.Event( type );
event.type = type;
event.isTrigger = true;
event.exclusive = exclusive;
event.namespace = namespaces.join( "." );
event.namespace_re = event.namespace? new RegExp("(^|\\.)" + namespaces.join("\\.(?:.*\\.|)") + "(\\.|$)") : null;
ontype = type.indexOf( ":" ) < 0 ? "on" + type : "";
// Handle a global trigger
if ( !elem ) {
// TODO: Stop taunting the data cache; remove global events and always attach to document
cache = jQuery.cache;
for ( i in cache ) {
if ( cache[ i ].events && cache[ i ].events[ type ] ) {
jQuery.event.trigger( event, data, cache[ i ].handle.elem, true );
}
}
return;
}
// Clean up the event in case it is being reused
event.result = undefined;
if ( !event.target ) {
event.target = elem;
}
// Clone any incoming data and prepend the event, creating the handler arg list
data = data != null ? jQuery.makeArray( data ) : [];
data.unshift( event );
// Allow special events to draw outside the lines
special = jQuery.event.special[ type ] || {};
if ( special.trigger && special.trigger.apply( elem, data ) === false ) {
return;
}
// Determine event propagation path in advance, per W3C events spec (#9951)
// Bubble up to document, then to window; watch for a global ownerDocument var (#9724)
eventPath = [[ elem, special.bindType || type ]];
if ( !onlyHandlers && !special.noBubble && !jQuery.isWindow( elem ) ) {
bubbleType = special.delegateType || type;
cur = rfocusMorph.test( bubbleType + type ) ? elem : elem.parentNode;
for ( old = elem; cur; cur = cur.parentNode ) {
eventPath.push([ cur, bubbleType ]);
old = cur;
}
// Only add window if we got to document (e.g., not plain obj or detached DOM)
if ( old === (elem.ownerDocument || document) ) {
eventPath.push([ old.defaultView || old.parentWindow || window, bubbleType ]);
}
}
// Fire handlers on the event path
for ( i = 0; i < eventPath.length && !event.isPropagationStopped(); i++ ) {
cur = eventPath[i][0];
event.type = eventPath[i][1];
handle = ( jQuery._data( cur, "events" ) || {} )[ event.type ] && jQuery._data( cur, "handle" );
if ( handle ) {
handle.apply( cur, data );
}
// Note that this is a bare JS function and not a jQuery handler
handle = ontype && cur[ ontype ];
if ( handle && jQuery.acceptData( cur ) && handle.apply && handle.apply( cur, data ) === false ) {
event.preventDefault();
}
}
event.type = type;
// If nobody prevented the default action, do it now
if ( !onlyHandlers && !event.isDefaultPrevented() ) {
if ( (!special._default || special._default.apply( elem.ownerDocument, data ) === false) &&
!(type === "click" && jQuery.nodeName( elem, "a" )) && jQuery.acceptData( elem ) ) {
// Call a native DOM method on the target with the same name name as the event.
// Can't use an .isFunction() check here because IE6/7 fails that test.
// Don't do default actions on window, that's where global variables be (#6170)
// IE<9 dies on focus/blur to hidden element (#1486)
if ( ontype && elem[ type ] && ((type !== "focus" && type !== "blur") || event.target.offsetWidth !== 0) && !jQuery.isWindow( elem ) ) {
// Don't re-trigger an onFOO event when we call its FOO() method
old = elem[ ontype ];
if ( old ) {
elem[ ontype ] = null;
}
// Prevent re-triggering of the same event, since we already bubbled it above
jQuery.event.triggered = type;
elem[ type ]();
jQuery.event.triggered = undefined;
if ( old ) {
elem[ ontype ] = old;
}
}
}
}
return event.result;
},
dispatch: function( event ) {
// Make a writable jQuery.Event from the native event object
event = jQuery.event.fix( event || window.event );
var i, j, cur, ret, selMatch, matched, matches, handleObj, sel, related,
handlers = ( (jQuery._data( this, "events" ) || {} )[ event.type ] || []),
delegateCount = handlers.delegateCount,
args = core_slice.call( arguments ),
run_all = !event.exclusive && !event.namespace,
special = jQuery.event.special[ event.type ] || {},
handlerQueue = [];
// Use the fix-ed jQuery.Event rather than the (read-only) native event
args[0] = event;
event.delegateTarget = this;
// Call the preDispatch hook for the mapped type, and let it bail if desired
if ( special.preDispatch && special.preDispatch.call( this, event ) === false ) {
return;
}
// Determine handlers that should run if there are delegated events
// Avoid non-left-click bubbling in Firefox (#3861)
if ( delegateCount && !(event.button && event.type === "click") ) {
for ( cur = event.target; cur != this; cur = cur.parentNode || this ) {
// Don't process clicks (ONLY) on disabled elements (#6911, #8165, #11382, #11764)
if ( cur.disabled !== true || event.type !== "click" ) {
selMatch = {};
matches = [];
for ( i = 0; i < delegateCount; i++ ) {
handleObj = handlers[ i ];
sel = handleObj.selector;
if ( selMatch[ sel ] === undefined ) {
selMatch[ sel ] = handleObj.needsContext ?
jQuery( sel, this ).index( cur ) >= 0 :
jQuery.find( sel, this, null, [ cur ] ).length;
}
if ( selMatch[ sel ] ) {
matches.push( handleObj );
}
}
if ( matches.length ) {
handlerQueue.push({ elem: cur, matches: matches });
}
}
}
}
// Add the remaining (directly-bound) handlers
if ( handlers.length > delegateCount ) {
handlerQueue.push({ elem: this, matches: handlers.slice( delegateCount ) });
}
// Run delegates first; they may want to stop propagation beneath us
for ( i = 0; i < handlerQueue.length && !event.isPropagationStopped(); i++ ) {
matched = handlerQueue[ i ];
event.currentTarget = matched.elem;
for ( j = 0; j < matched.matches.length && !event.isImmediatePropagationStopped(); j++ ) {
handleObj = matched.matches[ j ];
// Triggered event must either 1) be non-exclusive and have no namespace, or
// 2) have namespace(s) a subset or equal to those in the bound event (both can have no namespace).
if ( run_all || (!event.namespace && !handleObj.namespace) || event.namespace_re && event.namespace_re.test( handleObj.namespace ) ) {
event.data = handleObj.data;
event.handleObj = handleObj;
ret = ( (jQuery.event.special[ handleObj.origType ] || {}).handle || handleObj.handler )
.apply( matched.elem, args );
if ( ret !== undefined ) {
event.result = ret;
if ( ret === false ) {
event.preventDefault();
event.stopPropagation();
}
}
}
}
}
// Call the postDispatch hook for the mapped type
if ( special.postDispatch ) {
special.postDispatch.call( this, event );
}
return event.result;
},
// Includes some event props shared by KeyEvent and MouseEvent
// *** attrChange attrName relatedNode srcElement are not normalized, non-W3C, deprecated, will be removed in 1.8 ***
props: "attrChange attrName relatedNode srcElement altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),
fixHooks: {},
keyHooks: {
props: "char charCode key keyCode".split(" "),
filter: function( event, original ) {
// Add which for key events
if ( event.which == null ) {
event.which = original.charCode != null ? original.charCode : original.keyCode;
}
return event;
}
},
mouseHooks: {
props: "button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),
filter: function( event, original ) {
var eventDoc, doc, body,
button = original.button,
fromElement = original.fromElement;
// Calculate pageX/Y if missing and clientX/Y available
if ( event.pageX == null && original.clientX != null ) {
eventDoc = event.target.ownerDocument || document;
doc = eventDoc.documentElement;
body = eventDoc.body;
event.pageX = original.clientX + ( doc && doc.scrollLeft || body && body.scrollLeft || 0 ) - ( doc && doc.clientLeft || body && body.clientLeft || 0 );
event.pageY = original.clientY + ( doc && doc.scrollTop || body && body.scrollTop || 0 ) - ( doc && doc.clientTop || body && body.clientTop || 0 );
}
// Add relatedTarget, if necessary
if ( !event.relatedTarget && fromElement ) {
event.relatedTarget = fromElement === event.target ? original.toElement : fromElement;
}
// Add which for click: 1 === left; 2 === middle; 3 === right
// Note: button is not normalized, so don't use it
if ( !event.which && button !== undefined ) {
event.which = ( button & 1 ? 1 : ( button & 2 ? 3 : ( button & 4 ? 2 : 0 ) ) );
}
return event;
}
},
fix: function( event ) {
if ( event[ jQuery.expando ] ) {
return event;
}
// Create a writable copy of the event object and normalize some properties
var i, prop,
originalEvent = event,
fixHook = jQuery.event.fixHooks[ event.type ] || {},
copy = fixHook.props ? this.props.concat( fixHook.props ) : this.props;
event = jQuery.Event( originalEvent );
for ( i = copy.length; i; ) {
prop = copy[ --i ];
event[ prop ] = originalEvent[ prop ];
}
// Fix target property, if necessary (#1925, IE 6/7/8 & Safari2)
if ( !event.target ) {
event.target = originalEvent.srcElement || document;
}
// Target should not be a text node (#504, Safari)
if ( event.target.nodeType === 3 ) {
event.target = event.target.parentNode;
}
// For mouse/key events, metaKey==false if it's undefined (#3368, #11328; IE6/7/8)
event.metaKey = !!event.metaKey;
return fixHook.filter? fixHook.filter( event, originalEvent ) : event;
},
special: {
load: {
// Prevent triggered image.load events from bubbling to window.load
noBubble: true
},
focus: {
delegateType: "focusin"
},
blur: {
delegateType: "focusout"
},
beforeunload: {
setup: function( data, namespaces, eventHandle ) {
// We only want to do this special case on windows
if ( jQuery.isWindow( this ) ) {
this.onbeforeunload = eventHandle;
}
},
teardown: function( namespaces, eventHandle ) {
if ( this.onbeforeunload === eventHandle ) {
this.onbeforeunload = null;
}
}
}
},
simulate: function( type, elem, event, bubble ) {
// Piggyback on a donor event to simulate a different one.
// Fake originalEvent to avoid donor's stopPropagation, but if the
// simulated event prevents default then we do the same on the donor.
var e = jQuery.extend(
new jQuery.Event(),
event,
{ type: type,
isSimulated: true,
originalEvent: {}
}
);
if ( bubble ) {
jQuery.event.trigger( e, null, elem );
} else {
jQuery.event.dispatch.call( elem, e );
}
if ( e.isDefaultPrevented() ) {
event.preventDefault();
}
}
};
// Some plugins are using, but it's undocumented/deprecated and will be removed.
// The 1.7 special event interface should provide all the hooks needed now.
jQuery.event.handle = jQuery.event.dispatch;
jQuery.removeEvent = document.removeEventListener ?
function( elem, type, handle ) {
if ( elem.removeEventListener ) {
elem.removeEventListener( type, handle, false );
}
} :
function( elem, type, handle ) {
var name = "on" + type;
if ( elem.detachEvent ) {
// #8545, #7054, preventing memory leaks for custom events in IE6-8
// detachEvent needed property on element, by name of that event, to properly expose it to GC
if ( typeof elem[ name ] === "undefined" ) {
elem[ name ] = null;
}
elem.detachEvent( name, handle );
}
};
jQuery.Event = function( src, props ) {
// Allow instantiation without the 'new' keyword
if ( !(this instanceof jQuery.Event) ) {
return new jQuery.Event( src, props );
}
// Event object
if ( src && src.type ) {
this.originalEvent = src;
this.type = src.type;
// Events bubbling up the document may have been marked as prevented
// by a handler lower down the tree; reflect the correct value.
this.isDefaultPrevented = ( src.defaultPrevented || src.returnValue === false ||
src.getPreventDefault && src.getPreventDefault() ) ? returnTrue : returnFalse;
// Event type
} else {
this.type = src;
}
// Put explicitly provided properties onto the event object
if ( props ) {
jQuery.extend( this, props );
}
// Create a timestamp if incoming event doesn't have one
this.timeStamp = src && src.timeStamp || jQuery.now();
// Mark it as fixed
this[ jQuery.expando ] = true;
};
function returnFalse() {
return false;
}
function returnTrue() {
return true;
}
// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding
// http://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html
jQuery.Event.prototype = {
preventDefault: function() {
this.isDefaultPrevented = returnTrue;
var e = this.originalEvent;
if ( !e ) {
return;
}
// if preventDefault exists run it on the original event
if ( e.preventDefault ) {
e.preventDefault();
// otherwise set the returnValue property of the original event to false (IE)
} else {
e.returnValue = false;
}
},
stopPropagation: function() {
this.isPropagationStopped = returnTrue;
var e = this.originalEvent;
if ( !e ) {
return;
}
// if stopPropagation exists run it on the original event
if ( e.stopPropagation ) {
e.stopPropagation();
}
// otherwise set the cancelBubble property of the original event to true (IE)
e.cancelBubble = true;
},
stopImmediatePropagation: function() {
this.isImmediatePropagationStopped = returnTrue;
this.stopPropagation();
},
isDefaultPrevented: returnFalse,
isPropagationStopped: returnFalse,
isImmediatePropagationStopped: returnFalse
};
// Create mouseenter/leave events using mouseover/out and event-time checks
jQuery.each({
mouseenter: "mouseover",
mouseleave: "mouseout"
}, function( orig, fix ) {
jQuery.event.special[ orig ] = {
delegateType: fix,
bindType: fix,
handle: function( event ) {
var ret,
target = this,
related = event.relatedTarget,
handleObj = event.handleObj,
selector = handleObj.selector;
// For mousenter/leave call the handler if related is outside the target.
// NB: No relatedTarget if the mouse left/entered the browser window
if ( !related || (related !== target && !jQuery.contains( target, related )) ) {
event.type = handleObj.origType;
ret = handleObj.handler.apply( this, arguments );
event.type = fix;
}
return ret;
}
};
});
// IE submit delegation
if ( !jQuery.support.submitBubbles ) {
jQuery.event.special.submit = {
setup: function() {
// Only need this for delegated form submit events
if ( jQuery.nodeName( this, "form" ) ) {
return false;
}
// Lazy-add a submit handler when a descendant form may potentially be submitted
jQuery.event.add( this, "click._submit keypress._submit", function( e ) {
// Node name check avoids a VML-related crash in IE (#9807)
var elem = e.target,
form = jQuery.nodeName( elem, "input" ) || jQuery.nodeName( elem, "button" ) ? elem.form : undefined;
if ( form && !jQuery._data( form, "_submit_attached" ) ) {
jQuery.event.add( form, "submit._submit", function( event ) {
event._submit_bubble = true;
});
jQuery._data( form, "_submit_attached", true );
}
});
// return undefined since we don't need an event listener
},
postDispatch: function( event ) {
// If form was submitted by the user, bubble the event up the tree
if ( event._submit_bubble ) {
delete event._submit_bubble;
if ( this.parentNode && !event.isTrigger ) {
jQuery.event.simulate( "submit", this.parentNode, event, true );
}
}
},
teardown: function() {
// Only need this for delegated form submit events
if ( jQuery.nodeName( this, "form" ) ) {
return false;
}
// Remove delegated handlers; cleanData eventually reaps submit handlers attached above
jQuery.event.remove( this, "._submit" );
}
};
}
// IE change delegation and checkbox/radio fix
if ( !jQuery.support.changeBubbles ) {
jQuery.event.special.change = {
setup: function() {
if ( rformElems.test( this.nodeName ) ) {
// IE doesn't fire change on a check/radio until blur; trigger it on click
// after a propertychange. Eat the blur-change in special.change.handle.
// This still fires onchange a second time for check/radio after blur.
if ( this.type === "checkbox" || this.type === "radio" ) {
jQuery.event.add( this, "propertychange._change", function( event ) {
if ( event.originalEvent.propertyName === "checked" ) {
this._just_changed = true;
}
});
jQuery.event.add( this, "click._change", function( event ) {
if ( this._just_changed && !event.isTrigger ) {
this._just_changed = false;
}
// Allow triggered, simulated change events (#11500)
jQuery.event.simulate( "change", this, event, true );
});
}
return false;
}
// Delegated event; lazy-add a change handler on descendant inputs
jQuery.event.add( this, "beforeactivate._change", function( e ) {
var elem = e.target;
if ( rformElems.test( elem.nodeName ) && !jQuery._data( elem, "_change_attached" ) ) {
jQuery.event.add( elem, "change._change", function( event ) {
if ( this.parentNode && !event.isSimulated && !event.isTrigger ) {
jQuery.event.simulate( "change", this.parentNode, event, true );
}
});
jQuery._data( elem, "_change_attached", true );
}
});
},
handle: function( event ) {
var elem = event.target;
// Swallow native change events from checkbox/radio, we already triggered them above
if ( this !== elem || event.isSimulated || event.isTrigger || (elem.type !== "radio" && elem.type !== "checkbox") ) {
return event.handleObj.handler.apply( this, arguments );
}
},
teardown: function() {
jQuery.event.remove( this, "._change" );
return !rformElems.test( this.nodeName );
}
};
}
// Create "bubbling" focus and blur events
if ( !jQuery.support.focusinBubbles ) {
jQuery.each({ focus: "focusin", blur: "focusout" }, function( orig, fix ) {
// Attach a single capturing handler while someone wants focusin/focusout
var attaches = 0,
handler = function( event ) {
jQuery.event.simulate( fix, event.target, jQuery.event.fix( event ), true );
};
jQuery.event.special[ fix ] = {
setup: function() {
if ( attaches++ === 0 ) {
document.addEventListener( orig, handler, true );
}
},
teardown: function() {
if ( --attaches === 0 ) {
document.removeEventListener( orig, handler, true );
}
}
};
});
}
jQuery.fn.extend({
on: function( types, selector, data, fn, /*INTERNAL*/ one ) {
var origFn, type;
// Types can be a map of types/handlers
if ( typeof types === "object" ) {
// ( types-Object, selector, data )
if ( typeof selector !== "string" ) { // && selector != null
// ( types-Object, data )
data = data || selector;
selector = undefined;
}
for ( type in types ) {
this.on( type, selector, data, types[ type ], one );
}
return this;
}
if ( data == null && fn == null ) {
// ( types, fn )
fn = selector;
data = selector = undefined;
} else if ( fn == null ) {
if ( typeof selector === "string" ) {
// ( types, selector, fn )
fn = data;
data = undefined;
} else {
// ( types, data, fn )
fn = data;
data = selector;
selector = undefined;
}
}
if ( fn === false ) {
fn = returnFalse;
} else if ( !fn ) {
return this;
}
if ( one === 1 ) {
origFn = fn;
fn = function( event ) {
// Can use an empty set, since event contains the info
jQuery().off( event );
return origFn.apply( this, arguments );
};
// Use same guid so caller can remove using origFn
fn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ );
}
return this.each( function() {
jQuery.event.add( this, types, fn, data, selector );
});
},
one: function( types, selector, data, fn ) {
return this.on( types, selector, data, fn, 1 );
},
off: function( types, selector, fn ) {
var handleObj, type;
if ( types && types.preventDefault && types.handleObj ) {
// ( event ) dispatched jQuery.Event
handleObj = types.handleObj;
jQuery( types.delegateTarget ).off(
handleObj.namespace ? handleObj.origType + "." + handleObj.namespace : handleObj.origType,
handleObj.selector,
handleObj.handler
);
return this;
}
if ( typeof types === "object" ) {
// ( types-object [, selector] )
for ( type in types ) {
this.off( type, selector, types[ type ] );
}
return this;
}
if ( selector === false || typeof selector === "function" ) {
// ( types [, fn] )
fn = selector;
selector = undefined;
}
if ( fn === false ) {
fn = returnFalse;
}
return this.each(function() {
jQuery.event.remove( this, types, fn, selector );
});
},
bind: function( types, data, fn ) {
return this.on( types, null, data, fn );
},
unbind: function( types, fn ) {
return this.off( types, null, fn );
},
live: function( types, data, fn ) {
jQuery( this.context ).on( types, this.selector, data, fn );
return this;
},
die: function( types, fn ) {
jQuery( this.context ).off( types, this.selector || "**", fn );
return this;
},
delegate: function( selector, types, data, fn ) {
return this.on( types, selector, data, fn );
},
undelegate: function( selector, types, fn ) {
// ( namespace ) or ( selector, types [, fn] )
return arguments.length === 1 ? this.off( selector, "**" ) : this.off( types, selector || "**", fn );
},
trigger: function( type, data ) {
return this.each(function() {
jQuery.event.trigger( type, data, this );
});
},
triggerHandler: function( type, data ) {
if ( this[0] ) {
return jQuery.event.trigger( type, data, this[0], true );
}
},
toggle: function( fn ) {
// Save reference to arguments for access in closure
var args = arguments,
guid = fn.guid || jQuery.guid++,
i = 0,
toggler = function( event ) {
// Figure out which function to execute
var lastToggle = ( jQuery._data( this, "lastToggle" + fn.guid ) || 0 ) % i;
jQuery._data( this, "lastToggle" + fn.guid, lastToggle + 1 );
// Make sure that clicks stop
event.preventDefault();
// and execute the function
return args[ lastToggle ].apply( this, arguments ) || false;
};
// link all the functions, so any of them can unbind this click handler
toggler.guid = guid;
while ( i < args.length ) {
args[ i++ ].guid = guid;
}
return this.click( toggler );
},
hover: function( fnOver, fnOut ) {
return this.mouseenter( fnOver ).mouseleave( fnOut || fnOver );
}
});
jQuery.each( ("blur focus focusin focusout load resize scroll unload click dblclick " +
"mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave " +
"change select submit keydown keypress keyup error contextmenu").split(" "), function( i, name ) {
// Handle event binding
jQuery.fn[ name ] = function( data, fn ) {
if ( fn == null ) {
fn = data;
data = null;
}
return arguments.length > 0 ?
this.on( name, null, data, fn ) :
this.trigger( name );
};
if ( rkeyEvent.test( name ) ) {
jQuery.event.fixHooks[ name ] = jQuery.event.keyHooks;
}
if ( rmouseEvent.test( name ) ) {
jQuery.event.fixHooks[ name ] = jQuery.event.mouseHooks;
}
});
/*!
* Sizzle CSS Selector Engine
* Copyright 2012 jQuery Foundation and other contributors
* Released under the MIT license
* http://sizzlejs.com/
*/
(function( window, undefined ) {
var cachedruns,
assertGetIdNotName,
Expr,
getText,
isXML,
contains,
compile,
sortOrder,
hasDuplicate,
outermostContext,
baseHasDuplicate = true,
strundefined = "undefined",
expando = ( "sizcache" + Math.random() ).replace( ".", "" ),
Token = String,
document = window.document,
docElem = document.documentElement,
dirruns = 0,
done = 0,
pop = [].pop,
push = [].push,
slice = [].slice,
// Use a stripped-down indexOf if a native one is unavailable
indexOf = [].indexOf || function( elem ) {
var i = 0,
len = this.length;
for ( ; i < len; i++ ) {
if ( this[i] === elem ) {
return i;
}
}
return -1;
},
// Augment a function for special use by Sizzle
markFunction = function( fn, value ) {
fn[ expando ] = value == null || value;
return fn;
},
createCache = function() {
var cache = {},
keys = [];
return markFunction(function( key, value ) {
// Only keep the most recent entries
if ( keys.push( key ) > Expr.cacheLength ) {
delete cache[ keys.shift() ];
}
// Retrieve with (key + " ") to avoid collision with native Object.prototype properties (see Issue #157)
return (cache[ key + " " ] = value);
}, cache );
},
classCache = createCache(),
tokenCache = createCache(),
compilerCache = createCache(),
// Regex
// Whitespace characters http://www.w3.org/TR/css3-selectors/#whitespace
whitespace = "[\\x20\\t\\r\\n\\f]",
// http://www.w3.org/TR/css3-syntax/#characters
characterEncoding = "(?:\\\\.|[-\\w]|[^\\x00-\\xa0])+",
// Loosely modeled on CSS identifier characters
// An unquoted value should be a CSS identifier (http://www.w3.org/TR/css3-selectors/#attribute-selectors)
// Proper syntax: http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier
identifier = characterEncoding.replace( "w", "w#" ),
// Acceptable operators http://www.w3.org/TR/selectors/#attribute-selectors
operators = "([*^$|!~]?=)",
attributes = "\\[" + whitespace + "*(" + characterEncoding + ")" + whitespace +
"*(?:" + operators + whitespace + "*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|(" + identifier + ")|)|)" + whitespace + "*\\]",
// Prefer arguments not in parens/brackets,
// then attribute selectors and non-pseudos (denoted by :),
// then anything else
// These preferences are here to reduce the number of selectors
// needing tokenize in the PSEUDO preFilter
pseudos = ":(" + characterEncoding + ")(?:\\((?:(['\"])((?:\\\\.|[^\\\\])*?)\\2|([^()[\\]]*|(?:(?:" + attributes + ")|[^:]|\\\\.)*|.*))\\)|)",
// For matchExpr.POS and matchExpr.needsContext
pos = ":(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + whitespace +
"*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)",
// Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter
rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + whitespace + "+$", "g" ),
rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ),
rcombinators = new RegExp( "^" + whitespace + "*([\\x20\\t\\r\\n\\f>+~])" + whitespace + "*" ),
rpseudo = new RegExp( pseudos ),
// Easily-parseable/retrievable ID or TAG or CLASS selectors
rquickExpr = /^(?:#([\w\-]+)|(\w+)|\.([\w\-]+))$/,
rnot = /^:not/,
rsibling = /[\x20\t\r\n\f]*[+~]/,
rendsWithNot = /:not\($/,
rheader = /h\d/i,
rinputs = /input|select|textarea|button/i,
rbackslash = /\\(?!\\)/g,
matchExpr = {
"ID": new RegExp( "^#(" + characterEncoding + ")" ),
"CLASS": new RegExp( "^\\.(" + characterEncoding + ")" ),
"NAME": new RegExp( "^\\[name=['\"]?(" + characterEncoding + ")['\"]?\\]" ),
"TAG": new RegExp( "^(" + characterEncoding.replace( "w", "w*" ) + ")" ),
"ATTR": new RegExp( "^" + attributes ),
"PSEUDO": new RegExp( "^" + pseudos ),
"POS": new RegExp( pos, "i" ),
"CHILD": new RegExp( "^:(only|nth|first|last)-child(?:\\(" + whitespace +
"*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" + whitespace +
"*(\\d+)|))" + whitespace + "*\\)|)", "i" ),
// For use in libraries implementing .is()
"needsContext": new RegExp( "^" + whitespace + "*[>+~]|" + pos, "i" )
},
// Support
// Used for testing something on an element
assert = function( fn ) {
var div = document.createElement("div");
try {
return fn( div );
} catch (e) {
return false;
} finally {
// release memory in IE
div = null;
}
},
// Check if getElementsByTagName("*") returns only elements
assertTagNameNoComments = assert(function( div ) {
div.appendChild( document.createComment("") );
return !div.getElementsByTagName("*").length;
}),
// Check if getAttribute returns normalized href attributes
assertHrefNotNormalized = assert(function( div ) {
div.innerHTML = " ";
return div.firstChild && typeof div.firstChild.getAttribute !== strundefined &&
div.firstChild.getAttribute("href") === "#";
}),
// Check if attributes should be retrieved by attribute nodes
assertAttributes = assert(function( div ) {
div.innerHTML = " ";
var type = typeof div.lastChild.getAttribute("multiple");
// IE8 returns a string for some attributes even when not present
return type !== "boolean" && type !== "string";
}),
// Check if getElementsByClassName can be trusted
assertUsableClassName = assert(function( div ) {
// Opera can't find a second classname (in 9.6)
div.innerHTML = "
";
if ( !div.getElementsByClassName || !div.getElementsByClassName("e").length ) {
return false;
}
// Safari 3.2 caches class attributes and doesn't catch changes
div.lastChild.className = "e";
return div.getElementsByClassName("e").length === 2;
}),
// Check if getElementById returns elements by name
// Check if getElementsByName privileges form controls or returns elements by ID
assertUsableName = assert(function( div ) {
// Inject content
div.id = expando + 0;
div.innerHTML = "
";
docElem.insertBefore( div, docElem.firstChild );
// Test
var pass = document.getElementsByName &&
// buggy browsers will return fewer than the correct 2
document.getElementsByName( expando ).length === 2 +
// buggy browsers will return more than the correct 0
document.getElementsByName( expando + 0 ).length;
assertGetIdNotName = !document.getElementById( expando );
// Cleanup
docElem.removeChild( div );
return pass;
});
// If slice is not available, provide a backup
try {
slice.call( docElem.childNodes, 0 )[0].nodeType;
} catch ( e ) {
slice = function( i ) {
var elem,
results = [];
for ( ; (elem = this[i]); i++ ) {
results.push( elem );
}
return results;
};
}
function Sizzle( selector, context, results, seed ) {
results = results || [];
context = context || document;
var match, elem, xml, m,
nodeType = context.nodeType;
if ( !selector || typeof selector !== "string" ) {
return results;
}
if ( nodeType !== 1 && nodeType !== 9 ) {
return [];
}
xml = isXML( context );
if ( !xml && !seed ) {
if ( (match = rquickExpr.exec( selector )) ) {
// Speed-up: Sizzle("#ID")
if ( (m = match[1]) ) {
if ( nodeType === 9 ) {
elem = context.getElementById( m );
// Check parentNode to catch when Blackberry 4.6 returns
// nodes that are no longer in the document #6963
if ( elem && elem.parentNode ) {
// Handle the case where IE, Opera, and Webkit return items
// by name instead of ID
if ( elem.id === m ) {
results.push( elem );
return results;
}
} else {
return results;
}
} else {
// Context is not a document
if ( context.ownerDocument && (elem = context.ownerDocument.getElementById( m )) &&
contains( context, elem ) && elem.id === m ) {
results.push( elem );
return results;
}
}
// Speed-up: Sizzle("TAG")
} else if ( match[2] ) {
push.apply( results, slice.call(context.getElementsByTagName( selector ), 0) );
return results;
// Speed-up: Sizzle(".CLASS")
} else if ( (m = match[3]) && assertUsableClassName && context.getElementsByClassName ) {
push.apply( results, slice.call(context.getElementsByClassName( m ), 0) );
return results;
}
}
}
// All others
return select( selector.replace( rtrim, "$1" ), context, results, seed, xml );
}
Sizzle.matches = function( expr, elements ) {
return Sizzle( expr, null, null, elements );
};
Sizzle.matchesSelector = function( elem, expr ) {
return Sizzle( expr, null, null, [ elem ] ).length > 0;
};
// Returns a function to use in pseudos for input types
function createInputPseudo( type ) {
return function( elem ) {
var name = elem.nodeName.toLowerCase();
return name === "input" && elem.type === type;
};
}
// Returns a function to use in pseudos for buttons
function createButtonPseudo( type ) {
return function( elem ) {
var name = elem.nodeName.toLowerCase();
return (name === "input" || name === "button") && elem.type === type;
};
}
// Returns a function to use in pseudos for positionals
function createPositionalPseudo( fn ) {
return markFunction(function( argument ) {
argument = +argument;
return markFunction(function( seed, matches ) {
var j,
matchIndexes = fn( [], seed.length, argument ),
i = matchIndexes.length;
// Match elements found at the specified indexes
while ( i-- ) {
if ( seed[ (j = matchIndexes[i]) ] ) {
seed[j] = !(matches[j] = seed[j]);
}
}
});
});
}
/**
* Utility function for retrieving the text value of an array of DOM nodes
* @param {Array|Element} elem
*/
getText = Sizzle.getText = function( elem ) {
var node,
ret = "",
i = 0,
nodeType = elem.nodeType;
if ( nodeType ) {
if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) {
// Use textContent for elements
// innerText usage removed for consistency of new lines (see #11153)
if ( typeof elem.textContent === "string" ) {
return elem.textContent;
} else {
// Traverse its children
for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {
ret += getText( elem );
}
}
} else if ( nodeType === 3 || nodeType === 4 ) {
return elem.nodeValue;
}
// Do not include comment or processing instruction nodes
} else {
// If no nodeType, this is expected to be an array
for ( ; (node = elem[i]); i++ ) {
// Do not traverse comment nodes
ret += getText( node );
}
}
return ret;
};
isXML = Sizzle.isXML = function( elem ) {
// documentElement is verified for cases where it doesn't yet exist
// (such as loading iframes in IE - #4833)
var documentElement = elem && (elem.ownerDocument || elem).documentElement;
return documentElement ? documentElement.nodeName !== "HTML" : false;
};
// Element contains another
contains = Sizzle.contains = docElem.contains ?
function( a, b ) {
var adown = a.nodeType === 9 ? a.documentElement : a,
bup = b && b.parentNode;
return a === bup || !!( bup && bup.nodeType === 1 && adown.contains && adown.contains(bup) );
} :
docElem.compareDocumentPosition ?
function( a, b ) {
return b && !!( a.compareDocumentPosition( b ) & 16 );
} :
function( a, b ) {
while ( (b = b.parentNode) ) {
if ( b === a ) {
return true;
}
}
return false;
};
Sizzle.attr = function( elem, name ) {
var val,
xml = isXML( elem );
if ( !xml ) {
name = name.toLowerCase();
}
if ( (val = Expr.attrHandle[ name ]) ) {
return val( elem );
}
if ( xml || assertAttributes ) {
return elem.getAttribute( name );
}
val = elem.getAttributeNode( name );
return val ?
typeof elem[ name ] === "boolean" ?
elem[ name ] ? name : null :
val.specified ? val.value : null :
null;
};
Expr = Sizzle.selectors = {
// Can be adjusted by the user
cacheLength: 50,
createPseudo: markFunction,
match: matchExpr,
// IE6/7 return a modified href
attrHandle: assertHrefNotNormalized ?
{} :
{
"href": function( elem ) {
return elem.getAttribute( "href", 2 );
},
"type": function( elem ) {
return elem.getAttribute("type");
}
},
find: {
"ID": assertGetIdNotName ?
function( id, context, xml ) {
if ( typeof context.getElementById !== strundefined && !xml ) {
var m = context.getElementById( id );
// Check parentNode to catch when Blackberry 4.6 returns
// nodes that are no longer in the document #6963
return m && m.parentNode ? [m] : [];
}
} :
function( id, context, xml ) {
if ( typeof context.getElementById !== strundefined && !xml ) {
var m = context.getElementById( id );
return m ?
m.id === id || typeof m.getAttributeNode !== strundefined && m.getAttributeNode("id").value === id ?
[m] :
undefined :
[];
}
},
"TAG": assertTagNameNoComments ?
function( tag, context ) {
if ( typeof context.getElementsByTagName !== strundefined ) {
return context.getElementsByTagName( tag );
}
} :
function( tag, context ) {
var results = context.getElementsByTagName( tag );
// Filter out possible comments
if ( tag === "*" ) {
var elem,
tmp = [],
i = 0;
for ( ; (elem = results[i]); i++ ) {
if ( elem.nodeType === 1 ) {
tmp.push( elem );
}
}
return tmp;
}
return results;
},
"NAME": assertUsableName && function( tag, context ) {
if ( typeof context.getElementsByName !== strundefined ) {
return context.getElementsByName( name );
}
},
"CLASS": assertUsableClassName && function( className, context, xml ) {
if ( typeof context.getElementsByClassName !== strundefined && !xml ) {
return context.getElementsByClassName( className );
}
}
},
relative: {
">": { dir: "parentNode", first: true },
" ": { dir: "parentNode" },
"+": { dir: "previousSibling", first: true },
"~": { dir: "previousSibling" }
},
preFilter: {
"ATTR": function( match ) {
match[1] = match[1].replace( rbackslash, "" );
// Move the given value to match[3] whether quoted or unquoted
match[3] = ( match[4] || match[5] || "" ).replace( rbackslash, "" );
if ( match[2] === "~=" ) {
match[3] = " " + match[3] + " ";
}
return match.slice( 0, 4 );
},
"CHILD": function( match ) {
/* matches from matchExpr["CHILD"]
1 type (only|nth|...)
2 argument (even|odd|\d*|\d*n([+-]\d+)?|...)
3 xn-component of xn+y argument ([+-]?\d*n|)
4 sign of xn-component
5 x of xn-component
6 sign of y-component
7 y of y-component
*/
match[1] = match[1].toLowerCase();
if ( match[1] === "nth" ) {
// nth-child requires argument
if ( !match[2] ) {
Sizzle.error( match[0] );
}
// numeric x and y parameters for Expr.filter.CHILD
// remember that false/true cast respectively to 0/1
match[3] = +( match[3] ? match[4] + (match[5] || 1) : 2 * ( match[2] === "even" || match[2] === "odd" ) );
match[4] = +( ( match[6] + match[7] ) || match[2] === "odd" );
// other types prohibit arguments
} else if ( match[2] ) {
Sizzle.error( match[0] );
}
return match;
},
"PSEUDO": function( match ) {
var unquoted, excess;
if ( matchExpr["CHILD"].test( match[0] ) ) {
return null;
}
if ( match[3] ) {
match[2] = match[3];
} else if ( (unquoted = match[4]) ) {
// Only check arguments that contain a pseudo
if ( rpseudo.test(unquoted) &&
// Get excess from tokenize (recursively)
(excess = tokenize( unquoted, true )) &&
// advance to the next closing parenthesis
(excess = unquoted.indexOf( ")", unquoted.length - excess ) - unquoted.length) ) {
// excess is a negative index
unquoted = unquoted.slice( 0, excess );
match[0] = match[0].slice( 0, excess );
}
match[2] = unquoted;
}
// Return only captures needed by the pseudo filter method (type and argument)
return match.slice( 0, 3 );
}
},
filter: {
"ID": assertGetIdNotName ?
function( id ) {
id = id.replace( rbackslash, "" );
return function( elem ) {
return elem.getAttribute("id") === id;
};
} :
function( id ) {
id = id.replace( rbackslash, "" );
return function( elem ) {
var node = typeof elem.getAttributeNode !== strundefined && elem.getAttributeNode("id");
return node && node.value === id;
};
},
"TAG": function( nodeName ) {
if ( nodeName === "*" ) {
return function() { return true; };
}
nodeName = nodeName.replace( rbackslash, "" ).toLowerCase();
return function( elem ) {
return elem.nodeName && elem.nodeName.toLowerCase() === nodeName;
};
},
"CLASS": function( className ) {
var pattern = classCache[ expando ][ className + " " ];
return pattern ||
(pattern = new RegExp( "(^|" + whitespace + ")" + className + "(" + whitespace + "|$)" )) &&
classCache( className, function( elem ) {
return pattern.test( elem.className || (typeof elem.getAttribute !== strundefined && elem.getAttribute("class")) || "" );
});
},
"ATTR": function( name, operator, check ) {
return function( elem, context ) {
var result = Sizzle.attr( elem, name );
if ( result == null ) {
return operator === "!=";
}
if ( !operator ) {
return true;
}
result += "";
return operator === "=" ? result === check :
operator === "!=" ? result !== check :
operator === "^=" ? check && result.indexOf( check ) === 0 :
operator === "*=" ? check && result.indexOf( check ) > -1 :
operator === "$=" ? check && result.substr( result.length - check.length ) === check :
operator === "~=" ? ( " " + result + " " ).indexOf( check ) > -1 :
operator === "|=" ? result === check || result.substr( 0, check.length + 1 ) === check + "-" :
false;
};
},
"CHILD": function( type, argument, first, last ) {
if ( type === "nth" ) {
return function( elem ) {
var node, diff,
parent = elem.parentNode;
if ( first === 1 && last === 0 ) {
return true;
}
if ( parent ) {
diff = 0;
for ( node = parent.firstChild; node; node = node.nextSibling ) {
if ( node.nodeType === 1 ) {
diff++;
if ( elem === node ) {
break;
}
}
}
}
// Incorporate the offset (or cast to NaN), then check against cycle size
diff -= last;
return diff === first || ( diff % first === 0 && diff / first >= 0 );
};
}
return function( elem ) {
var node = elem;
switch ( type ) {
case "only":
case "first":
while ( (node = node.previousSibling) ) {
if ( node.nodeType === 1 ) {
return false;
}
}
if ( type === "first" ) {
return true;
}
node = elem;
/* falls through */
case "last":
while ( (node = node.nextSibling) ) {
if ( node.nodeType === 1 ) {
return false;
}
}
return true;
}
};
},
"PSEUDO": function( pseudo, argument ) {
// pseudo-class names are case-insensitive
// http://www.w3.org/TR/selectors/#pseudo-classes
// Prioritize by case sensitivity in case custom pseudos are added with uppercase letters
// Remember that setFilters inherits from pseudos
var args,
fn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] ||
Sizzle.error( "unsupported pseudo: " + pseudo );
// The user may use createPseudo to indicate that
// arguments are needed to create the filter function
// just as Sizzle does
if ( fn[ expando ] ) {
return fn( argument );
}
// But maintain support for old signatures
if ( fn.length > 1 ) {
args = [ pseudo, pseudo, "", argument ];
return Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ?
markFunction(function( seed, matches ) {
var idx,
matched = fn( seed, argument ),
i = matched.length;
while ( i-- ) {
idx = indexOf.call( seed, matched[i] );
seed[ idx ] = !( matches[ idx ] = matched[i] );
}
}) :
function( elem ) {
return fn( elem, 0, args );
};
}
return fn;
}
},
pseudos: {
"not": markFunction(function( selector ) {
// Trim the selector passed to compile
// to avoid treating leading and trailing
// spaces as combinators
var input = [],
results = [],
matcher = compile( selector.replace( rtrim, "$1" ) );
return matcher[ expando ] ?
markFunction(function( seed, matches, context, xml ) {
var elem,
unmatched = matcher( seed, null, xml, [] ),
i = seed.length;
// Match elements unmatched by `matcher`
while ( i-- ) {
if ( (elem = unmatched[i]) ) {
seed[i] = !(matches[i] = elem);
}
}
}) :
function( elem, context, xml ) {
input[0] = elem;
matcher( input, null, xml, results );
return !results.pop();
};
}),
"has": markFunction(function( selector ) {
return function( elem ) {
return Sizzle( selector, elem ).length > 0;
};
}),
"contains": markFunction(function( text ) {
return function( elem ) {
return ( elem.textContent || elem.innerText || getText( elem ) ).indexOf( text ) > -1;
};
}),
"enabled": function( elem ) {
return elem.disabled === false;
},
"disabled": function( elem ) {
return elem.disabled === true;
},
"checked": function( elem ) {
// In CSS3, :checked should return both checked and selected elements
// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked
var nodeName = elem.nodeName.toLowerCase();
return (nodeName === "input" && !!elem.checked) || (nodeName === "option" && !!elem.selected);
},
"selected": function( elem ) {
// Accessing this property makes selected-by-default
// options in Safari work properly
if ( elem.parentNode ) {
elem.parentNode.selectedIndex;
}
return elem.selected === true;
},
"parent": function( elem ) {
return !Expr.pseudos["empty"]( elem );
},
"empty": function( elem ) {
// http://www.w3.org/TR/selectors/#empty-pseudo
// :empty is only affected by element nodes and content nodes(including text(3), cdata(4)),
// not comment, processing instructions, or others
// Thanks to Diego Perini for the nodeName shortcut
// Greater than "@" means alpha characters (specifically not starting with "#" or "?")
var nodeType;
elem = elem.firstChild;
while ( elem ) {
if ( elem.nodeName > "@" || (nodeType = elem.nodeType) === 3 || nodeType === 4 ) {
return false;
}
elem = elem.nextSibling;
}
return true;
},
"header": function( elem ) {
return rheader.test( elem.nodeName );
},
"text": function( elem ) {
var type, attr;
// IE6 and 7 will map elem.type to 'text' for new HTML5 types (search, etc)
// use getAttribute instead to test this case
return elem.nodeName.toLowerCase() === "input" &&
(type = elem.type) === "text" &&
( (attr = elem.getAttribute("type")) == null || attr.toLowerCase() === type );
},
// Input types
"radio": createInputPseudo("radio"),
"checkbox": createInputPseudo("checkbox"),
"file": createInputPseudo("file"),
"password": createInputPseudo("password"),
"image": createInputPseudo("image"),
"submit": createButtonPseudo("submit"),
"reset": createButtonPseudo("reset"),
"button": function( elem ) {
var name = elem.nodeName.toLowerCase();
return name === "input" && elem.type === "button" || name === "button";
},
"input": function( elem ) {
return rinputs.test( elem.nodeName );
},
"focus": function( elem ) {
var doc = elem.ownerDocument;
return elem === doc.activeElement && (!doc.hasFocus || doc.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex);
},
"active": function( elem ) {
return elem === elem.ownerDocument.activeElement;
},
// Positional types
"first": createPositionalPseudo(function() {
return [ 0 ];
}),
"last": createPositionalPseudo(function( matchIndexes, length ) {
return [ length - 1 ];
}),
"eq": createPositionalPseudo(function( matchIndexes, length, argument ) {
return [ argument < 0 ? argument + length : argument ];
}),
"even": createPositionalPseudo(function( matchIndexes, length ) {
for ( var i = 0; i < length; i += 2 ) {
matchIndexes.push( i );
}
return matchIndexes;
}),
"odd": createPositionalPseudo(function( matchIndexes, length ) {
for ( var i = 1; i < length; i += 2 ) {
matchIndexes.push( i );
}
return matchIndexes;
}),
"lt": createPositionalPseudo(function( matchIndexes, length, argument ) {
for ( var i = argument < 0 ? argument + length : argument; --i >= 0; ) {
matchIndexes.push( i );
}
return matchIndexes;
}),
"gt": createPositionalPseudo(function( matchIndexes, length, argument ) {
for ( var i = argument < 0 ? argument + length : argument; ++i < length; ) {
matchIndexes.push( i );
}
return matchIndexes;
})
}
};
function siblingCheck( a, b, ret ) {
if ( a === b ) {
return ret;
}
var cur = a.nextSibling;
while ( cur ) {
if ( cur === b ) {
return -1;
}
cur = cur.nextSibling;
}
return 1;
}
sortOrder = docElem.compareDocumentPosition ?
function( a, b ) {
if ( a === b ) {
hasDuplicate = true;
return 0;
}
return ( !a.compareDocumentPosition || !b.compareDocumentPosition ?
a.compareDocumentPosition :
a.compareDocumentPosition(b) & 4
) ? -1 : 1;
} :
function( a, b ) {
// The nodes are identical, we can exit early
if ( a === b ) {
hasDuplicate = true;
return 0;
// Fallback to using sourceIndex (in IE) if it's available on both nodes
} else if ( a.sourceIndex && b.sourceIndex ) {
return a.sourceIndex - b.sourceIndex;
}
var al, bl,
ap = [],
bp = [],
aup = a.parentNode,
bup = b.parentNode,
cur = aup;
// If the nodes are siblings (or identical) we can do a quick check
if ( aup === bup ) {
return siblingCheck( a, b );
// If no parents were found then the nodes are disconnected
} else if ( !aup ) {
return -1;
} else if ( !bup ) {
return 1;
}
// Otherwise they're somewhere else in the tree so we need
// to build up a full list of the parentNodes for comparison
while ( cur ) {
ap.unshift( cur );
cur = cur.parentNode;
}
cur = bup;
while ( cur ) {
bp.unshift( cur );
cur = cur.parentNode;
}
al = ap.length;
bl = bp.length;
// Start walking down the tree looking for a discrepancy
for ( var i = 0; i < al && i < bl; i++ ) {
if ( ap[i] !== bp[i] ) {
return siblingCheck( ap[i], bp[i] );
}
}
// We ended someplace up the tree so do a sibling check
return i === al ?
siblingCheck( a, bp[i], -1 ) :
siblingCheck( ap[i], b, 1 );
};
// Always assume the presence of duplicates if sort doesn't
// pass them to our comparison function (as in Google Chrome).
[0, 0].sort( sortOrder );
baseHasDuplicate = !hasDuplicate;
// Document sorting and removing duplicates
Sizzle.uniqueSort = function( results ) {
var elem,
duplicates = [],
i = 1,
j = 0;
hasDuplicate = baseHasDuplicate;
results.sort( sortOrder );
if ( hasDuplicate ) {
for ( ; (elem = results[i]); i++ ) {
if ( elem === results[ i - 1 ] ) {
j = duplicates.push( i );
}
}
while ( j-- ) {
results.splice( duplicates[ j ], 1 );
}
}
return results;
};
Sizzle.error = function( msg ) {
throw new Error( "Syntax error, unrecognized expression: " + msg );
};
function tokenize( selector, parseOnly ) {
var matched, match, tokens, type,
soFar, groups, preFilters,
cached = tokenCache[ expando ][ selector + " " ];
if ( cached ) {
return parseOnly ? 0 : cached.slice( 0 );
}
soFar = selector;
groups = [];
preFilters = Expr.preFilter;
while ( soFar ) {
// Comma and first run
if ( !matched || (match = rcomma.exec( soFar )) ) {
if ( match ) {
// Don't consume trailing commas as valid
soFar = soFar.slice( match[0].length ) || soFar;
}
groups.push( tokens = [] );
}
matched = false;
// Combinators
if ( (match = rcombinators.exec( soFar )) ) {
tokens.push( matched = new Token( match.shift() ) );
soFar = soFar.slice( matched.length );
// Cast descendant combinators to space
matched.type = match[0].replace( rtrim, " " );
}
// Filters
for ( type in Expr.filter ) {
if ( (match = matchExpr[ type ].exec( soFar )) && (!preFilters[ type ] ||
(match = preFilters[ type ]( match ))) ) {
tokens.push( matched = new Token( match.shift() ) );
soFar = soFar.slice( matched.length );
matched.type = type;
matched.matches = match;
}
}
if ( !matched ) {
break;
}
}
// Return the length of the invalid excess
// if we're just parsing
// Otherwise, throw an error or return tokens
return parseOnly ?
soFar.length :
soFar ?
Sizzle.error( selector ) :
// Cache the tokens
tokenCache( selector, groups ).slice( 0 );
}
function addCombinator( matcher, combinator, base ) {
var dir = combinator.dir,
checkNonElements = base && combinator.dir === "parentNode",
doneName = done++;
return combinator.first ?
// Check against closest ancestor/preceding element
function( elem, context, xml ) {
while ( (elem = elem[ dir ]) ) {
if ( checkNonElements || elem.nodeType === 1 ) {
return matcher( elem, context, xml );
}
}
} :
// Check against all ancestor/preceding elements
function( elem, context, xml ) {
// We can't set arbitrary data on XML nodes, so they don't benefit from dir caching
if ( !xml ) {
var cache,
dirkey = dirruns + " " + doneName + " ",
cachedkey = dirkey + cachedruns;
while ( (elem = elem[ dir ]) ) {
if ( checkNonElements || elem.nodeType === 1 ) {
if ( (cache = elem[ expando ]) === cachedkey ) {
return elem.sizset;
} else if ( typeof cache === "string" && cache.indexOf(dirkey) === 0 ) {
if ( elem.sizset ) {
return elem;
}
} else {
elem[ expando ] = cachedkey;
if ( matcher( elem, context, xml ) ) {
elem.sizset = true;
return elem;
}
elem.sizset = false;
}
}
}
} else {
while ( (elem = elem[ dir ]) ) {
if ( checkNonElements || elem.nodeType === 1 ) {
if ( matcher( elem, context, xml ) ) {
return elem;
}
}
}
}
};
}
function elementMatcher( matchers ) {
return matchers.length > 1 ?
function( elem, context, xml ) {
var i = matchers.length;
while ( i-- ) {
if ( !matchers[i]( elem, context, xml ) ) {
return false;
}
}
return true;
} :
matchers[0];
}
function condense( unmatched, map, filter, context, xml ) {
var elem,
newUnmatched = [],
i = 0,
len = unmatched.length,
mapped = map != null;
for ( ; i < len; i++ ) {
if ( (elem = unmatched[i]) ) {
if ( !filter || filter( elem, context, xml ) ) {
newUnmatched.push( elem );
if ( mapped ) {
map.push( i );
}
}
}
}
return newUnmatched;
}
function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) {
if ( postFilter && !postFilter[ expando ] ) {
postFilter = setMatcher( postFilter );
}
if ( postFinder && !postFinder[ expando ] ) {
postFinder = setMatcher( postFinder, postSelector );
}
return markFunction(function( seed, results, context, xml ) {
var temp, i, elem,
preMap = [],
postMap = [],
preexisting = results.length,
// Get initial elements from seed or context
elems = seed || multipleContexts( selector || "*", context.nodeType ? [ context ] : context, [] ),
// Prefilter to get matcher input, preserving a map for seed-results synchronization
matcherIn = preFilter && ( seed || !selector ) ?
condense( elems, preMap, preFilter, context, xml ) :
elems,
matcherOut = matcher ?
// If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results,
postFinder || ( seed ? preFilter : preexisting || postFilter ) ?
// ...intermediate processing is necessary
[] :
// ...otherwise use results directly
results :
matcherIn;
// Find primary matches
if ( matcher ) {
matcher( matcherIn, matcherOut, context, xml );
}
// Apply postFilter
if ( postFilter ) {
temp = condense( matcherOut, postMap );
postFilter( temp, [], context, xml );
// Un-match failing elements by moving them back to matcherIn
i = temp.length;
while ( i-- ) {
if ( (elem = temp[i]) ) {
matcherOut[ postMap[i] ] = !(matcherIn[ postMap[i] ] = elem);
}
}
}
if ( seed ) {
if ( postFinder || preFilter ) {
if ( postFinder ) {
// Get the final matcherOut by condensing this intermediate into postFinder contexts
temp = [];
i = matcherOut.length;
while ( i-- ) {
if ( (elem = matcherOut[i]) ) {
// Restore matcherIn since elem is not yet a final match
temp.push( (matcherIn[i] = elem) );
}
}
postFinder( null, (matcherOut = []), temp, xml );
}
// Move matched elements from seed to results to keep them synchronized
i = matcherOut.length;
while ( i-- ) {
if ( (elem = matcherOut[i]) &&
(temp = postFinder ? indexOf.call( seed, elem ) : preMap[i]) > -1 ) {
seed[temp] = !(results[temp] = elem);
}
}
}
// Add elements to results, through postFinder if defined
} else {
matcherOut = condense(
matcherOut === results ?
matcherOut.splice( preexisting, matcherOut.length ) :
matcherOut
);
if ( postFinder ) {
postFinder( null, results, matcherOut, xml );
} else {
push.apply( results, matcherOut );
}
}
});
}
function matcherFromTokens( tokens ) {
var checkContext, matcher, j,
len = tokens.length,
leadingRelative = Expr.relative[ tokens[0].type ],
implicitRelative = leadingRelative || Expr.relative[" "],
i = leadingRelative ? 1 : 0,
// The foundational matcher ensures that elements are reachable from top-level context(s)
matchContext = addCombinator( function( elem ) {
return elem === checkContext;
}, implicitRelative, true ),
matchAnyContext = addCombinator( function( elem ) {
return indexOf.call( checkContext, elem ) > -1;
}, implicitRelative, true ),
matchers = [ function( elem, context, xml ) {
return ( !leadingRelative && ( xml || context !== outermostContext ) ) || (
(checkContext = context).nodeType ?
matchContext( elem, context, xml ) :
matchAnyContext( elem, context, xml ) );
} ];
for ( ; i < len; i++ ) {
if ( (matcher = Expr.relative[ tokens[i].type ]) ) {
matchers = [ addCombinator( elementMatcher( matchers ), matcher ) ];
} else {
matcher = Expr.filter[ tokens[i].type ].apply( null, tokens[i].matches );
// Return special upon seeing a positional matcher
if ( matcher[ expando ] ) {
// Find the next relative operator (if any) for proper handling
j = ++i;
for ( ; j < len; j++ ) {
if ( Expr.relative[ tokens[j].type ] ) {
break;
}
}
return setMatcher(
i > 1 && elementMatcher( matchers ),
i > 1 && tokens.slice( 0, i - 1 ).join("").replace( rtrim, "$1" ),
matcher,
i < j && matcherFromTokens( tokens.slice( i, j ) ),
j < len && matcherFromTokens( (tokens = tokens.slice( j )) ),
j < len && tokens.join("")
);
}
matchers.push( matcher );
}
}
return elementMatcher( matchers );
}
function matcherFromGroupMatchers( elementMatchers, setMatchers ) {
var bySet = setMatchers.length > 0,
byElement = elementMatchers.length > 0,
superMatcher = function( seed, context, xml, results, expandContext ) {
var elem, j, matcher,
setMatched = [],
matchedCount = 0,
i = "0",
unmatched = seed && [],
outermost = expandContext != null,
contextBackup = outermostContext,
// We must always have either seed elements or context
elems = seed || byElement && Expr.find["TAG"]( "*", expandContext && context.parentNode || context ),
// Nested matchers should use non-integer dirruns
dirrunsUnique = (dirruns += contextBackup == null ? 1 : Math.E);
if ( outermost ) {
outermostContext = context !== document && context;
cachedruns = superMatcher.el;
}
// Add elements passing elementMatchers directly to results
for ( ; (elem = elems[i]) != null; i++ ) {
if ( byElement && elem ) {
for ( j = 0; (matcher = elementMatchers[j]); j++ ) {
if ( matcher( elem, context, xml ) ) {
results.push( elem );
break;
}
}
if ( outermost ) {
dirruns = dirrunsUnique;
cachedruns = ++superMatcher.el;
}
}
// Track unmatched elements for set filters
if ( bySet ) {
// They will have gone through all possible matchers
if ( (elem = !matcher && elem) ) {
matchedCount--;
}
// Lengthen the array for every element, matched or not
if ( seed ) {
unmatched.push( elem );
}
}
}
// Apply set filters to unmatched elements
matchedCount += i;
if ( bySet && i !== matchedCount ) {
for ( j = 0; (matcher = setMatchers[j]); j++ ) {
matcher( unmatched, setMatched, context, xml );
}
if ( seed ) {
// Reintegrate element matches to eliminate the need for sorting
if ( matchedCount > 0 ) {
while ( i-- ) {
if ( !(unmatched[i] || setMatched[i]) ) {
setMatched[i] = pop.call( results );
}
}
}
// Discard index placeholder values to get only actual matches
setMatched = condense( setMatched );
}
// Add matches to results
push.apply( results, setMatched );
// Seedless set matches succeeding multiple successful matchers stipulate sorting
if ( outermost && !seed && setMatched.length > 0 &&
( matchedCount + setMatchers.length ) > 1 ) {
Sizzle.uniqueSort( results );
}
}
// Override manipulation of globals by nested matchers
if ( outermost ) {
dirruns = dirrunsUnique;
outermostContext = contextBackup;
}
return unmatched;
};
superMatcher.el = 0;
return bySet ?
markFunction( superMatcher ) :
superMatcher;
}
compile = Sizzle.compile = function( selector, group /* Internal Use Only */ ) {
var i,
setMatchers = [],
elementMatchers = [],
cached = compilerCache[ expando ][ selector + " " ];
if ( !cached ) {
// Generate a function of recursive functions that can be used to check each element
if ( !group ) {
group = tokenize( selector );
}
i = group.length;
while ( i-- ) {
cached = matcherFromTokens( group[i] );
if ( cached[ expando ] ) {
setMatchers.push( cached );
} else {
elementMatchers.push( cached );
}
}
// Cache the compiled function
cached = compilerCache( selector, matcherFromGroupMatchers( elementMatchers, setMatchers ) );
}
return cached;
};
function multipleContexts( selector, contexts, results ) {
var i = 0,
len = contexts.length;
for ( ; i < len; i++ ) {
Sizzle( selector, contexts[i], results );
}
return results;
}
function select( selector, context, results, seed, xml ) {
var i, tokens, token, type, find,
match = tokenize( selector ),
j = match.length;
if ( !seed ) {
// Try to minimize operations if there is only one group
if ( match.length === 1 ) {
// Take a shortcut and set the context if the root selector is an ID
tokens = match[0] = match[0].slice( 0 );
if ( tokens.length > 2 && (token = tokens[0]).type === "ID" &&
context.nodeType === 9 && !xml &&
Expr.relative[ tokens[1].type ] ) {
context = Expr.find["ID"]( token.matches[0].replace( rbackslash, "" ), context, xml )[0];
if ( !context ) {
return results;
}
selector = selector.slice( tokens.shift().length );
}
// Fetch a seed set for right-to-left matching
for ( i = matchExpr["POS"].test( selector ) ? -1 : tokens.length - 1; i >= 0; i-- ) {
token = tokens[i];
// Abort if we hit a combinator
if ( Expr.relative[ (type = token.type) ] ) {
break;
}
if ( (find = Expr.find[ type ]) ) {
// Search, expanding context for leading sibling combinators
if ( (seed = find(
token.matches[0].replace( rbackslash, "" ),
rsibling.test( tokens[0].type ) && context.parentNode || context,
xml
)) ) {
// If seed is empty or no tokens remain, we can return early
tokens.splice( i, 1 );
selector = seed.length && tokens.join("");
if ( !selector ) {
push.apply( results, slice.call( seed, 0 ) );
return results;
}
break;
}
}
}
}
}
// Compile and execute a filtering function
// Provide `match` to avoid retokenization if we modified the selector above
compile( selector, match )(
seed,
context,
xml,
results,
rsibling.test( selector )
);
return results;
}
if ( document.querySelectorAll ) {
(function() {
var disconnectedMatch,
oldSelect = select,
rescape = /'|\\/g,
rattributeQuotes = /\=[\x20\t\r\n\f]*([^'"\]]*)[\x20\t\r\n\f]*\]/g,
// qSa(:focus) reports false when true (Chrome 21), no need to also add to buggyMatches since matches checks buggyQSA
// A support test would require too much code (would include document ready)
rbuggyQSA = [ ":focus" ],
// matchesSelector(:active) reports false when true (IE9/Opera 11.5)
// A support test would require too much code (would include document ready)
// just skip matchesSelector for :active
rbuggyMatches = [ ":active" ],
matches = docElem.matchesSelector ||
docElem.mozMatchesSelector ||
docElem.webkitMatchesSelector ||
docElem.oMatchesSelector ||
docElem.msMatchesSelector;
// Build QSA regex
// Regex strategy adopted from Diego Perini
assert(function( div ) {
// Select is set to empty string on purpose
// This is to test IE's treatment of not explictly
// setting a boolean content attribute,
// since its presence should be enough
// http://bugs.jquery.com/ticket/12359
div.innerHTML = " ";
// IE8 - Some boolean attributes are not treated correctly
if ( !div.querySelectorAll("[selected]").length ) {
rbuggyQSA.push( "\\[" + whitespace + "*(?:checked|disabled|ismap|multiple|readonly|selected|value)" );
}
// Webkit/Opera - :checked should return selected option elements
// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked
// IE8 throws error here (do not put tests after this one)
if ( !div.querySelectorAll(":checked").length ) {
rbuggyQSA.push(":checked");
}
});
assert(function( div ) {
// Opera 10-12/IE9 - ^= $= *= and empty values
// Should not select anything
div.innerHTML = "
";
if ( div.querySelectorAll("[test^='']").length ) {
rbuggyQSA.push( "[*^$]=" + whitespace + "*(?:\"\"|'')" );
}
// FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled)
// IE8 throws error here (do not put tests after this one)
div.innerHTML = " ";
if ( !div.querySelectorAll(":enabled").length ) {
rbuggyQSA.push(":enabled", ":disabled");
}
});
// rbuggyQSA always contains :focus, so no need for a length check
rbuggyQSA = /* rbuggyQSA.length && */ new RegExp( rbuggyQSA.join("|") );
select = function( selector, context, results, seed, xml ) {
// Only use querySelectorAll when not filtering,
// when this is not xml,
// and when no QSA bugs apply
if ( !seed && !xml && !rbuggyQSA.test( selector ) ) {
var groups, i,
old = true,
nid = expando,
newContext = context,
newSelector = context.nodeType === 9 && selector;
// qSA works strangely on Element-rooted queries
// We can work around this by specifying an extra ID on the root
// and working up from there (Thanks to Andrew Dupont for the technique)
// IE 8 doesn't work on object elements
if ( context.nodeType === 1 && context.nodeName.toLowerCase() !== "object" ) {
groups = tokenize( selector );
if ( (old = context.getAttribute("id")) ) {
nid = old.replace( rescape, "\\$&" );
} else {
context.setAttribute( "id", nid );
}
nid = "[id='" + nid + "'] ";
i = groups.length;
while ( i-- ) {
groups[i] = nid + groups[i].join("");
}
newContext = rsibling.test( selector ) && context.parentNode || context;
newSelector = groups.join(",");
}
if ( newSelector ) {
try {
push.apply( results, slice.call( newContext.querySelectorAll(
newSelector
), 0 ) );
return results;
} catch(qsaError) {
} finally {
if ( !old ) {
context.removeAttribute("id");
}
}
}
}
return oldSelect( selector, context, results, seed, xml );
};
if ( matches ) {
assert(function( div ) {
// Check to see if it's possible to do matchesSelector
// on a disconnected node (IE 9)
disconnectedMatch = matches.call( div, "div" );
// This should fail with an exception
// Gecko does not error, returns false instead
try {
matches.call( div, "[test!='']:sizzle" );
rbuggyMatches.push( "!=", pseudos );
} catch ( e ) {}
});
// rbuggyMatches always contains :active and :focus, so no need for a length check
rbuggyMatches = /* rbuggyMatches.length && */ new RegExp( rbuggyMatches.join("|") );
Sizzle.matchesSelector = function( elem, expr ) {
// Make sure that attribute selectors are quoted
expr = expr.replace( rattributeQuotes, "='$1']" );
// rbuggyMatches always contains :active, so no need for an existence check
if ( !isXML( elem ) && !rbuggyMatches.test( expr ) && !rbuggyQSA.test( expr ) ) {
try {
var ret = matches.call( elem, expr );
// IE 9's matchesSelector returns false on disconnected nodes
if ( ret || disconnectedMatch ||
// As well, disconnected nodes are said to be in a document
// fragment in IE 9
elem.document && elem.document.nodeType !== 11 ) {
return ret;
}
} catch(e) {}
}
return Sizzle( expr, null, null, [ elem ] ).length > 0;
};
}
})();
}
// Deprecated
Expr.pseudos["nth"] = Expr.pseudos["eq"];
// Back-compat
function setFilters() {}
Expr.filters = setFilters.prototype = Expr.pseudos;
Expr.setFilters = new setFilters();
// Override sizzle attribute retrieval
Sizzle.attr = jQuery.attr;
jQuery.find = Sizzle;
jQuery.expr = Sizzle.selectors;
jQuery.expr[":"] = jQuery.expr.pseudos;
jQuery.unique = Sizzle.uniqueSort;
jQuery.text = Sizzle.getText;
jQuery.isXMLDoc = Sizzle.isXML;
jQuery.contains = Sizzle.contains;
})( window );
var runtil = /Until$/,
rparentsprev = /^(?:parents|prev(?:Until|All))/,
isSimple = /^.[^:#\[\.,]*$/,
rneedsContext = jQuery.expr.match.needsContext,
// methods guaranteed to produce a unique set when starting from a unique set
guaranteedUnique = {
children: true,
contents: true,
next: true,
prev: true
};
jQuery.fn.extend({
find: function( selector ) {
var i, l, length, n, r, ret,
self = this;
if ( typeof selector !== "string" ) {
return jQuery( selector ).filter(function() {
for ( i = 0, l = self.length; i < l; i++ ) {
if ( jQuery.contains( self[ i ], this ) ) {
return true;
}
}
});
}
ret = this.pushStack( "", "find", selector );
for ( i = 0, l = this.length; i < l; i++ ) {
length = ret.length;
jQuery.find( selector, this[i], ret );
if ( i > 0 ) {
// Make sure that the results are unique
for ( n = length; n < ret.length; n++ ) {
for ( r = 0; r < length; r++ ) {
if ( ret[r] === ret[n] ) {
ret.splice(n--, 1);
break;
}
}
}
}
}
return ret;
},
has: function( target ) {
var i,
targets = jQuery( target, this ),
len = targets.length;
return this.filter(function() {
for ( i = 0; i < len; i++ ) {
if ( jQuery.contains( this, targets[i] ) ) {
return true;
}
}
});
},
not: function( selector ) {
return this.pushStack( winnow(this, selector, false), "not", selector);
},
filter: function( selector ) {
return this.pushStack( winnow(this, selector, true), "filter", selector );
},
is: function( selector ) {
return !!selector && (
typeof selector === "string" ?
// If this is a positional/relative selector, check membership in the returned set
// so $("p:first").is("p:last") won't return true for a doc with two "p".
rneedsContext.test( selector ) ?
jQuery( selector, this.context ).index( this[0] ) >= 0 :
jQuery.filter( selector, this ).length > 0 :
this.filter( selector ).length > 0 );
},
closest: function( selectors, context ) {
var cur,
i = 0,
l = this.length,
ret = [],
pos = rneedsContext.test( selectors ) || typeof selectors !== "string" ?
jQuery( selectors, context || this.context ) :
0;
for ( ; i < l; i++ ) {
cur = this[i];
while ( cur && cur.ownerDocument && cur !== context && cur.nodeType !== 11 ) {
if ( pos ? pos.index(cur) > -1 : jQuery.find.matchesSelector(cur, selectors) ) {
ret.push( cur );
break;
}
cur = cur.parentNode;
}
}
ret = ret.length > 1 ? jQuery.unique( ret ) : ret;
return this.pushStack( ret, "closest", selectors );
},
// Determine the position of an element within
// the matched set of elements
index: function( elem ) {
// No argument, return index in parent
if ( !elem ) {
return ( this[0] && this[0].parentNode ) ? this.prevAll().length : -1;
}
// index in selector
if ( typeof elem === "string" ) {
return jQuery.inArray( this[0], jQuery( elem ) );
}
// Locate the position of the desired element
return jQuery.inArray(
// If it receives a jQuery object, the first element is used
elem.jquery ? elem[0] : elem, this );
},
add: function( selector, context ) {
var set = typeof selector === "string" ?
jQuery( selector, context ) :
jQuery.makeArray( selector && selector.nodeType ? [ selector ] : selector ),
all = jQuery.merge( this.get(), set );
return this.pushStack( isDisconnected( set[0] ) || isDisconnected( all[0] ) ?
all :
jQuery.unique( all ) );
},
addBack: function( selector ) {
return this.add( selector == null ?
this.prevObject : this.prevObject.filter(selector)
);
}
});
jQuery.fn.andSelf = jQuery.fn.addBack;
// A painfully simple check to see if an element is disconnected
// from a document (should be improved, where feasible).
function isDisconnected( node ) {
return !node || !node.parentNode || node.parentNode.nodeType === 11;
}
function sibling( cur, dir ) {
do {
cur = cur[ dir ];
} while ( cur && cur.nodeType !== 1 );
return cur;
}
jQuery.each({
parent: function( elem ) {
var parent = elem.parentNode;
return parent && parent.nodeType !== 11 ? parent : null;
},
parents: function( elem ) {
return jQuery.dir( elem, "parentNode" );
},
parentsUntil: function( elem, i, until ) {
return jQuery.dir( elem, "parentNode", until );
},
next: function( elem ) {
return sibling( elem, "nextSibling" );
},
prev: function( elem ) {
return sibling( elem, "previousSibling" );
},
nextAll: function( elem ) {
return jQuery.dir( elem, "nextSibling" );
},
prevAll: function( elem ) {
return jQuery.dir( elem, "previousSibling" );
},
nextUntil: function( elem, i, until ) {
return jQuery.dir( elem, "nextSibling", until );
},
prevUntil: function( elem, i, until ) {
return jQuery.dir( elem, "previousSibling", until );
},
siblings: function( elem ) {
return jQuery.sibling( ( elem.parentNode || {} ).firstChild, elem );
},
children: function( elem ) {
return jQuery.sibling( elem.firstChild );
},
contents: function( elem ) {
return jQuery.nodeName( elem, "iframe" ) ?
elem.contentDocument || elem.contentWindow.document :
jQuery.merge( [], elem.childNodes );
}
}, function( name, fn ) {
jQuery.fn[ name ] = function( until, selector ) {
var ret = jQuery.map( this, fn, until );
if ( !runtil.test( name ) ) {
selector = until;
}
if ( selector && typeof selector === "string" ) {
ret = jQuery.filter( selector, ret );
}
ret = this.length > 1 && !guaranteedUnique[ name ] ? jQuery.unique( ret ) : ret;
if ( this.length > 1 && rparentsprev.test( name ) ) {
ret = ret.reverse();
}
return this.pushStack( ret, name, core_slice.call( arguments ).join(",") );
};
});
jQuery.extend({
filter: function( expr, elems, not ) {
if ( not ) {
expr = ":not(" + expr + ")";
}
return elems.length === 1 ?
jQuery.find.matchesSelector(elems[0], expr) ? [ elems[0] ] : [] :
jQuery.find.matches(expr, elems);
},
dir: function( elem, dir, until ) {
var matched = [],
cur = elem[ dir ];
while ( cur && cur.nodeType !== 9 && (until === undefined || cur.nodeType !== 1 || !jQuery( cur ).is( until )) ) {
if ( cur.nodeType === 1 ) {
matched.push( cur );
}
cur = cur[dir];
}
return matched;
},
sibling: function( n, elem ) {
var r = [];
for ( ; n; n = n.nextSibling ) {
if ( n.nodeType === 1 && n !== elem ) {
r.push( n );
}
}
return r;
}
});
// Implement the identical functionality for filter and not
function winnow( elements, qualifier, keep ) {
// Can't pass null or undefined to indexOf in Firefox 4
// Set to 0 to skip string check
qualifier = qualifier || 0;
if ( jQuery.isFunction( qualifier ) ) {
return jQuery.grep(elements, function( elem, i ) {
var retVal = !!qualifier.call( elem, i, elem );
return retVal === keep;
});
} else if ( qualifier.nodeType ) {
return jQuery.grep(elements, function( elem, i ) {
return ( elem === qualifier ) === keep;
});
} else if ( typeof qualifier === "string" ) {
var filtered = jQuery.grep(elements, function( elem ) {
return elem.nodeType === 1;
});
if ( isSimple.test( qualifier ) ) {
return jQuery.filter(qualifier, filtered, !keep);
} else {
qualifier = jQuery.filter( qualifier, filtered );
}
}
return jQuery.grep(elements, function( elem, i ) {
return ( jQuery.inArray( elem, qualifier ) >= 0 ) === keep;
});
}
function createSafeFragment( document ) {
var list = nodeNames.split( "|" ),
safeFrag = document.createDocumentFragment();
if ( safeFrag.createElement ) {
while ( list.length ) {
safeFrag.createElement(
list.pop()
);
}
}
return safeFrag;
}
var nodeNames = "abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|" +
"header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",
rinlinejQuery = / jQuery\d+="(?:null|\d+)"/g,
rleadingWhitespace = /^\s+/,
rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,
rtagName = /<([\w:]+)/,
rtbody = / ]", "i"),
rcheckableType = /^(?:checkbox|radio)$/,
// checked="checked" or checked
rchecked = /checked\s*(?:[^=]|=\s*.checked.)/i,
rscriptType = /\/(java|ecma)script/i,
rcleanScript = /^\s*\s*$/g,
wrapMap = {
option: [ 1, "", " " ],
legend: [ 1, "", " " ],
thead: [ 1, "" ],
tr: [ 2, "" ],
td: [ 3, "" ],
col: [ 2, "" ],
area: [ 1, "", " " ],
_default: [ 0, "", "" ]
},
safeFragment = createSafeFragment( document ),
fragmentDiv = safeFragment.appendChild( document.createElement("div") );
wrapMap.optgroup = wrapMap.option;
wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;
wrapMap.th = wrapMap.td;
// IE6-8 can't serialize link, script, style, or any html5 (NoScope) tags,
// unless wrapped in a div with non-breaking characters in front of it.
if ( !jQuery.support.htmlSerialize ) {
wrapMap._default = [ 1, "X", "
" ];
}
jQuery.fn.extend({
text: function( value ) {
return jQuery.access( this, function( value ) {
return value === undefined ?
jQuery.text( this ) :
this.empty().append( ( this[0] && this[0].ownerDocument || document ).createTextNode( value ) );
}, null, value, arguments.length );
},
wrapAll: function( html ) {
if ( jQuery.isFunction( html ) ) {
return this.each(function(i) {
jQuery(this).wrapAll( html.call(this, i) );
});
}
if ( this[0] ) {
// The elements to wrap the target around
var wrap = jQuery( html, this[0].ownerDocument ).eq(0).clone(true);
if ( this[0].parentNode ) {
wrap.insertBefore( this[0] );
}
wrap.map(function() {
var elem = this;
while ( elem.firstChild && elem.firstChild.nodeType === 1 ) {
elem = elem.firstChild;
}
return elem;
}).append( this );
}
return this;
},
wrapInner: function( html ) {
if ( jQuery.isFunction( html ) ) {
return this.each(function(i) {
jQuery(this).wrapInner( html.call(this, i) );
});
}
return this.each(function() {
var self = jQuery( this ),
contents = self.contents();
if ( contents.length ) {
contents.wrapAll( html );
} else {
self.append( html );
}
});
},
wrap: function( html ) {
var isFunction = jQuery.isFunction( html );
return this.each(function(i) {
jQuery( this ).wrapAll( isFunction ? html.call(this, i) : html );
});
},
unwrap: function() {
return this.parent().each(function() {
if ( !jQuery.nodeName( this, "body" ) ) {
jQuery( this ).replaceWith( this.childNodes );
}
}).end();
},
append: function() {
return this.domManip(arguments, true, function( elem ) {
if ( this.nodeType === 1 || this.nodeType === 11 ) {
this.appendChild( elem );
}
});
},
prepend: function() {
return this.domManip(arguments, true, function( elem ) {
if ( this.nodeType === 1 || this.nodeType === 11 ) {
this.insertBefore( elem, this.firstChild );
}
});
},
before: function() {
if ( !isDisconnected( this[0] ) ) {
return this.domManip(arguments, false, function( elem ) {
this.parentNode.insertBefore( elem, this );
});
}
if ( arguments.length ) {
var set = jQuery.clean( arguments );
return this.pushStack( jQuery.merge( set, this ), "before", this.selector );
}
},
after: function() {
if ( !isDisconnected( this[0] ) ) {
return this.domManip(arguments, false, function( elem ) {
this.parentNode.insertBefore( elem, this.nextSibling );
});
}
if ( arguments.length ) {
var set = jQuery.clean( arguments );
return this.pushStack( jQuery.merge( this, set ), "after", this.selector );
}
},
// keepData is for internal use only--do not document
remove: function( selector, keepData ) {
var elem,
i = 0;
for ( ; (elem = this[i]) != null; i++ ) {
if ( !selector || jQuery.filter( selector, [ elem ] ).length ) {
if ( !keepData && elem.nodeType === 1 ) {
jQuery.cleanData( elem.getElementsByTagName("*") );
jQuery.cleanData( [ elem ] );
}
if ( elem.parentNode ) {
elem.parentNode.removeChild( elem );
}
}
}
return this;
},
empty: function() {
var elem,
i = 0;
for ( ; (elem = this[i]) != null; i++ ) {
// Remove element nodes and prevent memory leaks
if ( elem.nodeType === 1 ) {
jQuery.cleanData( elem.getElementsByTagName("*") );
}
// Remove any remaining nodes
while ( elem.firstChild ) {
elem.removeChild( elem.firstChild );
}
}
return this;
},
clone: function( dataAndEvents, deepDataAndEvents ) {
dataAndEvents = dataAndEvents == null ? false : dataAndEvents;
deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents;
return this.map( function () {
return jQuery.clone( this, dataAndEvents, deepDataAndEvents );
});
},
html: function( value ) {
return jQuery.access( this, function( value ) {
var elem = this[0] || {},
i = 0,
l = this.length;
if ( value === undefined ) {
return elem.nodeType === 1 ?
elem.innerHTML.replace( rinlinejQuery, "" ) :
undefined;
}
// See if we can take a shortcut and just use innerHTML
if ( typeof value === "string" && !rnoInnerhtml.test( value ) &&
( jQuery.support.htmlSerialize || !rnoshimcache.test( value ) ) &&
( jQuery.support.leadingWhitespace || !rleadingWhitespace.test( value ) ) &&
!wrapMap[ ( rtagName.exec( value ) || ["", ""] )[1].toLowerCase() ] ) {
value = value.replace( rxhtmlTag, "<$1>$2>" );
try {
for (; i < l; i++ ) {
// Remove element nodes and prevent memory leaks
elem = this[i] || {};
if ( elem.nodeType === 1 ) {
jQuery.cleanData( elem.getElementsByTagName( "*" ) );
elem.innerHTML = value;
}
}
elem = 0;
// If using innerHTML throws an exception, use the fallback method
} catch(e) {}
}
if ( elem ) {
this.empty().append( value );
}
}, null, value, arguments.length );
},
replaceWith: function( value ) {
if ( !isDisconnected( this[0] ) ) {
// Make sure that the elements are removed from the DOM before they are inserted
// this can help fix replacing a parent with child elements
if ( jQuery.isFunction( value ) ) {
return this.each(function(i) {
var self = jQuery(this), old = self.html();
self.replaceWith( value.call( this, i, old ) );
});
}
if ( typeof value !== "string" ) {
value = jQuery( value ).detach();
}
return this.each(function() {
var next = this.nextSibling,
parent = this.parentNode;
jQuery( this ).remove();
if ( next ) {
jQuery(next).before( value );
} else {
jQuery(parent).append( value );
}
});
}
return this.length ?
this.pushStack( jQuery(jQuery.isFunction(value) ? value() : value), "replaceWith", value ) :
this;
},
detach: function( selector ) {
return this.remove( selector, true );
},
domManip: function( args, table, callback ) {
// Flatten any nested arrays
args = [].concat.apply( [], args );
var results, first, fragment, iNoClone,
i = 0,
value = args[0],
scripts = [],
l = this.length;
// We can't cloneNode fragments that contain checked, in WebKit
if ( !jQuery.support.checkClone && l > 1 && typeof value === "string" && rchecked.test( value ) ) {
return this.each(function() {
jQuery(this).domManip( args, table, callback );
});
}
if ( jQuery.isFunction(value) ) {
return this.each(function(i) {
var self = jQuery(this);
args[0] = value.call( this, i, table ? self.html() : undefined );
self.domManip( args, table, callback );
});
}
if ( this[0] ) {
results = jQuery.buildFragment( args, this, scripts );
fragment = results.fragment;
first = fragment.firstChild;
if ( fragment.childNodes.length === 1 ) {
fragment = first;
}
if ( first ) {
table = table && jQuery.nodeName( first, "tr" );
// Use the original fragment for the last item instead of the first because it can end up
// being emptied incorrectly in certain situations (#8070).
// Fragments from the fragment cache must always be cloned and never used in place.
for ( iNoClone = results.cacheable || l - 1; i < l; i++ ) {
callback.call(
table && jQuery.nodeName( this[i], "table" ) ?
findOrAppend( this[i], "tbody" ) :
this[i],
i === iNoClone ?
fragment :
jQuery.clone( fragment, true, true )
);
}
}
// Fix #11809: Avoid leaking memory
fragment = first = null;
if ( scripts.length ) {
jQuery.each( scripts, function( i, elem ) {
if ( elem.src ) {
if ( jQuery.ajax ) {
jQuery.ajax({
url: elem.src,
type: "GET",
dataType: "script",
async: false,
global: false,
"throws": true
});
} else {
jQuery.error("no ajax");
}
} else {
jQuery.globalEval( ( elem.text || elem.textContent || elem.innerHTML || "" ).replace( rcleanScript, "" ) );
}
if ( elem.parentNode ) {
elem.parentNode.removeChild( elem );
}
});
}
}
return this;
}
});
function findOrAppend( elem, tag ) {
return elem.getElementsByTagName( tag )[0] || elem.appendChild( elem.ownerDocument.createElement( tag ) );
}
function cloneCopyEvent( src, dest ) {
if ( dest.nodeType !== 1 || !jQuery.hasData( src ) ) {
return;
}
var type, i, l,
oldData = jQuery._data( src ),
curData = jQuery._data( dest, oldData ),
events = oldData.events;
if ( events ) {
delete curData.handle;
curData.events = {};
for ( type in events ) {
for ( i = 0, l = events[ type ].length; i < l; i++ ) {
jQuery.event.add( dest, type, events[ type ][ i ] );
}
}
}
// make the cloned public data object a copy from the original
if ( curData.data ) {
curData.data = jQuery.extend( {}, curData.data );
}
}
function cloneFixAttributes( src, dest ) {
var nodeName;
// We do not need to do anything for non-Elements
if ( dest.nodeType !== 1 ) {
return;
}
// clearAttributes removes the attributes, which we don't want,
// but also removes the attachEvent events, which we *do* want
if ( dest.clearAttributes ) {
dest.clearAttributes();
}
// mergeAttributes, in contrast, only merges back on the
// original attributes, not the events
if ( dest.mergeAttributes ) {
dest.mergeAttributes( src );
}
nodeName = dest.nodeName.toLowerCase();
if ( nodeName === "object" ) {
// IE6-10 improperly clones children of object elements using classid.
// IE10 throws NoModificationAllowedError if parent is null, #12132.
if ( dest.parentNode ) {
dest.outerHTML = src.outerHTML;
}
// This path appears unavoidable for IE9. When cloning an object
// element in IE9, the outerHTML strategy above is not sufficient.
// If the src has innerHTML and the destination does not,
// copy the src.innerHTML into the dest.innerHTML. #10324
if ( jQuery.support.html5Clone && (src.innerHTML && !jQuery.trim(dest.innerHTML)) ) {
dest.innerHTML = src.innerHTML;
}
} else if ( nodeName === "input" && rcheckableType.test( src.type ) ) {
// IE6-8 fails to persist the checked state of a cloned checkbox
// or radio button. Worse, IE6-7 fail to give the cloned element
// a checked appearance if the defaultChecked value isn't also set
dest.defaultChecked = dest.checked = src.checked;
// IE6-7 get confused and end up setting the value of a cloned
// checkbox/radio button to an empty string instead of "on"
if ( dest.value !== src.value ) {
dest.value = src.value;
}
// IE6-8 fails to return the selected option to the default selected
// state when cloning options
} else if ( nodeName === "option" ) {
dest.selected = src.defaultSelected;
// IE6-8 fails to set the defaultValue to the correct value when
// cloning other types of input fields
} else if ( nodeName === "input" || nodeName === "textarea" ) {
dest.defaultValue = src.defaultValue;
// IE blanks contents when cloning scripts
} else if ( nodeName === "script" && dest.text !== src.text ) {
dest.text = src.text;
}
// Event data gets referenced instead of copied if the expando
// gets copied too
dest.removeAttribute( jQuery.expando );
}
jQuery.buildFragment = function( args, context, scripts ) {
var fragment, cacheable, cachehit,
first = args[ 0 ];
// Set context from what may come in as undefined or a jQuery collection or a node
// Updated to fix #12266 where accessing context[0] could throw an exception in IE9/10 &
// also doubles as fix for #8950 where plain objects caused createDocumentFragment exception
context = context || document;
context = !context.nodeType && context[0] || context;
context = context.ownerDocument || context;
// Only cache "small" (1/2 KB) HTML strings that are associated with the main document
// Cloning options loses the selected state, so don't cache them
// IE 6 doesn't like it when you put or elements in a fragment
// Also, WebKit does not clone 'checked' attributes on cloneNode, so don't cache
// Lastly, IE6,7,8 will not correctly reuse cached fragments that were created from unknown elems #10501
if ( args.length === 1 && typeof first === "string" && first.length < 512 && context === document &&
first.charAt(0) === "<" && !rnocache.test( first ) &&
(jQuery.support.checkClone || !rchecked.test( first )) &&
(jQuery.support.html5Clone || !rnoshimcache.test( first )) ) {
// Mark cacheable and look for a hit
cacheable = true;
fragment = jQuery.fragments[ first ];
cachehit = fragment !== undefined;
}
if ( !fragment ) {
fragment = context.createDocumentFragment();
jQuery.clean( args, context, fragment, scripts );
// Update the cache, but only store false
// unless this is a second parsing of the same content
if ( cacheable ) {
jQuery.fragments[ first ] = cachehit && fragment;
}
}
return { fragment: fragment, cacheable: cacheable };
};
jQuery.fragments = {};
jQuery.each({
appendTo: "append",
prependTo: "prepend",
insertBefore: "before",
insertAfter: "after",
replaceAll: "replaceWith"
}, function( name, original ) {
jQuery.fn[ name ] = function( selector ) {
var elems,
i = 0,
ret = [],
insert = jQuery( selector ),
l = insert.length,
parent = this.length === 1 && this[0].parentNode;
if ( (parent == null || parent && parent.nodeType === 11 && parent.childNodes.length === 1) && l === 1 ) {
insert[ original ]( this[0] );
return this;
} else {
for ( ; i < l; i++ ) {
elems = ( i > 0 ? this.clone(true) : this ).get();
jQuery( insert[i] )[ original ]( elems );
ret = ret.concat( elems );
}
return this.pushStack( ret, name, insert.selector );
}
};
});
function getAll( elem ) {
if ( typeof elem.getElementsByTagName !== "undefined" ) {
return elem.getElementsByTagName( "*" );
} else if ( typeof elem.querySelectorAll !== "undefined" ) {
return elem.querySelectorAll( "*" );
} else {
return [];
}
}
// Used in clean, fixes the defaultChecked property
function fixDefaultChecked( elem ) {
if ( rcheckableType.test( elem.type ) ) {
elem.defaultChecked = elem.checked;
}
}
jQuery.extend({
clone: function( elem, dataAndEvents, deepDataAndEvents ) {
var srcElements,
destElements,
i,
clone;
if ( jQuery.support.html5Clone || jQuery.isXMLDoc(elem) || !rnoshimcache.test( "<" + elem.nodeName + ">" ) ) {
clone = elem.cloneNode( true );
// IE<=8 does not properly clone detached, unknown element nodes
} else {
fragmentDiv.innerHTML = elem.outerHTML;
fragmentDiv.removeChild( clone = fragmentDiv.firstChild );
}
if ( (!jQuery.support.noCloneEvent || !jQuery.support.noCloneChecked) &&
(elem.nodeType === 1 || elem.nodeType === 11) && !jQuery.isXMLDoc(elem) ) {
// IE copies events bound via attachEvent when using cloneNode.
// Calling detachEvent on the clone will also remove the events
// from the original. In order to get around this, we use some
// proprietary methods to clear the events. Thanks to MooTools
// guys for this hotness.
cloneFixAttributes( elem, clone );
// Using Sizzle here is crazy slow, so we use getElementsByTagName instead
srcElements = getAll( elem );
destElements = getAll( clone );
// Weird iteration because IE will replace the length property
// with an element if you are cloning the body and one of the
// elements on the page has a name or id of "length"
for ( i = 0; srcElements[i]; ++i ) {
// Ensure that the destination node is not null; Fixes #9587
if ( destElements[i] ) {
cloneFixAttributes( srcElements[i], destElements[i] );
}
}
}
// Copy the events from the original to the clone
if ( dataAndEvents ) {
cloneCopyEvent( elem, clone );
if ( deepDataAndEvents ) {
srcElements = getAll( elem );
destElements = getAll( clone );
for ( i = 0; srcElements[i]; ++i ) {
cloneCopyEvent( srcElements[i], destElements[i] );
}
}
}
srcElements = destElements = null;
// Return the cloned set
return clone;
},
clean: function( elems, context, fragment, scripts ) {
var i, j, elem, tag, wrap, depth, div, hasBody, tbody, len, handleScript, jsTags,
safe = context === document && safeFragment,
ret = [];
// Ensure that context is a document
if ( !context || typeof context.createDocumentFragment === "undefined" ) {
context = document;
}
// Use the already-created safe fragment if context permits
for ( i = 0; (elem = elems[i]) != null; i++ ) {
if ( typeof elem === "number" ) {
elem += "";
}
if ( !elem ) {
continue;
}
// Convert html string into DOM nodes
if ( typeof elem === "string" ) {
if ( !rhtml.test( elem ) ) {
elem = context.createTextNode( elem );
} else {
// Ensure a safe container in which to render the html
safe = safe || createSafeFragment( context );
div = context.createElement("div");
safe.appendChild( div );
// Fix "XHTML"-style tags in all browsers
elem = elem.replace(rxhtmlTag, "<$1>$2>");
// Go to html and back, then peel off extra wrappers
tag = ( rtagName.exec( elem ) || ["", ""] )[1].toLowerCase();
wrap = wrapMap[ tag ] || wrapMap._default;
depth = wrap[0];
div.innerHTML = wrap[1] + elem + wrap[2];
// Move to the right depth
while ( depth-- ) {
div = div.lastChild;
}
// Remove IE's autoinserted from table fragments
if ( !jQuery.support.tbody ) {
// String was a , *may* have spurious
hasBody = rtbody.test(elem);
tbody = tag === "table" && !hasBody ?
div.firstChild && div.firstChild.childNodes :
// String was a bare or
wrap[1] === "" && !hasBody ?
div.childNodes :
[];
for ( j = tbody.length - 1; j >= 0 ; --j ) {
if ( jQuery.nodeName( tbody[ j ], "tbody" ) && !tbody[ j ].childNodes.length ) {
tbody[ j ].parentNode.removeChild( tbody[ j ] );
}
}
}
// IE completely kills leading whitespace when innerHTML is used
if ( !jQuery.support.leadingWhitespace && rleadingWhitespace.test( elem ) ) {
div.insertBefore( context.createTextNode( rleadingWhitespace.exec(elem)[0] ), div.firstChild );
}
elem = div.childNodes;
// Take out of fragment container (we need a fresh div each time)
div.parentNode.removeChild( div );
}
}
if ( elem.nodeType ) {
ret.push( elem );
} else {
jQuery.merge( ret, elem );
}
}
// Fix #11356: Clear elements from safeFragment
if ( div ) {
elem = div = safe = null;
}
// Reset defaultChecked for any radios and checkboxes
// about to be appended to the DOM in IE 6/7 (#8060)
if ( !jQuery.support.appendChecked ) {
for ( i = 0; (elem = ret[i]) != null; i++ ) {
if ( jQuery.nodeName( elem, "input" ) ) {
fixDefaultChecked( elem );
} else if ( typeof elem.getElementsByTagName !== "undefined" ) {
jQuery.grep( elem.getElementsByTagName("input"), fixDefaultChecked );
}
}
}
// Append elements to a provided document fragment
if ( fragment ) {
// Special handling of each script element
handleScript = function( elem ) {
// Check if we consider it executable
if ( !elem.type || rscriptType.test( elem.type ) ) {
// Detach the script and store it in the scripts array (if provided) or the fragment
// Return truthy to indicate that it has been handled
return scripts ?
scripts.push( elem.parentNode ? elem.parentNode.removeChild( elem ) : elem ) :
fragment.appendChild( elem );
}
};
for ( i = 0; (elem = ret[i]) != null; i++ ) {
// Check if we're done after handling an executable script
if ( !( jQuery.nodeName( elem, "script" ) && handleScript( elem ) ) ) {
// Append to fragment and handle embedded scripts
fragment.appendChild( elem );
if ( typeof elem.getElementsByTagName !== "undefined" ) {
// handleScript alters the DOM, so use jQuery.merge to ensure snapshot iteration
jsTags = jQuery.grep( jQuery.merge( [], elem.getElementsByTagName("script") ), handleScript );
// Splice the scripts into ret after their former ancestor and advance our index beyond them
ret.splice.apply( ret, [i + 1, 0].concat( jsTags ) );
i += jsTags.length;
}
}
}
}
return ret;
},
cleanData: function( elems, /* internal */ acceptData ) {
var data, id, elem, type,
i = 0,
internalKey = jQuery.expando,
cache = jQuery.cache,
deleteExpando = jQuery.support.deleteExpando,
special = jQuery.event.special;
for ( ; (elem = elems[i]) != null; i++ ) {
if ( acceptData || jQuery.acceptData( elem ) ) {
id = elem[ internalKey ];
data = id && cache[ id ];
if ( data ) {
if ( data.events ) {
for ( type in data.events ) {
if ( special[ type ] ) {
jQuery.event.remove( elem, type );
// This is a shortcut to avoid jQuery.event.remove's overhead
} else {
jQuery.removeEvent( elem, type, data.handle );
}
}
}
// Remove cache only if it was not already removed by jQuery.event.remove
if ( cache[ id ] ) {
delete cache[ id ];
// IE does not allow us to delete expando properties from nodes,
// nor does it have a removeAttribute function on Document nodes;
// we must handle all of these cases
if ( deleteExpando ) {
delete elem[ internalKey ];
} else if ( elem.removeAttribute ) {
elem.removeAttribute( internalKey );
} else {
elem[ internalKey ] = null;
}
jQuery.deletedIds.push( id );
}
}
}
}
}
});
// Limit scope pollution from any deprecated API
(function() {
var matched, browser;
// Use of jQuery.browser is frowned upon.
// More details: http://api.jquery.com/jQuery.browser
// jQuery.uaMatch maintained for back-compat
jQuery.uaMatch = function( ua ) {
ua = ua.toLowerCase();
var match = /(chrome)[ \/]([\w.]+)/.exec( ua ) ||
/(webkit)[ \/]([\w.]+)/.exec( ua ) ||
/(opera)(?:.*version|)[ \/]([\w.]+)/.exec( ua ) ||
/(msie) ([\w.]+)/.exec( ua ) ||
ua.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec( ua ) ||
[];
return {
browser: match[ 1 ] || "",
version: match[ 2 ] || "0"
};
};
matched = jQuery.uaMatch( navigator.userAgent );
browser = {};
if ( matched.browser ) {
browser[ matched.browser ] = true;
browser.version = matched.version;
}
// Chrome is Webkit, but Webkit is also Safari.
if ( browser.chrome ) {
browser.webkit = true;
} else if ( browser.webkit ) {
browser.safari = true;
}
jQuery.browser = browser;
jQuery.sub = function() {
function jQuerySub( selector, context ) {
return new jQuerySub.fn.init( selector, context );
}
jQuery.extend( true, jQuerySub, this );
jQuerySub.superclass = this;
jQuerySub.fn = jQuerySub.prototype = this();
jQuerySub.fn.constructor = jQuerySub;
jQuerySub.sub = this.sub;
jQuerySub.fn.init = function init( selector, context ) {
if ( context && context instanceof jQuery && !(context instanceof jQuerySub) ) {
context = jQuerySub( context );
}
return jQuery.fn.init.call( this, selector, context, rootjQuerySub );
};
jQuerySub.fn.init.prototype = jQuerySub.fn;
var rootjQuerySub = jQuerySub(document);
return jQuerySub;
};
})();
var curCSS, iframe, iframeDoc,
ralpha = /alpha\([^)]*\)/i,
ropacity = /opacity=([^)]*)/,
rposition = /^(top|right|bottom|left)$/,
// swappable if display is none or starts with table except "table", "table-cell", or "table-caption"
// see here for display values: https://developer.mozilla.org/en-US/docs/CSS/display
rdisplayswap = /^(none|table(?!-c[ea]).+)/,
rmargin = /^margin/,
rnumsplit = new RegExp( "^(" + core_pnum + ")(.*)$", "i" ),
rnumnonpx = new RegExp( "^(" + core_pnum + ")(?!px)[a-z%]+$", "i" ),
rrelNum = new RegExp( "^([-+])=(" + core_pnum + ")", "i" ),
elemdisplay = { BODY: "block" },
cssShow = { position: "absolute", visibility: "hidden", display: "block" },
cssNormalTransform = {
letterSpacing: 0,
fontWeight: 400
},
cssExpand = [ "Top", "Right", "Bottom", "Left" ],
cssPrefixes = [ "Webkit", "O", "Moz", "ms" ],
eventsToggle = jQuery.fn.toggle;
// return a css property mapped to a potentially vendor prefixed property
function vendorPropName( style, name ) {
// shortcut for names that are not vendor prefixed
if ( name in style ) {
return name;
}
// check for vendor prefixed names
var capName = name.charAt(0).toUpperCase() + name.slice(1),
origName = name,
i = cssPrefixes.length;
while ( i-- ) {
name = cssPrefixes[ i ] + capName;
if ( name in style ) {
return name;
}
}
return origName;
}
function isHidden( elem, el ) {
elem = el || elem;
return jQuery.css( elem, "display" ) === "none" || !jQuery.contains( elem.ownerDocument, elem );
}
function showHide( elements, show ) {
var elem, display,
values = [],
index = 0,
length = elements.length;
for ( ; index < length; index++ ) {
elem = elements[ index ];
if ( !elem.style ) {
continue;
}
values[ index ] = jQuery._data( elem, "olddisplay" );
if ( show ) {
// Reset the inline display of this element to learn if it is
// being hidden by cascaded rules or not
if ( !values[ index ] && elem.style.display === "none" ) {
elem.style.display = "";
}
// Set elements which have been overridden with display: none
// in a stylesheet to whatever the default browser style is
// for such an element
if ( elem.style.display === "" && isHidden( elem ) ) {
values[ index ] = jQuery._data( elem, "olddisplay", css_defaultDisplay(elem.nodeName) );
}
} else {
display = curCSS( elem, "display" );
if ( !values[ index ] && display !== "none" ) {
jQuery._data( elem, "olddisplay", display );
}
}
}
// Set the display of most of the elements in a second loop
// to avoid the constant reflow
for ( index = 0; index < length; index++ ) {
elem = elements[ index ];
if ( !elem.style ) {
continue;
}
if ( !show || elem.style.display === "none" || elem.style.display === "" ) {
elem.style.display = show ? values[ index ] || "" : "none";
}
}
return elements;
}
jQuery.fn.extend({
css: function( name, value ) {
return jQuery.access( this, function( elem, name, value ) {
return value !== undefined ?
jQuery.style( elem, name, value ) :
jQuery.css( elem, name );
}, name, value, arguments.length > 1 );
},
show: function() {
return showHide( this, true );
},
hide: function() {
return showHide( this );
},
toggle: function( state, fn2 ) {
var bool = typeof state === "boolean";
if ( jQuery.isFunction( state ) && jQuery.isFunction( fn2 ) ) {
return eventsToggle.apply( this, arguments );
}
return this.each(function() {
if ( bool ? state : isHidden( this ) ) {
jQuery( this ).show();
} else {
jQuery( this ).hide();
}
});
}
});
jQuery.extend({
// Add in style property hooks for overriding the default
// behavior of getting and setting a style property
cssHooks: {
opacity: {
get: function( elem, computed ) {
if ( computed ) {
// We should always get a number back from opacity
var ret = curCSS( elem, "opacity" );
return ret === "" ? "1" : ret;
}
}
}
},
// Exclude the following css properties to add px
cssNumber: {
"fillOpacity": true,
"fontWeight": true,
"lineHeight": true,
"opacity": true,
"orphans": true,
"widows": true,
"zIndex": true,
"zoom": true
},
// Add in properties whose names you wish to fix before
// setting or getting the value
cssProps: {
// normalize float css property
"float": jQuery.support.cssFloat ? "cssFloat" : "styleFloat"
},
// Get and set the style property on a DOM Node
style: function( elem, name, value, extra ) {
// Don't set styles on text and comment nodes
if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) {
return;
}
// Make sure that we're working with the right name
var ret, type, hooks,
origName = jQuery.camelCase( name ),
style = elem.style;
name = jQuery.cssProps[ origName ] || ( jQuery.cssProps[ origName ] = vendorPropName( style, origName ) );
// gets hook for the prefixed version
// followed by the unprefixed version
hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];
// Check if we're setting a value
if ( value !== undefined ) {
type = typeof value;
// convert relative number strings (+= or -=) to relative numbers. #7345
if ( type === "string" && (ret = rrelNum.exec( value )) ) {
value = ( ret[1] + 1 ) * ret[2] + parseFloat( jQuery.css( elem, name ) );
// Fixes bug #9237
type = "number";
}
// Make sure that NaN and null values aren't set. See: #7116
if ( value == null || type === "number" && isNaN( value ) ) {
return;
}
// If a number was passed in, add 'px' to the (except for certain CSS properties)
if ( type === "number" && !jQuery.cssNumber[ origName ] ) {
value += "px";
}
// If a hook was provided, use that value, otherwise just set the specified value
if ( !hooks || !("set" in hooks) || (value = hooks.set( elem, value, extra )) !== undefined ) {
// Wrapped to prevent IE from throwing errors when 'invalid' values are provided
// Fixes bug #5509
try {
style[ name ] = value;
} catch(e) {}
}
} else {
// If a hook was provided get the non-computed value from there
if ( hooks && "get" in hooks && (ret = hooks.get( elem, false, extra )) !== undefined ) {
return ret;
}
// Otherwise just get the value from the style object
return style[ name ];
}
},
css: function( elem, name, numeric, extra ) {
var val, num, hooks,
origName = jQuery.camelCase( name );
// Make sure that we're working with the right name
name = jQuery.cssProps[ origName ] || ( jQuery.cssProps[ origName ] = vendorPropName( elem.style, origName ) );
// gets hook for the prefixed version
// followed by the unprefixed version
hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];
// If a hook was provided get the computed value from there
if ( hooks && "get" in hooks ) {
val = hooks.get( elem, true, extra );
}
// Otherwise, if a way to get the computed value exists, use that
if ( val === undefined ) {
val = curCSS( elem, name );
}
//convert "normal" to computed value
if ( val === "normal" && name in cssNormalTransform ) {
val = cssNormalTransform[ name ];
}
// Return, converting to number if forced or a qualifier was provided and val looks numeric
if ( numeric || extra !== undefined ) {
num = parseFloat( val );
return numeric || jQuery.isNumeric( num ) ? num || 0 : val;
}
return val;
},
// A method for quickly swapping in/out CSS properties to get correct calculations
swap: function( elem, options, callback ) {
var ret, name,
old = {};
// Remember the old values, and insert the new ones
for ( name in options ) {
old[ name ] = elem.style[ name ];
elem.style[ name ] = options[ name ];
}
ret = callback.call( elem );
// Revert the old values
for ( name in options ) {
elem.style[ name ] = old[ name ];
}
return ret;
}
});
// NOTE: To any future maintainer, we've window.getComputedStyle
// because jsdom on node.js will break without it.
if ( window.getComputedStyle ) {
curCSS = function( elem, name ) {
var ret, width, minWidth, maxWidth,
computed = window.getComputedStyle( elem, null ),
style = elem.style;
if ( computed ) {
// getPropertyValue is only needed for .css('filter') in IE9, see #12537
ret = computed.getPropertyValue( name ) || computed[ name ];
if ( ret === "" && !jQuery.contains( elem.ownerDocument, elem ) ) {
ret = jQuery.style( elem, name );
}
// A tribute to the "awesome hack by Dean Edwards"
// Chrome < 17 and Safari 5.0 uses "computed value" instead of "used value" for margin-right
// Safari 5.1.7 (at least) returns percentage for a larger set of values, but width seems to be reliably pixels
// this is against the CSSOM draft spec: http://dev.w3.org/csswg/cssom/#resolved-values
if ( rnumnonpx.test( ret ) && rmargin.test( name ) ) {
width = style.width;
minWidth = style.minWidth;
maxWidth = style.maxWidth;
style.minWidth = style.maxWidth = style.width = ret;
ret = computed.width;
style.width = width;
style.minWidth = minWidth;
style.maxWidth = maxWidth;
}
}
return ret;
};
} else if ( document.documentElement.currentStyle ) {
curCSS = function( elem, name ) {
var left, rsLeft,
ret = elem.currentStyle && elem.currentStyle[ name ],
style = elem.style;
// Avoid setting ret to empty string here
// so we don't default to auto
if ( ret == null && style && style[ name ] ) {
ret = style[ name ];
}
// From the awesome hack by Dean Edwards
// http://erik.eae.net/archives/2007/07/27/18.54.15/#comment-102291
// If we're not dealing with a regular pixel number
// but a number that has a weird ending, we need to convert it to pixels
// but not position css attributes, as those are proportional to the parent element instead
// and we can't measure the parent instead because it might trigger a "stacking dolls" problem
if ( rnumnonpx.test( ret ) && !rposition.test( name ) ) {
// Remember the original values
left = style.left;
rsLeft = elem.runtimeStyle && elem.runtimeStyle.left;
// Put in the new values to get a computed value out
if ( rsLeft ) {
elem.runtimeStyle.left = elem.currentStyle.left;
}
style.left = name === "fontSize" ? "1em" : ret;
ret = style.pixelLeft + "px";
// Revert the changed values
style.left = left;
if ( rsLeft ) {
elem.runtimeStyle.left = rsLeft;
}
}
return ret === "" ? "auto" : ret;
};
}
function setPositiveNumber( elem, value, subtract ) {
var matches = rnumsplit.exec( value );
return matches ?
Math.max( 0, matches[ 1 ] - ( subtract || 0 ) ) + ( matches[ 2 ] || "px" ) :
value;
}
function augmentWidthOrHeight( elem, name, extra, isBorderBox ) {
var i = extra === ( isBorderBox ? "border" : "content" ) ?
// If we already have the right measurement, avoid augmentation
4 :
// Otherwise initialize for horizontal or vertical properties
name === "width" ? 1 : 0,
val = 0;
for ( ; i < 4; i += 2 ) {
// both box models exclude margin, so add it if we want it
if ( extra === "margin" ) {
// we use jQuery.css instead of curCSS here
// because of the reliableMarginRight CSS hook!
val += jQuery.css( elem, extra + cssExpand[ i ], true );
}
// From this point on we use curCSS for maximum performance (relevant in animations)
if ( isBorderBox ) {
// border-box includes padding, so remove it if we want content
if ( extra === "content" ) {
val -= parseFloat( curCSS( elem, "padding" + cssExpand[ i ] ) ) || 0;
}
// at this point, extra isn't border nor margin, so remove border
if ( extra !== "margin" ) {
val -= parseFloat( curCSS( elem, "border" + cssExpand[ i ] + "Width" ) ) || 0;
}
} else {
// at this point, extra isn't content, so add padding
val += parseFloat( curCSS( elem, "padding" + cssExpand[ i ] ) ) || 0;
// at this point, extra isn't content nor padding, so add border
if ( extra !== "padding" ) {
val += parseFloat( curCSS( elem, "border" + cssExpand[ i ] + "Width" ) ) || 0;
}
}
}
return val;
}
function getWidthOrHeight( elem, name, extra ) {
// Start with offset property, which is equivalent to the border-box value
var val = name === "width" ? elem.offsetWidth : elem.offsetHeight,
valueIsBorderBox = true,
isBorderBox = jQuery.support.boxSizing && jQuery.css( elem, "boxSizing" ) === "border-box";
// some non-html elements return undefined for offsetWidth, so check for null/undefined
// svg - https://bugzilla.mozilla.org/show_bug.cgi?id=649285
// MathML - https://bugzilla.mozilla.org/show_bug.cgi?id=491668
if ( val <= 0 || val == null ) {
// Fall back to computed then uncomputed css if necessary
val = curCSS( elem, name );
if ( val < 0 || val == null ) {
val = elem.style[ name ];
}
// Computed unit is not pixels. Stop here and return.
if ( rnumnonpx.test(val) ) {
return val;
}
// we need the check for style in case a browser which returns unreliable values
// for getComputedStyle silently falls back to the reliable elem.style
valueIsBorderBox = isBorderBox && ( jQuery.support.boxSizingReliable || val === elem.style[ name ] );
// Normalize "", auto, and prepare for extra
val = parseFloat( val ) || 0;
}
// use the active box-sizing model to add/subtract irrelevant styles
return ( val +
augmentWidthOrHeight(
elem,
name,
extra || ( isBorderBox ? "border" : "content" ),
valueIsBorderBox
)
) + "px";
}
// Try to determine the default display value of an element
function css_defaultDisplay( nodeName ) {
if ( elemdisplay[ nodeName ] ) {
return elemdisplay[ nodeName ];
}
var elem = jQuery( "<" + nodeName + ">" ).appendTo( document.body ),
display = elem.css("display");
elem.remove();
// If the simple way fails,
// get element's real default display by attaching it to a temp iframe
if ( display === "none" || display === "" ) {
// Use the already-created iframe if possible
iframe = document.body.appendChild(
iframe || jQuery.extend( document.createElement("iframe"), {
frameBorder: 0,
width: 0,
height: 0
})
);
// Create a cacheable copy of the iframe document on first call.
// IE and Opera will allow us to reuse the iframeDoc without re-writing the fake HTML
// document to it; WebKit & Firefox won't allow reusing the iframe document.
if ( !iframeDoc || !iframe.createElement ) {
iframeDoc = ( iframe.contentWindow || iframe.contentDocument ).document;
iframeDoc.write(" ");
iframeDoc.close();
}
elem = iframeDoc.body.appendChild( iframeDoc.createElement(nodeName) );
display = curCSS( elem, "display" );
document.body.removeChild( iframe );
}
// Store the correct default display
elemdisplay[ nodeName ] = display;
return display;
}
jQuery.each([ "height", "width" ], function( i, name ) {
jQuery.cssHooks[ name ] = {
get: function( elem, computed, extra ) {
if ( computed ) {
// certain elements can have dimension info if we invisibly show them
// however, it must have a current display style that would benefit from this
if ( elem.offsetWidth === 0 && rdisplayswap.test( curCSS( elem, "display" ) ) ) {
return jQuery.swap( elem, cssShow, function() {
return getWidthOrHeight( elem, name, extra );
});
} else {
return getWidthOrHeight( elem, name, extra );
}
}
},
set: function( elem, value, extra ) {
return setPositiveNumber( elem, value, extra ?
augmentWidthOrHeight(
elem,
name,
extra,
jQuery.support.boxSizing && jQuery.css( elem, "boxSizing" ) === "border-box"
) : 0
);
}
};
});
if ( !jQuery.support.opacity ) {
jQuery.cssHooks.opacity = {
get: function( elem, computed ) {
// IE uses filters for opacity
return ropacity.test( (computed && elem.currentStyle ? elem.currentStyle.filter : elem.style.filter) || "" ) ?
( 0.01 * parseFloat( RegExp.$1 ) ) + "" :
computed ? "1" : "";
},
set: function( elem, value ) {
var style = elem.style,
currentStyle = elem.currentStyle,
opacity = jQuery.isNumeric( value ) ? "alpha(opacity=" + value * 100 + ")" : "",
filter = currentStyle && currentStyle.filter || style.filter || "";
// IE has trouble with opacity if it does not have layout
// Force it by setting the zoom level
style.zoom = 1;
// if setting opacity to 1, and no other filters exist - attempt to remove filter attribute #6652
if ( value >= 1 && jQuery.trim( filter.replace( ralpha, "" ) ) === "" &&
style.removeAttribute ) {
// Setting style.filter to null, "" & " " still leave "filter:" in the cssText
// if "filter:" is present at all, clearType is disabled, we want to avoid this
// style.removeAttribute is IE Only, but so apparently is this code path...
style.removeAttribute( "filter" );
// if there there is no filter style applied in a css rule, we are done
if ( currentStyle && !currentStyle.filter ) {
return;
}
}
// otherwise, set new filter values
style.filter = ralpha.test( filter ) ?
filter.replace( ralpha, opacity ) :
filter + " " + opacity;
}
};
}
// These hooks cannot be added until DOM ready because the support test
// for it is not run until after DOM ready
jQuery(function() {
if ( !jQuery.support.reliableMarginRight ) {
jQuery.cssHooks.marginRight = {
get: function( elem, computed ) {
// WebKit Bug 13343 - getComputedStyle returns wrong value for margin-right
// Work around by temporarily setting element display to inline-block
return jQuery.swap( elem, { "display": "inline-block" }, function() {
if ( computed ) {
return curCSS( elem, "marginRight" );
}
});
}
};
}
// Webkit bug: https://bugs.webkit.org/show_bug.cgi?id=29084
// getComputedStyle returns percent when specified for top/left/bottom/right
// rather than make the css module depend on the offset module, we just check for it here
if ( !jQuery.support.pixelPosition && jQuery.fn.position ) {
jQuery.each( [ "top", "left" ], function( i, prop ) {
jQuery.cssHooks[ prop ] = {
get: function( elem, computed ) {
if ( computed ) {
var ret = curCSS( elem, prop );
// if curCSS returns percentage, fallback to offset
return rnumnonpx.test( ret ) ? jQuery( elem ).position()[ prop ] + "px" : ret;
}
}
};
});
}
});
if ( jQuery.expr && jQuery.expr.filters ) {
jQuery.expr.filters.hidden = function( elem ) {
return ( elem.offsetWidth === 0 && elem.offsetHeight === 0 ) || (!jQuery.support.reliableHiddenOffsets && ((elem.style && elem.style.display) || curCSS( elem, "display" )) === "none");
};
jQuery.expr.filters.visible = function( elem ) {
return !jQuery.expr.filters.hidden( elem );
};
}
// These hooks are used by animate to expand properties
jQuery.each({
margin: "",
padding: "",
border: "Width"
}, function( prefix, suffix ) {
jQuery.cssHooks[ prefix + suffix ] = {
expand: function( value ) {
var i,
// assumes a single number if not a string
parts = typeof value === "string" ? value.split(" ") : [ value ],
expanded = {};
for ( i = 0; i < 4; i++ ) {
expanded[ prefix + cssExpand[ i ] + suffix ] =
parts[ i ] || parts[ i - 2 ] || parts[ 0 ];
}
return expanded;
}
};
if ( !rmargin.test( prefix ) ) {
jQuery.cssHooks[ prefix + suffix ].set = setPositiveNumber;
}
});
var r20 = /%20/g,
rbracket = /\[\]$/,
rCRLF = /\r?\n/g,
rinput = /^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,
rselectTextarea = /^(?:select|textarea)/i;
jQuery.fn.extend({
serialize: function() {
return jQuery.param( this.serializeArray() );
},
serializeArray: function() {
return this.map(function(){
return this.elements ? jQuery.makeArray( this.elements ) : this;
})
.filter(function(){
return this.name && !this.disabled &&
( this.checked || rselectTextarea.test( this.nodeName ) ||
rinput.test( this.type ) );
})
.map(function( i, elem ){
var val = jQuery( this ).val();
return val == null ?
null :
jQuery.isArray( val ) ?
jQuery.map( val, function( val, i ){
return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) };
}) :
{ name: elem.name, value: val.replace( rCRLF, "\r\n" ) };
}).get();
}
});
//Serialize an array of form elements or a set of
//key/values into a query string
jQuery.param = function( a, traditional ) {
var prefix,
s = [],
add = function( key, value ) {
// If value is a function, invoke it and return its value
value = jQuery.isFunction( value ) ? value() : ( value == null ? "" : value );
s[ s.length ] = encodeURIComponent( key ) + "=" + encodeURIComponent( value );
};
// Set traditional to true for jQuery <= 1.3.2 behavior.
if ( traditional === undefined ) {
traditional = jQuery.ajaxSettings && jQuery.ajaxSettings.traditional;
}
// If an array was passed in, assume that it is an array of form elements.
if ( jQuery.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) {
// Serialize the form elements
jQuery.each( a, function() {
add( this.name, this.value );
});
} else {
// If traditional, encode the "old" way (the way 1.3.2 or older
// did it), otherwise encode params recursively.
for ( prefix in a ) {
buildParams( prefix, a[ prefix ], traditional, add );
}
}
// Return the resulting serialization
return s.join( "&" ).replace( r20, "+" );
};
function buildParams( prefix, obj, traditional, add ) {
var name;
if ( jQuery.isArray( obj ) ) {
// Serialize array item.
jQuery.each( obj, function( i, v ) {
if ( traditional || rbracket.test( prefix ) ) {
// Treat each array item as a scalar.
add( prefix, v );
} else {
// If array item is non-scalar (array or object), encode its
// numeric index to resolve deserialization ambiguity issues.
// Note that rack (as of 1.0.0) can't currently deserialize
// nested arrays properly, and attempting to do so may cause
// a server error. Possible fixes are to modify rack's
// deserialization algorithm or to provide an option or flag
// to force array serialization to be shallow.
buildParams( prefix + "[" + ( typeof v === "object" ? i : "" ) + "]", v, traditional, add );
}
});
} else if ( !traditional && jQuery.type( obj ) === "object" ) {
// Serialize object item.
for ( name in obj ) {
buildParams( prefix + "[" + name + "]", obj[ name ], traditional, add );
}
} else {
// Serialize scalar item.
add( prefix, obj );
}
}
var
// Document location
ajaxLocParts,
ajaxLocation,
rhash = /#.*$/,
rheaders = /^(.*?):[ \t]*([^\r\n]*)\r?$/mg, // IE leaves an \r character at EOL
// #7653, #8125, #8152: local protocol detection
rlocalProtocol = /^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,
rnoContent = /^(?:GET|HEAD)$/,
rprotocol = /^\/\//,
rquery = /\?/,
rscript = /
```
#### Initialization
All you need to do is call the plugin on the element:
```javascript
jQuery(function($) {
var color = $.asColor('rgba(255, 255, 255, 1)', {
format: 'rgba',
shortenHex: false,
hexUseName: false,
reduceAlpha: false,
nameDegradation: 'HEX',
invalidValue: '',
zeroAlphaAsTransparent: true
});
var string = color.toString(), // rgba(255, 255, 255, 1)
hex = color.toHEX(), // #ffffff
rgb = color.toRGB(), // rgb(255, 255, 255)
hsl = color.toHSL(), // hsl(0, 0%, 100%)
hsla = color.toHSLA(), // hsla(0, 0%, 100%, 1)
name = color.toNAME(); // white
color.val('#000');
color.format('hsla');
color.alpha(0.5);
var value = color.val(); // hsla(0, 0%, 0%, 0.5)
});
```
## Examples
There are some example usages that you can look at to get started. They can be found in the
[examples folder](https://github.com/amazingSurge/jquery-asColor/tree/master/examples).
## Options
`jquery-asColor` can accept an options object to alter the way it behaves. You can see the default options by call `$.asColor.setDefaults()`. The structure of an options object is as follows:
```
{
format: false,
shortenHex: false,
hexUseName: false,
reduceAlpha: false,
alphaConvert: { // or false will disable convert
'RGB': 'RGBA',
'HSL': 'HSLA',
'HEX': 'RGBA',
'NAMESPACE': 'RGBA',
},
nameDegradation: 'HEX',
invalidValue: '',
zeroAlphaAsTransparent: true
}
```
## Methods
Methods are called on asColor instances through the asColor method itself.
You can also save the instances to variable for further use.
#### toString()
Return the color string.
```javascript
color.toString();
```
#### format()
Get the color format or set the color format.
```javascript
color.format();
color.format('rgb');
```
#### val()
Set or get the color value.
```javascript
// get the val
color.val();
// set the val
color.val('rgb(66, 50, 50)');
```
#### set()
Set the color.
```javascript
color.set({
r: 255,
g: 255,
b: 255,
a: 0.5
});
```
#### get()
Get the color.
```javascript
var rgb = color.get();
```
#### alpha()
Get alpha.
```javascript
var alpha = color.alpha();
```
#### isValid()
Check color is valid.
```javascript
color.isValid();
```
#### toRGB()
Convent to rgb color.
```javascript
color.toRGB();
```
#### toRGBA()
Convent to rgba color.
```javascript
color.toRGBA();
```
#### toHEX()
Convent to hex color.
```javascript
color.toHEX();
```
#### toHSL()
Convent to hsl color.
```javascript
color.toHSL();
```
#### toHSLA()
Convent to hsla color.
```javascript
color.toHSLA();
```
## No conflict
If you have to use other plugin with the same namespace, just call the `$.asColor.noConflict` method to revert to it.
```html
```
## Browser support
Tested on all major browsers.
| | | | | | |
|:--:|:--:|:--:|:--:|:--:|:--:|
| Latest ✓ | Latest ✓ | Latest ✓ | Latest ✓ | 9-11 ✓ | Latest ✓ |
As a jQuery plugin, you also need to see the [jQuery Browser Support](http://jquery.com/browser-support/).
## Contributing
Anyone and everyone is welcome to contribute. Please take a moment to
review the [guidelines for contributing](CONTRIBUTING.md). Make sure you're using the latest version of `jquery-asColor` before submitting an issue. There are several ways to help out:
* [Bug reports](CONTRIBUTING.md#bug-reports)
* [Feature requests](CONTRIBUTING.md#feature-requests)
* [Pull requests](CONTRIBUTING.md#pull-requests)
* Write test cases for open bug issues
* Contribute to the documentation
## Development
`jquery-asColor` is built modularly and uses Gulp as a build system to build its distributable files. To install the necessary dependencies for the build system, please run:
```sh
npm install -g gulp
npm install -g babel-cli
npm install
```
Then you can generate new distributable files from the sources, using:
```
gulp build
```
More gulp tasks can be found [here](CONTRIBUTING.md#available-tasks).
## Changelog
To see the list of recent changes, see [Releases section](https://github.com/amazingSurge/jquery-asColor/releases).
## Copyright and license
Copyright (C) 2016 amazingSurge.
Licensed under [the LGPL license](LICENSE).
[⬆ back to top](#table-of-contents)
[bower-image]: https://img.shields.io/bower/v/jquery-asColor.svg?style=flat
[bower-link]: https://david-dm.org/amazingSurge/jquery-asColor/dev-status.svg
[npm-image]: https://badge.fury.io/js/jquery-asColor.svg?style=flat
[npm-url]: https://npmjs.org/package/jquery-asColor
[license]: https://img.shields.io/npm/l/jquery-asColor.svg?style=flat
[prs-welcome]: https://img.shields.io/badge/PRs-welcome-brightgreen.svg
[daviddm-image]: https://david-dm.org/amazingSurge/jquery-asColor.svg?style=flat
[daviddm-url]: https://david-dm.org/amazingSurge/jquery-asColor
================================================
FILE: public/admin-panel/assets/libs/jquery-asColor/dist/jquery-asColor.es.js
================================================
/**
* jQuery asColor v0.3.6
* https://github.com/amazingSurge/asColor
*
* Copyright (c) amazingSurge
* Released under the LGPL-3.0 license
*/
import $ from 'jquery';
var DEFAULTS = {
format: false,
shortenHex: false,
hexUseName: false,
reduceAlpha: false,
alphaConvert: { // or false will disable convert
'RGB': 'RGBA',
'HSL': 'HSLA',
'HEX': 'RGBA',
'NAMESPACE': 'RGBA',
},
nameDegradation: 'HEX',
invalidValue: '',
zeroAlphaAsTransparent: true
};
function expandHex(hex) {
if (hex.indexOf('#') === 0) {
hex = hex.substr(1);
}
if (!hex) {
return null;
}
if (hex.length === 3) {
hex = hex[0] + hex[0] + hex[1] + hex[1] + hex[2] + hex[2];
}
return hex.length === 6 ? `#${hex}` : null;
}
function shrinkHex(hex) {
if (hex.indexOf('#') === 0) {
hex = hex.substr(1);
}
if (hex.length === 6 && hex[0] === hex[1] && hex[2] === hex[3] && hex[4] === hex[5]) {
hex = hex[0] + hex[2] + hex[4];
}
return `#${hex}`;
}
function parseIntFromHex(val) {
return parseInt(val, 16);
}
function isPercentage(n) {
return typeof n === 'string' && n.indexOf('%') === n.length - 1;
}
function conventPercentageToRgb(n) {
return parseInt(Math.round(n.slice(0, -1) * 2.55), 10);
}
function convertPercentageToFloat(n) {
return parseFloat(n.slice(0, -1) / 100, 10);
}
function flip(o) {
const flipped = {};
for (const i in o) {
if (o.hasOwnProperty(i)) {
flipped[o[i]] = i;
}
}
return flipped;
}
var NAMES = {
aliceblue: 'f0f8ff',
antiquewhite: 'faebd7',
aqua: '0ff',
aquamarine: '7fffd4',
azure: 'f0ffff',
beige: 'f5f5dc',
bisque: 'ffe4c4',
black: '000',
blanchedalmond: 'ffebcd',
blue: '00f',
blueviolet: '8a2be2',
brown: 'a52a2a',
burlywood: 'deb887',
burntsienna: 'ea7e5d',
cadetblue: '5f9ea0',
chartreuse: '7fff00',
chocolate: 'd2691e',
coral: 'ff7f50',
cornflowerblue: '6495ed',
cornsilk: 'fff8dc',
crimson: 'dc143c',
cyan: '0ff',
darkblue: '00008b',
darkcyan: '008b8b',
darkgoldenrod: 'b8860b',
darkgray: 'a9a9a9',
darkgreen: '006400',
darkgrey: 'a9a9a9',
darkkhaki: 'bdb76b',
darkmagenta: '8b008b',
darkolivegreen: '556b2f',
darkorange: 'ff8c00',
darkorchid: '9932cc',
darkred: '8b0000',
darksalmon: 'e9967a',
darkseagreen: '8fbc8f',
darkslateblue: '483d8b',
darkslategray: '2f4f4f',
darkslategrey: '2f4f4f',
darkturquoise: '00ced1',
darkviolet: '9400d3',
deeppink: 'ff1493',
deepskyblue: '00bfff',
dimgray: '696969',
dimgrey: '696969',
dodgerblue: '1e90ff',
firebrick: 'b22222',
floralwhite: 'fffaf0',
forestgreen: '228b22',
fuchsia: 'f0f',
gainsboro: 'dcdcdc',
ghostwhite: 'f8f8ff',
gold: 'ffd700',
goldenrod: 'daa520',
gray: '808080',
green: '008000',
greenyellow: 'adff2f',
grey: '808080',
honeydew: 'f0fff0',
hotpink: 'ff69b4',
indianred: 'cd5c5c',
indigo: '4b0082',
ivory: 'fffff0',
khaki: 'f0e68c',
lavender: 'e6e6fa',
lavenderblush: 'fff0f5',
lawngreen: '7cfc00',
lemonchiffon: 'fffacd',
lightblue: 'add8e6',
lightcoral: 'f08080',
lightcyan: 'e0ffff',
lightgoldenrodyellow: 'fafad2',
lightgray: 'd3d3d3',
lightgreen: '90ee90',
lightgrey: 'd3d3d3',
lightpink: 'ffb6c1',
lightsalmon: 'ffa07a',
lightseagreen: '20b2aa',
lightskyblue: '87cefa',
lightslategray: '789',
lightslategrey: '789',
lightsteelblue: 'b0c4de',
lightyellow: 'ffffe0',
lime: '0f0',
limegreen: '32cd32',
linen: 'faf0e6',
magenta: 'f0f',
maroon: '800000',
mediumaquamarine: '66cdaa',
mediumblue: '0000cd',
mediumorchid: 'ba55d3',
mediumpurple: '9370db',
mediumseagreen: '3cb371',
mediumslateblue: '7b68ee',
mediumspringgreen: '00fa9a',
mediumturquoise: '48d1cc',
mediumvioletred: 'c71585',
midnightblue: '191970',
mintcream: 'f5fffa',
mistyrose: 'ffe4e1',
moccasin: 'ffe4b5',
navajowhite: 'ffdead',
navy: '000080',
oldlace: 'fdf5e6',
olive: '808000',
olivedrab: '6b8e23',
orange: 'ffa500',
orangered: 'ff4500',
orchid: 'da70d6',
palegoldenrod: 'eee8aa',
palegreen: '98fb98',
paleturquoise: 'afeeee',
palevioletred: 'db7093',
papayawhip: 'ffefd5',
peachpuff: 'ffdab9',
peru: 'cd853f',
pink: 'ffc0cb',
plum: 'dda0dd',
powderblue: 'b0e0e6',
purple: '800080',
red: 'f00',
rosybrown: 'bc8f8f',
royalblue: '4169e1',
saddlebrown: '8b4513',
salmon: 'fa8072',
sandybrown: 'f4a460',
seagreen: '2e8b57',
seashell: 'fff5ee',
sienna: 'a0522d',
silver: 'c0c0c0',
skyblue: '87ceeb',
slateblue: '6a5acd',
slategray: '708090',
slategrey: '708090',
snow: 'fffafa',
springgreen: '00ff7f',
steelblue: '4682b4',
tan: 'd2b48c',
teal: '008080',
thistle: 'd8bfd8',
tomato: 'ff6347',
turquoise: '40e0d0',
violet: 'ee82ee',
wheat: 'f5deb3',
white: 'fff',
whitesmoke: 'f5f5f5',
yellow: 'ff0',
yellowgreen: '9acd32'
};
/* eslint no-bitwise: "off" */
const hexNames = flip(NAMES);
var Converter = {
HSLtoRGB: function(hsl) {
const h = hsl.h / 360;
const s = hsl.s;
const l = hsl.l;
let m1;
let m2;
let rgb;
if (l <= 0.5) {
m2 = l * (s + 1);
} else {
m2 = l + s - (l * s);
}
m1 = l * 2 - m2;
rgb = {
r: this.hueToRGB(m1, m2, h + 1 / 3),
g: this.hueToRGB(m1, m2, h),
b: this.hueToRGB(m1, m2, h - 1 / 3)
};
if (typeof hsl.a !== 'undefined') {
rgb.a = hsl.a;
}
if (hsl.l === 0) {
rgb.h = hsl.h;
}
if (hsl.l === 1) {
rgb.h = hsl.h;
}
return rgb;
},
hueToRGB: function(m1, m2, h) {
let v;
if (h < 0) {
h += 1;
} else if (h > 1) {
h -= 1;
}
if ((h * 6) < 1) {
v = m1 + (m2 - m1) * h * 6;
} else if ((h * 2) < 1) {
v = m2;
} else if ((h * 3) < 2) {
v = m1 + (m2 - m1) * (2 / 3 - h) * 6;
} else {
v = m1;
}
return Math.round(v * 255);
},
RGBtoHSL: function(rgb) {
const r = rgb.r / 255;
const g = rgb.g / 255;
const b = rgb.b / 255;
const min = Math.min(r, g, b);
const max = Math.max(r, g, b);
const diff = max - min;
const add = max + min;
const l = add * 0.5;
let h;
let s;
if (min === max) {
h = 0;
} else if (r === max) {
h = (60 * (g - b) / diff) + 360;
} else if (g === max) {
h = (60 * (b - r) / diff) + 120;
} else {
h = (60 * (r - g) / diff) + 240;
}
if (diff === 0) {
s = 0;
} else if (l <= 0.5) {
s = diff / add;
} else {
s = diff / (2 - add);
}
return {
h: Math.round(h) % 360,
s,
l
};
},
RGBtoHEX: function(rgb) {
let hex = [rgb.r.toString(16), rgb.g.toString(16), rgb.b.toString(16)];
$.each(hex, (nr, val) => {
if (val.length === 1) {
hex[nr] = `0${val}`;
}
});
return `#${hex.join('')}`;
},
HSLtoHEX: function(hsl) {
const rgb = this.HSLtoRGB(hsl);
return this.RGBtoHEX(rgb);
},
HSVtoHEX: function(hsv) {
const rgb = this.HSVtoRGB(hsv);
return this.RGBtoHEX(rgb);
},
RGBtoHSV: function(rgb) {
const r = rgb.r / 255;
const g = rgb.g / 255;
const b = rgb.b / 255;
const max = Math.max(r, g, b);
const min = Math.min(r, g, b);
let h;
let s;
const v = max;
const diff = max - min;
s = (max === 0) ? 0 : diff / max;
if (max === min) {
h = 0;
} else {
switch (max) {
case r: {
h = (g - b) / diff + (g < b ? 6 : 0);
break;
}
case g: {
h = (b - r) / diff + 2;
break;
}
case b: {
h = (r - g) / diff + 4;
break;
}
default: {
break;
}
}
h /= 6;
}
return {
h: Math.round(h * 360),
s,
v
};
},
HSVtoRGB: function(hsv) {
let r;
let g;
let b;
let h = (hsv.h % 360) / 60;
const s = hsv.s;
const v = hsv.v;
const c = v * s;
const x = c * (1 - Math.abs(h % 2 - 1));
r = g = b = v - c;
h = ~~h;
r += [c, x, 0, 0, x, c][h];
g += [x, c, c, x, 0, 0][h];
b += [0, 0, x, c, c, x][h];
let rgb = {
r: Math.round(r * 255),
g: Math.round(g * 255),
b: Math.round(b * 255)
};
if (typeof hsv.a !== 'undefined') {
rgb.a = hsv.a;
}
if (hsv.v === 0) {
rgb.h = hsv.h;
}
if (hsv.v === 1 && hsv.s === 0) {
rgb.h = hsv.h;
}
return rgb;
},
HEXtoRGB: function(hex) {
if (hex.length === 4) {
hex = expandHex(hex);
}
return {
r: parseIntFromHex(hex.substr(1, 2)),
g: parseIntFromHex(hex.substr(3, 2)),
b: parseIntFromHex(hex.substr(5, 2))
};
},
isNAME: function(string) {
if (NAMES.hasOwnProperty(string)) {
return true;
}
return false;
},
NAMEtoHEX: function(name) {
if (NAMES.hasOwnProperty(name)) {
return `#${NAMES[name]}`;
}
return null;
},
NAMEtoRGB: function(name) {
const hex = this.NAMEtoHEX(name);
if (hex) {
return this.HEXtoRGB(hex);
}
return null;
},
hasNAME: function(rgb) {
let hex = this.RGBtoHEX(rgb);
hex = shrinkHex(hex);
if (hex.indexOf('#') === 0) {
hex = hex.substr(1);
}
if (hexNames.hasOwnProperty(hex)) {
return hexNames[hex];
}
return false;
},
RGBtoNAME: function(rgb) {
const hasName = this.hasNAME(rgb);
if (hasName) {
return hasName;
}
return null;
}
};
const CSS_INTEGER = '[-\\+]?\\d+%?';
const CSS_NUMBER = '[-\\+]?\\d*\\.\\d+%?';
const CSS_UNIT = `(?:${CSS_NUMBER})|(?:${CSS_INTEGER})`;
const PERMISSIVE_MATCH3 = `[\\s|\\(]+(${CSS_UNIT})[,|\\s]+(${CSS_UNIT})[,|\\s]+(${CSS_UNIT})\\s*\\)`;
const PERMISSIVE_MATCH4 = `[\\s|\\(]+(${CSS_UNIT})[,|\\s]+(${CSS_UNIT})[,|\\s]+(${CSS_UNIT})[,|\\s]+(${CSS_UNIT})\\s*\\)`;
const ColorStrings = {
RGB: {
match: new RegExp(`^rgb${PERMISSIVE_MATCH3}$`, 'i'),
parse: function(result) {
return {
r: isPercentage(result[1]) ? conventPercentageToRgb(result[1]) : parseInt(result[1], 10),
g: isPercentage(result[2]) ? conventPercentageToRgb(result[2]) : parseInt(result[2], 10),
b: isPercentage(result[3]) ? conventPercentageToRgb(result[3]) : parseInt(result[3], 10),
a: 1
};
},
to: function(color) {
return `rgb(${color.r}, ${color.g}, ${color.b})`;
}
},
RGBA: {
match: new RegExp(`^rgba${PERMISSIVE_MATCH4}$`, 'i'),
parse: function(result) {
return {
r: isPercentage(result[1]) ? conventPercentageToRgb(result[1]) : parseInt(result[1], 10),
g: isPercentage(result[2]) ? conventPercentageToRgb(result[2]) : parseInt(result[2], 10),
b: isPercentage(result[3]) ? conventPercentageToRgb(result[3]) : parseInt(result[3], 10),
a: isPercentage(result[4]) ? convertPercentageToFloat(result[4]) : parseFloat(result[4], 10)
};
},
to: function(color) {
return `rgba(${color.r}, ${color.g}, ${color.b}, ${color.a})`;
}
},
HSL: {
match: new RegExp(`^hsl${PERMISSIVE_MATCH3}$`, 'i'),
parse: function(result) {
const hsl = {
h: ((result[1] % 360) + 360) % 360,
s: isPercentage(result[2]) ? convertPercentageToFloat(result[2]) : parseFloat(result[2], 10),
l: isPercentage(result[3]) ? convertPercentageToFloat(result[3]) : parseFloat(result[3], 10),
a: 1
};
return Converter.HSLtoRGB(hsl);
},
to: function(color) {
const hsl = Converter.RGBtoHSL(color);
return `hsl(${parseInt(hsl.h, 10)}, ${Math.round(hsl.s * 100)}%, ${Math.round(hsl.l * 100)}%)`;
}
},
HSLA: {
match: new RegExp(`^hsla${PERMISSIVE_MATCH4}$`, 'i'),
parse: function(result) {
const hsla = {
h: ((result[1] % 360) + 360) % 360,
s: isPercentage(result[2]) ? convertPercentageToFloat(result[2]) : parseFloat(result[2], 10),
l: isPercentage(result[3]) ? convertPercentageToFloat(result[3]) : parseFloat(result[3], 10),
a: isPercentage(result[4]) ? convertPercentageToFloat(result[4]) : parseFloat(result[4], 10)
};
return Converter.HSLtoRGB(hsla);
},
to: function(color) {
const hsl = Converter.RGBtoHSL(color);
return `hsla(${parseInt(hsl.h, 10)}, ${Math.round(hsl.s * 100)}%, ${Math.round(hsl.l * 100)}%, ${color.a})`;
}
},
HEX: {
match: /^#([a-f0-9]{6}|[a-f0-9]{3})$/i,
parse: function(result) {
const hex = result[0];
const rgb = Converter.HEXtoRGB(hex);
return {
r: rgb.r,
g: rgb.g,
b: rgb.b,
a: 1
};
},
to: function(color, instance) {
let hex = Converter.RGBtoHEX(color);
if (instance) {
if (instance.options.hexUseName) {
const hasName = Converter.hasNAME(color);
if (hasName) {
return hasName;
}
}
if (instance.options.shortenHex) {
hex = shrinkHex(hex);
}
}
return `${hex}`;
}
},
TRANSPARENT: {
match: /^transparent$/i,
parse: function() {
return {
r: 0,
g: 0,
b: 0,
a: 0
};
},
to: function() {
return 'transparent';
}
},
NAME: {
match: /^\w+$/i,
parse: function(result) {
const rgb = Converter.NAMEtoRGB(result[0]);
if(rgb) {
return {
r: rgb.r,
g: rgb.g,
b: rgb.b,
a: 1
};
}
return null;
},
to: function(color, instance) {
let name = Converter.RGBtoNAME(color);
if(name) {
return name;
}
return ColorStrings[instance.options.nameDegradation.toUpperCase()].to(color);
}
}
};
/* eslint no-extend-native: "off" */
if (!String.prototype.includes) {
String.prototype.includes = function(search, start) {
'use strict';
if (typeof start !== 'number') {
start = 0;
}
if (start + search.length > this.length) {
return false;
}
return this.indexOf(search, start) !== -1;
};
}
class AsColor {
constructor(string, options) {
if (typeof string === 'object' && typeof options === 'undefined') {
options = string;
string = undefined;
}
if(typeof options === 'string'){
options = {
format: options
};
}
this.options = $.extend(true, {}, DEFAULTS, options);
this.value = {
r: 0,
g: 0,
b: 0,
h: 0,
s: 0,
v: 0,
a: 1
};
this._format = false;
this._matchFormat = 'HEX';
this._valid = true;
this.init(string);
}
init(string) {
this.format(this.options.format);
this.fromString(string);
return this;
}
isValid() {
return this._valid;
}
val(value) {
if (typeof value === 'undefined') {
return this.toString();
}
this.fromString(value);
return this;
}
alpha(value) {
if (typeof value === 'undefined' || isNaN(value)) {
return this.value.a;
}
value = parseFloat(value);
if (value > 1) {
value = 1;
} else if (value < 0) {
value = 0;
}
this.value.a = value;
return this;
}
matchString(string) {
return AsColor.matchString(string);
}
fromString(string, updateFormat) {
if (typeof string === 'string') {
string = $.trim(string);
let matched = null;
let rgb;
this._valid = false;
for (let i in ColorStrings) {
if ((matched = ColorStrings[i].match.exec(string)) !== null) {
rgb = ColorStrings[i].parse(matched);
if (rgb) {
this.set(rgb);
if(i === 'TRANSPARENT'){
i = 'HEX';
}
this._matchFormat = i;
if (updateFormat === true) {
this.format(i);
}
break;
}
}
}
} else if (typeof string === 'object') {
this.set(string);
}
return this;
}
format(format) {
if (typeof format === 'string' && (format = format.toUpperCase()) && typeof ColorStrings[format] !== 'undefined') {
if (format !== 'TRANSPARENT') {
this._format = format;
} else {
this._format = 'HEX';
}
} else if(format === false) {
this._format = false;
}
if(this._format === false){
return this._matchFormat;
}
return this._format;
}
toRGBA() {
return ColorStrings.RGBA.to(this.value, this);
}
toRGB() {
return ColorStrings.RGB.to(this.value, this);
}
toHSLA() {
return ColorStrings.HSLA.to(this.value, this);
}
toHSL() {
return ColorStrings.HSL.to(this.value, this);
}
toHEX() {
return ColorStrings.HEX.to(this.value, this);
}
toNAME() {
return ColorStrings.NAME.to(this.value, this);
}
to(format) {
if (typeof format === 'string' && (format = format.toUpperCase()) && typeof ColorStrings[format] !== 'undefined') {
return ColorStrings[format].to(this.value, this);
}
return this.toString();
}
toString() {
let value = this.value;
if (!this._valid) {
value = this.options.invalidValue;
if (typeof value === 'string') {
return value;
}
}
if (value.a === 0 && this.options.zeroAlphaAsTransparent) {
return ColorStrings.TRANSPARENT.to(value, this);
}
let format;
if(this._format === false){
format = this._matchFormat;
} else {
format = this._format;
}
if (this.options.reduceAlpha && value.a === 1) {
switch (format) {
case 'RGBA':
format = 'RGB';
break;
case 'HSLA':
format = 'HSL';
break;
default:
break;
}
}
if (value.a !== 1 && format!=='RGBA' && format !=='HSLA' && this.options.alphaConvert){
if(typeof this.options.alphaConvert === 'string'){
format = this.options.alphaConvert;
}
if(typeof this.options.alphaConvert[format] !== 'undefined'){
format = this.options.alphaConvert[format];
}
}
return ColorStrings[format].to(value, this);
}
get() {
return this.value;
}
set(color) {
this._valid = true;
let fromRgb = 0;
let fromHsv = 0;
let hsv;
let rgb;
for (const i in color) {
if ('hsv'.includes(i)) {
fromHsv++;
this.value[i] = color[i];
} else if ('rgb'.includes(i)) {
fromRgb++;
this.value[i] = color[i];
} else if (i === 'a') {
this.value.a = color.a;
}
}
if (fromRgb > fromHsv) {
hsv = Converter.RGBtoHSV(this.value);
if (this.value.r === 0 && this.value.g === 0 && this.value.b === 0) {
// this.value.h = color.h;
} else {
this.value.h = hsv.h;
}
this.value.s = hsv.s;
this.value.v = hsv.v;
} else if (fromHsv > fromRgb) {
rgb = Converter.HSVtoRGB(this.value);
this.value.r = rgb.r;
this.value.g = rgb.g;
this.value.b = rgb.b;
}
return this;
}
static matchString(string) {
if (typeof string === 'string') {
string = $.trim(string);
let matched = null;
let rgb;
for (const i in ColorStrings) {
if ((matched = ColorStrings[i].match.exec(string)) !== null) {
rgb = ColorStrings[i].parse(matched);
if (rgb) {
return true;
}
}
}
}
return false;
}
static setDefaults(options) {
$.extend(true, DEFAULTS, $.isPlainObject(options) && options);
}
}
var info = {
version:'0.3.6'
};
const OtherAsColor = $.asColor;
const jQueryAsColor = function(...args) {
return new AsColor(...args);
};
$.asColor = jQueryAsColor;
$.asColor.Constructor = AsColor;
$.extend($.asColor, {
matchString: AsColor.matchString,
setDefaults: AsColor.setDefaults,
noConflict: function() {
$.asColor = OtherAsColor;
return jQueryAsColor;
}
}, Converter, info);
var main = $.asColor;
export default main;
================================================
FILE: public/admin-panel/assets/libs/jquery-asColor/dist/jquery-asColor.js
================================================
/**
* jQuery asColor v0.3.6
* https://github.com/amazingSurge/asColor
*
* Copyright (c) amazingSurge
* Released under the LGPL-3.0 license
*/
(function(global, factory) {
if (typeof define === 'function' && define.amd) {
define('AsColor', ['exports', 'jquery'], factory);
} else if (typeof exports !== 'undefined') {
factory(exports, require('jquery'));
} else {
var mod = {
exports: {}
};
factory(mod.exports, global.jQuery);
global.AsColor = mod.exports;
}
})(this, function(exports, _jquery) {
'use strict';
Object.defineProperty(exports, '__esModule', {
value: true
});
var _jquery2 = _interopRequireDefault(_jquery);
function _interopRequireDefault(obj) {
return obj && obj.__esModule
? obj
: {
default: obj
};
}
var _typeof =
typeof Symbol === 'function' && typeof Symbol.iterator === 'symbol'
? function(obj) {
return typeof obj;
}
: function(obj) {
return obj &&
typeof Symbol === 'function' &&
obj.constructor === Symbol &&
obj !== Symbol.prototype
? 'symbol'
: typeof obj;
};
function _classCallCheck(instance, Constructor) {
if (!(instance instanceof Constructor)) {
throw new TypeError('Cannot call a class as a function');
}
}
var _createClass = (function() {
function defineProperties(target, props) {
for (var i = 0; i < props.length; i++) {
var descriptor = props[i];
descriptor.enumerable = descriptor.enumerable || false;
descriptor.configurable = true;
if ('value' in descriptor) descriptor.writable = true;
Object.defineProperty(target, descriptor.key, descriptor);
}
}
return function(Constructor, protoProps, staticProps) {
if (protoProps) defineProperties(Constructor.prototype, protoProps);
if (staticProps) defineProperties(Constructor, staticProps);
return Constructor;
};
})();
var DEFAULTS = {
format: false,
shortenHex: false,
hexUseName: false,
reduceAlpha: false,
alphaConvert: {
// or false will disable convert
RGB: 'RGBA',
HSL: 'HSLA',
HEX: 'RGBA',
NAMESPACE: 'RGBA'
},
nameDegradation: 'HEX',
invalidValue: '',
zeroAlphaAsTransparent: true
};
function expandHex(hex) {
if (hex.indexOf('#') === 0) {
hex = hex.substr(1);
}
if (!hex) {
return null;
}
if (hex.length === 3) {
hex = hex[0] + hex[0] + hex[1] + hex[1] + hex[2] + hex[2];
}
return hex.length === 6 ? '#' + hex : null;
}
function shrinkHex(hex) {
if (hex.indexOf('#') === 0) {
hex = hex.substr(1);
}
if (
hex.length === 6 &&
hex[0] === hex[1] &&
hex[2] === hex[3] &&
hex[4] === hex[5]
) {
hex = hex[0] + hex[2] + hex[4];
}
return '#' + hex;
}
function parseIntFromHex(val) {
return parseInt(val, 16);
}
function isPercentage(n) {
return typeof n === 'string' && n.indexOf('%') === n.length - 1;
}
function conventPercentageToRgb(n) {
return parseInt(Math.round(n.slice(0, -1) * 2.55), 10);
}
function convertPercentageToFloat(n) {
return parseFloat(n.slice(0, -1) / 100, 10);
}
function flip(o) {
var flipped = {};
for (var i in o) {
if (o.hasOwnProperty(i)) {
flipped[o[i]] = i;
}
}
return flipped;
}
var NAMES = {
aliceblue: 'f0f8ff',
antiquewhite: 'faebd7',
aqua: '0ff',
aquamarine: '7fffd4',
azure: 'f0ffff',
beige: 'f5f5dc',
bisque: 'ffe4c4',
black: '000',
blanchedalmond: 'ffebcd',
blue: '00f',
blueviolet: '8a2be2',
brown: 'a52a2a',
burlywood: 'deb887',
burntsienna: 'ea7e5d',
cadetblue: '5f9ea0',
chartreuse: '7fff00',
chocolate: 'd2691e',
coral: 'ff7f50',
cornflowerblue: '6495ed',
cornsilk: 'fff8dc',
crimson: 'dc143c',
cyan: '0ff',
darkblue: '00008b',
darkcyan: '008b8b',
darkgoldenrod: 'b8860b',
darkgray: 'a9a9a9',
darkgreen: '006400',
darkgrey: 'a9a9a9',
darkkhaki: 'bdb76b',
darkmagenta: '8b008b',
darkolivegreen: '556b2f',
darkorange: 'ff8c00',
darkorchid: '9932cc',
darkred: '8b0000',
darksalmon: 'e9967a',
darkseagreen: '8fbc8f',
darkslateblue: '483d8b',
darkslategray: '2f4f4f',
darkslategrey: '2f4f4f',
darkturquoise: '00ced1',
darkviolet: '9400d3',
deeppink: 'ff1493',
deepskyblue: '00bfff',
dimgray: '696969',
dimgrey: '696969',
dodgerblue: '1e90ff',
firebrick: 'b22222',
floralwhite: 'fffaf0',
forestgreen: '228b22',
fuchsia: 'f0f',
gainsboro: 'dcdcdc',
ghostwhite: 'f8f8ff',
gold: 'ffd700',
goldenrod: 'daa520',
gray: '808080',
green: '008000',
greenyellow: 'adff2f',
grey: '808080',
honeydew: 'f0fff0',
hotpink: 'ff69b4',
indianred: 'cd5c5c',
indigo: '4b0082',
ivory: 'fffff0',
khaki: 'f0e68c',
lavender: 'e6e6fa',
lavenderblush: 'fff0f5',
lawngreen: '7cfc00',
lemonchiffon: 'fffacd',
lightblue: 'add8e6',
lightcoral: 'f08080',
lightcyan: 'e0ffff',
lightgoldenrodyellow: 'fafad2',
lightgray: 'd3d3d3',
lightgreen: '90ee90',
lightgrey: 'd3d3d3',
lightpink: 'ffb6c1',
lightsalmon: 'ffa07a',
lightseagreen: '20b2aa',
lightskyblue: '87cefa',
lightslategray: '789',
lightslategrey: '789',
lightsteelblue: 'b0c4de',
lightyellow: 'ffffe0',
lime: '0f0',
limegreen: '32cd32',
linen: 'faf0e6',
magenta: 'f0f',
maroon: '800000',
mediumaquamarine: '66cdaa',
mediumblue: '0000cd',
mediumorchid: 'ba55d3',
mediumpurple: '9370db',
mediumseagreen: '3cb371',
mediumslateblue: '7b68ee',
mediumspringgreen: '00fa9a',
mediumturquoise: '48d1cc',
mediumvioletred: 'c71585',
midnightblue: '191970',
mintcream: 'f5fffa',
mistyrose: 'ffe4e1',
moccasin: 'ffe4b5',
navajowhite: 'ffdead',
navy: '000080',
oldlace: 'fdf5e6',
olive: '808000',
olivedrab: '6b8e23',
orange: 'ffa500',
orangered: 'ff4500',
orchid: 'da70d6',
palegoldenrod: 'eee8aa',
palegreen: '98fb98',
paleturquoise: 'afeeee',
palevioletred: 'db7093',
papayawhip: 'ffefd5',
peachpuff: 'ffdab9',
peru: 'cd853f',
pink: 'ffc0cb',
plum: 'dda0dd',
powderblue: 'b0e0e6',
purple: '800080',
red: 'f00',
rosybrown: 'bc8f8f',
royalblue: '4169e1',
saddlebrown: '8b4513',
salmon: 'fa8072',
sandybrown: 'f4a460',
seagreen: '2e8b57',
seashell: 'fff5ee',
sienna: 'a0522d',
silver: 'c0c0c0',
skyblue: '87ceeb',
slateblue: '6a5acd',
slategray: '708090',
slategrey: '708090',
snow: 'fffafa',
springgreen: '00ff7f',
steelblue: '4682b4',
tan: 'd2b48c',
teal: '008080',
thistle: 'd8bfd8',
tomato: 'ff6347',
turquoise: '40e0d0',
violet: 'ee82ee',
wheat: 'f5deb3',
white: 'fff',
whitesmoke: 'f5f5f5',
yellow: 'ff0',
yellowgreen: '9acd32'
};
/* eslint no-bitwise: "off" */
var hexNames = flip(NAMES);
var Converter = {
HSLtoRGB: function HSLtoRGB(hsl) {
var h = hsl.h / 360;
var s = hsl.s;
var l = hsl.l;
var m1 = void 0;
var m2 = void 0;
var rgb = void 0;
if (l <= 0.5) {
m2 = l * (s + 1);
} else {
m2 = l + s - l * s;
}
m1 = l * 2 - m2;
rgb = {
r: this.hueToRGB(m1, m2, h + 1 / 3),
g: this.hueToRGB(m1, m2, h),
b: this.hueToRGB(m1, m2, h - 1 / 3)
};
if (typeof hsl.a !== 'undefined') {
rgb.a = hsl.a;
}
if (hsl.l === 0) {
rgb.h = hsl.h;
}
if (hsl.l === 1) {
rgb.h = hsl.h;
}
return rgb;
},
hueToRGB: function hueToRGB(m1, m2, h) {
var v = void 0;
if (h < 0) {
h += 1;
} else if (h > 1) {
h -= 1;
}
if (h * 6 < 1) {
v = m1 + (m2 - m1) * h * 6;
} else if (h * 2 < 1) {
v = m2;
} else if (h * 3 < 2) {
v = m1 + (m2 - m1) * (2 / 3 - h) * 6;
} else {
v = m1;
}
return Math.round(v * 255);
},
RGBtoHSL: function RGBtoHSL(rgb) {
var r = rgb.r / 255;
var g = rgb.g / 255;
var b = rgb.b / 255;
var min = Math.min(r, g, b);
var max = Math.max(r, g, b);
var diff = max - min;
var add = max + min;
var l = add * 0.5;
var h = void 0;
var s = void 0;
if (min === max) {
h = 0;
} else if (r === max) {
h = 60 * (g - b) / diff + 360;
} else if (g === max) {
h = 60 * (b - r) / diff + 120;
} else {
h = 60 * (r - g) / diff + 240;
}
if (diff === 0) {
s = 0;
} else if (l <= 0.5) {
s = diff / add;
} else {
s = diff / (2 - add);
}
return {
h: Math.round(h) % 360,
s: s,
l: l
};
},
RGBtoHEX: function RGBtoHEX(rgb) {
var hex = [rgb.r.toString(16), rgb.g.toString(16), rgb.b.toString(16)];
_jquery2.default.each(hex, function(nr, val) {
if (val.length === 1) {
hex[nr] = '0' + val;
}
});
return '#' + hex.join('');
},
HSLtoHEX: function HSLtoHEX(hsl) {
var rgb = this.HSLtoRGB(hsl);
return this.RGBtoHEX(rgb);
},
HSVtoHEX: function HSVtoHEX(hsv) {
var rgb = this.HSVtoRGB(hsv);
return this.RGBtoHEX(rgb);
},
RGBtoHSV: function RGBtoHSV(rgb) {
var r = rgb.r / 255;
var g = rgb.g / 255;
var b = rgb.b / 255;
var max = Math.max(r, g, b);
var min = Math.min(r, g, b);
var h = void 0;
var s = void 0;
var v = max;
var diff = max - min;
s = max === 0 ? 0 : diff / max;
if (max === min) {
h = 0;
} else {
switch (max) {
case r: {
h = (g - b) / diff + (g < b ? 6 : 0);
break;
}
case g: {
h = (b - r) / diff + 2;
break;
}
case b: {
h = (r - g) / diff + 4;
break;
}
default: {
break;
}
}
h /= 6;
}
return {
h: Math.round(h * 360),
s: s,
v: v
};
},
HSVtoRGB: function HSVtoRGB(hsv) {
var r = void 0;
var g = void 0;
var b = void 0;
var h = (hsv.h % 360) / 60;
var s = hsv.s;
var v = hsv.v;
var c = v * s;
var x = c * (1 - Math.abs(h % 2 - 1));
r = g = b = v - c;
h = ~~h;
r += [c, x, 0, 0, x, c][h];
g += [x, c, c, x, 0, 0][h];
b += [0, 0, x, c, c, x][h];
var rgb = {
r: Math.round(r * 255),
g: Math.round(g * 255),
b: Math.round(b * 255)
};
if (typeof hsv.a !== 'undefined') {
rgb.a = hsv.a;
}
if (hsv.v === 0) {
rgb.h = hsv.h;
}
if (hsv.v === 1 && hsv.s === 0) {
rgb.h = hsv.h;
}
return rgb;
},
HEXtoRGB: function HEXtoRGB(hex) {
if (hex.length === 4) {
hex = expandHex(hex);
}
return {
r: parseIntFromHex(hex.substr(1, 2)),
g: parseIntFromHex(hex.substr(3, 2)),
b: parseIntFromHex(hex.substr(5, 2))
};
},
isNAME: function isNAME(string) {
if (NAMES.hasOwnProperty(string)) {
return true;
}
return false;
},
NAMEtoHEX: function NAMEtoHEX(name) {
if (NAMES.hasOwnProperty(name)) {
return '#' + NAMES[name];
}
return null;
},
NAMEtoRGB: function NAMEtoRGB(name) {
var hex = this.NAMEtoHEX(name);
if (hex) {
return this.HEXtoRGB(hex);
}
return null;
},
hasNAME: function hasNAME(rgb) {
var hex = this.RGBtoHEX(rgb);
hex = shrinkHex(hex);
if (hex.indexOf('#') === 0) {
hex = hex.substr(1);
}
if (hexNames.hasOwnProperty(hex)) {
return hexNames[hex];
}
return false;
},
RGBtoNAME: function RGBtoNAME(rgb) {
var hasName = this.hasNAME(rgb);
if (hasName) {
return hasName;
}
return null;
}
};
var CSS_INTEGER = '[-\\+]?\\d+%?';
var CSS_NUMBER = '[-\\+]?\\d*\\.\\d+%?';
var CSS_UNIT = '(?:' + CSS_NUMBER + ')|(?:' + CSS_INTEGER + ')';
var PERMISSIVE_MATCH3 =
'[\\s|\\(]+(' +
CSS_UNIT +
')[,|\\s]+(' +
CSS_UNIT +
')[,|\\s]+(' +
CSS_UNIT +
')\\s*\\)';
var PERMISSIVE_MATCH4 =
'[\\s|\\(]+(' +
CSS_UNIT +
')[,|\\s]+(' +
CSS_UNIT +
')[,|\\s]+(' +
CSS_UNIT +
')[,|\\s]+(' +
CSS_UNIT +
')\\s*\\)';
var ColorStrings = {
RGB: {
match: new RegExp('^rgb' + PERMISSIVE_MATCH3 + '$', 'i'),
parse: function parse(result) {
return {
r: isPercentage(result[1])
? conventPercentageToRgb(result[1])
: parseInt(result[1], 10),
g: isPercentage(result[2])
? conventPercentageToRgb(result[2])
: parseInt(result[2], 10),
b: isPercentage(result[3])
? conventPercentageToRgb(result[3])
: parseInt(result[3], 10),
a: 1
};
},
to: function to(color) {
return 'rgb(' + color.r + ', ' + color.g + ', ' + color.b + ')';
}
},
RGBA: {
match: new RegExp('^rgba' + PERMISSIVE_MATCH4 + '$', 'i'),
parse: function parse(result) {
return {
r: isPercentage(result[1])
? conventPercentageToRgb(result[1])
: parseInt(result[1], 10),
g: isPercentage(result[2])
? conventPercentageToRgb(result[2])
: parseInt(result[2], 10),
b: isPercentage(result[3])
? conventPercentageToRgb(result[3])
: parseInt(result[3], 10),
a: isPercentage(result[4])
? convertPercentageToFloat(result[4])
: parseFloat(result[4], 10)
};
},
to: function to(color) {
return (
'rgba(' +
color.r +
', ' +
color.g +
', ' +
color.b +
', ' +
color.a +
')'
);
}
},
HSL: {
match: new RegExp('^hsl' + PERMISSIVE_MATCH3 + '$', 'i'),
parse: function parse(result) {
var hsl = {
h: (result[1] % 360 + 360) % 360,
s: isPercentage(result[2])
? convertPercentageToFloat(result[2])
: parseFloat(result[2], 10),
l: isPercentage(result[3])
? convertPercentageToFloat(result[3])
: parseFloat(result[3], 10),
a: 1
};
return Converter.HSLtoRGB(hsl);
},
to: function to(color) {
var hsl = Converter.RGBtoHSL(color);
return (
'hsl(' +
parseInt(hsl.h, 10) +
', ' +
Math.round(hsl.s * 100) +
'%, ' +
Math.round(hsl.l * 100) +
'%)'
);
}
},
HSLA: {
match: new RegExp('^hsla' + PERMISSIVE_MATCH4 + '$', 'i'),
parse: function parse(result) {
var hsla = {
h: (result[1] % 360 + 360) % 360,
s: isPercentage(result[2])
? convertPercentageToFloat(result[2])
: parseFloat(result[2], 10),
l: isPercentage(result[3])
? convertPercentageToFloat(result[3])
: parseFloat(result[3], 10),
a: isPercentage(result[4])
? convertPercentageToFloat(result[4])
: parseFloat(result[4], 10)
};
return Converter.HSLtoRGB(hsla);
},
to: function to(color) {
var hsl = Converter.RGBtoHSL(color);
return (
'hsla(' +
parseInt(hsl.h, 10) +
', ' +
Math.round(hsl.s * 100) +
'%, ' +
Math.round(hsl.l * 100) +
'%, ' +
color.a +
')'
);
}
},
HEX: {
match: /^#([a-f0-9]{6}|[a-f0-9]{3})$/i,
parse: function parse(result) {
var hex = result[0];
var rgb = Converter.HEXtoRGB(hex);
return {
r: rgb.r,
g: rgb.g,
b: rgb.b,
a: 1
};
},
to: function to(color, instance) {
var hex = Converter.RGBtoHEX(color);
if (instance) {
if (instance.options.hexUseName) {
var hasName = Converter.hasNAME(color);
if (hasName) {
return hasName;
}
}
if (instance.options.shortenHex) {
hex = shrinkHex(hex);
}
}
return '' + hex;
}
},
TRANSPARENT: {
match: /^transparent$/i,
parse: function parse() {
return {
r: 0,
g: 0,
b: 0,
a: 0
};
},
to: function to() {
return 'transparent';
}
},
NAME: {
match: /^\w+$/i,
parse: function parse(result) {
var rgb = Converter.NAMEtoRGB(result[0]);
if (rgb) {
return {
r: rgb.r,
g: rgb.g,
b: rgb.b,
a: 1
};
}
return null;
},
to: function to(color, instance) {
var name = Converter.RGBtoNAME(color);
if (name) {
return name;
}
return ColorStrings[instance.options.nameDegradation.toUpperCase()].to(
color
);
}
}
};
/* eslint no-extend-native: "off" */
if (!String.prototype.includes) {
String.prototype.includes = function(search, start) {
'use strict';
if (typeof start !== 'number') {
start = 0;
}
if (start + search.length > this.length) {
return false;
}
return this.indexOf(search, start) !== -1;
};
}
var AsColor = (function() {
function AsColor(string, options) {
_classCallCheck(this, AsColor);
if (
(typeof string === 'undefined' ? 'undefined' : _typeof(string)) ===
'object' &&
typeof options === 'undefined'
) {
options = string;
string = undefined;
}
if (typeof options === 'string') {
options = {
format: options
};
}
this.options = _jquery2.default.extend(true, {}, DEFAULTS, options);
this.value = {
r: 0,
g: 0,
b: 0,
h: 0,
s: 0,
v: 0,
a: 1
};
this._format = false;
this._matchFormat = 'HEX';
this._valid = true;
this.init(string);
}
_createClass(
AsColor,
[
{
key: 'init',
value: function init(string) {
this.format(this.options.format);
this.fromString(string);
return this;
}
},
{
key: 'isValid',
value: function isValid() {
return this._valid;
}
},
{
key: 'val',
value: function val(value) {
if (typeof value === 'undefined') {
return this.toString();
}
this.fromString(value);
return this;
}
},
{
key: 'alpha',
value: function alpha(value) {
if (typeof value === 'undefined' || isNaN(value)) {
return this.value.a;
}
value = parseFloat(value);
if (value > 1) {
value = 1;
} else if (value < 0) {
value = 0;
}
this.value.a = value;
return this;
}
},
{
key: 'matchString',
value: function matchString(string) {
return AsColor.matchString(string);
}
},
{
key: 'fromString',
value: function fromString(string, updateFormat) {
if (typeof string === 'string') {
string = _jquery2.default.trim(string);
var matched = null;
var rgb = void 0;
this._valid = false;
for (var i in ColorStrings) {
if ((matched = ColorStrings[i].match.exec(string)) !== null) {
rgb = ColorStrings[i].parse(matched);
if (rgb) {
this.set(rgb);
if (i === 'TRANSPARENT') {
i = 'HEX';
}
this._matchFormat = i;
if (updateFormat === true) {
this.format(i);
}
break;
}
}
}
} else if (
(typeof string === 'undefined'
? 'undefined'
: _typeof(string)) === 'object'
) {
this.set(string);
}
return this;
}
},
{
key: 'format',
value: function format(_format) {
if (
typeof _format === 'string' &&
(_format = _format.toUpperCase()) &&
typeof ColorStrings[_format] !== 'undefined'
) {
if (_format !== 'TRANSPARENT') {
this._format = _format;
} else {
this._format = 'HEX';
}
} else if (_format === false) {
this._format = false;
}
if (this._format === false) {
return this._matchFormat;
}
return this._format;
}
},
{
key: 'toRGBA',
value: function toRGBA() {
return ColorStrings.RGBA.to(this.value, this);
}
},
{
key: 'toRGB',
value: function toRGB() {
return ColorStrings.RGB.to(this.value, this);
}
},
{
key: 'toHSLA',
value: function toHSLA() {
return ColorStrings.HSLA.to(this.value, this);
}
},
{
key: 'toHSL',
value: function toHSL() {
return ColorStrings.HSL.to(this.value, this);
}
},
{
key: 'toHEX',
value: function toHEX() {
return ColorStrings.HEX.to(this.value, this);
}
},
{
key: 'toNAME',
value: function toNAME() {
return ColorStrings.NAME.to(this.value, this);
}
},
{
key: 'to',
value: function to(format) {
if (
typeof format === 'string' &&
(format = format.toUpperCase()) &&
typeof ColorStrings[format] !== 'undefined'
) {
return ColorStrings[format].to(this.value, this);
}
return this.toString();
}
},
{
key: 'toString',
value: function toString() {
var value = this.value;
if (!this._valid) {
value = this.options.invalidValue;
if (typeof value === 'string') {
return value;
}
}
if (value.a === 0 && this.options.zeroAlphaAsTransparent) {
return ColorStrings.TRANSPARENT.to(value, this);
}
var format = void 0;
if (this._format === false) {
format = this._matchFormat;
} else {
format = this._format;
}
if (this.options.reduceAlpha && value.a === 1) {
switch (format) {
case 'RGBA':
format = 'RGB';
break;
case 'HSLA':
format = 'HSL';
break;
default:
break;
}
}
if (
value.a !== 1 &&
format !== 'RGBA' &&
format !== 'HSLA' &&
this.options.alphaConvert
) {
if (typeof this.options.alphaConvert === 'string') {
format = this.options.alphaConvert;
}
if (typeof this.options.alphaConvert[format] !== 'undefined') {
format = this.options.alphaConvert[format];
}
}
return ColorStrings[format].to(value, this);
}
},
{
key: 'get',
value: function get() {
return this.value;
}
},
{
key: 'set',
value: function set(color) {
this._valid = true;
var fromRgb = 0;
var fromHsv = 0;
var hsv = void 0;
var rgb = void 0;
for (var i in color) {
if ('hsv'.includes(i)) {
fromHsv++;
this.value[i] = color[i];
} else if ('rgb'.includes(i)) {
fromRgb++;
this.value[i] = color[i];
} else if (i === 'a') {
this.value.a = color.a;
}
}
if (fromRgb > fromHsv) {
hsv = Converter.RGBtoHSV(this.value);
if (
this.value.r === 0 &&
this.value.g === 0 &&
this.value.b === 0
) {
// this.value.h = color.h;
} else {
this.value.h = hsv.h;
}
this.value.s = hsv.s;
this.value.v = hsv.v;
} else if (fromHsv > fromRgb) {
rgb = Converter.HSVtoRGB(this.value);
this.value.r = rgb.r;
this.value.g = rgb.g;
this.value.b = rgb.b;
}
return this;
}
}
],
[
{
key: 'matchString',
value: function matchString(string) {
if (typeof string === 'string') {
string = _jquery2.default.trim(string);
var matched = null;
var rgb = void 0;
for (var i in ColorStrings) {
if ((matched = ColorStrings[i].match.exec(string)) !== null) {
rgb = ColorStrings[i].parse(matched);
if (rgb) {
return true;
}
}
}
}
return false;
}
},
{
key: 'setDefaults',
value: function setDefaults(options) {
_jquery2.default.extend(
true,
DEFAULTS,
_jquery2.default.isPlainObject(options) && options
);
}
}
]
);
return AsColor;
})();
var info = {
version: '0.3.6'
};
var OtherAsColor = _jquery2.default.asColor;
var jQueryAsColor = function jQueryAsColor() {
for (
var _len = arguments.length, args = Array(_len), _key = 0;
_key < _len;
_key++
) {
args[_key] = arguments[_key];
}
return new (Function.prototype.bind.apply(AsColor, [null].concat(args)))();
};
_jquery2.default.asColor = jQueryAsColor;
_jquery2.default.asColor.Constructor = AsColor;
_jquery2.default.extend(
_jquery2.default.asColor,
{
matchString: AsColor.matchString,
setDefaults: AsColor.setDefaults,
noConflict: function noConflict() {
_jquery2.default.asColor = OtherAsColor;
return jQueryAsColor;
}
},
Converter,
info
);
var main = _jquery2.default.asColor;
exports.default = main;
});
================================================
FILE: public/admin-panel/assets/libs/jquery-asColor/package.json
================================================
{
"_from": "jquery-asColor@^0.3.4",
"_id": "jquery-asColor@0.3.6",
"_inBundle": false,
"_integrity": "sha512-HrEBRdd/pKnagwPfDSUlrIZCZMINgs0ahbHU7/D6ibWmLddJNelqMcBCZ/I50JQ3oBst5U53yMHctAaC/AORNw==",
"_location": "/jquery-asColor",
"_phantomChildren": {},
"_requested": {
"type": "range",
"registry": true,
"raw": "jquery-asColor@^0.3.4",
"name": "jquery-asColor",
"escapedName": "jquery-asColor",
"rawSpec": "^0.3.4",
"saveSpec": null,
"fetchSpec": "^0.3.4"
},
"_requiredBy": [
"/jquery-asColorPicker",
"/jquery-asGradient"
],
"_resolved": "https://registry.npmjs.org/jquery-asColor/-/jquery-asColor-0.3.6.tgz",
"_shasum": "425fb2d66949f55e3d84582a03643c625187cbec",
"_spec": "jquery-asColor@^0.3.4",
"_where": "D:\\themeforest\\adminX\\adminX\\node_modules\\jquery-asColorPicker",
"author": {
"name": "amazingSurge",
"email": "amazingSurge@gmail.com",
"url": "amazingSurge.com"
},
"bugs": {
"url": "https://github.com/amazingSurge/jquery-asColorasColor/issues"
},
"bundleDependencies": false,
"dependencies": {
"jquery": "^3.1.1"
},
"deprecated": false,
"description": "A jquery plugin used to parse css color string and convent it to other color formats. It support rgb, rgba, hex, hsl, hsla.",
"devDependencies": {
"babel-core": "*",
"babel-eslint": "*",
"babel-istanbul": "*",
"babel-plugin-transform-es2015-modules-umd": "*",
"babel-preset-es2015": "*",
"babel-preset-es2015-rollup": "*",
"babelify": "*",
"browserify": "*",
"browserify-babel-istanbul": "*",
"chai": "*",
"del": "*",
"graceful-fs": "*",
"gulp": "github:gulpjs/gulp#4.0",
"gulp-autoprefixer": "*",
"gulp-babel": "*",
"gulp-changed": "*",
"gulp-eslint": "*",
"gulp-extname": "*",
"gulp-filter": "*",
"gulp-header": "*",
"gulp-iconfont-css": "*",
"gulp-if": "*",
"gulp-nf-prettier": "*",
"gulp-notify": "*",
"gulp-plumber": "*",
"gulp-rename": "*",
"gulp-replace": "*",
"gulp-rollup": "*",
"gulp-size": "*",
"gulp-sourcemaps": "*",
"gulp-uglify": "*",
"gulp-util": "*",
"gulp-zip": "*",
"inquirer": "*",
"isparta": "*",
"karma": "*",
"karma-babel-preprocessor": "*",
"karma-browserify": "*",
"karma-chrome-launcher": "*",
"karma-coverage": "*",
"karma-firefox-launcher": "*",
"karma-mocha": "*",
"karma-mocha-reporter": "*",
"karma-phantomjs-launcher": "*",
"karma-sinon-chai": "*",
"merge-stream": "*",
"mkdirp": "*",
"mocha": "*",
"node-notifier": "*",
"path-exists": "*",
"phantomjs-prebuilt": "*",
"prettier": "*",
"release-it": "*",
"rollup-plugin-babel": "*",
"semver": "*",
"sinon": "*",
"sinon-chai": "*",
"through2": "*",
"yargs": "*"
},
"engines": {
"node": ">= 6.2.2",
"npm": ">= 3"
},
"files": [
"dist",
"src"
],
"homepage": "https://github.com/amazingSurge/asColor",
"keywords": [
"jquery",
"jquery-plugin",
"ecosystem:jquery",
"ui",
"es6"
],
"license": "LGPL-3.0",
"licenses": [
{
"type": "LGPL-3.0",
"url": "https://github.com/amazingSurge/jquery-asColor/blob/master/LICENSE"
}
],
"main": "dist/jquery-asColor.js",
"module": "dist/jquery-asColor.es.js",
"name": "jquery-asColor",
"repository": {
"type": "git",
"url": "git+ssh://git@github.com/amazingSurge/jquery-asColor.git"
},
"scripts": {
"build": "npm run prestart && gulp build",
"deploy": "gulp deploy",
"deploy:prepare": "gulp deploy:prepare",
"prestart": "npm install",
"release": "gulp release",
"start": "gulp serve",
"test": "gulp test"
},
"title": "jQuery asColor",
"version": "0.3.6"
}
================================================
FILE: public/admin-panel/assets/libs/jquery-asColor/src/asColor.js
================================================
import $ from 'jquery';
import DEFAULTS from './defaults';
import ColorStrings from './colorStrings';
import Converter from './converter';
/* eslint no-extend-native: "off" */
if (!String.prototype.includes) {
String.prototype.includes = function(search, start) {
'use strict';
if (typeof start !== 'number') {
start = 0;
}
if (start + search.length > this.length) {
return false;
}
return this.indexOf(search, start) !== -1;
};
}
class AsColor {
constructor(string, options) {
if (typeof string === 'object' && typeof options === 'undefined') {
options = string;
string = undefined;
}
if(typeof options === 'string'){
options = {
format: options
};
}
this.options = $.extend(true, {}, DEFAULTS, options);
this.value = {
r: 0,
g: 0,
b: 0,
h: 0,
s: 0,
v: 0,
a: 1
};
this._format = false;
this._matchFormat = 'HEX';
this._valid = true;
this.init(string);
}
init(string) {
this.format(this.options.format);
this.fromString(string);
return this;
}
isValid() {
return this._valid;
}
val(value) {
if (typeof value === 'undefined') {
return this.toString();
}
this.fromString(value);
return this;
}
alpha(value) {
if (typeof value === 'undefined' || isNaN(value)) {
return this.value.a;
}
value = parseFloat(value);
if (value > 1) {
value = 1;
} else if (value < 0) {
value = 0;
}
this.value.a = value;
return this;
}
matchString(string) {
return AsColor.matchString(string);
}
fromString(string, updateFormat) {
if (typeof string === 'string') {
string = $.trim(string);
let matched = null;
let rgb;
this._valid = false;
for (let i in ColorStrings) {
if ((matched = ColorStrings[i].match.exec(string)) !== null) {
rgb = ColorStrings[i].parse(matched);
if (rgb) {
this.set(rgb);
if(i === 'TRANSPARENT'){
i = 'HEX';
}
this._matchFormat = i;
if (updateFormat === true) {
this.format(i);
}
break;
}
}
}
} else if (typeof string === 'object') {
this.set(string);
}
return this;
}
format(format) {
if (typeof format === 'string' && (format = format.toUpperCase()) && typeof ColorStrings[format] !== 'undefined') {
if (format !== 'TRANSPARENT') {
this._format = format;
} else {
this._format = 'HEX';
}
} else if(format === false) {
this._format = false;
}
if(this._format === false){
return this._matchFormat;
}
return this._format;
}
toRGBA() {
return ColorStrings.RGBA.to(this.value, this);
}
toRGB() {
return ColorStrings.RGB.to(this.value, this);
}
toHSLA() {
return ColorStrings.HSLA.to(this.value, this);
}
toHSL() {
return ColorStrings.HSL.to(this.value, this);
}
toHEX() {
return ColorStrings.HEX.to(this.value, this);
}
toNAME() {
return ColorStrings.NAME.to(this.value, this);
}
to(format) {
if (typeof format === 'string' && (format = format.toUpperCase()) && typeof ColorStrings[format] !== 'undefined') {
return ColorStrings[format].to(this.value, this);
}
return this.toString();
}
toString() {
let value = this.value;
if (!this._valid) {
value = this.options.invalidValue;
if (typeof value === 'string') {
return value;
}
}
if (value.a === 0 && this.options.zeroAlphaAsTransparent) {
return ColorStrings.TRANSPARENT.to(value, this);
}
let format;
if(this._format === false){
format = this._matchFormat;
} else {
format = this._format;
}
if (this.options.reduceAlpha && value.a === 1) {
switch (format) {
case 'RGBA':
format = 'RGB';
break;
case 'HSLA':
format = 'HSL';
break;
default:
break;
}
}
if (value.a !== 1 && format!=='RGBA' && format !=='HSLA' && this.options.alphaConvert){
if(typeof this.options.alphaConvert === 'string'){
format = this.options.alphaConvert;
}
if(typeof this.options.alphaConvert[format] !== 'undefined'){
format = this.options.alphaConvert[format];
}
}
return ColorStrings[format].to(value, this);
}
get() {
return this.value;
}
set(color) {
this._valid = true;
let fromRgb = 0;
let fromHsv = 0;
let hsv;
let rgb;
for (const i in color) {
if ('hsv'.includes(i)) {
fromHsv++;
this.value[i] = color[i];
} else if ('rgb'.includes(i)) {
fromRgb++;
this.value[i] = color[i];
} else if (i === 'a') {
this.value.a = color.a;
}
}
if (fromRgb > fromHsv) {
hsv = Converter.RGBtoHSV(this.value);
if (this.value.r === 0 && this.value.g === 0 && this.value.b === 0) {
// this.value.h = color.h;
} else {
this.value.h = hsv.h;
}
this.value.s = hsv.s;
this.value.v = hsv.v;
} else if (fromHsv > fromRgb) {
rgb = Converter.HSVtoRGB(this.value);
this.value.r = rgb.r;
this.value.g = rgb.g;
this.value.b = rgb.b;
}
return this;
}
static matchString(string) {
if (typeof string === 'string') {
string = $.trim(string);
let matched = null;
let rgb;
for (const i in ColorStrings) {
if ((matched = ColorStrings[i].match.exec(string)) !== null) {
rgb = ColorStrings[i].parse(matched);
if (rgb) {
return true;
}
}
}
}
return false;
}
static setDefaults(options) {
$.extend(true, DEFAULTS, $.isPlainObject(options) && options);
}
}
export default AsColor;
================================================
FILE: public/admin-panel/assets/libs/jquery-asColor/src/colorStrings.js
================================================
import * as util from './util';
import Converter from './converter';
const CSS_INTEGER = '[-\\+]?\\d+%?';
const CSS_NUMBER = '[-\\+]?\\d*\\.\\d+%?';
const CSS_UNIT = `(?:${CSS_NUMBER})|(?:${CSS_INTEGER})`;
const PERMISSIVE_MATCH3 = `[\\s|\\(]+(${CSS_UNIT})[,|\\s]+(${CSS_UNIT})[,|\\s]+(${CSS_UNIT})\\s*\\)`;
const PERMISSIVE_MATCH4 = `[\\s|\\(]+(${CSS_UNIT})[,|\\s]+(${CSS_UNIT})[,|\\s]+(${CSS_UNIT})[,|\\s]+(${CSS_UNIT})\\s*\\)`;
const ColorStrings = {
RGB: {
match: new RegExp(`^rgb${PERMISSIVE_MATCH3}$`, 'i'),
parse: function(result) {
return {
r: util.isPercentage(result[1]) ? util.conventPercentageToRgb(result[1]) : parseInt(result[1], 10),
g: util.isPercentage(result[2]) ? util.conventPercentageToRgb(result[2]) : parseInt(result[2], 10),
b: util.isPercentage(result[3]) ? util.conventPercentageToRgb(result[3]) : parseInt(result[3], 10),
a: 1
};
},
to: function(color) {
return `rgb(${color.r}, ${color.g}, ${color.b})`;
}
},
RGBA: {
match: new RegExp(`^rgba${PERMISSIVE_MATCH4}$`, 'i'),
parse: function(result) {
return {
r: util.isPercentage(result[1]) ? util.conventPercentageToRgb(result[1]) : parseInt(result[1], 10),
g: util.isPercentage(result[2]) ? util.conventPercentageToRgb(result[2]) : parseInt(result[2], 10),
b: util.isPercentage(result[3]) ? util.conventPercentageToRgb(result[3]) : parseInt(result[3], 10),
a: util.isPercentage(result[4]) ? util.convertPercentageToFloat(result[4]) : parseFloat(result[4], 10)
};
},
to: function(color) {
return `rgba(${color.r}, ${color.g}, ${color.b}, ${color.a})`;
}
},
HSL: {
match: new RegExp(`^hsl${PERMISSIVE_MATCH3}$`, 'i'),
parse: function(result) {
const hsl = {
h: ((result[1] % 360) + 360) % 360,
s: util.isPercentage(result[2]) ? util.convertPercentageToFloat(result[2]) : parseFloat(result[2], 10),
l: util.isPercentage(result[3]) ? util.convertPercentageToFloat(result[3]) : parseFloat(result[3], 10),
a: 1
};
return Converter.HSLtoRGB(hsl);
},
to: function(color) {
const hsl = Converter.RGBtoHSL(color);
return `hsl(${parseInt(hsl.h, 10)}, ${Math.round(hsl.s * 100)}%, ${Math.round(hsl.l * 100)}%)`;
}
},
HSLA: {
match: new RegExp(`^hsla${PERMISSIVE_MATCH4}$`, 'i'),
parse: function(result) {
const hsla = {
h: ((result[1] % 360) + 360) % 360,
s: util.isPercentage(result[2]) ? util.convertPercentageToFloat(result[2]) : parseFloat(result[2], 10),
l: util.isPercentage(result[3]) ? util.convertPercentageToFloat(result[3]) : parseFloat(result[3], 10),
a: util.isPercentage(result[4]) ? util.convertPercentageToFloat(result[4]) : parseFloat(result[4], 10)
};
return Converter.HSLtoRGB(hsla);
},
to: function(color) {
const hsl = Converter.RGBtoHSL(color);
return `hsla(${parseInt(hsl.h, 10)}, ${Math.round(hsl.s * 100)}%, ${Math.round(hsl.l * 100)}%, ${color.a})`;
}
},
HEX: {
match: /^#([a-f0-9]{6}|[a-f0-9]{3})$/i,
parse: function(result) {
const hex = result[0];
const rgb = Converter.HEXtoRGB(hex);
return {
r: rgb.r,
g: rgb.g,
b: rgb.b,
a: 1
};
},
to: function(color, instance) {
let hex = Converter.RGBtoHEX(color);
if (instance) {
if (instance.options.hexUseName) {
const hasName = Converter.hasNAME(color);
if (hasName) {
return hasName;
}
}
if (instance.options.shortenHex) {
hex = util.shrinkHex(hex);
}
}
return `${hex}`;
}
},
TRANSPARENT: {
match: /^transparent$/i,
parse: function() {
return {
r: 0,
g: 0,
b: 0,
a: 0
};
},
to: function() {
return 'transparent';
}
},
NAME: {
match: /^\w+$/i,
parse: function(result) {
const rgb = Converter.NAMEtoRGB(result[0]);
if(rgb) {
return {
r: rgb.r,
g: rgb.g,
b: rgb.b,
a: 1
};
}
return null;
},
to: function(color, instance) {
let name = Converter.RGBtoNAME(color);
if(name) {
return name;
}
return ColorStrings[instance.options.nameDegradation.toUpperCase()].to(color);
}
}
};
export default ColorStrings;
================================================
FILE: public/admin-panel/assets/libs/jquery-asColor/src/converter.js
================================================
/* eslint no-bitwise: "off" */
import NAMES from './names';
import * as util from './util';
import $ from 'jquery';
const hexNames = util.flip(NAMES);
export default {
HSLtoRGB: function(hsl) {
const h = hsl.h / 360;
const s = hsl.s;
const l = hsl.l;
let m1;
let m2;
let rgb;
if (l <= 0.5) {
m2 = l * (s + 1);
} else {
m2 = l + s - (l * s);
}
m1 = l * 2 - m2;
rgb = {
r: this.hueToRGB(m1, m2, h + 1 / 3),
g: this.hueToRGB(m1, m2, h),
b: this.hueToRGB(m1, m2, h - 1 / 3)
};
if (typeof hsl.a !== 'undefined') {
rgb.a = hsl.a;
}
if (hsl.l === 0) {
rgb.h = hsl.h;
}
if (hsl.l === 1) {
rgb.h = hsl.h;
}
return rgb;
},
hueToRGB: function(m1, m2, h) {
let v;
if (h < 0) {
h += 1;
} else if (h > 1) {
h -= 1;
}
if ((h * 6) < 1) {
v = m1 + (m2 - m1) * h * 6;
} else if ((h * 2) < 1) {
v = m2;
} else if ((h * 3) < 2) {
v = m1 + (m2 - m1) * (2 / 3 - h) * 6;
} else {
v = m1;
}
return Math.round(v * 255);
},
RGBtoHSL: function(rgb) {
const r = rgb.r / 255;
const g = rgb.g / 255;
const b = rgb.b / 255;
const min = Math.min(r, g, b);
const max = Math.max(r, g, b);
const diff = max - min;
const add = max + min;
const l = add * 0.5;
let h;
let s;
if (min === max) {
h = 0;
} else if (r === max) {
h = (60 * (g - b) / diff) + 360;
} else if (g === max) {
h = (60 * (b - r) / diff) + 120;
} else {
h = (60 * (r - g) / diff) + 240;
}
if (diff === 0) {
s = 0;
} else if (l <= 0.5) {
s = diff / add;
} else {
s = diff / (2 - add);
}
return {
h: Math.round(h) % 360,
s,
l
};
},
RGBtoHEX: function(rgb) {
let hex = [rgb.r.toString(16), rgb.g.toString(16), rgb.b.toString(16)];
$.each(hex, (nr, val) => {
if (val.length === 1) {
hex[nr] = `0${val}`;
}
});
return `#${hex.join('')}`;
},
HSLtoHEX: function(hsl) {
const rgb = this.HSLtoRGB(hsl);
return this.RGBtoHEX(rgb);
},
HSVtoHEX: function(hsv) {
const rgb = this.HSVtoRGB(hsv);
return this.RGBtoHEX(rgb);
},
RGBtoHSV: function(rgb) {
const r = rgb.r / 255;
const g = rgb.g / 255;
const b = rgb.b / 255;
const max = Math.max(r, g, b);
const min = Math.min(r, g, b);
let h;
let s;
const v = max;
const diff = max - min;
s = (max === 0) ? 0 : diff / max;
if (max === min) {
h = 0;
} else {
switch (max) {
case r: {
h = (g - b) / diff + (g < b ? 6 : 0);
break;
}
case g: {
h = (b - r) / diff + 2;
break;
}
case b: {
h = (r - g) / diff + 4;
break;
}
default: {
break;
}
}
h /= 6;
}
return {
h: Math.round(h * 360),
s,
v
};
},
HSVtoRGB: function(hsv) {
let r;
let g;
let b;
let h = (hsv.h % 360) / 60;
const s = hsv.s;
const v = hsv.v;
const c = v * s;
const x = c * (1 - Math.abs(h % 2 - 1));
r = g = b = v - c;
h = ~~h;
r += [c, x, 0, 0, x, c][h];
g += [x, c, c, x, 0, 0][h];
b += [0, 0, x, c, c, x][h];
let rgb = {
r: Math.round(r * 255),
g: Math.round(g * 255),
b: Math.round(b * 255)
};
if (typeof hsv.a !== 'undefined') {
rgb.a = hsv.a;
}
if (hsv.v === 0) {
rgb.h = hsv.h;
}
if (hsv.v === 1 && hsv.s === 0) {
rgb.h = hsv.h;
}
return rgb;
},
HEXtoRGB: function(hex) {
if (hex.length === 4) {
hex = util.expandHex(hex);
}
return {
r: util.parseIntFromHex(hex.substr(1, 2)),
g: util.parseIntFromHex(hex.substr(3, 2)),
b: util.parseIntFromHex(hex.substr(5, 2))
};
},
isNAME: function(string) {
if (NAMES.hasOwnProperty(string)) {
return true;
}
return false;
},
NAMEtoHEX: function(name) {
if (NAMES.hasOwnProperty(name)) {
return `#${NAMES[name]}`;
}
return null;
},
NAMEtoRGB: function(name) {
const hex = this.NAMEtoHEX(name);
if (hex) {
return this.HEXtoRGB(hex);
}
return null;
},
hasNAME: function(rgb) {
let hex = this.RGBtoHEX(rgb);
hex = util.shrinkHex(hex);
if (hex.indexOf('#') === 0) {
hex = hex.substr(1);
}
if (hexNames.hasOwnProperty(hex)) {
return hexNames[hex];
}
return false;
},
RGBtoNAME: function(rgb) {
const hasName = this.hasNAME(rgb);
if (hasName) {
return hasName;
}
return null;
}
};
================================================
FILE: public/admin-panel/assets/libs/jquery-asColor/src/defaults.js
================================================
export default {
format: false,
shortenHex: false,
hexUseName: false,
reduceAlpha: false,
alphaConvert: { // or false will disable convert
'RGB': 'RGBA',
'HSL': 'HSLA',
'HEX': 'RGBA',
'NAMESPACE': 'RGBA',
},
nameDegradation: 'HEX',
invalidValue: '',
zeroAlphaAsTransparent: true
};
================================================
FILE: public/admin-panel/assets/libs/jquery-asColor/src/info.js
================================================
export default {
version:'0.3.6'
};
================================================
FILE: public/admin-panel/assets/libs/jquery-asColor/src/main.js
================================================
import $ from 'jquery';
import AsColor from './asColor';
import info from './info';
import Converter from './converter';
const OtherAsColor = $.asColor;
const jQueryAsColor = function(...args) {
return new AsColor(...args);
}
$.asColor = jQueryAsColor;
$.asColor.Constructor = AsColor;
$.extend($.asColor, {
matchString: AsColor.matchString,
setDefaults: AsColor.setDefaults,
noConflict: function() {
$.asColor = OtherAsColor;
return jQueryAsColor;
}
}, Converter, info);
export default $.asColor;
================================================
FILE: public/admin-panel/assets/libs/jquery-asColor/src/names.js
================================================
export default {
aliceblue: 'f0f8ff',
antiquewhite: 'faebd7',
aqua: '0ff',
aquamarine: '7fffd4',
azure: 'f0ffff',
beige: 'f5f5dc',
bisque: 'ffe4c4',
black: '000',
blanchedalmond: 'ffebcd',
blue: '00f',
blueviolet: '8a2be2',
brown: 'a52a2a',
burlywood: 'deb887',
burntsienna: 'ea7e5d',
cadetblue: '5f9ea0',
chartreuse: '7fff00',
chocolate: 'd2691e',
coral: 'ff7f50',
cornflowerblue: '6495ed',
cornsilk: 'fff8dc',
crimson: 'dc143c',
cyan: '0ff',
darkblue: '00008b',
darkcyan: '008b8b',
darkgoldenrod: 'b8860b',
darkgray: 'a9a9a9',
darkgreen: '006400',
darkgrey: 'a9a9a9',
darkkhaki: 'bdb76b',
darkmagenta: '8b008b',
darkolivegreen: '556b2f',
darkorange: 'ff8c00',
darkorchid: '9932cc',
darkred: '8b0000',
darksalmon: 'e9967a',
darkseagreen: '8fbc8f',
darkslateblue: '483d8b',
darkslategray: '2f4f4f',
darkslategrey: '2f4f4f',
darkturquoise: '00ced1',
darkviolet: '9400d3',
deeppink: 'ff1493',
deepskyblue: '00bfff',
dimgray: '696969',
dimgrey: '696969',
dodgerblue: '1e90ff',
firebrick: 'b22222',
floralwhite: 'fffaf0',
forestgreen: '228b22',
fuchsia: 'f0f',
gainsboro: 'dcdcdc',
ghostwhite: 'f8f8ff',
gold: 'ffd700',
goldenrod: 'daa520',
gray: '808080',
green: '008000',
greenyellow: 'adff2f',
grey: '808080',
honeydew: 'f0fff0',
hotpink: 'ff69b4',
indianred: 'cd5c5c',
indigo: '4b0082',
ivory: 'fffff0',
khaki: 'f0e68c',
lavender: 'e6e6fa',
lavenderblush: 'fff0f5',
lawngreen: '7cfc00',
lemonchiffon: 'fffacd',
lightblue: 'add8e6',
lightcoral: 'f08080',
lightcyan: 'e0ffff',
lightgoldenrodyellow: 'fafad2',
lightgray: 'd3d3d3',
lightgreen: '90ee90',
lightgrey: 'd3d3d3',
lightpink: 'ffb6c1',
lightsalmon: 'ffa07a',
lightseagreen: '20b2aa',
lightskyblue: '87cefa',
lightslategray: '789',
lightslategrey: '789',
lightsteelblue: 'b0c4de',
lightyellow: 'ffffe0',
lime: '0f0',
limegreen: '32cd32',
linen: 'faf0e6',
magenta: 'f0f',
maroon: '800000',
mediumaquamarine: '66cdaa',
mediumblue: '0000cd',
mediumorchid: 'ba55d3',
mediumpurple: '9370db',
mediumseagreen: '3cb371',
mediumslateblue: '7b68ee',
mediumspringgreen: '00fa9a',
mediumturquoise: '48d1cc',
mediumvioletred: 'c71585',
midnightblue: '191970',
mintcream: 'f5fffa',
mistyrose: 'ffe4e1',
moccasin: 'ffe4b5',
navajowhite: 'ffdead',
navy: '000080',
oldlace: 'fdf5e6',
olive: '808000',
olivedrab: '6b8e23',
orange: 'ffa500',
orangered: 'ff4500',
orchid: 'da70d6',
palegoldenrod: 'eee8aa',
palegreen: '98fb98',
paleturquoise: 'afeeee',
palevioletred: 'db7093',
papayawhip: 'ffefd5',
peachpuff: 'ffdab9',
peru: 'cd853f',
pink: 'ffc0cb',
plum: 'dda0dd',
powderblue: 'b0e0e6',
purple: '800080',
red: 'f00',
rosybrown: 'bc8f8f',
royalblue: '4169e1',
saddlebrown: '8b4513',
salmon: 'fa8072',
sandybrown: 'f4a460',
seagreen: '2e8b57',
seashell: 'fff5ee',
sienna: 'a0522d',
silver: 'c0c0c0',
skyblue: '87ceeb',
slateblue: '6a5acd',
slategray: '708090',
slategrey: '708090',
snow: 'fffafa',
springgreen: '00ff7f',
steelblue: '4682b4',
tan: 'd2b48c',
teal: '008080',
thistle: 'd8bfd8',
tomato: 'ff6347',
turquoise: '40e0d0',
violet: 'ee82ee',
wheat: 'f5deb3',
white: 'fff',
whitesmoke: 'f5f5f5',
yellow: 'ff0',
yellowgreen: '9acd32'
};
================================================
FILE: public/admin-panel/assets/libs/jquery-asColor/src/util.js
================================================
export function expandHex(hex) {
if (hex.indexOf('#') === 0) {
hex = hex.substr(1);
}
if (!hex) {
return null;
}
if (hex.length === 3) {
hex = hex[0] + hex[0] + hex[1] + hex[1] + hex[2] + hex[2];
}
return hex.length === 6 ? `#${hex}` : null;
}
export function shrinkHex(hex) {
if (hex.indexOf('#') === 0) {
hex = hex.substr(1);
}
if (hex.length === 6 && hex[0] === hex[1] && hex[2] === hex[3] && hex[4] === hex[5]) {
hex = hex[0] + hex[2] + hex[4];
}
return `#${hex}`;
}
export function parseIntFromHex(val) {
return parseInt(val, 16);
}
export function isPercentage(n) {
return typeof n === 'string' && n.indexOf('%') === n.length - 1;
}
export function conventPercentageToRgb(n) {
return parseInt(Math.round(n.slice(0, -1) * 2.55), 10);
}
export function convertPercentageToFloat(n) {
return parseFloat(n.slice(0, -1) / 100, 10);
}
export function flip(o) {
const flipped = {};
for (const i in o) {
if (o.hasOwnProperty(i)) {
flipped[o[i]] = i;
}
}
return flipped;
}
================================================
FILE: public/admin-panel/assets/libs/jquery-asColorPicker/dist/jquery-asColorPicker.es.js
================================================
/**
* asColorPicker v0.4.4
* https://github.com/amazingSurge/jquery-asColorPicker
*
* Copyright (c) amazingSurge
* Released under the LGPL-3.0 license
*/
import $$1 from 'jquery';
import AsColor from 'jquery-asColor';
import AsGradient from 'jquery-asGradient';
var DEFAULTS = {
namespace: 'asColorPicker',
readonly: false,
skin: null,
lang: 'en',
hideInput: false,
hideFireChange: true,
keyboard: false,
color: {
format: false,
alphaConvert: { // or false will disable convert
'RGB': 'RGBA',
'HSL': 'HSLA',
'HEX': 'RGBA',
'NAMESPACE': 'RGBA',
},
shortenHex: false,
hexUseName: false,
reduceAlpha: true,
nameDegradation: 'HEX',
invalidValue: '',
zeroAlphaAsTransparent: true
},
mode: 'simple',
onInit: null,
onReady: null,
onChange: null,
onClose: null,
onOpen: null,
onApply: null
};
var MODES = {
'simple': {
trigger: true,
clear: true,
saturation: true,
hue: true,
alpha: true
},
'palettes': {
trigger: true,
clear: true,
palettes: true
},
'complex': {
trigger: true,
clear: true,
preview: true,
palettes: true,
saturation: true,
hue: true,
alpha: true,
hex: true,
buttons: true
},
'gradient': {
trigger: true,
clear: true,
preview: true,
palettes: true,
saturation: true,
hue: true,
alpha: true,
hex: true,
gradient: true
}
};
// alpha
var alpha = {
size: 150,
defaults: {
direction: 'vertical', // horizontal
template(namespace) {
return `
`;
}
},
data: {},
init: function(api, options) {
const that = this;
this.options = $.extend(this.defaults, options);
that.direction = this.options.direction;
this.api = api;
this.$alpha = $(this.options.template.call(that, api.namespace)).appendTo(api.$dropdown);
this.$handle = this.$alpha.find('i');
api.$element.on('asColorPicker::firstOpen', () => {
// init variable
if (that.direction === 'vertical') {
that.size = that.$alpha.height();
} else {
that.size = that.$alpha.width();
}
that.step = that.size / 360;
// bind events
that.bindEvents();
that.keyboard();
});
api.$element.on('asColorPicker::update asColorPicker::setup', (e, api, color) => {
that.update(color);
});
},
bindEvents: function() {
const that = this;
this.$alpha.on(this.api.eventName('mousedown'), e => {
const rightclick = (e.which) ? (e.which === 3) : (e.button === 2);
if (rightclick) {
return false;
}
$.proxy(that.mousedown, that)(e);
});
},
mousedown: function(e) {
const offset = this.$alpha.offset();
if (this.direction === 'vertical') {
this.data.startY = e.pageY;
this.data.top = e.pageY - offset.top;
this.move(this.data.top);
} else {
this.data.startX = e.pageX;
this.data.left = e.pageX - offset.left;
this.move(this.data.left);
}
this.mousemove = function(e) {
let position;
if (this.direction === 'vertical') {
position = this.data.top + (e.pageY || this.data.startY) - this.data.startY;
} else {
position = this.data.left + (e.pageX || this.data.startX) - this.data.startX;
}
this.move(position);
return false;
};
this.mouseup = function() {
$(document).off({
mousemove: this.mousemove,
mouseup: this.mouseup
});
if (this.direction === 'vertical') {
this.data.top = this.data.cach;
} else {
this.data.left = this.data.cach;
}
return false;
};
$(document).on({
mousemove: $.proxy(this.mousemove, this),
mouseup: $.proxy(this.mouseup, this)
});
return false;
},
move: function(position, alpha, update) {
position = Math.max(0, Math.min(this.size, position));
this.data.cach = position;
if (typeof alpha === 'undefined') {
alpha = 1 - (position / this.size);
}
alpha = Math.max(0, Math.min(1, alpha));
if (this.direction === 'vertical') {
this.$handle.css({
top: position
});
} else {
this.$handle.css({
left: position
});
}
if (update !== false) {
this.api.set({
a: Math.round(alpha * 100) / 100
});
}
},
moveLeft: function() {
const step = this.step;
const data = this.data;
data.left = Math.max(0, Math.min(this.width, data.left - step));
this.move(data.left);
},
moveRight: function() {
const step = this.step;
const data = this.data;
data.left = Math.max(0, Math.min(this.width, data.left + step));
this.move(data.left);
},
moveUp: function() {
const step = this.step;
const data = this.data;
data.top = Math.max(0, Math.min(this.width, data.top - step));
this.move(data.top);
},
moveDown: function() {
const step = this.step;
const data = this.data;
data.top = Math.max(0, Math.min(this.width, data.top + step));
this.move(data.top);
},
keyboard: function() {
let keyboard;
const that = this;
if (this.api._keyboard) {
keyboard = $.extend(true, {}, this.api._keyboard);
} else {
return false;
}
this.$alpha.attr('tabindex', '0').on('focus', function() {
if (this.direction === 'vertical') {
keyboard.attach({
up() {
that.moveUp();
},
down() {
that.moveDown();
}
});
} else {
keyboard.attach({
left() {
that.moveLeft();
},
right() {
that.moveRight();
}
});
}
return false;
}).on('blur', () => {
keyboard.detach();
});
},
update: function(color) {
const position = this.size * (1 - color.value.a);
this.$alpha.css('backgroundColor', color.toHEX());
this.move(position, color.value.a, false);
},
destroy: function() {
$(document).off({
mousemove: this.mousemove,
mouseup: this.mouseup
});
}
};
// hex
var hex = {
init: function(api) {
const template = ` `;
this.$hex = $(template).appendTo(api.$dropdown);
this.$hex.on('change', function() {
api.set(this.value);
});
const that = this;
api.$element.on('asColorPicker::update asColorPicker::setup', (e, api, color) => {
that.update(color);
});
},
update: function(color) {
this.$hex.val(color.toHEX());
}
};
// hue
var hue = {
size: 150,
defaults: {
direction: 'vertical', // horizontal
template() {
const namespace = this.api.namespace;
return `
`;
}
},
data: {},
init: function(api, options) {
const that = this;
this.options = $.extend(this.defaults, options);
this.direction = this.options.direction;
this.api = api;
this.$hue = $(this.options.template.call(that)).appendTo(api.$dropdown);
this.$handle = this.$hue.find('i');
api.$element.on('asColorPicker::firstOpen', () => {
// init variable
if (that.direction === 'vertical') {
that.size = that.$hue.height();
} else {
that.size = that.$hue.width();
}
that.step = that.size / 360;
// bind events
that.bindEvents(api);
that.keyboard(api);
});
api.$element.on('asColorPicker::update asColorPicker::setup', (e, api, color) => {
that.update(color);
});
},
bindEvents: function() {
const that = this;
this.$hue.on(this.api.eventName('mousedown'), e => {
const rightclick = (e.which) ? (e.which === 3) : (e.button === 2);
if (rightclick) {
return false;
}
$.proxy(that.mousedown, that)(e);
});
},
mousedown: function(e) {
const offset = this.$hue.offset();
if (this.direction === 'vertical') {
this.data.startY = e.pageY;
this.data.top = e.pageY - offset.top;
this.move(this.data.top);
} else {
this.data.startX = e.pageX;
this.data.left = e.pageX - offset.left;
this.move(this.data.left);
}
this.mousemove = function(e) {
let position;
if (this.direction === 'vertical') {
position = this.data.top + (e.pageY || this.data.startY) - this.data.startY;
} else {
position = this.data.left + (e.pageX || this.data.startX) - this.data.startX;
}
this.move(position);
return false;
};
this.mouseup = function() {
$(document).off({
mousemove: this.mousemove,
mouseup: this.mouseup
});
if (this.direction === 'vertical') {
this.data.top = this.data.cach;
} else {
this.data.left = this.data.cach;
}
return false;
};
$(document).on({
mousemove: $.proxy(this.mousemove, this),
mouseup: $.proxy(this.mouseup, this)
});
return false;
},
move: function(position, hub, update) {
position = Math.max(0, Math.min(this.size, position));
this.data.cach = position;
if (typeof hub === 'undefined') {
hub = (1 - position / this.size) * 360;
}
hub = Math.max(0, Math.min(360, hub));
if (this.direction === 'vertical') {
this.$handle.css({
top: position
});
} else {
this.$handle.css({
left: position
});
}
if (update !== false) {
this.api.set({
h: hub
});
}
},
moveLeft: function() {
const step = this.step;
const data = this.data;
data.left = Math.max(0, Math.min(this.width, data.left - step));
this.move(data.left);
},
moveRight: function() {
const step = this.step;
const data = this.data;
data.left = Math.max(0, Math.min(this.width, data.left + step));
this.move(data.left);
},
moveUp: function() {
const step = this.step;
const data = this.data;
data.top = Math.max(0, Math.min(this.width, data.top - step));
this.move(data.top);
},
moveDown: function() {
const step = this.step;
const data = this.data;
data.top = Math.max(0, Math.min(this.width, data.top + step));
this.move(data.top);
},
keyboard: function() {
let keyboard;
const that = this;
if (this.api._keyboard) {
keyboard = $.extend(true, {}, this.api._keyboard);
} else {
return false;
}
this.$hue.attr('tabindex', '0').on('focus', function() {
if (this.direction === 'vertical') {
keyboard.attach({
up() {
that.moveUp();
},
down() {
that.moveDown();
}
});
} else {
keyboard.attach({
left() {
that.moveLeft();
},
right() {
that.moveRight();
}
});
}
return false;
}).on('blur', () => {
keyboard.detach();
});
},
update: function(color) {
const position = (color.value.h === 0) ? 0 : this.size * (1 - color.value.h / 360);
this.move(position, color.value.h, false);
},
destroy: function() {
$(document).off({
mousemove: this.mousemove,
mouseup: this.mouseup
});
}
};
// saturation
var saturation = {
defaults: {
template(namespace) {
return `
`;
}
},
width: 0,
height: 0,
size: 6,
data: {},
init: function(api, options) {
const that = this;
this.options = $.extend(this.defaults, options);
this.api = api;
//build element and add component to picker
this.$saturation = $(this.options.template.call(that, api.namespace)).appendTo(api.$dropdown);
this.$handle = this.$saturation.find('i');
api.$element.on('asColorPicker::firstOpen', () => {
// init variable
that.width = that.$saturation.width();
that.height = that.$saturation.height();
that.step = {
left: that.width / 20,
top: that.height / 20
};
that.size = that.$handle.width() / 2;
// bind events
that.bindEvents();
that.keyboard(api);
});
api.$element.on('asColorPicker::update asColorPicker::setup', (e, api, color) => {
that.update(color);
});
},
bindEvents: function() {
const that = this;
this.$saturation.on(this.api.eventName('mousedown'), e => {
const rightclick = (e.which) ? (e.which === 3) : (e.button === 2);
if (rightclick) {
return false;
}
that.mousedown(e);
});
},
mousedown: function(e) {
const offset = this.$saturation.offset();
this.data.startY = e.pageY;
this.data.startX = e.pageX;
this.data.top = e.pageY - offset.top;
this.data.left = e.pageX - offset.left;
this.data.cach = {};
this.move(this.data.left, this.data.top);
this.mousemove = function(e) {
const x = this.data.left + (e.pageX || this.data.startX) - this.data.startX;
const y = this.data.top + (e.pageY || this.data.startY) - this.data.startY;
this.move(x, y);
return false;
};
this.mouseup = function() {
$(document).off({
mousemove: this.mousemove,
mouseup: this.mouseup
});
this.data.left = this.data.cach.left;
this.data.top = this.data.cach.top;
return false;
};
$(document).on({
mousemove: $.proxy(this.mousemove, this),
mouseup: $.proxy(this.mouseup, this)
});
return false;
},
move: function(x, y, update) {
y = Math.max(0, Math.min(this.height, y));
x = Math.max(0, Math.min(this.width, x));
if (this.data.cach === undefined) {
this.data.cach = {};
}
this.data.cach.left = x;
this.data.cach.top = y;
this.$handle.css({
top: y - this.size,
left: x - this.size
});
if (update !== false) {
this.api.set({
s: x / this.width,
v: 1 - (y / this.height)
});
}
},
update: function(color) {
if (color.value.h === undefined) {
color.value.h = 0;
}
this.$saturation.css('backgroundColor', AsColor.HSLtoHEX({
h: color.value.h,
s: 1,
l: 0.5
}));
const x = color.value.s * this.width;
const y = (1 - color.value.v) * this.height;
this.move(x, y, false);
},
moveLeft: function() {
const step = this.step.left;
const data = this.data;
data.left = Math.max(0, Math.min(this.width, data.left - step));
this.move(data.left, data.top);
},
moveRight: function() {
const step = this.step.left;
const data = this.data;
data.left = Math.max(0, Math.min(this.width, data.left + step));
this.move(data.left, data.top);
},
moveUp: function() {
const step = this.step.top;
const data = this.data;
data.top = Math.max(0, Math.min(this.width, data.top - step));
this.move(data.left, data.top);
},
moveDown: function() {
const step = this.step.top;
const data = this.data;
data.top = Math.max(0, Math.min(this.width, data.top + step));
this.move(data.left, data.top);
},
keyboard: function() {
let keyboard;
const that = this;
if (this.api._keyboard) {
keyboard = $.extend(true, {}, this.api._keyboard);
} else {
return false;
}
this.$saturation.attr('tabindex', '0').on('focus', () => {
keyboard.attach({
left() {
that.moveLeft();
},
right() {
that.moveRight();
},
up() {
that.moveUp();
},
down() {
that.moveDown();
}
});
return false;
}).on('blur', () => {
keyboard.detach();
});
},
destroy: function() {
$(document).off({
mousemove: this.mousemove,
mouseup: this.mouseup
});
}
};
// buttons
var buttons = {
defaults: {
apply: false,
cancel: true,
applyText: null,
cancelText: null,
template(namespace) {
return `
`;
},
applyTemplate(namespace) {
return `${this.options.applyText} `;
},
cancelTemplate(namespace) {
return `${this.options.cancelText} `;
}
},
init: function(api, options) {
const that = this;
this.options = $.extend(this.defaults, {
applyText: api.getString('applyText', 'apply'),
cancelText: api.getString('cancelText', 'cancel')
}, options);
this.$buttons = $(this.options.template.call(this, api.namespace)).appendTo(api.$dropdown);
api.$element.on('asColorPicker::firstOpen', () => {
if (that.options.apply) {
that.$apply = $(that.options.applyTemplate.call(that, api.namespace)).appendTo(that.$buttons).on('click', () => {
api.apply();
return false;
});
}
if (that.options.cancel) {
that.$cancel = $(that.options.cancelTemplate.call(that, api.namespace)).appendTo(that.$buttons).on('click', () => {
api.cancel();
return false;
});
}
});
}
};
// trigger
var trigger = {
defaults: {
template(namespace) {
return `
`;
}
},
init: function(api, options) {
this.options = $.extend(this.defaults, options);
api.$trigger = $(this.options.template.call(this, api.namespace));
this.$triggerInner = api.$trigger.children('span');
api.$trigger.insertAfter(api.$element);
api.$trigger.on('click', () => {
if (!api.opened) {
api.open();
} else {
api.close();
}
return false;
});
const that = this;
api.$element.on('asColorPicker::update', (e, api, color, gradient) => {
if (typeof gradient === 'undefined') {
gradient = false;
}
that.update(color, gradient);
});
this.update(api.color);
},
update: function(color, gradient) {
if (gradient) {
this.$triggerInner.css('background', gradient.toString(true));
} else {
this.$triggerInner.css('background', color.toRGBA());
}
},
destroy: function(api) {
api.$trigger.remove();
}
};
// clear
var clear = {
defaults: {
template(namespace) {
return ` `;
}
},
init: function(api, options) {
if (api.options.hideInput) {
return;
}
this.options = $.extend(this.defaults, options);
this.$clear = $(this.options.template.call(this, api.namespace)).insertAfter(api.$element);
this.$clear.on('click', () => {
api.clear();
return false;
});
}
};
// info
var info = {
color: ['white', 'black', 'transparent'],
init: function(api) {
const template = ``;
this.$info = $(template).appendTo(api.$dropdown);
this.$r = this.$info.find('[data-type="r"]');
this.$g = this.$info.find('[data-type="g"]');
this.$b = this.$info.find('[data-type="b"]');
this.$a = this.$info.find('[data-type="a"]');
this.$info.on(api.eventName('keyup update change'), 'input', function(e) {
let val;
const type = $(e.target).data('type');
switch (type) {
case 'r':
case 'g':
case 'b':
val = parseInt(this.value, 10);
if (val > 255) {
val = 255;
} else if (val < 0) {
val = 0;
}
break;
case 'a':
val = parseFloat(this.value, 10);
if (val > 1) {
val = 1;
} else if (val < 0) {
val = 0;
}
break;
default:
break;
}
if (isNaN(val)) {
val = 0;
}
const color = {};
color[type] = val;
api.set(color);
});
const that = this;
api.$element.on('asColorPicker::update asColorPicker::setup', (e, color) => {
that.update(color);
});
},
update: function(color) {
this.$r.val(color.value.r);
this.$g.val(color.value.g);
this.$b.val(color.value.b);
this.$a.val(color.value.a);
}
};
// palettes
function noop() {
return;
}
if (!window.localStorage) {
window.localStorage = noop;
}
var palettes = {
defaults: {
template(namespace) {
return ``;
},
item(namespace, color) {
return ` `;
},
colors: ['white', 'black', 'red', 'blue', 'yellow'],
max: 10,
localStorage: true
},
init: function(api, options) {
const that = this;
let colors;
const asColor = AsColor();
this.options = $.extend(true, {}, this.defaults, options);
this.colors = [];
let localKey;
if (this.options.localStorage) {
localKey = `${api.namespace}_palettes_${api.id}`;
colors = this.getLocal(localKey);
if (!colors) {
colors = this.options.colors;
this.setLocal(localKey, colors);
}
} else {
colors = this.options.colors;
}
for (const i in colors) {
if(Object.hasOwnProperty.call(colors, i)){
this.colors.push(asColor.val(colors[i]).toRGBA());
}
}
let list = '';
$.each(this.colors, (i, color) => {
list += that.options.item(api.namespace, color);
});
this.$palettes = $(this.options.template.call(this, api.namespace)).html(list).appendTo(api.$dropdown);
this.$palettes.on(api.eventName('click'), 'li', function(e) {
const color = $(this).data('color');
api.set(color);
e.preventDefault();
e.stopPropagation();
});
api.$element.on('asColorPicker::apply', (e, api, color) => {
if (typeof color.toRGBA !== 'function') {
color = color.get().color;
}
const rgba = color.toRGBA();
if ($.inArray(rgba, that.colors) === -1) {
if (that.colors.length >= that.options.max) {
that.colors.shift();
that.$palettes.find('li').eq(0).remove();
}
that.colors.push(rgba);
that.$palettes.append(that.options.item(api.namespace, color));
if (that.options.localStorage) {
that.setLocal(localKey, that.colors);
}
}
});
},
setLocal: function(key, value) {
const jsonValue = JSON.stringify(value);
localStorage[key] = jsonValue;
},
getLocal: function(key) {
const value = localStorage[key];
return value ? JSON.parse(value) : value;
}
};
// preview
var preview = {
defaults: {
template(namespace) {
return ``;
}
},
init: function(api, options) {
const that = this;
this.options = $.extend(this.defaults, options);
this.$preview = $(this.options.template.call(that, api.namespace)).appendTo(api.$dropdown);
this.$current = this.$preview.find(`.${api.namespace}-preview-current span`);
this.$previous = this.$preview.find(`.${api.namespace}-preview-previous span`);
api.$element.on('asColorPicker::firstOpen', () => {
that.$previous.on('click', function() {
api.set($(this).data('color'));
return false;
});
});
api.$element.on('asColorPicker::setup', (e, api, color) => {
that.updateCurrent(color);
that.updatePreview(color);
});
api.$element.on('asColorPicker::update', (e, api, color) => {
that.updateCurrent(color);
});
},
updateCurrent: function(color) {
this.$current.css('backgroundColor', color.toRGBA());
},
updatePreview: function(color) {
this.$previous.css('backgroundColor', color.toRGBA());
this.$previous.data('color', {
r: color.value.r,
g: color.value.g,
b: color.value.b,
a: color.value.a
});
}
};
// gradient
function conventToPercentage(n) {
if (n < 0) {
n = 0;
} else if (n > 1) {
n = 1;
}
return `${n * 100}%`;
}
var Gradient = function(api, options) {
this.api = api;
this.options = options;
this.classes = {
enable: `${api.namespace}-gradient_enable`,
marker: `${api.namespace}-gradient-marker`,
active: `${api.namespace}-gradient-marker_active`,
focus: `${api.namespace}-gradient_focus`
};
this.isEnabled = false;
this.initialized = false;
this.current = null;
this.value = AsGradient(this.options.settings);
this.$doc = $(document);
const that = this;
$.extend(that, {
init() {
that.$wrap = $(that.options.template.call(that)).appendTo(api.$dropdown);
that.$gradient = that.$wrap.filter(`.${api.namespace}-gradient`);
this.angle.init();
this.preview.init();
this.markers.init();
this.wheel.init();
this.bind();
if (that.options.switchable === false || this.value.matchString(api.element.value)) {
that.enable();
}
this.initialized = true;
},
bind() {
const namespace = api.namespace;
that.$gradient.on('update', () => {
const current = that.value.getById(that.current);
if (current) {
api._trigger('update', current.color, that.value);
}
if (api.element.value !== that.value.toString()) {
api._updateInput();
}
});
// that.$gradient.on('add', function(e, data) {
// if (data.stop) {
// that.active(data.stop.id);
// api._trigger('update', data.stop.color, that.value);
// api._updateInput();
// }
// });
if (that.options.switchable) {
that.$wrap.on('click', `.${namespace}-gradient-switch`, () => {
if (that.isEnabled) {
that.disable();
} else {
that.enable();
}
return false;
});
}
that.$wrap.on('click', `.${namespace}-gradient-cancel`, () => {
if (that.options.switchable === false || AsGradient.matchString(api.originValue)) {
that.overrideCore();
}
api.cancel();
return false;
});
},
overrideCore() {
api.set = value => {
if (value !== '') {
api.isEmpty = false;
} else {
api.isEmpty = true;
}
if (typeof value === 'string') {
if (that.options.switchable === false || AsGradient.matchString(value)) {
if (that.isEnabled) {
that.val(value);
api.color = that.value;
that.$gradient.trigger('update', that.value.value);
} else {
that.enable(value);
}
} else {
that.disable();
api.val(value);
}
} else {
const current = that.value.getById(that.current);
if (current) {
current.color.val(value);
api._trigger('update', current.color, that.value);
}
that.$gradient.trigger('update', {
id: that.current,
stop: current
});
}
};
api._setup = () => {
const current = that.value.getById(that.current);
api._trigger('setup', current.color);
};
},
revertCore() {
api.set = $.proxy(api._set, api);
api._setup = () => {
api._trigger('setup', api.color);
};
},
preview: {
init() {
that.$preview = that.$gradient.find(`.${api.namespace}-gradient-preview`);
that.$gradient.on('add del update empty', () => {
this.render();
});
},
render() {
that.$preview.css({
'background-image': that.value.toStringWithAngle('to right', true),
});
that.$preview.css({
'background-image': that.value.toStringWithAngle('to right'),
});
}
},
markers: {
width: 160,
init() {
that.$markers = that.$gradient.find(`.${api.namespace}-gradient-markers`).attr('tabindex', 0);
that.$gradient.on('add', (e, data) => {
this.add(data.stop);
});
that.$gradient.on('active', (e, data) => {
this.active(data.id);
});
that.$gradient.on('del', (e, data) => {
this.del(data.id);
});
that.$gradient.on('update', (e, data) => {
if (data.stop) {
this.update(data.stop.id, data.stop.color);
}
});
that.$gradient.on('empty', () => {
this.empty();
});
that.$markers.on(that.api.eventName('mousedown'), e => {
const rightclick = (e.which) ? (e.which === 3) : (e.button === 2);
if (rightclick) {
return false;
}
const position = parseFloat((e.pageX - that.$markers.offset().left) / that.markers.width, 10);
that.add('#fff', position);
return false;
});
/* eslint consistent-this: "off" */
let self = this;
that.$markers.on(that.api.eventName('mousedown'), 'li', function(e) {
const rightclick = (e.which) ? (e.which === 3) : (e.button === 2);
if (rightclick) {
return false;
}
self.mousedown(this, e);
return false;
});
that.$doc.on(that.api.eventName('keydown'), e => {
if (that.api.opened && that.$markers.is(`.${that.classes.focus}`)) {
const key = e.keyCode || e.which;
if (key === 46 || key === 8) {
if (that.value.length <= 2) {
return false;
}
that.del(that.current);
return false;
}
}
});
that.$markers.on(that.api.eventName('focus'), () => {
that.$markers.addClass(that.classes.focus);
}).on(that.api.eventName('blur'), () => {
that.$markers.removeClass(that.classes.focus);
});
that.$markers.on(that.api.eventName('click'), 'li', function() {
const id = $(this).data('id');
that.active(id);
});
},
getMarker(id) {
return that.$markers.find(`[data-id="${id}"]`);
},
update(id, color) {
const $marker = this.getMarker(id);
$marker.find('span').css('background-color', color.toHEX());
$marker.find('i').css('background-color', color.toHEX());
},
add(stop) {
$(` `).appendTo(that.$markers);
},
empty() {
that.$markers.html('');
},
del(id) {
const $marker = this.getMarker(id);
let $to = $marker.prev();
if ($to.length === 0) {
$to = $marker.next();
}
that.active($to.data('id'));
$marker.remove();
},
active(id) {
that.$markers.children().removeClass(that.classes.active);
const $marker = this.getMarker(id);
$marker.addClass(that.classes.active);
that.$markers.focus();
// that.api._trigger('apply', that.value.getById(id).color);
},
mousedown(marker, e) {
const self = this;
/* eslint consistent-this: "off" */
const id = $(marker).data('id');
const first = $(marker).position().left;
const start = e.pageX;
let end;
this.mousemove = function(e) {
end = e.pageX || start;
const position = (first + end - start) / this.width;
self.move(marker, position, id);
return false;
};
this.mouseup = function() {
$(document).off({
mousemove: this.mousemove,
mouseup: this.mouseup
});
return false;
};
that.$doc.on({
mousemove: $.proxy(this.mousemove, this),
mouseup: $.proxy(this.mouseup, this)
});
that.active(id);
return false;
},
move(marker, position, id) {
that.api.isEmpty = false;
position = Math.max(0, Math.min(1, position));
$(marker).css({
left: conventToPercentage(position)
});
if (!id) {
id = $(marker).data('id');
}
that.value.getById(id).setPosition(position);
that.$gradient.trigger('update', {
id: $(marker).data('id'),
position
});
},
},
wheel: {
init() {
that.$wheel = that.$gradient.find(`.${api.namespace}-gradient-wheel`);
that.$pointer = that.$wheel.find('i');
that.$gradient.on('update', (e, data) => {
if (typeof data.angle !== 'undefined') {
this.position(data.angle);
}
});
that.$wheel.on(that.api.eventName('mousedown'), e => {
const rightclick = (e.which) ? (e.which === 3) : (e.button === 2);
if (rightclick) {
return false;
}
this.mousedown(e, that);
return false;
});
},
mousedown(e, that) {
const offset = that.$wheel.offset();
const r = that.$wheel.width() / 2;
const startX = offset.left + r;
const startY = offset.top + r;
const $doc = that.$doc;
this.r = r;
this.wheelMove = e => {
const x = e.pageX - startX;
const y = startY - e.pageY;
const position = this.getPosition(x, y);
const angle = this.calAngle(position.x, position.y);
that.api.isEmpty = false;
that.setAngle(angle);
};
this.wheelMouseup = function() {
$doc.off({
mousemove: this.wheelMove,
mouseup: this.wheelMouseup
});
return false;
};
$doc.on({
mousemove: $.proxy(this.wheelMove, this),
mouseup: $.proxy(this.wheelMouseup, this)
});
this.wheelMove(e);
},
getPosition(a, b) {
const r = this.r;
const x = a / Math.sqrt(a * a + b * b) * r;
const y = b / Math.sqrt(a * a + b * b) * r;
return {
x,
y
};
},
calAngle(x, y) {
const deg = Math.round(Math.atan(Math.abs(x / y)) * (180 / Math.PI));
if (x < 0 && y > 0) {
return 360 - deg;
}
if (x < 0 && y <= 0) {
return deg + 180;
}
if (x >= 0 && y <= 0) {
return 180 - deg;
}
if (x >= 0 && y > 0) {
return deg;
}
},
set(value) {
that.value.angle(value);
that.$gradient.trigger('update', {
angle: value
});
},
position(angle) {
const r = this.r || that.$wheel.width() / 2;
const pos = this.calPointer(angle, r);
that.$pointer.css({
left: pos.x,
top: pos.y
});
},
calPointer(angle, r) {
const x = Math.sin(angle * Math.PI / 180) * r;
const y = Math.cos(angle * Math.PI / 180) * r;
return {
x: r + x,
y: r - y
};
}
},
angle: {
init() {
that.$angle = that.$gradient.find(`.${api.namespace}-gradient-angle`);
that.$angle.on(that.api.eventName('blur'), function() {
that.setAngle(this.value);
return false;
}).on(that.api.eventName('keydown'), function(e) {
const key = e.keyCode || e.which;
if (key === 13) {
that.api.isEmpty = false;
$(this).blur();
return false;
}
});
that.$gradient.on('update', (e, data) => {
if (typeof data.angle !== 'undefined') {
that.$angle.val(data.angle);
}
});
},
set(value) {
that.value.angle(value);
that.$gradient.trigger('update', {
angle: value
});
}
}
});
this.init();
};
Gradient.prototype = {
constructor: Gradient,
enable(value) {
if (this.isEnabled === true) {
return;
}
this.isEnabled = true;
this.overrideCore();
this.$gradient.addClass(this.classes.enable);
this.markers.width = this.$markers.width();
if (typeof value === 'undefined') {
value = this.api.element.value;
}
if (value !== '') {
this.api.isEmpty = false;
} else {
this.api.isEmpty = true;
}
if (!AsGradient.matchString(value) && this._last) {
this.value = this._last;
} else {
this.val(value);
}
this.api.color = this.value;
this.$gradient.trigger('update', this.value.value);
if (this.api.opened) {
this.api.position();
}
},
val(string) {
if (string !== '' && this.value.toString() === string) {
return;
}
this.empty();
this.value.val(string);
this.value.reorder();
if (this.value.length < 2) {
let fill = string;
if (!AsColor.matchString(string)) {
fill = 'rgba(0,0,0,1)';
}
if (this.value.length === 0) {
this.value.append(fill, 0);
}
if (this.value.length === 1) {
this.value.append(fill, 1);
}
}
let stop;
for (let i = 0; i < this.value.length; i++) {
stop = this.value.get(i);
if (stop) {
this.$gradient.trigger('add', {
stop
});
}
}
this.active(stop.id);
},
disable() {
if (this.isEnabled === false) {
return;
}
this.isEnabled = false;
this.revertCore();
this.$gradient.removeClass(this.classes.enable);
this._last = this.value;
this.api.color = this.api.color.getCurrent().color;
this.api.set(this.api.color.value);
if (this.api.opened) {
this.api.position();
}
},
active(id) {
if (this.current !== id) {
this.current = id;
this.value.setCurrentById(id);
this.$gradient.trigger('active', {
id
});
}
},
empty() {
this.value.empty();
this.$gradient.trigger('empty');
},
add(color, position) {
const stop = this.value.insert(color, position);
this.api.isEmpty = false;
this.value.reorder();
this.$gradient.trigger('add', {
stop
});
this.active(stop.id);
this.$gradient.trigger('update', {
stop
});
return stop;
},
del(id) {
if (this.value.length <= 2) {
return;
}
this.value.removeById(id);
this.value.reorder();
this.$gradient.trigger('del', {
id
});
this.$gradient.trigger('update', {});
},
setAngle(value) {
this.value.angle(value);
this.$gradient.trigger('update', {
angle: value
});
}
};
var gradient = {
defaults: {
switchable: true,
switchText: 'Gradient',
cancelText: 'Cancel',
settings: {
forceStandard: true,
angleUseKeyword: true,
emptyString: '',
degradationFormat: false,
cleanPosition: false,
color: {
format: 'rgb' // rgb, rgba, hsl, hsla, hex
}
},
template() {
const namespace = this.api.namespace;
let control = ``;
return `${control}`;
}
},
init: function(api, options) {
const that = this;
api.$element.on('asColorPicker::ready', (event, instance) => {
if (instance.options.mode !== 'gradient') {
return;
}
that.defaults.settings.color = api.options.color;
options = $.extend(true, that.defaults, options);
api.gradient = new Gradient(api, options);
});
}
};
const NAMESPACE$1 = 'asColorPicker';
const COMPONENTS = {};
const LOCALIZATIONS = {
en: {
cancelText: 'cancel',
applyText: 'apply'
}
};
let id = 0;
function createId(api) {
api.id = id;
id++;
}
class AsColorPicker {
constructor(element, options) {
this.element = element;
this.$element = $$1(element);
//flag
this.opened = false;
this.firstOpen = true;
this.disabled = false;
this.initialed = false;
this.originValue = this.element.value;
this.isEmpty = false;
createId(this);
this.options = $$1.extend(true, {}, DEFAULTS, options, this.$element.data());
this.namespace = this.options.namespace;
this.classes = {
wrap: `${this.namespace}-wrap`,
dropdown: `${this.namespace}-dropdown`,
input: `${this.namespace}-input`,
skin: `${this.namespace}_${this.options.skin}`,
open: `${this.namespace}_open`,
mask: `${this.namespace}-mask`,
hideInput: `${this.namespace}_hideInput`,
disabled: `${this.namespace}_disabled`,
mode: `${this.namespace}-mode_${this.options.mode}`
};
if (this.options.hideInput) {
this.$element.addClass(this.classes.hideInput);
}
this.components = MODES[this.options.mode];
this._components = $$1.extend(true, {}, COMPONENTS);
this._trigger('init');
this.init();
}
_trigger(eventType, ...params) {
let data = [this].concat(params);
// event
this.$element.trigger(`${NAMESPACE$1}::${eventType}`, data);
// callback
eventType = eventType.replace(/\b\w+\b/g, (word) => {
return word.substring(0, 1).toUpperCase() + word.substring(1);
});
let onFunction = `on${eventType}`;
if (typeof this.options[onFunction] === 'function') {
this.options[onFunction].apply(this, params);
}
}
eventName(events) {
if (typeof events !== 'string' || events === '') {
return `.${this.options.namespace}`;
}
events = events.split(' ');
let length = events.length;
for (let i = 0; i < length; i++) {
events[i] = `${events[i]}.${this.options.namespace}`;
}
return events.join(' ');
}
init() {
this.color = AsColor(this.element.value, this.options.color);
this._create();
if (this.options.skin) {
this.$dropdown.addClass(this.classes.skin);
this.$element.parent().addClass(this.classes.skin);
}
if (this.options.readonly) {
this.$element.prop('readonly', true);
}
this._bindEvent();
this.initialed = true;
this._trigger('ready');
}
_create() {
this.$dropdown = $$1(`
`);
this.$element.wrap(`
`).addClass(this.classes.input);
this.$wrap = this.$element.parent();
this.$body = $$1('body');
this.$dropdown.data(NAMESPACE$1, this);
let component;
$$1.each(this.components, (key, options) => {
if (options === true) {
options = {};
}
if (this.options[key] !== undefined) {
options = $$1.extend(true, {}, options, this.options[key]);
}
if (Object.hasOwnProperty.call(this._components, key)) {
component = this._components[key];
component.init(this, options);
}
});
this._trigger('create');
}
_bindEvent() {
this.$element.on(this.eventName('click'), () => {
if (!this.opened) {
this.open();
}
return false;
});
this.$element.on(this.eventName('keydown'), (e) => {
if (e.keyCode === 9) {
this.close();
} else if (e.keyCode === 13) {
this.val(this.element.value);
this.close();
}
});
this.$element.on(this.eventName('keyup'), () => {
if (this.color.matchString(this.element.value)) {
this.val(this.element.value);
}
});
}
opacity(v) {
if (v) {
this.color.alpha(v);
} else {
return this.color.alpha();
}
}
position() {
const hidden = !this.$element.is(':visible');
const offset = hidden ? this.$trigger.offset() : this.$element.offset();
const height = hidden ? this.$trigger.outerHeight() : this.$element.outerHeight();
const width = hidden ? this.$trigger.outerWidth() : this.$element.outerWidth() + this.$trigger.outerWidth();
const pickerWidth = this.$dropdown.outerWidth(true);
const pickerHeight = this.$dropdown.outerHeight(true);
let top;
let left;
if (pickerHeight + offset.top > $$1(window).height() + $$1(window).scrollTop()) {
top = offset.top - pickerHeight;
} else {
top = offset.top + height;
}
if (pickerWidth + offset.left > $$1(window).width() + $$1(window).scrollLeft()) {
left = offset.left - pickerWidth + width;
} else {
left = offset.left;
}
this.$dropdown.css({
position: 'absolute',
top,
left
});
}
open() {
if (this.disabled) {
return;
}
this.originValue = this.element.value;
if (this.$dropdown[0] !== this.$body.children().last()[0]) {
this.$dropdown.detach().appendTo(this.$body);
}
this.$mask = $$1(`.${this.classes.mask}`);
if (this.$mask.length === 0) {
this.createMask();
}
// ensure the mask is always right before the dropdown
if (this.$dropdown.prev()[0] !== this.$mask[0]) {
this.$dropdown.before(this.$mask);
}
$$1("#asColorPicker-dropdown").removeAttr("id");
this.$dropdown.attr("id", "asColorPicker-dropdown");
// show the mask
this.$mask.show();
this.position();
$$1(window).on(this.eventName('resize'), $$1.proxy(this.position, this));
this.$dropdown.addClass(this.classes.open);
this.opened = true;
if (this.firstOpen) {
this.firstOpen = false;
this._trigger('firstOpen');
}
this._setup();
this._trigger('open');
}
createMask() {
this.$mask = $$1(document.createElement("div"));
this.$mask.attr("class", this.classes.mask);
this.$mask.hide();
this.$mask.appendTo(this.$body);
this.$mask.on(this.eventName("mousedown touchstart click"), e => {
const $dropdown = $$1("#asColorPicker-dropdown");
let self;
if ($dropdown.length > 0) {
self = $dropdown.data(NAMESPACE$1);
if (self.opened) {
if (self.options.hideFireChange) {
self.apply();
} else {
self.cancel();
}
}
e.preventDefault();
e.stopPropagation();
}
});
}
close() {
this.opened = false;
this.$element.blur();
this.$mask.hide();
this.$dropdown.removeClass(this.classes.open);
$$1(window).off(this.eventName('resize'));
this._trigger('close');
}
clear() {
this.val('');
}
cancel() {
this.close();
this.set(this.originValue);
}
apply() {
this._trigger('apply', this.color);
this.close();
}
val(value) {
if (typeof value === 'undefined') {
return this.color.toString();
}
this.set(value);
}
_update() {
this._trigger('update', this.color);
this._updateInput();
}
_updateInput() {
let value = this.color.toString();
if (this.isEmpty) {
value = '';
}
this._trigger('change', value);
this.$element.val(value);
}
set(value) {
if (value !== '') {
this.isEmpty = false;
} else {
this.isEmpty = true;
}
return this._set(value);
}
_set(value) {
if (typeof value === 'string') {
this.color.val(value);
} else {
this.color.set(value);
}
this._update();
}
_setup() {
this._trigger('setup', this.color);
}
get() {
return this.color;
}
enable() {
this.disabled = false;
this.$parent.addClass(this.classes.disabled);
this._trigger('enable');
return this;
}
disable() {
this.disabled = true;
this.$parent.removeClass(this.classes.disabled);
this._trigger('disable');
return this;
}
destroy() {
this.$element.unwrap();
this.$element.off(this.eventName());
this.$mask.remove();
this.$dropdown.remove();
this.initialized = false;
this.$element.data(NAMESPACE$1, null);
this._trigger('destroy');
return this;
}
getString(name, def) {
if(this.options.lang in LOCALIZATIONS && typeof LOCALIZATIONS[this.options.lang][name] !== 'undefined') {
return LOCALIZATIONS[this.options.lang][name];
}
return def;
}
static setLocalization(lang, strings) {
LOCALIZATIONS[lang] = strings;
}
static registerComponent(name, method) {
COMPONENTS[name] = method;
}
static setDefaults(options) {
$$1.extend(true, DEFAULTS, $$1.isPlainObject(options) && options);
}
}
AsColorPicker.registerComponent('alpha', alpha);
AsColorPicker.registerComponent('hex', hex);
AsColorPicker.registerComponent('hue', hue);
AsColorPicker.registerComponent('saturation', saturation);
AsColorPicker.registerComponent('buttons', buttons);
AsColorPicker.registerComponent('trigger', trigger);
AsColorPicker.registerComponent('clear', clear);
AsColorPicker.registerComponent('info', info);
AsColorPicker.registerComponent('palettes', palettes);
AsColorPicker.registerComponent('preview', preview);
AsColorPicker.registerComponent('gradient', gradient);
// Chinese (cn) localization
AsColorPicker.setLocalization('cn', {
cancelText: "取消",
applyText: "应用"
});
// German (de) localization
AsColorPicker.setLocalization('de', {
cancelText: "Abbrechen",
applyText: "Wählen"
});
// Danish (dk) localization
AsColorPicker.setLocalization('dk', {
cancelText: "annuller",
applyText: "Vælg"
});
// Spanish (es) localization
AsColorPicker.setLocalization('es', {
cancelText: "Cancelar",
applyText: "Elegir"
});
// Finnish (fi) localization
AsColorPicker.setLocalization('fi', {
cancelText: "Kumoa",
applyText: "Valitse"
});
// French (fr) localization
AsColorPicker.setLocalization('fr', {
cancelText: "Annuler",
applyText: "Valider"
});
// Italian (it) localization
AsColorPicker.setLocalization('it', {
cancelText: "annulla",
applyText: "scegli"
});
// Japanese (ja) localization
AsColorPicker.setLocalization('ja', {
cancelText: "中止",
applyText: "選択"
});
// Russian (ru) localization
AsColorPicker.setLocalization('ru', {
cancelText: "отмена",
applyText: "выбрать"
});
// Swedish (sv) localization
AsColorPicker.setLocalization('sv', {
cancelText: "Avbryt",
applyText: "Välj"
});
// Turkish (tr) localization
AsColorPicker.setLocalization('tr', {
cancelText: "Avbryt",
applyText: "Välj"
});
var info$1 = {
version:'0.4.4'
};
const NAMESPACE = 'asColorPicker';
const OtherAsColorPicker = $$1.fn.asColorPicker;
const jQueryAsColorPicker = function(options, ...args) {
if (typeof options === 'string') {
const method = options;
if (/^_/.test(method)) {
return false;
} else if ((/^(get)$/.test(method)) || (method === 'val' && args.length === 0)) {
const instance = this.first().data(NAMESPACE);
if (instance && typeof instance[method] === 'function') {
return instance[method](...args);
}
} else {
return this.each(function() {
const instance = $$1.data(this, NAMESPACE);
if (instance && typeof instance[method] === 'function') {
instance[method](...args);
}
});
}
}
return this.each(function() {
if (!$$1(this).data(NAMESPACE)) {
$$1(this).data(NAMESPACE, new AsColorPicker(this, options));
}
});
};
$$1.fn.asColorPicker = jQueryAsColorPicker;
$$1.asColorPicker = $$1.extend({
setDefaults: AsColorPicker.setDefaults,
registerComponent: AsColorPicker.registerComponent,
setLocalization: AsColorPicker.setLocalization,
noConflict: function() {
$$1.fn.asColorPicker = OtherAsColorPicker;
return jQueryAsColorPicker;
}
}, info$1);
================================================
FILE: public/admin-panel/assets/libs/jquery-asGradient/LICENSE
================================================
GNU LESSER GENERAL PUBLIC LICENSE
Version 3, 29 June 2007
Copyright (C) 2007 Free Software Foundation, Inc.
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
This version of the GNU Lesser General Public License incorporates
the terms and conditions of version 3 of the GNU General Public
License, supplemented by the additional permissions listed below.
0. Additional Definitions.
As used herein, "this License" refers to version 3 of the GNU Lesser
General Public License, and the "GNU GPL" refers to version 3 of the GNU
General Public License.
"The Library" refers to a covered work governed by this License,
other than an Application or a Combined Work as defined below.
An "Application" is any work that makes use of an interface provided
by the Library, but which is not otherwise based on the Library.
Defining a subclass of a class defined by the Library is deemed a mode
of using an interface provided by the Library.
A "Combined Work" is a work produced by combining or linking an
Application with the Library. The particular version of the Library
with which the Combined Work was made is also called the "Linked
Version".
The "Minimal Corresponding Source" for a Combined Work means the
Corresponding Source for the Combined Work, excluding any source code
for portions of the Combined Work that, considered in isolation, are
based on the Application, and not on the Linked Version.
The "Corresponding Application Code" for a Combined Work means the
object code and/or source code for the Application, including any data
and utility programs needed for reproducing the Combined Work from the
Application, but excluding the System Libraries of the Combined Work.
1. Exception to Section 3 of the GNU GPL.
You may convey a covered work under sections 3 and 4 of this License
without being bound by section 3 of the GNU GPL.
2. Conveying Modified Versions.
If you modify a copy of the Library, and, in your modifications, a
facility refers to a function or data to be supplied by an Application
that uses the facility (other than as an argument passed when the
facility is invoked), then you may convey a copy of the modified
version:
a) under this License, provided that you make a good faith effort to
ensure that, in the event an Application does not supply the
function or data, the facility still operates, and performs
whatever part of its purpose remains meaningful, or
b) under the GNU GPL, with none of the additional permissions of
this License applicable to that copy.
3. Object Code Incorporating Material from Library Header Files.
The object code form of an Application may incorporate material from
a header file that is part of the Library. You may convey such object
code under terms of your choice, provided that, if the incorporated
material is not limited to numerical parameters, data structure
layouts and accessors, or small macros, inline functions and templates
(ten or fewer lines in length), you do both of the following:
a) Give prominent notice with each copy of the object code that the
Library is used in it and that the Library and its use are
covered by this License.
b) Accompany the object code with a copy of the GNU GPL and this license
document.
4. Combined Works.
You may convey a Combined Work under terms of your choice that,
taken together, effectively do not restrict modification of the
portions of the Library contained in the Combined Work and reverse
engineering for debugging such modifications, if you also do each of
the following:
a) Give prominent notice with each copy of the Combined Work that
the Library is used in it and that the Library and its use are
covered by this License.
b) Accompany the Combined Work with a copy of the GNU GPL and this license
document.
c) For a Combined Work that displays copyright notices during
execution, include the copyright notice for the Library among
these notices, as well as a reference directing the user to the
copies of the GNU GPL and this license document.
d) Do one of the following:
0) Convey the Minimal Corresponding Source under the terms of this
License, and the Corresponding Application Code in a form
suitable for, and under terms that permit, the user to
recombine or relink the Application with a modified version of
the Linked Version to produce a modified Combined Work, in the
manner specified by section 6 of the GNU GPL for conveying
Corresponding Source.
1) Use a suitable shared library mechanism for linking with the
Library. A suitable mechanism is one that (a) uses at run time
a copy of the Library already present on the user's computer
system, and (b) will operate properly with a modified version
of the Library that is interface-compatible with the Linked
Version.
e) Provide Installation Information, but only if you would otherwise
be required to provide such information under section 6 of the
GNU GPL, and only to the extent that such information is
necessary to install and execute a modified version of the
Combined Work produced by recombining or relinking the
Application with a modified version of the Linked Version. (If
you use option 4d0, the Installation Information must accompany
the Minimal Corresponding Source and Corresponding Application
Code. If you use option 4d1, you must provide the Installation
Information in the manner specified by section 6 of the GNU GPL
for conveying Corresponding Source.)
5. Combined Libraries.
You may place library facilities that are a work based on the
Library side by side in a single library together with other library
facilities that are not Applications and are not covered by this
License, and convey such a combined library under terms of your
choice, if you do both of the following:
a) Accompany the combined library with a copy of the same work based
on the Library, uncombined with any other library facilities,
conveyed under the terms of this License.
b) Give prominent notice with the combined library that part of it
is a work based on the Library, and explaining where to find the
accompanying uncombined form of the same work.
6. Revised Versions of the GNU Lesser General Public License.
The Free Software Foundation may publish revised and/or new versions
of the GNU Lesser General Public License from time to time. Such new
versions will be similar in spirit to the present version, but may
differ in detail to address new problems or concerns.
Each version is given a distinguishing version number. If the
Library as you received it specifies that a certain numbered version
of the GNU Lesser General Public License "or any later version"
applies to it, you have the option of following the terms and
conditions either of that published version or of any later version
published by the Free Software Foundation. If the Library as you
received it does not specify a version number of the GNU Lesser
General Public License, you may choose any version of the GNU Lesser
General Public License ever published by the Free Software Foundation.
If the Library as you received it specifies that a proxy can decide
whether future versions of the GNU Lesser General Public License shall
apply, that proxy's public statement of acceptance of any version is
permanent authorization for you to choose that version for the
Library.
================================================
FILE: public/admin-panel/assets/libs/jquery-asGradient/README.md
================================================
# [jQuery asGradient](https://github.com/amazingSurge/jquery-asGradient) ![bower][bower-image] [![NPM version][npm-image]][npm-url] [![Dependency Status][daviddm-image]][daviddm-url] [![prs-welcome]](#contributing)
> A jquery plugin used to manipulate css image gradient. You can add a new color stop. Change the position of color stop. Or remove a color stop. In the end, it can output a formated standard css gradient string.
## Table of contents
- [Main files](#main-files)
- [Quick start](#quick-start)
- [Requirements](#requirements)
- [Usage](#usage)
- [Examples](#examples)
- [Options](#options)
- [Methods](#methods)
- [No conflict](#no-conflict)
- [Browser support](#browser-support)
- [Contributing](#contributing)
- [Development](#development)
- [Changelog](#changelog)
- [Copyright and license](#copyright-and-license)
## Main files
```
dist/
├── jquery-asGradient.js
├── jquery-asGradient.es.js
└── jquery-asGradient.min.js
```
## Quick start
Several quick start options are available:
#### Download the latest build
* [Development](https://raw.githubusercontent.com/amazingSurge/jquery-asGradient/master/dist/jquery-asGradient.js) - unminified
* [Production](https://raw.githubusercontent.com/amazingSurge/jquery-asGradient/master/dist/jquery-asGradient.min.js) - minified
#### Install From Bower
```sh
bower install jquery-asGradient --save
```
#### Install From Npm
```sh
npm install jquery-asGradient --save
```
#### Install From Yarn
```sh
yarn add jquery-asGradient
```
#### Build From Source
If you want build from source:
```sh
git clone git@github.com:amazingSurge/jquery-asGradient.git
cd jquery-asGradient
npm install
npm install -g gulp-cli babel-cli
gulp build
```
Done!
## Requirements
`jquery-asGradient` requires the latest version of [`jQuery`](https://jquery.com/download/) and [`jQuery-asColor`](https://github.com/amazingSurge/jquery-asColor).
## Usage
#### Including files:
```html
```
#### Initialization
All you need to do is call the plugin on the element:
```javascript
var gradient = new AsGradient('linear-gradient(to rgba(0, 0, 0, 1), rgba(255, 255, 255, 1))', {
cleanPosition: true,
color: {
format: 'rgba'
}
});
```
## Examples
There are some example usages that you can look at to get started. They can be found in the
[examples folder](https://github.com/amazingSurge/jquery-asGradient/tree/master/examples).
## Options
`jquery-asGradient` can accept an options object to alter the way it behaves. You can see the default options by call `$.asGradient.setDefaults()`. The structure of an options object is as follows:
```
{
prefixes: ['-webkit-', '-moz-', '-ms-', '-o-'],
forceStandard: true,
angleUseKeyword: true,
emptyString: '',
degradationFormat: false,
cleanPosition: true,
color: {
format: false, // rgb, rgba, hsl, hsla, hex
hexUseName: false,
reduceAlpha: true,
shortenHex: true,
zeroAlphaAsTransparent: false,
invalidValue: {
r: 0,
g: 0,
b: 0,
a: 1
}
}
}
```
## Methods
```javascript
var gradient = new AsGradient('linear-gradient(to bottom, yellow, blue)');
gradient.toString();
```
#### toString()
Get gradient string.
```javascript
// Get standard string.
gradient.toString();
// Get string by prefix.
gradient.toString('-moz-');
```
#### fromString()
Set values from gradient string.
```javascript
gradient.fromString('linear-gradient(to bottom, yellow 0%, blue 100%)');
```
#### getPrefixedStrings()
Get prefixed strings array.
```javascript
gradient.getPrefixedStrings();
```
#### val()
Get or set gradient string.
```javascript
// get gradient string
gradient.val();
// set gradient string
gradient.val('linear-gradient(to bottom, yellow 0%, blue 100%)');
```
#### angle()
Get or set angle.
```javascript
// get gradient angle
gradient.angle();
// set gradient angle
gradient.angle(60);
```
#### append(color, position)
Append a new color stop.
```javascript
gradient.append('#fff', '50%');
```
#### insert(color, position, index)
Insert a color stop to index
```javascript
gradient.append('#fff', '50%', 1);
```
#### getCurrent()
Get current color stop.
```javascript
var stop = gradient.getCurrent();
```
#### setCurrentById(id)
Set current color stop by id.
```javascript
gradient.setCurrentById(2);
```
#### getById(id)
Get color stop by index.
```javascript
var stop = gradient.get(2);
```
#### removeById(id)
Remove color stop by id.
```javascript
gradient.removeById(2);
```
#### get(index)
Get color stop by index.
```javascript
var stop = gradient.get(2);
```
#### remove(index)
Remove color stop by index.
```javascript
gradient.remove(2);
```
#### empty()
Empty color stops.
```javascript
gradient.empty();
```
#### reset()
Reset gradient.
```javascript
gradient.reset();
```
## No conflict
If you have to use other plugin with the same namespace, just call the `$.asGradient.noConflict` method to revert to it.
```html
```
## Browser support
Tested on all major browsers.
| | | | | | |
|:--:|:--:|:--:|:--:|:--:|:--:|
| Latest ✓ | Latest ✓ | Latest ✓ | Latest ✓ | 9-11 ✓ | Latest ✓ |
As a jQuery plugin, you also need to see the [jQuery Browser Support](http://jquery.com/browser-support/).
## Contributing
Anyone and everyone is welcome to contribute. Please take a moment to
review the [guidelines for contributing](CONTRIBUTING.md). Make sure you're using the latest version of `jquery-asGradient` before submitting an issue. There are several ways to help out:
* [Bug reports](CONTRIBUTING.md#bug-reports)
* [Feature requests](CONTRIBUTING.md#feature-requests)
* [Pull requests](CONTRIBUTING.md#pull-requests)
* Write test cases for open bug issues
* Contribute to the documentation
## Development
`jquery-asGradient` is built modularly and uses Gulp as a build system to build its distributable files. To install the necessary dependencies for the build system, please run:
```sh
npm install -g gulp
npm install -g babel-cli
npm install
```
Then you can generate new distributable files from the sources, using:
```
gulp build
```
More gulp tasks can be found [here](CONTRIBUTING.md#available-tasks).
## Changelog
To see the list of recent changes, see [Releases section](https://github.com/amazingSurge/jquery-asGradient/releases).
## Copyright and license
Copyright (C) 2016 amazingSurge.
Licensed under [the LGPL license](LICENSE).
[⬆ back to top](#table-of-contents)
[bower-image]: https://img.shields.io/bower/v/jquery-asGradient.svg?style=flat
[bower-link]: https://david-dm.org/amazingSurge/jquery-asGradient/dev-status.svg
[npm-image]: https://badge.fury.io/js/jquery-asGradient.svg?style=flat
[npm-url]: https://npmjs.org/package/jquery-asGradient
[license]: https://img.shields.io/npm/l/jquery-asGradient.svg?style=flat
[prs-welcome]: https://img.shields.io/badge/PRs-welcome-brightgreen.svg
[daviddm-image]: https://david-dm.org/amazingSurge/jquery-asGradient.svg?style=flat
[daviddm-url]: https://david-dm.org/amazingSurge/jquery-asGradient
================================================
FILE: public/admin-panel/assets/libs/jquery-asGradient/dist/jquery-asGradient.es.js
================================================
/**
* jQuery asGradient v0.3.3
* https://github.com/amazingSurge/jquery-asGradient
*
* Copyright (c) amazingSurge
* Released under the LGPL-3.0 license
*/
import $ from 'jquery';
import Color from 'jquery-asColor';
var DEFAULTS = {
prefixes: ['-webkit-', '-moz-', '-ms-', '-o-'],
forceStandard: true,
angleUseKeyword: true,
emptyString: '',
degradationFormat: false,
cleanPosition: true,
color: {
format: false, // rgb, rgba, hsl, hsla, hex
hexUseName: false,
reduceAlpha: true,
shortenHex: true,
zeroAlphaAsTransparent: false,
invalidValue: {
r: 0,
g: 0,
b: 0,
a: 1
}
}
};
/* eslint no-extend-native: "off" */
if (!String.prototype.includes) {
String.prototype.includes = function(search, start) {
'use strict';
if (typeof start !== 'number') {
start = 0;
}
if (start + search.length > this.length) {
return false;
}
return this.indexOf(search, start) !== -1;
};
}
function getPrefix() {
const ua = window.navigator.userAgent;
let prefix = '';
if (/MSIE/g.test(ua)) {
prefix = '-ms-';
} else if (/Firefox/g.test(ua)) {
prefix = '-moz-';
} else if (/(WebKit)/i.test(ua)) {
prefix = '-webkit-';
} else if (/Opera/g.test(ua)) {
prefix = '-o-';
}
return prefix;
}
function flip(o) {
const flipped = {};
for (const i in o) {
if (o.hasOwnProperty(i)) {
flipped[o[i]] = i;
}
}
return flipped;
}
function reverseDirection(direction) {
const mapping = {
'top': 'bottom',
'right': 'left',
'bottom': 'top',
'left': 'right',
'right top': 'left bottom',
'top right': 'bottom left',
'bottom right': 'top left',
'right bottom': 'left top',
'left bottom': 'right top',
'bottom left': 'top right',
'top left': 'bottom right',
'left top': 'right bottom'
};
return mapping.hasOwnProperty(direction) ? mapping[direction] : direction;
}
function isDirection(n) {
const reg = /^(top|left|right|bottom)$/i;
return reg.test(n);
}
var keywordAngleMap = {
'to top': 0,
'to right': 90,
'to bottom': 180,
'to left': 270,
'to right top': 45,
'to top right': 45,
'to bottom right': 135,
'to right bottom': 135,
'to left bottom': 225,
'to bottom left': 225,
'to top left': 315,
'to left top': 315
};
const angleKeywordMap = flip(keywordAngleMap);
const RegExpStrings = (() => {
const color = /(?:rgba|rgb|hsla|hsl)\s*\([\s\d\.,%]+\)|#[a-z0-9]{3,6}|[a-z]+/i;
const position = /\d{1,3}%/i;
const angle = /(?:to ){0,1}(?:(?:top|left|right|bottom)\s*){1,2}|\d+deg/i;
const stop = new RegExp(`(${color.source})\\s*(${position.source}){0,1}`, 'i');
const stops = new RegExp(stop.source, 'gi');
const parameters = new RegExp(`(?:(${angle.source})){0,1}\\s*,{0,1}\\s*(.*?)\\s*`, 'i');
const full = new RegExp(`^(-webkit-|-moz-|-ms-|-o-){0,1}(linear|radial|repeating-linear)-gradient\\s*\\(\\s*(${parameters.source})\\s*\\)$`, 'i');
return {
FULL: full,
ANGLE: angle,
COLOR: color,
POSITION: position,
STOP: stop,
STOPS: stops,
PARAMETERS: new RegExp(`^${parameters.source}$`, 'i')
};
})();
var GradientString = {
matchString: function(string) {
const matched = this.parseString(string);
if(matched && matched.value && matched.value.stops && matched.value.stops.length > 1){
return true;
}
return false;
},
parseString: function(string) {
string = $.trim(string);
let matched;
if ((matched = RegExpStrings.FULL.exec(string)) !== null) {
let value = this.parseParameters(matched[3]);
return {
prefix: (typeof matched[1] === 'undefined') ? null : matched[1],
type: matched[2],
value: value
};
} else {
return false;
}
},
parseParameters: function(string) {
let matched;
if ((matched = RegExpStrings.PARAMETERS.exec(string)) !== null) {
let stops = this.parseStops(matched[2]);
return {
angle: (typeof matched[1] === 'undefined') ? 0 : matched[1],
stops: stops
};
} else {
return false;
}
},
parseStops: function(string) {
let matched;
const result = [];
if ((matched = string.match(RegExpStrings.STOPS)) !== null) {
$.each(matched, (i, item) => {
const stop = this.parseStop(item);
if (stop) {
result.push(stop);
}
});
return result;
} else {
return false;
}
},
formatStops: function(stops, cleanPosition) {
let stop;
const output = [];
let positions = [];
const colors = [];
let position;
for (let i = 0; i < stops.length; i++) {
stop = stops[i];
if (typeof stop.position === 'undefined' || stop.position === null) {
if (i === 0) {
position = 0;
} else if (i === stops.length - 1) {
position = 1;
} else {
position = undefined;
}
} else {
position = stop.position;
}
positions.push(position);
colors.push(stop.color.toString());
}
positions = ((data => {
let start = null;
let average;
for (let i = 0; i < data.length; i++) {
if (isNaN(data[i])) {
if (start === null) {
start = i;
continue;
}
} else if (start) {
average = (data[i] - data[start - 1]) / (i - start + 1);
for (let j = start; j < i; j++) {
data[j] = data[start - 1] + (j - start + 1) * average;
}
start = null;
}
}
return data;
}))(positions);
for (let x = 0; x < stops.length; x++) {
if (cleanPosition && ((x === 0 && positions[x] === 0) || (x === stops.length - 1 && positions[x] === 1))) {
position = '';
} else {
position = ` ${this.formatPosition(positions[x])}`;
}
output.push(colors[x] + position);
}
return output.join(', ');
},
parseStop: function(string) {
let matched;
if ((matched = RegExpStrings.STOP.exec(string)) !== null) {
let position = this.parsePosition(matched[2]);
return {
color: matched[1],
position: position
};
} else {
return false;
}
},
parsePosition: function(string) {
if (typeof string === 'string' && string.substr(-1) === '%') {
string = parseFloat(string.slice(0, -1) / 100);
}
if(typeof string !== 'undefined' && string !== null) {
return parseFloat(string, 10);
} else {
return null;
}
},
formatPosition: function(value) {
return `${parseInt(value * 100, 10)}%`;
},
parseAngle: function(string, notStandard) {
if (typeof string === 'string' && string.includes('deg')) {
string = string.replace('deg', '');
}
if (!isNaN(string)) {
if (notStandard) {
string = this.fixOldAngle(string);
}
}
if (typeof string === 'string') {
const directions = string.split(' ');
const filtered = [];
for (const i in directions) {
if (isDirection(directions[i])) {
filtered.push(directions[i].toLowerCase());
}
}
let keyword = filtered.join(' ');
if (!string.includes('to ')) {
keyword = reverseDirection(keyword);
}
keyword = `to ${keyword}`;
if (keywordAngleMap.hasOwnProperty(keyword)) {
string = keywordAngleMap[keyword];
}
}
let value = parseFloat(string, 10);
if (value > 360) {
value %= 360;
} else if (value < 0) {
value %= -360;
if (value !== 0) {
value += 360;
}
}
return value;
},
fixOldAngle: function(value) {
value = parseFloat(value);
value = Math.abs(450 - value) % 360;
value = parseFloat(value.toFixed(3));
return value;
},
formatAngle: function(value, notStandard, useKeyword) {
value = parseInt(value, 10);
if (useKeyword && angleKeywordMap.hasOwnProperty(value)) {
value = angleKeywordMap[value];
if (notStandard) {
value = reverseDirection(value.substr(3));
}
} else {
if (notStandard) {
value = this.fixOldAngle(value);
}
value = `${value}deg`;
}
return value;
}
};
class ColorStop {
constructor(color, position, gradient) {
this.color = Color(color, gradient.options.color);
this.position = GradientString.parsePosition(position);
this.id = ++gradient._stopIdCount;
this.gradient = gradient;
}
setPosition(string) {
const position = GradientString.parsePosition(string);
if(this.position !== position){
this.position = position;
this.gradient.reorder();
}
}
setColor(string) {
this.color.fromString(string);
}
remove() {
this.gradient.removeById(this.id);
}
}
var GradientTypes = {
LINEAR: {
parse(result) {
return {
r: (result[1].substr(-1) === '%') ? parseInt(result[1].slice(0, -1) * 2.55, 10) : parseInt(result[1], 10),
g: (result[2].substr(-1) === '%') ? parseInt(result[2].slice(0, -1) * 2.55, 10) : parseInt(result[2], 10),
b: (result[3].substr(-1) === '%') ? parseInt(result[3].slice(0, -1) * 2.55, 10) : parseInt(result[3], 10),
a: 1
};
},
to(gradient, instance, prefix) {
if (gradient.stops.length === 0) {
return instance.options.emptyString;
}
if (gradient.stops.length === 1) {
return gradient.stops[0].color.to(instance.options.degradationFormat);
}
let standard = instance.options.forceStandard;
let _prefix = instance._prefix;
if (!_prefix) {
standard = true;
}
if (prefix && -1 !== $.inArray(prefix, instance.options.prefixes)) {
standard = false;
_prefix = prefix;
}
const angle = GradientString.formatAngle(gradient.angle, !standard, instance.options.angleUseKeyword);
const stops = GradientString.formatStops(gradient.stops, instance.options.cleanPosition);
const output = `linear-gradient(${angle}, ${stops})`;
if (standard) {
return output;
} else {
return _prefix + output;
}
}
}
};
class AsGradient {
constructor(string, options) {
if (typeof string === 'object' && typeof options === 'undefined') {
options = string;
string = undefined;
}
this.value = {
angle: 0,
stops: []
};
this.options = $.extend(true, {}, DEFAULTS, options);
this._type = 'LINEAR';
this._prefix = null;
this.length = this.value.stops.length;
this.current = 0;
this._stopIdCount = 0;
this.init(string);
}
init(string) {
if (string) {
this.fromString(string);
}
}
val(value) {
if (typeof value === 'undefined') {
return this.toString();
} else {
this.fromString(value);
return this;
}
}
angle(value) {
if (typeof value === 'undefined') {
return this.value.angle;
} else {
this.value.angle = GradientString.parseAngle(value);
return this;
}
}
append(color, position) {
return this.insert(color, position, this.length);
}
reorder() {
if(this.length < 2){
return;
}
this.value.stops = this.value.stops.sort((a, b) => a.position - b.position);
}
insert(color, position, index) {
if (typeof index === 'undefined') {
index = this.current;
}
const stop = new ColorStop(color, position, this);
this.value.stops.splice(index, 0, stop);
this.length = this.length + 1;
this.current = index;
return stop;
}
getById(id) {
if(this.length > 0){
for(const i in this.value.stops){
if(id === this.value.stops[i].id){
return this.value.stops[i];
}
}
}
return false;
}
removeById(id) {
const index = this.getIndexById(id);
if(index){
this.remove(index);
}
}
getIndexById(id) {
let index = 0;
for(const i in this.value.stops){
if(id === this.value.stops[i].id){
return index;
}
index ++;
}
return false;
}
getCurrent() {
return this.value.stops[this.current];
}
setCurrentById(id) {
let index = 0;
for(const i in this.value.stops){
if(this.value.stops[i].id !== id){
index ++;
} else {
this.current = index;
}
}
}
get(index) {
if (typeof index === 'undefined') {
index = this.current;
}
if (index >= 0 && index < this.length) {
this.current = index;
return this.value.stops[index];
} else {
return false;
}
}
remove(index) {
if (typeof index === 'undefined') {
index = this.current;
}
if (index >= 0 && index < this.length) {
this.value.stops.splice(index, 1);
this.length = this.length - 1;
this.current = index - 1;
}
}
empty() {
this.value.stops = [];
this.length = 0;
this.current = 0;
}
reset() {
this.value._angle = 0;
this.empty();
this._prefix = null;
this._type = 'LINEAR';
}
type(type) {
if (typeof type === 'string' && (type = type.toUpperCase()) && typeof GradientTypes[type] !== 'undefined') {
this._type = type;
return this;
} else {
return this._type;
}
}
fromString(string) {
this.reset();
const result = GradientString.parseString(string);
if (result) {
this._prefix = result.prefix;
this.type(result.type);
if (result.value) {
this.value.angle = GradientString.parseAngle(result.value.angle, this._prefix !== null);
$.each(result.value.stops, (i, stop) => {
this.append(stop.color, stop.position);
});
}
}
}
toString(prefix) {
if(prefix === true){
prefix = getPrefix();
}
return GradientTypes[this.type()].to(this.value, this, prefix);
}
matchString(string) {
return GradientString.matchString(string);
}
toStringWithAngle(angle, prefix) {
const value = $.extend(true, {}, this.value);
value.angle = GradientString.parseAngle(angle);
if(prefix === true){
prefix = getPrefix();
}
return GradientTypes[this.type()].to(value, this, prefix);
}
getPrefixedStrings() {
const strings = [];
for (let i in this.options.prefixes) {
if(Object.hasOwnProperty.call(this.options.prefixes, i)){
strings.push(this.toString(this.options.prefixes[i]));
}
}
return strings;
}
static setDefaults(options) {
$.extend(true, DEFAULTS, $.isPlainObject(options) && options);
}
}
var info = {
version:'0.3.3'
};
const OtherAsGradient = $.asGradient;
const jQueryAsGradient = function(...args) {
return new AsGradient(...args);
};
$.asGradient = jQueryAsGradient;
$.asGradient.Constructor = AsGradient;
$.extend($.asGradient, {
setDefaults: AsGradient.setDefaults,
noConflict: function() {
$.asGradient = OtherAsGradient;
return jQueryAsGradient;
}
}, GradientString, info);
var main = $.asGradient;
export default main;
================================================
FILE: public/admin-panel/assets/libs/jquery-asGradient/dist/jquery-asGradient.js
================================================
/**
* jQuery asGradient v0.3.3
* https://github.com/amazingSurge/jquery-asGradient
*
* Copyright (c) amazingSurge
* Released under the LGPL-3.0 license
*/
(function(global, factory) {
if (typeof define === 'function' && define.amd) {
define('AsGradient', ['exports', 'jquery', 'jquery-asColor'], factory);
} else if (typeof exports !== 'undefined') {
factory(exports, require('jquery'), require('jquery-asColor'));
} else {
var mod = {
exports: {}
};
factory(mod.exports, global.jQuery, global.AsColor);
global.AsGradient = mod.exports;
}
})(this, function(exports, _jquery, _jqueryAsColor) {
'use strict';
Object.defineProperty(exports, '__esModule', {
value: true
});
var _jquery2 = _interopRequireDefault(_jquery);
var _jqueryAsColor2 = _interopRequireDefault(_jqueryAsColor);
function _interopRequireDefault(obj) {
return obj && obj.__esModule
? obj
: {
default: obj
};
}
var _typeof =
typeof Symbol === 'function' && typeof Symbol.iterator === 'symbol'
? function(obj) {
return typeof obj;
}
: function(obj) {
return obj &&
typeof Symbol === 'function' &&
obj.constructor === Symbol &&
obj !== Symbol.prototype
? 'symbol'
: typeof obj;
};
function _classCallCheck(instance, Constructor) {
if (!(instance instanceof Constructor)) {
throw new TypeError('Cannot call a class as a function');
}
}
var _createClass = (function() {
function defineProperties(target, props) {
for (var i = 0; i < props.length; i++) {
var descriptor = props[i];
descriptor.enumerable = descriptor.enumerable || false;
descriptor.configurable = true;
if ('value' in descriptor) descriptor.writable = true;
Object.defineProperty(target, descriptor.key, descriptor);
}
}
return function(Constructor, protoProps, staticProps) {
if (protoProps) defineProperties(Constructor.prototype, protoProps);
if (staticProps) defineProperties(Constructor, staticProps);
return Constructor;
};
})();
var DEFAULTS = {
prefixes: ['-webkit-', '-moz-', '-ms-', '-o-'],
forceStandard: true,
angleUseKeyword: true,
emptyString: '',
degradationFormat: false,
cleanPosition: true,
color: {
format: false, // rgb, rgba, hsl, hsla, hex
hexUseName: false,
reduceAlpha: true,
shortenHex: true,
zeroAlphaAsTransparent: false,
invalidValue: {
r: 0,
g: 0,
b: 0,
a: 1
}
}
};
/* eslint no-extend-native: "off" */
if (!String.prototype.includes) {
String.prototype.includes = function(search, start) {
'use strict';
if (typeof start !== 'number') {
start = 0;
}
if (start + search.length > this.length) {
return false;
}
return this.indexOf(search, start) !== -1;
};
}
function getPrefix() {
var ua = window.navigator.userAgent;
var prefix = '';
if (/MSIE/g.test(ua)) {
prefix = '-ms-';
} else if (/Firefox/g.test(ua)) {
prefix = '-moz-';
} else if (/(WebKit)/i.test(ua)) {
prefix = '-webkit-';
} else if (/Opera/g.test(ua)) {
prefix = '-o-';
}
return prefix;
}
function flip(o) {
var flipped = {};
for (var i in o) {
if (o.hasOwnProperty(i)) {
flipped[o[i]] = i;
}
}
return flipped;
}
function reverseDirection(direction) {
var mapping = {
top: 'bottom',
right: 'left',
bottom: 'top',
left: 'right',
'right top': 'left bottom',
'top right': 'bottom left',
'bottom right': 'top left',
'right bottom': 'left top',
'left bottom': 'right top',
'bottom left': 'top right',
'top left': 'bottom right',
'left top': 'right bottom'
};
return mapping.hasOwnProperty(direction) ? mapping[direction] : direction;
}
function isDirection(n) {
var reg = /^(top|left|right|bottom)$/i;
return reg.test(n);
}
var keywordAngleMap = {
'to top': 0,
'to right': 90,
'to bottom': 180,
'to left': 270,
'to right top': 45,
'to top right': 45,
'to bottom right': 135,
'to right bottom': 135,
'to left bottom': 225,
'to bottom left': 225,
'to top left': 315,
'to left top': 315
};
var angleKeywordMap = flip(keywordAngleMap);
var RegExpStrings = (function() {
var color = /(?:rgba|rgb|hsla|hsl)\s*\([\s\d\.,%]+\)|#[a-z0-9]{3,6}|[a-z]+/i;
var position = /\d{1,3}%/i;
var angle = /(?:to ){0,1}(?:(?:top|left|right|bottom)\s*){1,2}|\d+deg/i;
var stop = new RegExp(
'(' + color.source + ')\\s*(' + position.source + '){0,1}',
'i'
);
var stops = new RegExp(stop.source, 'gi');
var parameters = new RegExp(
'(?:(' + angle.source + ')){0,1}\\s*,{0,1}\\s*(.*?)\\s*',
'i'
);
var full = new RegExp(
'^(-webkit-|-moz-|-ms-|-o-){0,1}(linear|radial|repeating-linear)-gradient\\s*\\(\\s*(' +
parameters.source +
')\\s*\\)$',
'i'
);
return {
FULL: full,
ANGLE: angle,
COLOR: color,
POSITION: position,
STOP: stop,
STOPS: stops,
PARAMETERS: new RegExp('^' + parameters.source + '$', 'i')
};
})();
var GradientString = {
matchString: function matchString(string) {
var matched = this.parseString(string);
if (
matched &&
matched.value &&
matched.value.stops &&
matched.value.stops.length > 1
) {
return true;
}
return false;
},
parseString: function parseString(string) {
string = _jquery2.default.trim(string);
var matched = void 0;
if ((matched = RegExpStrings.FULL.exec(string)) !== null) {
var value = this.parseParameters(matched[3]);
return {
prefix: typeof matched[1] === 'undefined' ? null : matched[1],
type: matched[2],
value: value
};
} else {
return false;
}
},
parseParameters: function parseParameters(string) {
var matched = void 0;
if ((matched = RegExpStrings.PARAMETERS.exec(string)) !== null) {
var stops = this.parseStops(matched[2]);
return {
angle: typeof matched[1] === 'undefined' ? 0 : matched[1],
stops: stops
};
} else {
return false;
}
},
parseStops: function parseStops(string) {
var _this = this;
var matched = void 0;
var result = [];
if ((matched = string.match(RegExpStrings.STOPS)) !== null) {
_jquery2.default.each(matched, function(i, item) {
var stop = _this.parseStop(item);
if (stop) {
result.push(stop);
}
});
return result;
} else {
return false;
}
},
formatStops: function formatStops(stops, cleanPosition) {
var stop = void 0;
var output = [];
var positions = [];
var colors = [];
var position = void 0;
for (var i = 0; i < stops.length; i++) {
stop = stops[i];
if (typeof stop.position === 'undefined' || stop.position === null) {
if (i === 0) {
position = 0;
} else if (i === stops.length - 1) {
position = 1;
} else {
position = undefined;
}
} else {
position = stop.position;
}
positions.push(position);
colors.push(stop.color.toString());
}
positions = (function(data) {
var start = null;
var average = void 0;
for (var _i = 0; _i < data.length; _i++) {
if (isNaN(data[_i])) {
if (start === null) {
start = _i;
continue;
}
} else if (start) {
average = (data[_i] - data[start - 1]) / (_i - start + 1);
for (var j = start; j < _i; j++) {
data[j] = data[start - 1] + (j - start + 1) * average;
}
start = null;
}
}
return data;
})(positions);
for (var x = 0; x < stops.length; x++) {
if (
cleanPosition &&
((x === 0 && positions[x] === 0) ||
(x === stops.length - 1 && positions[x] === 1))
) {
position = '';
} else {
position = ' ' + this.formatPosition(positions[x]);
}
output.push(colors[x] + position);
}
return output.join(', ');
},
parseStop: function parseStop(string) {
var matched = void 0;
if ((matched = RegExpStrings.STOP.exec(string)) !== null) {
var position = this.parsePosition(matched[2]);
return {
color: matched[1],
position: position
};
} else {
return false;
}
},
parsePosition: function parsePosition(string) {
if (typeof string === 'string' && string.substr(-1) === '%') {
string = parseFloat(string.slice(0, -1) / 100);
}
if (typeof string !== 'undefined' && string !== null) {
return parseFloat(string, 10);
} else {
return null;
}
},
formatPosition: function formatPosition(value) {
return parseInt(value * 100, 10) + '%';
},
parseAngle: function parseAngle(string, notStandard) {
if (typeof string === 'string' && string.includes('deg')) {
string = string.replace('deg', '');
}
if (!isNaN(string)) {
if (notStandard) {
string = this.fixOldAngle(string);
}
}
if (typeof string === 'string') {
var directions = string.split(' ');
var filtered = [];
for (var i in directions) {
if (isDirection(directions[i])) {
filtered.push(directions[i].toLowerCase());
}
}
var keyword = filtered.join(' ');
if (!string.includes('to ')) {
keyword = reverseDirection(keyword);
}
keyword = 'to ' + keyword;
if (keywordAngleMap.hasOwnProperty(keyword)) {
string = keywordAngleMap[keyword];
}
}
var value = parseFloat(string, 10);
if (value > 360) {
value %= 360;
} else if (value < 0) {
value %= -360;
if (value !== 0) {
value += 360;
}
}
return value;
},
fixOldAngle: function fixOldAngle(value) {
value = parseFloat(value);
value = Math.abs(450 - value) % 360;
value = parseFloat(value.toFixed(3));
return value;
},
formatAngle: function formatAngle(value, notStandard, useKeyword) {
value = parseInt(value, 10);
if (useKeyword && angleKeywordMap.hasOwnProperty(value)) {
value = angleKeywordMap[value];
if (notStandard) {
value = reverseDirection(value.substr(3));
}
} else {
if (notStandard) {
value = this.fixOldAngle(value);
}
value = value + 'deg';
}
return value;
}
};
var ColorStop = (function() {
function ColorStop(color, position, gradient) {
_classCallCheck(this, ColorStop);
this.color = (0, _jqueryAsColor2.default)(color, gradient.options.color);
this.position = GradientString.parsePosition(position);
this.id = ++gradient._stopIdCount;
this.gradient = gradient;
}
_createClass(ColorStop, [
{
key: 'setPosition',
value: function setPosition(string) {
var position = GradientString.parsePosition(string);
if (this.position !== position) {
this.position = position;
this.gradient.reorder();
}
}
},
{
key: 'setColor',
value: function setColor(string) {
this.color.fromString(string);
}
},
{
key: 'remove',
value: function remove() {
this.gradient.removeById(this.id);
}
}
]);
return ColorStop;
})();
var GradientTypes = {
LINEAR: {
parse: function parse(result) {
return {
r:
result[1].substr(-1) === '%'
? parseInt(result[1].slice(0, -1) * 2.55, 10)
: parseInt(result[1], 10),
g:
result[2].substr(-1) === '%'
? parseInt(result[2].slice(0, -1) * 2.55, 10)
: parseInt(result[2], 10),
b:
result[3].substr(-1) === '%'
? parseInt(result[3].slice(0, -1) * 2.55, 10)
: parseInt(result[3], 10),
a: 1
};
},
to: function to(gradient, instance, prefix) {
if (gradient.stops.length === 0) {
return instance.options.emptyString;
}
if (gradient.stops.length === 1) {
return gradient.stops[0].color.to(instance.options.degradationFormat);
}
var standard = instance.options.forceStandard;
var _prefix = instance._prefix;
if (!_prefix) {
standard = true;
}
if (
prefix &&
-1 !== _jquery2.default.inArray(prefix, instance.options.prefixes)
) {
standard = false;
_prefix = prefix;
}
var angle = GradientString.formatAngle(
gradient.angle,
!standard,
instance.options.angleUseKeyword
);
var stops = GradientString.formatStops(
gradient.stops,
instance.options.cleanPosition
);
var output = 'linear-gradient(' + angle + ', ' + stops + ')';
if (standard) {
return output;
} else {
return _prefix + output;
}
}
}
};
var AsGradient = (function() {
function AsGradient(string, options) {
_classCallCheck(this, AsGradient);
if (
(typeof string === 'undefined' ? 'undefined' : _typeof(string)) ===
'object' &&
typeof options === 'undefined'
) {
options = string;
string = undefined;
}
this.value = {
angle: 0,
stops: []
};
this.options = _jquery2.default.extend(true, {}, DEFAULTS, options);
this._type = 'LINEAR';
this._prefix = null;
this.length = this.value.stops.length;
this.current = 0;
this._stopIdCount = 0;
this.init(string);
}
_createClass(
AsGradient,
[
{
key: 'init',
value: function init(string) {
if (string) {
this.fromString(string);
}
}
},
{
key: 'val',
value: function val(value) {
if (typeof value === 'undefined') {
return this.toString();
} else {
this.fromString(value);
return this;
}
}
},
{
key: 'angle',
value: function angle(value) {
if (typeof value === 'undefined') {
return this.value.angle;
} else {
this.value.angle = GradientString.parseAngle(value);
return this;
}
}
},
{
key: 'append',
value: function append(color, position) {
return this.insert(color, position, this.length);
}
},
{
key: 'reorder',
value: function reorder() {
if (this.length < 2) {
return;
}
this.value.stops = this.value.stops.sort(function(a, b) {
return a.position - b.position;
});
}
},
{
key: 'insert',
value: function insert(color, position, index) {
if (typeof index === 'undefined') {
index = this.current;
}
var stop = new ColorStop(color, position, this);
this.value.stops.splice(index, 0, stop);
this.length = this.length + 1;
this.current = index;
return stop;
}
},
{
key: 'getById',
value: function getById(id) {
if (this.length > 0) {
for (var i in this.value.stops) {
if (id === this.value.stops[i].id) {
return this.value.stops[i];
}
}
}
return false;
}
},
{
key: 'removeById',
value: function removeById(id) {
var index = this.getIndexById(id);
if (index) {
this.remove(index);
}
}
},
{
key: 'getIndexById',
value: function getIndexById(id) {
var index = 0;
for (var i in this.value.stops) {
if (id === this.value.stops[i].id) {
return index;
}
index++;
}
return false;
}
},
{
key: 'getCurrent',
value: function getCurrent() {
return this.value.stops[this.current];
}
},
{
key: 'setCurrentById',
value: function setCurrentById(id) {
var index = 0;
for (var i in this.value.stops) {
if (this.value.stops[i].id !== id) {
index++;
} else {
this.current = index;
}
}
}
},
{
key: 'get',
value: function get(index) {
if (typeof index === 'undefined') {
index = this.current;
}
if (index >= 0 && index < this.length) {
this.current = index;
return this.value.stops[index];
} else {
return false;
}
}
},
{
key: 'remove',
value: function remove(index) {
if (typeof index === 'undefined') {
index = this.current;
}
if (index >= 0 && index < this.length) {
this.value.stops.splice(index, 1);
this.length = this.length - 1;
this.current = index - 1;
}
}
},
{
key: 'empty',
value: function empty() {
this.value.stops = [];
this.length = 0;
this.current = 0;
}
},
{
key: 'reset',
value: function reset() {
this.value._angle = 0;
this.empty();
this._prefix = null;
this._type = 'LINEAR';
}
},
{
key: 'type',
value: function type(_type) {
if (
typeof _type === 'string' &&
(_type = _type.toUpperCase()) &&
typeof GradientTypes[_type] !== 'undefined'
) {
this._type = _type;
return this;
} else {
return this._type;
}
}
},
{
key: 'fromString',
value: function fromString(string) {
var _this2 = this;
this.reset();
var result = GradientString.parseString(string);
if (result) {
this._prefix = result.prefix;
this.type(result.type);
if (result.value) {
this.value.angle = GradientString.parseAngle(
result.value.angle,
this._prefix !== null
);
_jquery2.default.each(result.value.stops, function(i, stop) {
_this2.append(stop.color, stop.position);
});
}
}
}
},
{
key: 'toString',
value: function toString(prefix) {
if (prefix === true) {
prefix = getPrefix();
}
return GradientTypes[this.type()].to(this.value, this, prefix);
}
},
{
key: 'matchString',
value: function matchString(string) {
return GradientString.matchString(string);
}
},
{
key: 'toStringWithAngle',
value: function toStringWithAngle(angle, prefix) {
var value = _jquery2.default.extend(true, {}, this.value);
value.angle = GradientString.parseAngle(angle);
if (prefix === true) {
prefix = getPrefix();
}
return GradientTypes[this.type()].to(value, this, prefix);
}
},
{
key: 'getPrefixedStrings',
value: function getPrefixedStrings() {
var strings = [];
for (var i in this.options.prefixes) {
if (Object.hasOwnProperty.call(this.options.prefixes, i)) {
strings.push(this.toString(this.options.prefixes[i]));
}
}
return strings;
}
}
],
[
{
key: 'setDefaults',
value: function setDefaults(options) {
_jquery2.default.extend(
true,
DEFAULTS,
_jquery2.default.isPlainObject(options) && options
);
}
}
]
);
return AsGradient;
})();
var info = {
version: '0.3.3'
};
var OtherAsGradient = _jquery2.default.asGradient;
var jQueryAsGradient = function jQueryAsGradient() {
for (
var _len = arguments.length, args = Array(_len), _key = 0;
_key < _len;
_key++
) {
args[_key] = arguments[_key];
}
return new (Function.prototype.bind.apply(
AsGradient,
[null].concat(args)
))();
};
_jquery2.default.asGradient = jQueryAsGradient;
_jquery2.default.asGradient.Constructor = AsGradient;
_jquery2.default.extend(
_jquery2.default.asGradient,
{
setDefaults: AsGradient.setDefaults,
noConflict: function noConflict() {
_jquery2.default.asGradient = OtherAsGradient;
return jQueryAsGradient;
}
},
GradientString,
info
);
var main = _jquery2.default.asGradient;
exports.default = main;
});
================================================
FILE: public/admin-panel/assets/libs/jquery-asGradient/package.json
================================================
{
"_from": "jquery-asGradient@^0.3.2",
"_id": "jquery-asGradient@0.3.3",
"_inBundle": false,
"_integrity": "sha512-puoCFLfe98dwCCketwVsk/aBAEyOq0/BqW07PV71GvmwpKwYX7L0GC1THa2/tkMuST/2mmxHmGWJkxQDzNSiAA==",
"_location": "/jquery-asGradient",
"_phantomChildren": {},
"_requested": {
"type": "range",
"registry": true,
"raw": "jquery-asGradient@^0.3.2",
"name": "jquery-asGradient",
"escapedName": "jquery-asGradient",
"rawSpec": "^0.3.2",
"saveSpec": null,
"fetchSpec": "^0.3.2"
},
"_requiredBy": [
"/jquery-asColorPicker"
],
"_resolved": "https://registry.npmjs.org/jquery-asGradient/-/jquery-asGradient-0.3.3.tgz",
"_shasum": "89e69eae0242b53c8fe08563ae7bf47aa624f4f3",
"_spec": "jquery-asGradient@^0.3.2",
"_where": "D:\\themeforest\\adminX\\adminX\\node_modules\\jquery-asColorPicker",
"author": {
"name": "amazingSurge",
"email": "amazingSurge@gmail.com",
"url": "amazingSurge.com"
},
"bugs": {
"url": "https://github.com/amazingSurge/jquery-asGradient/issues"
},
"bundleDependencies": false,
"dependencies": {
"jquery": ">=2.2.0",
"jquery-asColor": "^0.3.3"
},
"deprecated": false,
"description": "A jquery plugin used to manipulate css image gradient.",
"devDependencies": {
"assets-manager": "*",
"babel-core": "*",
"babel-eslint": "*",
"babel-istanbul": "*",
"babel-plugin-transform-es2015-modules-umd": "*",
"babel-preset-es2015": "*",
"babel-preset-es2015-rollup": "*",
"babelify": "*",
"browserify": "*",
"browserify-babel-istanbul": "*",
"chai": "*",
"del": "*",
"graceful-fs": "*",
"gulp": "github:gulpjs/gulp#4.0",
"gulp-autoprefixer": "*",
"gulp-babel": "*",
"gulp-changed": "*",
"gulp-eslint": "*",
"gulp-extname": "*",
"gulp-filter": "*",
"gulp-header": "*",
"gulp-iconfont-css": "*",
"gulp-if": "*",
"gulp-nf-prettier": "*",
"gulp-notify": "*",
"gulp-plumber": "*",
"gulp-rename": "*",
"gulp-replace": "*",
"gulp-rollup": "*",
"gulp-size": "*",
"gulp-sourcemaps": "*",
"gulp-uglify": "*",
"gulp-util": "*",
"gulp-zip": "*",
"inquirer": "*",
"isparta": "*",
"karma": "*",
"karma-babel-preprocessor": "*",
"karma-browserify": "*",
"karma-chrome-launcher": "*",
"karma-coverage": "*",
"karma-firefox-launcher": "*",
"karma-mocha": "*",
"karma-mocha-reporter": "*",
"karma-phantomjs-launcher": "*",
"karma-sinon-chai": "*",
"merge-stream": "*",
"mkdirp": "*",
"mocha": "*",
"node-notifier": "*",
"path-exists": "*",
"phantomjs-prebuilt": "*",
"prettier": "*",
"release-it": "*",
"rollup-plugin-babel": "*",
"semver": "*",
"sinon": "*",
"sinon-chai": "*",
"through2": "*",
"yargs": "*"
},
"engines": {
"node": ">= 6.2.2",
"npm": ">= 3"
},
"files": [
"dist",
"src"
],
"homepage": "https://github.com/amazingSurge/jquery-asGradient",
"keywords": [
"jquery",
"jquery-plugin",
"ecosystem:jquery",
"ui",
"es6",
"Gradient"
],
"license": "LGPL-3.0",
"licenses": [
{
"type": "LGPL-3.0",
"url": "https://github.com/amazingSurge/jquery-asGradient/blob/master/LICENSE"
}
],
"main": "dist/jquery-asGradient.js",
"module": "dist/jquery-asGradient.es.js",
"name": "jquery-asGradient",
"repository": {
"type": "git",
"url": "git+ssh://git@github.com/amazingSurge/jquery-asGradient.git"
},
"scripts": {
"build": "npm run prestart && gulp build",
"deploy": "gulp deploy",
"deploy:prepare": "gulp deploy:prepare",
"prestart": "npm install",
"release": "gulp release",
"start": "gulp serve",
"test": "gulp test"
},
"title": "jQuery asGradient",
"version": "0.3.3"
}
================================================
FILE: public/admin-panel/assets/libs/jquery-asGradient/src/asGradient.js
================================================
import $ from 'jquery';
import DEFAULTS from './defaults';
import * as util from './util';
import GradientString from './gradientString';
import ColorStop from './colorStop';
import GradientTypes from './gradientTypes';
class AsGradient {
constructor(string, options) {
if (typeof string === 'object' && typeof options === 'undefined') {
options = string;
string = undefined;
}
this.value = {
angle: 0,
stops: []
};
this.options = $.extend(true, {}, DEFAULTS, options);
this._type = 'LINEAR';
this._prefix = null;
this.length = this.value.stops.length;
this.current = 0;
this._stopIdCount = 0;
this.init(string);
}
init(string) {
if (string) {
this.fromString(string);
}
}
val(value) {
if (typeof value === 'undefined') {
return this.toString();
} else {
this.fromString(value);
return this;
}
}
angle(value) {
if (typeof value === 'undefined') {
return this.value.angle;
} else {
this.value.angle = GradientString.parseAngle(value);
return this;
}
}
append(color, position) {
return this.insert(color, position, this.length);
}
reorder() {
if(this.length < 2){
return;
}
this.value.stops = this.value.stops.sort((a, b) => a.position - b.position);
}
insert(color, position, index) {
if (typeof index === 'undefined') {
index = this.current;
}
const stop = new ColorStop(color, position, this);
this.value.stops.splice(index, 0, stop);
this.length = this.length + 1;
this.current = index;
return stop;
}
getById(id) {
if(this.length > 0){
for(const i in this.value.stops){
if(id === this.value.stops[i].id){
return this.value.stops[i];
}
}
}
return false;
}
removeById(id) {
const index = this.getIndexById(id);
if(index){
this.remove(index);
}
}
getIndexById(id) {
let index = 0;
for(const i in this.value.stops){
if(id === this.value.stops[i].id){
return index;
}
index ++;
}
return false;
}
getCurrent() {
return this.value.stops[this.current];
}
setCurrentById(id) {
let index = 0;
for(const i in this.value.stops){
if(this.value.stops[i].id !== id){
index ++;
} else {
this.current = index;
}
}
}
get(index) {
if (typeof index === 'undefined') {
index = this.current;
}
if (index >= 0 && index < this.length) {
this.current = index;
return this.value.stops[index];
} else {
return false;
}
}
remove(index) {
if (typeof index === 'undefined') {
index = this.current;
}
if (index >= 0 && index < this.length) {
this.value.stops.splice(index, 1);
this.length = this.length - 1;
this.current = index - 1;
}
}
empty() {
this.value.stops = [];
this.length = 0;
this.current = 0;
}
reset() {
this.value._angle = 0;
this.empty();
this._prefix = null;
this._type = 'LINEAR';
}
type(type) {
if (typeof type === 'string' && (type = type.toUpperCase()) && typeof GradientTypes[type] !== 'undefined') {
this._type = type;
return this;
} else {
return this._type;
}
}
fromString(string) {
this.reset();
const result = GradientString.parseString(string);
if (result) {
this._prefix = result.prefix;
this.type(result.type);
if (result.value) {
this.value.angle = GradientString.parseAngle(result.value.angle, this._prefix !== null);
$.each(result.value.stops, (i, stop) => {
this.append(stop.color, stop.position);
});
}
}
}
toString(prefix) {
if(prefix === true){
prefix = util.getPrefix();
}
return GradientTypes[this.type()].to(this.value, this, prefix);
}
matchString(string) {
return GradientString.matchString(string);
}
toStringWithAngle(angle, prefix) {
const value = $.extend(true, {}, this.value);
value.angle = GradientString.parseAngle(angle);
if(prefix === true){
prefix = util.getPrefix();
}
return GradientTypes[this.type()].to(value, this, prefix);
}
getPrefixedStrings() {
const strings = [];
for (let i in this.options.prefixes) {
if(Object.hasOwnProperty.call(this.options.prefixes, i)){
strings.push(this.toString(this.options.prefixes[i]));
}
}
return strings;
}
static setDefaults(options) {
$.extend(true, DEFAULTS, $.isPlainObject(options) && options);
}
}
export default AsGradient;
================================================
FILE: public/admin-panel/assets/libs/jquery-asGradient/src/colorStop.js
================================================
import Color from 'jquery-asColor';
import GradientString from './gradientString';
export default class ColorStop {
constructor(color, position, gradient) {
this.color = Color(color, gradient.options.color);
this.position = GradientString.parsePosition(position);
this.id = ++gradient._stopIdCount;
this.gradient = gradient;
}
setPosition(string) {
const position = GradientString.parsePosition(string);
if(this.position !== position){
this.position = position;
this.gradient.reorder();
}
}
setColor(string) {
this.color.fromString(string);
}
remove() {
this.gradient.removeById(this.id);
}
}
================================================
FILE: public/admin-panel/assets/libs/jquery-asGradient/src/defaults.js
================================================
export default {
prefixes: ['-webkit-', '-moz-', '-ms-', '-o-'],
forceStandard: true,
angleUseKeyword: true,
emptyString: '',
degradationFormat: false,
cleanPosition: true,
color: {
format: false, // rgb, rgba, hsl, hsla, hex
hexUseName: false,
reduceAlpha: true,
shortenHex: true,
zeroAlphaAsTransparent: false,
invalidValue: {
r: 0,
g: 0,
b: 0,
a: 1
}
}
};
================================================
FILE: public/admin-panel/assets/libs/jquery-asGradient/src/gradientString.js
================================================
import $ from 'jquery';
import * as util from './util';
import keywordAngleMap from './keywordAngleMap';
const angleKeywordMap = util.flip(keywordAngleMap);
const RegExpStrings = (() => {
const color = /(?:rgba|rgb|hsla|hsl)\s*\([\s\d\.,%]+\)|#[a-z0-9]{3,6}|[a-z]+/i;
const position = /\d{1,3}%/i;
const angle = /(?:to ){0,1}(?:(?:top|left|right|bottom)\s*){1,2}|\d+deg/i;
const stop = new RegExp(`(${color.source})\\s*(${position.source}){0,1}`, 'i');
const stops = new RegExp(stop.source, 'gi');
const parameters = new RegExp(`(?:(${angle.source})){0,1}\\s*,{0,1}\\s*(.*?)\\s*`, 'i');
const full = new RegExp(`^(-webkit-|-moz-|-ms-|-o-){0,1}(linear|radial|repeating-linear)-gradient\\s*\\(\\s*(${parameters.source})\\s*\\)$`, 'i');
return {
FULL: full,
ANGLE: angle,
COLOR: color,
POSITION: position,
STOP: stop,
STOPS: stops,
PARAMETERS: new RegExp(`^${parameters.source}$`, 'i')
};
})();
export default {
matchString: function(string) {
const matched = this.parseString(string);
if(matched && matched.value && matched.value.stops && matched.value.stops.length > 1){
return true;
}
return false;
},
parseString: function(string) {
string = $.trim(string);
let matched;
if ((matched = RegExpStrings.FULL.exec(string)) !== null) {
let value = this.parseParameters(matched[3]);
return {
prefix: (typeof matched[1] === 'undefined') ? null : matched[1],
type: matched[2],
value: value
};
} else {
return false;
}
},
parseParameters: function(string) {
let matched;
if ((matched = RegExpStrings.PARAMETERS.exec(string)) !== null) {
let stops = this.parseStops(matched[2]);
return {
angle: (typeof matched[1] === 'undefined') ? 0 : matched[1],
stops: stops
};
} else {
return false;
}
},
parseStops: function(string) {
let matched;
const result = [];
if ((matched = string.match(RegExpStrings.STOPS)) !== null) {
$.each(matched, (i, item) => {
const stop = this.parseStop(item);
if (stop) {
result.push(stop);
}
});
return result;
} else {
return false;
}
},
formatStops: function(stops, cleanPosition) {
let stop;
const output = [];
let positions = [];
const colors = [];
let position;
for (let i = 0; i < stops.length; i++) {
stop = stops[i];
if (typeof stop.position === 'undefined' || stop.position === null) {
if (i === 0) {
position = 0;
} else if (i === stops.length - 1) {
position = 1;
} else {
position = undefined;
}
} else {
position = stop.position;
}
positions.push(position);
colors.push(stop.color.toString());
}
positions = ((data => {
let start = null;
let average;
for (let i = 0; i < data.length; i++) {
if (isNaN(data[i])) {
if (start === null) {
start = i;
continue;
}
} else if (start) {
average = (data[i] - data[start - 1]) / (i - start + 1);
for (let j = start; j < i; j++) {
data[j] = data[start - 1] + (j - start + 1) * average;
}
start = null;
}
}
return data;
}))(positions);
for (let x = 0; x < stops.length; x++) {
if (cleanPosition && ((x === 0 && positions[x] === 0) || (x === stops.length - 1 && positions[x] === 1))) {
position = '';
} else {
position = ` ${this.formatPosition(positions[x])}`;
}
output.push(colors[x] + position);
}
return output.join(', ');
},
parseStop: function(string) {
let matched;
if ((matched = RegExpStrings.STOP.exec(string)) !== null) {
let position = this.parsePosition(matched[2]);
return {
color: matched[1],
position: position
};
} else {
return false;
}
},
parsePosition: function(string) {
if (typeof string === 'string' && string.substr(-1) === '%') {
string = parseFloat(string.slice(0, -1) / 100);
}
if(typeof string !== 'undefined' && string !== null) {
return parseFloat(string, 10);
} else {
return null;
}
},
formatPosition: function(value) {
return `${parseInt(value * 100, 10)}%`;
},
parseAngle: function(string, notStandard) {
if (typeof string === 'string' && string.includes('deg')) {
string = string.replace('deg', '');
}
if (!isNaN(string)) {
if (notStandard) {
string = this.fixOldAngle(string);
}
}
if (typeof string === 'string') {
const directions = string.split(' ');
const filtered = [];
for (const i in directions) {
if (util.isDirection(directions[i])) {
filtered.push(directions[i].toLowerCase());
}
}
let keyword = filtered.join(' ');
if (!string.includes('to ')) {
keyword = util.reverseDirection(keyword);
}
keyword = `to ${keyword}`;
if (keywordAngleMap.hasOwnProperty(keyword)) {
string = keywordAngleMap[keyword];
}
}
let value = parseFloat(string, 10);
if (value > 360) {
value %= 360;
} else if (value < 0) {
value %= -360;
if (value !== 0) {
value += 360;
}
}
return value;
},
fixOldAngle: function(value) {
value = parseFloat(value);
value = Math.abs(450 - value) % 360;
value = parseFloat(value.toFixed(3));
return value;
},
formatAngle: function(value, notStandard, useKeyword) {
value = parseInt(value, 10);
if (useKeyword && angleKeywordMap.hasOwnProperty(value)) {
value = angleKeywordMap[value];
if (notStandard) {
value = util.reverseDirection(value.substr(3));
}
} else {
if (notStandard) {
value = this.fixOldAngle(value);
}
value = `${value}deg`;
}
return value;
}
}
================================================
FILE: public/admin-panel/assets/libs/jquery-asGradient/src/gradientTypes.js
================================================
import $ from 'jquery';
import GradientString from './gradientString';
export default {
LINEAR: {
parse(result) {
return {
r: (result[1].substr(-1) === '%') ? parseInt(result[1].slice(0, -1) * 2.55, 10) : parseInt(result[1], 10),
g: (result[2].substr(-1) === '%') ? parseInt(result[2].slice(0, -1) * 2.55, 10) : parseInt(result[2], 10),
b: (result[3].substr(-1) === '%') ? parseInt(result[3].slice(0, -1) * 2.55, 10) : parseInt(result[3], 10),
a: 1
};
},
to(gradient, instance, prefix) {
if (gradient.stops.length === 0) {
return instance.options.emptyString;
}
if (gradient.stops.length === 1) {
return gradient.stops[0].color.to(instance.options.degradationFormat);
}
let standard = instance.options.forceStandard;
let _prefix = instance._prefix;
if (!_prefix) {
standard = true;
}
if (prefix && -1 !== $.inArray(prefix, instance.options.prefixes)) {
standard = false;
_prefix = prefix;
}
const angle = GradientString.formatAngle(gradient.angle, !standard, instance.options.angleUseKeyword);
const stops = GradientString.formatStops(gradient.stops, instance.options.cleanPosition);
const output = `linear-gradient(${angle}, ${stops})`;
if (standard) {
return output;
} else {
return _prefix + output;
}
}
}
};
================================================
FILE: public/admin-panel/assets/libs/jquery-asGradient/src/info.js
================================================
export default {
version:'0.3.3'
};
================================================
FILE: public/admin-panel/assets/libs/jquery-asGradient/src/keywordAngleMap.js
================================================
export default {
'to top': 0,
'to right': 90,
'to bottom': 180,
'to left': 270,
'to right top': 45,
'to top right': 45,
'to bottom right': 135,
'to right bottom': 135,
'to left bottom': 225,
'to bottom left': 225,
'to top left': 315,
'to left top': 315
};
================================================
FILE: public/admin-panel/assets/libs/jquery-asGradient/src/main.js
================================================
import $ from 'jquery';
import AsGradient from './asGradient';
import info from './info';
import GradientString from './gradientString';
const OtherAsGradient = $.asGradient;
const jQueryAsGradient = function(...args) {
return new AsGradient(...args);
}
$.asGradient = jQueryAsGradient;
$.asGradient.Constructor = AsGradient;
$.extend($.asGradient, {
setDefaults: AsGradient.setDefaults,
noConflict: function() {
$.asGradient = OtherAsGradient;
return jQueryAsGradient;
}
}, GradientString, info);
export default $.asGradient;
================================================
FILE: public/admin-panel/assets/libs/jquery-asGradient/src/regExpStrings.js
================================================
================================================
FILE: public/admin-panel/assets/libs/jquery-asGradient/src/util.js
================================================
/* eslint no-extend-native: "off" */
if (!String.prototype.includes) {
String.prototype.includes = function(search, start) {
'use strict';
if (typeof start !== 'number') {
start = 0;
}
if (start + search.length > this.length) {
return false;
}
return this.indexOf(search, start) !== -1;
};
}
export function getPrefix() {
const ua = window.navigator.userAgent;
let prefix = '';
if (/MSIE/g.test(ua)) {
prefix = '-ms-';
} else if (/Firefox/g.test(ua)) {
prefix = '-moz-';
} else if (/(WebKit)/i.test(ua)) {
prefix = '-webkit-';
} else if (/Opera/g.test(ua)) {
prefix = '-o-';
}
return prefix;
}
export function flip(o) {
const flipped = {};
for (const i in o) {
if (o.hasOwnProperty(i)) {
flipped[o[i]] = i;
}
}
return flipped;
}
export function reverseDirection(direction) {
const mapping = {
'top': 'bottom',
'right': 'left',
'bottom': 'top',
'left': 'right',
'right top': 'left bottom',
'top right': 'bottom left',
'bottom right': 'top left',
'right bottom': 'left top',
'left bottom': 'right top',
'bottom left': 'top right',
'top left': 'bottom right',
'left top': 'right bottom'
};
return mapping.hasOwnProperty(direction) ? mapping[direction] : direction;
}
export function isDirection(n) {
const reg = /^(top|left|right|bottom)$/i;
return reg.test(n);
}
================================================
FILE: public/admin-panel/assets/libs/jquery-minicolors/component.json
================================================
{
"name": "jquery-minicolors",
"version": "2.2.6",
"description": "jQuery MiniColors Plugin",
"homepage": "",
"main": [ "./jquery.minicolors.js", "./jquery.minicolors.css" ],
"dependencies": {
"jquery": ">= 1.7.x"
},
"keywords": [
"jquery",
"colorpicker"
],
"author": {
"name": "Cory LaViska",
"web": "http://www.abeautifulsite.net/"
},
"license": [
"http://www.opensource.org/licenses/mit-license.php"
]
}
================================================
FILE: public/admin-panel/assets/libs/jquery-minicolors/index.html
================================================
jQuery MiniColors
Contents
Download
This project is on GitHub. Feel free to post bug reports, feature requests, and code
improvements on the official project page.
Download on GitHub
Demos
This is the main demo page, which uses Bootstrap 3 ,
but this plugin works without Bootstrap as well.
View Demo Without Bootstrap
Control Types
Input Modes
Positions
Valid positions include bottom left, bottom right, top
left, and top right.
RGB(A)
…and more!
API
Instantiation
Instantiate like any other jQuery plugin:
$('INPUT.minicolors').minicolors(settings);
Settings
Default settings are as follows:
$.minicolors = {
defaults: {
animationSpeed: 50,
animationEasing: 'swing',
change: null,
changeDelay: 0,
control: 'hue',
defaultValue: '',
format: 'hex',
hide: null,
hideSpeed: 100,
inline: false,
keywords: '',
letterCase: 'lowercase',
opacity: false,
position: 'bottom left',
show: null,
showSpeed: 100,
theme: 'default',
swatches: []
}
};
For convenience, you can change default settings globally by assigning new values:
$.minicolors.defaults.changeDelay = 200;
To change multiple properties at once, use $.extend():
$.minicolors.defaults = $.extend($.minicolors.defaults, {
changeDelay: 200,
letterCase: 'uppercase',
theme: 'bootstrap'
});
Note: Changing default settings will not affect controls that
are already initialized.
animationSpeed
The animation speed of the sliders when the user taps or clicks a new color. Set to
0 for no animation.
animationEasing
The easing to use when animating the sliders.
changeDelay
The time, in milliseconds, to defer the change event from firing while
the user makes a selection. This is useful for preventing the change event
from firing frequently as the user drags the color picker around.
The default value is 0 (no delay). If your change callback
features something resource-intensive (such as an AJAX request), you’ll probably want
to set this to at least 200.
control
Determines the type of control. Valid options are hue, brightness,
saturation, and wheel.
defaultValue
To force a default color, set this to a valid hex string. When the user clears the
control, it will revert to this color.
format
The format miniColors should use. Valid options are hex and
rgb.
hideSpeed & showSpeed
The speed at which to hide and show the color picker.
inline
Set to true to force the color picker to appear inline.
keywords
A comma-separated list of keywords that the control should accept (e.g. inherit,
transparent, initial). By default, no keywords are allowed.
letterCase
Determines the letter case of the hex code value. Valid options are uppercase
or lowercase.
opacity
Set to true to enable the opacity slider. (Use the input element's
data-opacity attribute to set a preset value.)
position
Sets the position of the dropdown. Valid options are bottom left,
bottom right, top left, and top right.
The swatchPosition setting has been removed in version 2.1. The position
of the swatch is now determined by position.
theme
A string containing the name of the custom theme to be applied. In your CSS, prefix
your selectors like this:
.minicolors-theme-yourThemeName { ... }
If you are using the default theme, you will probably need to adjust the swatch
styles depending on your existing stylesheet rules. Version 2.1 removes as much
styling on the input element as possible, which means it’s up to
you to adjust your CSS to make sure the swatch aligns properly.
To adjust the swatch, override these styles:
.minicolors-theme-default .minicolors-swatch {
top: 5px;
left: 5px;
width: 18px;
height: 18px;
}
.minicolors-theme-default.minicolors-position-right .minicolors-swatch {
left: auto;
right: 5px;
}
swatches
An array containing some colors, in either rgb(a) or hex format, that will
show up under the main color grid.
Methods
Use this syntax for calling methods:
$(selector ).minicolors('method', [data] );
create
Initializes the control for all items matching your selector. This is the default
method, so data may be passed in as the only argument.
To set a preset color value, populate the value attribute of the original
input element.
destroy
Returns the input element to its original, uninitialized state.
opacity
Gets or sets a control's opacity level. To use this method as a setter, pass data in
as a value between 0 and 1. (You can also obtain this value by checking the input
element's data-opacity attribute.)
To set a preset opacity value, populate the data-opacity attribute of the
original input element.
rgbObject
Returns an object containing red, green, blue, and alpha properties that correspond to
the control's current value. Example:
{ r: 0, g: 82, b: 148, a: 0.75 }
rgbString & rgbaString
Returns an RGB or RGBA string suitable for use in your CSS. Examples:
rgb(0, 82, 148)
rgba(0, 82, 148, .75)
settings
Gets or sets a control's settings. If new settings are passed in, the control will
destroy and re-initialize itself with any new settings overriding the old ones.
value
Gets or sets a control's color value. To use this method as a setter, pass
in a color string or an object (ex: {color: '#fc0', opacity: .5}).
Events
change
Fires when the value of the color picker changes. The this keyword will reference the original input element.
$(selector ).minicolors({
change: function(value, opacity) {
console.log(value + ' - ' + opacity);
}
});
Warning! This event will fire a lot when the user drags the
color picker around. Use the changeDelay setting to reduce its
frequency.
hide
Fires when the color picker is hidden. The this keyword will reference
the original input element.
$(selector ).minicolors({
hide: function() {
console.log('Hide event triggered!');
}
});
show
Fires when the color picker is shown. The this keyword will reference
the original input element.
$(selector ).minicolors({
show: function() {
console.log('Show event triggered!');
}
});
License
Licensed under the MIT license ,
same as jQuery .
©2013 A Beautiful Site, LLC.
================================================
FILE: public/admin-panel/assets/libs/jquery-minicolors/jquery.minicolors.css
================================================
.minicolors {
position: relative;
}
.minicolors-sprite {
background-image: url(jquery.minicolors.png);
}
.minicolors-swatch {
position: absolute;
vertical-align: middle;
background-position: -80px 0;
border: solid 1px #ccc;
cursor: text;
padding: 0;
margin: 0;
display: inline-block;
}
.minicolors-swatch-color {
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
}
.minicolors input[type=hidden] + .minicolors-swatch {
width: 28px;
position: static;
cursor: pointer;
}
.minicolors input[type=hidden][disabled] + .minicolors-swatch {
cursor: default;
}
/* Panel */
.minicolors-panel {
position: absolute;
width: 173px;
background: white;
border: solid 1px #CCC;
box-shadow: 0 0 20px rgba(0, 0, 0, .2);
z-index: 99999;
box-sizing: content-box;
display: none;
}
.minicolors-panel.minicolors-visible {
display: block;
}
/* Panel positioning */
.minicolors-position-top .minicolors-panel {
top: -154px;
}
.minicolors-position-right .minicolors-panel {
right: 0;
}
.minicolors-position-bottom .minicolors-panel {
top: auto;
}
.minicolors-position-left .minicolors-panel {
left: 0;
}
.minicolors-with-opacity .minicolors-panel {
width: 194px;
}
.minicolors .minicolors-grid {
position: relative;
top: 1px;
left: 1px;
width: 150px;
height: 150px;
background-position: -120px 0;
cursor: crosshair;
}
.minicolors .minicolors-grid-inner {
position: absolute;
top: 0;
left: 0;
width: 150px;
height: 150px;
}
.minicolors-slider-saturation .minicolors-grid {
background-position: -420px 0;
}
.minicolors-slider-saturation .minicolors-grid-inner {
background-position: -270px 0;
background-image: inherit;
}
.minicolors-slider-brightness .minicolors-grid {
background-position: -570px 0;
}
.minicolors-slider-brightness .minicolors-grid-inner {
background-color: black;
}
.minicolors-slider-wheel .minicolors-grid {
background-position: -720px 0;
}
.minicolors-slider,
.minicolors-opacity-slider {
position: absolute;
top: 1px;
left: 152px;
width: 20px;
height: 150px;
background-color: white;
background-position: 0 0;
cursor: row-resize;
}
.minicolors-slider-saturation .minicolors-slider {
background-position: -60px 0;
}
.minicolors-slider-brightness .minicolors-slider {
background-position: -20px 0;
}
.minicolors-slider-wheel .minicolors-slider {
background-position: -20px 0;
}
.minicolors-opacity-slider {
left: 173px;
background-position: -40px 0;
display: none;
}
.minicolors-with-opacity .minicolors-opacity-slider {
display: block;
}
/* Pickers */
.minicolors-grid .minicolors-picker {
position: absolute;
top: 70px;
left: 70px;
width: 12px;
height: 12px;
border: solid 1px black;
border-radius: 10px;
margin-top: -6px;
margin-left: -6px;
background: none;
}
.minicolors-grid .minicolors-picker > div {
position: absolute;
top: 0;
left: 0;
width: 8px;
height: 8px;
border-radius: 8px;
border: solid 2px white;
box-sizing: content-box;
}
.minicolors-picker {
position: absolute;
top: 0;
left: 0;
width: 18px;
height: 2px;
background: white;
border: solid 1px black;
margin-top: -2px;
box-sizing: content-box;
}
/* Swatches */
.minicolors-swatches,
.minicolors-swatches li {
margin: 5px 0 3px 5px;
padding: 0;
list-style: none;
overflow: hidden;
}
.minicolors-swatches .minicolors-swatch {
position: relative;
float: left;
cursor: pointer;
margin:0 4px 0 0;
}
.minicolors-with-opacity .minicolors-swatches .minicolors-swatch {
margin-right: 7px;
}
.minicolors-swatch.selected {
border-color: #000;
}
/* Inline controls */
.minicolors-inline {
display: inline-block;
}
.minicolors-inline .minicolors-input {
display: none !important;
}
.minicolors-inline .minicolors-panel {
position: relative;
top: auto;
left: auto;
box-shadow: none;
z-index: auto;
display: inline-block;
}
/* Default theme */
.minicolors-theme-default .minicolors-swatch {
top: 5px;
left: 5px;
width: 18px;
height: 18px;
}
.minicolors-theme-default .minicolors-swatches .minicolors-swatch {
margin-bottom: 2px;
top: 0;
left: 0;
width: 18px;
height: 18px;
}
.minicolors-theme-default.minicolors-position-right .minicolors-swatch {
left: auto;
right: 5px;
}
.minicolors-theme-default.minicolors {
width: auto;
display: inline-block;
}
.minicolors-theme-default .minicolors-input {
height: 20px;
width: auto;
display: inline-block;
padding-left: 26px;
}
.minicolors-theme-default.minicolors-position-right .minicolors-input {
padding-right: 26px;
padding-left: inherit;
}
/* Bootstrap theme */
.minicolors-theme-bootstrap .minicolors-swatch {
z-index: 2;
top: 3px;
left: 3px;
width: 28px;
height: 28px;
border-radius: 3px;
}
.minicolors-theme-bootstrap .minicolors-swatches .minicolors-swatch {
margin-bottom: 2px;
top: 0;
left: 0;
width: 20px;
height: 20px;
}
.minicolors-theme-bootstrap .minicolors-swatch-color {
border-radius: inherit;
}
.minicolors-theme-bootstrap.minicolors-position-right > .minicolors-swatch {
left: auto;
right: 3px;
}
.minicolors-theme-bootstrap .minicolors-input {
float: none;
padding-left: 44px;
}
.minicolors-theme-bootstrap.minicolors-position-right .minicolors-input {
padding-right: 44px;
padding-left: 12px;
}
.minicolors-theme-bootstrap .minicolors-input.input-lg + .minicolors-swatch {
top: 4px;
left: 4px;
width: 37px;
height: 37px;
border-radius: 5px;
}
.minicolors-theme-bootstrap .minicolors-input.input-sm + .minicolors-swatch {
width: 24px;
height: 24px;
}
.minicolors-theme-bootstrap .minicolors-input.input-xs + .minicolors-swatch {
width: 18px;
height: 18px;
}
.input-group .minicolors-theme-bootstrap:not(:first-child) .minicolors-input {
border-top-left-radius: 0;
border-bottom-left-radius: 0;
}
/* Semantic Ui theme */
.minicolors-theme-semanticui .minicolors-swatch {
top: 0;
left: 0;
padding: 18px;
}
.minicolors-theme-semanticui input {
text-indent: 30px;
}
================================================
FILE: public/admin-panel/assets/libs/jquery-minicolors/without-bootstrap.html
================================================
jQuery MiniColors
MiniColors Demo (without Bootstrap)
« Back to the Bootstrap demo
Control Types
Hue (default)
Saturation
Brightness
Wheel
Input Modes
Text field
Hidden Input
Inline
Positions
bottom left (default)
top left
bottom right
top right
RGB(A)
rgb
rgb(a)
…and more!
Opacity
Keywords
Default Value
Letter Case
Swatches
Swatches and opacity
================================================
FILE: public/admin-panel/assets/libs/jquery-steps/LICENSE.txt
================================================
The MIT License (MIT)
Copyright (c) 2013 Rafael J. Staib
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
================================================
FILE: public/admin-panel/assets/libs/jquery-steps/jquery.steps.css
================================================
/*
Common
*/
.wizard,
.tabcontrol
{
display: block;
width: 100%;
overflow: hidden;
}
.wizard a,
.tabcontrol a
{
outline: 0;
}
.wizard ul,
.tabcontrol ul
{
list-style: none !important;
padding: 0;
margin: 0;
}
.wizard ul > li,
.tabcontrol ul > li
{
display: block;
padding: 0;
}
/* Accessibility */
.wizard > .steps .current-info,
.tabcontrol > .steps .current-info
{
position: absolute;
left: -999em;
}
.wizard > .content > .title,
.tabcontrol > .content > .title
{
position: absolute;
left: -999em;
}
/*
Wizard
*/
.wizard > .steps
{
position: relative;
display: block;
width: 100%;
}
.wizard.vertical > .steps
{
display: inline;
float: left;
width: 30%;
}
.wizard > .steps .number
{
font-size: 1.429em;
}
.wizard > .steps > ul > li
{
width: 25%;
}
.wizard > .steps > ul > li,
.wizard > .actions > ul > li
{
float: left;
}
.wizard.vertical > .steps > ul > li
{
float: none;
width: 100%;
}
.wizard > .steps a,
.wizard > .steps a:hover,
.wizard > .steps a:active
{
display: block;
width: auto;
margin: 0 0.5em 0.5em;
padding: 1em 1em;
text-decoration: none;
-webkit-border-radius: 5px;
-moz-border-radius: 5px;
border-radius: 5px;
}
.wizard > .steps .disabled a,
.wizard > .steps .disabled a:hover,
.wizard > .steps .disabled a:active
{
background: #eee;
color: #aaa;
cursor: default;
}
.wizard > .steps .current a,
.wizard > .steps .current a:hover,
.wizard > .steps .current a:active
{
background: #2962FF;
color: #fff;
cursor: default;
}
.wizard > .steps .done a,
.wizard > .steps .done a:hover,
.wizard > .steps .done a:active
{
background: #9dc8e2;
color: #fff;
}
.wizard > .steps .error a,
.wizard > .steps .error a:hover,
.wizard > .steps .error a:active
{
background: #ff3111;
color: #fff;
}
.wizard > .content
{
background: #eee;
display: block;
margin: 0.5em;
overflow: hidden;
position: relative;
width: auto;
-webkit-border-radius: 5px;
-moz-border-radius: 5px;
border-radius: 5px;
}
.wizard.vertical > .content
{
display: inline;
float: left;
margin: 0 2.5% 0.5em 2.5%;
width: 65%;
}
.wizard > .content > .body
{
float: left;
width: 100%;
height: 95%;
padding: 2.5%;
}
.wizard > .content > .body ul
{
list-style: disc !important;
}
.wizard > .content > .body ul > li
{
display: list-item;
}
.wizard > .content > .body > iframe
{
border: 0 none;
width: 100%;
height: 100%;
}
.wizard > .content > .body input
{
display: block;
}
.wizard > .content > .body input[type="checkbox"]
{
display: inline-block;
}
.wizard > .content > .body input.error
{
background: rgb(251, 227, 228);
border: 1px solid #fbc2c4;
color: #8a1f11;
}
.wizard > .content > .body label
{
display: inline-block;
margin-bottom: 0.5em;
}
.wizard > .content > .body label.error
{
color: #8a1f11;
display: inline-block;
margin-left: 1.5em;
}
.wizard > .actions
{
position: relative;
display: block;
text-align: right;
width: 100%;
}
.wizard.vertical > .actions
{
display: inline;
float: right;
margin: 0 2.5%;
width: 95%;
}
.wizard > .actions > ul
{
display: inline-block;
text-align: right;
}
.wizard > .actions > ul > li
{
margin: 0 0.5em;
}
.wizard.vertical > .actions > ul > li
{
margin: 0 0 0 1em;
}
.wizard > .actions a,
.wizard > .actions a:hover,
.wizard > .actions a:active
{
background: #2962FF;
color: #fff;
display: block;
padding: 0.5em 1em;
text-decoration: none;
-webkit-border-radius: 5px;
-moz-border-radius: 5px;
border-radius: 5px;
}
.wizard > .actions .disabled a,
.wizard > .actions .disabled a:hover,
.wizard > .actions .disabled a:active
{
background: #eee;
color: #aaa;
}
.wizard > .loading
{
}
.wizard > .loading .spinner
{
}
/*
Tabcontrol
*/
.tabcontrol > .steps
{
position: relative;
display: block;
width: 100%;
}
.tabcontrol > .steps > ul
{
position: relative;
margin: 6px 0 0 0;
top: 1px;
z-index: 1;
}
.tabcontrol > .steps > ul > li
{
float: left;
margin: 5px 2px 0 0;
padding: 1px;
-webkit-border-top-left-radius: 5px;
-webkit-border-top-right-radius: 5px;
-moz-border-radius-topleft: 5px;
-moz-border-radius-topright: 5px;
border-top-left-radius: 5px;
border-top-right-radius: 5px;
}
.tabcontrol > .steps > ul > li:hover
{
background: #edecec;
border: 1px solid #bbb;
padding: 0;
}
.tabcontrol > .steps > ul > li.current
{
background: #fff;
border: 1px solid #bbb;
border-bottom: 0 none;
padding: 0 0 1px 0;
margin-top: 0;
}
.tabcontrol > .steps > ul > li > a
{
color: #5f5f5f;
display: inline-block;
border: 0 none;
margin: 0;
padding: 10px 30px;
text-decoration: none;
}
.tabcontrol > .steps > ul > li > a:hover
{
text-decoration: none;
}
.tabcontrol > .steps > ul > li.current > a
{
padding: 15px 30px 10px 30px;
}
.tabcontrol > .content
{
position: relative;
display: inline-block;
width: 100%;
height: 35em;
overflow: hidden;
border-top: 1px solid #bbb;
padding-top: 20px;
}
.tabcontrol > .content > .body
{
float: left;
position: absolute;
width: 95%;
height: 95%;
padding: 2.5%;
}
.tabcontrol > .content > .body ul
{
list-style: disc !important;
}
.tabcontrol > .content > .body ul > li
{
display: list-item;
}
================================================
FILE: public/admin-panel/assets/libs/jquery-steps/lib/jquery.cookie-1.3.1.js
================================================
/*!
* jQuery Cookie Plugin v1.3.1
* https://github.com/carhartl/jquery-cookie
*
* Copyright 2013 Klaus Hartl
* Released under the MIT license
*/
(function (factory) {
if (typeof define === 'function' && define.amd) {
// AMD. Register as anonymous module.
define(['jquery'], factory);
} else {
// Browser globals.
factory(jQuery);
}
}(function ($) {
var pluses = /\+/g;
function raw(s) {
return s;
}
function decoded(s) {
return decodeURIComponent(s.replace(pluses, ' '));
}
function converted(s) {
if (s.indexOf('"') === 0) {
// This is a quoted cookie as according to RFC2068, unescape
s = s.slice(1, -1).replace(/\\"/g, '"').replace(/\\\\/g, '\\');
}
try {
return config.json ? JSON.parse(s) : s;
} catch(er) {}
}
var config = $.cookie = function (key, value, options) {
// write
if (value !== undefined) {
options = $.extend({}, config.defaults, options);
if (typeof options.expires === 'number') {
var days = options.expires, t = options.expires = new Date();
t.setDate(t.getDate() + days);
}
value = config.json ? JSON.stringify(value) : String(value);
return (document.cookie = [
config.raw ? key : encodeURIComponent(key),
'=',
config.raw ? value : encodeURIComponent(value),
options.expires ? '; expires=' + options.expires.toUTCString() : '', // use expires attribute, max-age is not supported by IE
options.path ? '; path=' + options.path : '',
options.domain ? '; domain=' + options.domain : '',
options.secure ? '; secure' : ''
].join(''));
}
// read
var decode = config.raw ? raw : decoded;
var cookies = document.cookie.split('; ');
var result = key ? undefined : {};
for (var i = 0, l = cookies.length; i < l; i++) {
var parts = cookies[i].split('=');
var name = decode(parts.shift());
var cookie = decode(parts.join('='));
if (key && key === name) {
result = converted(cookie);
break;
}
if (!key) {
result[name] = converted(cookie);
}
}
return result;
};
config.defaults = {};
$.removeCookie = function (key, options) {
if ($.cookie(key) !== undefined) {
// Must not alter options, thus extending a fresh object...
$.cookie(key, '', $.extend({}, options, { expires: -1 }));
return true;
}
return false;
};
}));
================================================
FILE: public/admin-panel/assets/libs/jquery-steps/nuget/jQuery.Steps.nuspec
================================================
jQuery.Steps
$version$
jQuery Steps
Rafael Staib
r_staib
https://github.com/rstaib/jquery-steps/blob/master/LICENSE.txt
http://www.jquery-steps.com
http://www.jquery-steps.com/icon.png
true
An all-in-one wizard plugin that is extremely flexible, compact and feature-rich.
An all-in-one wizard plugin that is extremely flexible, compact and feature-rich.
� Copyright 2014, Rafael Staib
jQuery, Accessibility, Forms, HTML5, Navigation, Steps, Tabs, UI, Validation, Wizard
================================================
FILE: public/admin-panel/assets/libs/jquery-steps/steps.css
================================================
/*
Template Name: Matrix Admin
Author: Themedesigner
Email: niravjoshi87@gmail.com
File: css
*/
.wizard-content .wizard>.steps>ul>li:after,
.wizard-content .wizard>.steps>ul>li:before {
content: '';
z-index: 9;
display: block;
position: absolute
}
.wizard-content .wizard {
width: 100%;
overflow: hidden
}
.wizard-content .wizard .content {
margin-left: 0!important
}
.wizard-content .wizard>.steps {
position: relative;
display: block;
width: 100%
}
.wizard-content .wizard>.steps .current-info {
position: absolute;
left: -99999px
}
.wizard-content .wizard > .steps .current a, .wizard-content .wizard > .actions a,.wizard-content .wizard > .actions a:hover,
.wizard-content .wizard > .steps .disabled a, .wizard-content .wizard > .steps .disabled a:hover, .wizard-content .wizard > .steps .disabled a:active,
.wizard-content .wizard > .content,.wizard-content .wizard > .steps .done a, .wizard-content .wizard > .steps .done a:hover, .wizard-content .wizard > .steps .done a:active{
/*background: transparent;*/
}
.wizard-content .wizard > .steps > ul > li,.wizard-content .wizard > .actions > ul > li{
float:none;
}
.wizard-content .wizard>.steps>ul {
display: table;
width: 100%;
table-layout: fixed;
margin: 0;
padding: 0;
list-style: none
}
.wizard-content .wizard>.steps>ul>li {
display: table-cell;
width: auto;
vertical-align: top;
text-align: center;
position: relative
}
.wizard-content .wizard>.steps>ul>li a {
position: relative;
/*padding-top: 52px;
margin-top: 20px;*/
margin-bottom: 20px;
display: block
}
.wizard-content .wizard>.steps>ul>li:before {
left: 0
}
.wizard-content .wizard>.steps>ul>li:after {
right: 0
}
.wizard-content .wizard>.steps>ul>li:first-child:before,
.wizard-content .wizard>.steps>ul>li:last-child:after {
content: none
}
.wizard-content .wizard>.steps>ul>li.current>a {
/*color: #2f3d4a;
cursor: default*/
}
.wizard-content .wizard>.steps>ul>li.current .step {
border-color: #2962FF ;
background-color: #fff;
color: #2962FF
}
.wizard-content .wizard>.steps>ul>li.disabled a,
.wizard-content .wizard>.steps>ul>li.disabled a:focus,
.wizard-content .wizard>.steps>ul>li.disabled a:hover {
color: #999;
cursor: default
}
.wizard-content .wizard>.steps>ul>li.done a,
.wizard-content .wizard>.steps>ul>li.done a:focus,
.wizard-content .wizard>.steps>ul>li.done a:hover {
color: #999
}
.wizard-content .wizard>.steps>ul>li.done .step {
background-color: #2962FF ;
border-color: #2962FF ;
color: #fff !important;
}
.wizard-content .wizard>.steps>ul>li.error .step {
border-color: #f62d51;
color: #f62d51
}
.wizard-content .wizard>.steps .step {
background-color: #fff;
display: inline-block;
position: absolute;
top: 0;
left: 50%;
margin-left: -24px;
z-index: 10;
text-align: center
}
.wizard-content .wizard>.content {
overflow: hidden;
position: relative;
width: auto;
padding: 0;
margin: 0
}
.wizard-content .wizard>.content>.title {
position: absolute;
left: -99999px
}
.wizard-content .wizard>.content>.body {
/* padding: 0 20px*/
}
.wizard-content .wizard>.content>iframe {
border: 0;
width: 100%;
height: 100%
}
.wizard-content .wizard>.actions {
position: relative;
display: block;
text-align: right;
/* padding: 0 20px 20px*/
margin-top: 20px;
}
.wizard-content .wizard>.actions>ul {
float: right;
list-style: none;
padding: 0;
margin: 0,
}
.wizard-content .wizard>.actions>ul:after {
content: '';
display: table;
clear: both
}
.wizard-content .wizard>.actions>ul>li {
float: left
}
.wizard-content .wizard>.actions>ul>li+li {
margin-left: 10px
}
.wizard-content .wizard>.actions>ul>li>a {
background: #2962FF ;
color: #fff;
display: block;
padding: 7px 12px;
border-radius: 4px;
border: 1px solid transparent
}
.wizard-content .wizard>.actions>ul>li>a:focus,
.wizard-content .wizard>.actions>ul>li>a:hover {
-webkit-box-shadow: 0 0 0 100px rgba(0, 0, 0, .05) inset;
box-shadow: 0 0 0 100px rgba(0, 0, 0, .05) inset
}
.wizard-content .wizard>.actions>ul>li>a:active {
-webkit-box-shadow: 0 0 0 100px rgba(0, 0, 0, .1) inset;
box-shadow: 0 0 0 100px rgba(0, 0, 0, .1) inset
}
.wizard-content .wizard>.actions>ul>li>a[href="#previous"] {
background-color: #fff;
color: #54667a;
border: 1px solid #d9d9d9
}
.wizard-content .wizard>.actions>ul>li>a[href="#previous"]:focus,
.wizard-content .wizard>.actions>ul>li>a[href="#previous"]:hover {
-webkit-box-shadow: 0 0 0 100px rgba(0, 0, 0, .02) inset;
box-shadow: 0 0 0 100px rgba(0, 0, 0, .02) inset
}
.wizard-content .wizard>.actions>ul>li>a[href="#previous"]:active {
-webkit-box-shadow: 0 0 0 100px rgba(0, 0, 0, .04) inset;
box-shadow: 0 0 0 100px rgba(0, 0, 0, .04) inset
}
.wizard-content .wizard>.actions>ul>li.disabled>a,
.wizard-content .wizard>.actions>ul>li.disabled>a:focus,
.wizard-content .wizard>.actions>ul>li.disabled>a:hover {
color: #999
}
.wizard-content .wizard>.actions>ul>li.disabled>a[href="#previous"],
.wizard-content .wizard>.actions>ul>li.disabled>a[href="#previous"]:focus,
.wizard-content .wizard>.actions>ul>li.disabled>a[href="#previous"]:hover {
-webkit-box-shadow: none;
box-shadow: none
}
.wizard-content .wizard.wizard-circle>.steps>ul>li:after,
.wizard-content .wizard.wizard-circle>.steps>ul>li:before {
top: 45px;
width: 50%;
height: 3px;
background-color: #2962FF
}
.wizard-content .wizard.wizard-circle>.steps>ul>li.current:after,
.wizard-content .wizard.wizard-circle>.steps>ul>li.current~li:after,
.wizard-content .wizard.wizard-circle>.steps>ul>li.current~li:before {
background-color: #F3F3F3
}
.wizard-content .wizard.wizard-circle>.steps .step {
width: 50px;
height: 50px;
line-height: 45px;
border: 3px solid #F3F3F3;
font-size: 1.3rem;
border-radius: 50%
}
.wizard-content .wizard.wizard-notification>.steps>ul>li:after,
.wizard-content .wizard.wizard-notification>.steps>ul>li:before {
top: 39px;
width: 50%;
height: 2px;
background-color: #2962FF
}
.wizard-content .wizard.wizard-notification>.steps>ul>li.current .step {
border: 2px solid #2962FF ;
color: #2962FF ;
line-height: 36px
}
.wizard-content .wizard.wizard-notification>.steps>ul>li.current .step:after,
.wizard-content .wizard.wizard-notification>.steps>ul>li.done .step:after {
border-top-color: #2962FF
}
.wizard-content .wizard.wizard-notification>.steps>ul>li.current:after,
.wizard-content .wizard.wizard-notification>.steps>ul>li.current~li:after,
.wizard-content .wizard.wizard-notification>.steps>ul>li.current~li:before {
background-color: #F3F3F3
}
.wizard-content .wizard.wizard-notification>.steps>ul>li.done .step {
color: #FFF
}
.wizard-content .wizard.wizard-notification>.steps .step {
width: 40px;
height: 40px;
line-height: 40px;
font-size: 1.3rem;
border-radius: 15%;
background-color: #F3F3F3
}
.wizard-content .wizard.wizard-notification>.steps .step:after {
content: "";
width: 0;
height: 0;
position: absolute;
bottom: 0;
left: 50%;
margin-left: -8px;
margin-bottom: -8px;
border-left: 7px solid transparent;
border-right: 7px solid transparent;
border-top: 8px solid #F3F3F3
}
.wizard-content .wizard.vertical>.steps {
display: inline;
float: left;
width: 20%
}
.wizard-content .wizard.vertical>.steps>ul>li {
display: block;
width: 100%
}
.wizard-content .wizard.vertical.wizard>.content{
min-width: 80%
}
.wizard-content .wizard.vertical>.steps>ul>li.current:after,
.wizard-content .wizard.vertical>.steps>ul>li.current:before,
.wizard-content .wizard.vertical>.steps>ul>li.current~li:after,
.wizard-content .wizard.vertical>.steps>ul>li.current~li:before,
.wizard-content .wizard.vertical>.steps>ul>li:after,
.wizard-content .wizard.vertical>.steps>ul>li:before {
background-color: transparent
}
@media (max-width:768px) {
.wizard-content .wizard>.steps>ul {
margin-bottom: 20px
}
.wizard-content .wizard>.steps>ul>li {
display: block;
float: left;
width: 50%
}
.wizard-content .wizard>.steps>ul>li>a {
margin-bottom: 0
}
.wizard-content .wizard>.steps>ul>li:first-child:before {
content: ''
}
.wizard-content .wizard>.steps>ul>li:last-child:after {
content: '';
background-color: #2962FF
}
.wizard-content .wizard.vertical>.steps {
width: 15%
}
}
@media (max-width:480px) {
.wizard-content .wizard>.steps>ul>li {
width: 100%
}
.wizard-content .wizard>.steps>ul>li.current:after {
background-color: #2962FF
}
.wizard-content .wizard.vertical>.steps>ul>li {
display: block;
float: left;
width: 50%
}
.wizard-content .wizard.vertical>.steps {
width: 100%;
float:none;
}
}
================================================
FILE: public/admin-panel/assets/libs/jquery-steps/steps.jquery.json
================================================
{
"name": "steps",
"title": "jQuery Steps",
"description": "A powerful jQuery wizard plugin that supports accessibility and HTML5.",
"keywords": [
"wizard",
"navigation",
"forms",
"UI",
"component",
"HTML5",
"accessibility",
"validation",
"tabs",
"steps"
],
"version": "1.1.0",
"author": {
"name": "Rafael Staib",
"email": "me@rafaelstaib.com",
"url": "http://www.rafaelstaib.com"
},
"licenses": [
{ "type": "MIT", "url": "http://www.opensource.org/licenses/MIT" }
],
"bugs": "https://github.com/rstaib/jquery-steps/issues",
"homepage": "http://www.jquery-steps.com",
"docs": "https://github.com/rstaib/jquery-steps/wiki",
"download": "http://www.jquery-steps.com",
"demo": "http://www.jquery-steps.com/Examples",
"dependencies": {
"jquery": ">=1.9.0"
}
}
================================================
FILE: public/admin-panel/assets/libs/jquery-validation/dist/additional-methods.js
================================================
/*!
* jQuery Validation Plugin v1.17.0
*
* https://jqueryvalidation.org/
*
* Copyright (c) 2017 Jörn Zaefferer
* Released under the MIT license
*/
(function( factory ) {
if ( typeof define === "function" && define.amd ) {
define( ["jquery", "./jquery.validate"], factory );
} else if (typeof module === "object" && module.exports) {
module.exports = factory( require( "jquery" ) );
} else {
factory( jQuery );
}
}(function( $ ) {
( function() {
function stripHtml( value ) {
// Remove html tags and space chars
return value.replace( /<.[^<>]*?>/g, " " ).replace( / | /gi, " " )
// Remove punctuation
.replace( /[.(),;:!?%#$'\"_+=\/\-“”’]*/g, "" );
}
$.validator.addMethod( "maxWords", function( value, element, params ) {
return this.optional( element ) || stripHtml( value ).match( /\b\w+\b/g ).length <= params;
}, $.validator.format( "Please enter {0} words or less." ) );
$.validator.addMethod( "minWords", function( value, element, params ) {
return this.optional( element ) || stripHtml( value ).match( /\b\w+\b/g ).length >= params;
}, $.validator.format( "Please enter at least {0} words." ) );
$.validator.addMethod( "rangeWords", function( value, element, params ) {
var valueStripped = stripHtml( value ),
regex = /\b\w+\b/g;
return this.optional( element ) || valueStripped.match( regex ).length >= params[ 0 ] && valueStripped.match( regex ).length <= params[ 1 ];
}, $.validator.format( "Please enter between {0} and {1} words." ) );
}() );
// Accept a value from a file input based on a required mimetype
$.validator.addMethod( "accept", function( value, element, param ) {
// Split mime on commas in case we have multiple types we can accept
var typeParam = typeof param === "string" ? param.replace( /\s/g, "" ) : "image/*",
optionalValue = this.optional( element ),
i, file, regex;
// Element is optional
if ( optionalValue ) {
return optionalValue;
}
if ( $( element ).attr( "type" ) === "file" ) {
// Escape string to be used in the regex
// see: https://stackoverflow.com/questions/3446170/escape-string-for-use-in-javascript-regex
// Escape also "/*" as "/.*" as a wildcard
typeParam = typeParam
.replace( /[\-\[\]\/\{\}\(\)\+\?\.\\\^\$\|]/g, "\\$&" )
.replace( /,/g, "|" )
.replace( /\/\*/g, "/.*" );
// Check if the element has a FileList before checking each file
if ( element.files && element.files.length ) {
regex = new RegExp( ".?(" + typeParam + ")$", "i" );
for ( i = 0; i < element.files.length; i++ ) {
file = element.files[ i ];
// Grab the mimetype from the loaded file, verify it matches
if ( !file.type.match( regex ) ) {
return false;
}
}
}
}
// Either return true because we've validated each file, or because the
// browser does not support element.files and the FileList feature
return true;
}, $.validator.format( "Please enter a value with a valid mimetype." ) );
$.validator.addMethod( "alphanumeric", function( value, element ) {
return this.optional( element ) || /^\w+$/i.test( value );
}, "Letters, numbers, and underscores only please" );
/*
* Dutch bank account numbers (not 'giro' numbers) have 9 digits
* and pass the '11 check'.
* We accept the notation with spaces, as that is common.
* acceptable: 123456789 or 12 34 56 789
*/
$.validator.addMethod( "bankaccountNL", function( value, element ) {
if ( this.optional( element ) ) {
return true;
}
if ( !( /^[0-9]{9}|([0-9]{2} ){3}[0-9]{3}$/.test( value ) ) ) {
return false;
}
// Now '11 check'
var account = value.replace( / /g, "" ), // Remove spaces
sum = 0,
len = account.length,
pos, factor, digit;
for ( pos = 0; pos < len; pos++ ) {
factor = len - pos;
digit = account.substring( pos, pos + 1 );
sum = sum + factor * digit;
}
return sum % 11 === 0;
}, "Please specify a valid bank account number" );
$.validator.addMethod( "bankorgiroaccountNL", function( value, element ) {
return this.optional( element ) ||
( $.validator.methods.bankaccountNL.call( this, value, element ) ) ||
( $.validator.methods.giroaccountNL.call( this, value, element ) );
}, "Please specify a valid bank or giro account number" );
/**
* BIC is the business identifier code (ISO 9362). This BIC check is not a guarantee for authenticity.
*
* BIC pattern: BBBBCCLLbbb (8 or 11 characters long; bbb is optional)
*
* Validation is case-insensitive. Please make sure to normalize input yourself.
*
* BIC definition in detail:
* - First 4 characters - bank code (only letters)
* - Next 2 characters - ISO 3166-1 alpha-2 country code (only letters)
* - Next 2 characters - location code (letters and digits)
* a. shall not start with '0' or '1'
* b. second character must be a letter ('O' is not allowed) or digit ('0' for test (therefore not allowed), '1' denoting passive participant, '2' typically reverse-billing)
* - Last 3 characters - branch code, optional (shall not start with 'X' except in case of 'XXX' for primary office) (letters and digits)
*/
$.validator.addMethod( "bic", function( value, element ) {
return this.optional( element ) || /^([A-Z]{6}[A-Z2-9][A-NP-Z1-9])(X{3}|[A-WY-Z0-9][A-Z0-9]{2})?$/.test( value.toUpperCase() );
}, "Please specify a valid BIC code" );
/*
* Código de identificación fiscal ( CIF ) is the tax identification code for Spanish legal entities
* Further rules can be found in Spanish on http://es.wikipedia.org/wiki/C%C3%B3digo_de_identificaci%C3%B3n_fiscal
*
* Spanish CIF structure:
*
* [ T ][ P ][ P ][ N ][ N ][ N ][ N ][ N ][ C ]
*
* Where:
*
* T: 1 character. Kind of Organization Letter: [ABCDEFGHJKLMNPQRSUVW]
* P: 2 characters. Province.
* N: 5 characters. Secuencial Number within the province.
* C: 1 character. Control Digit: [0-9A-J].
*
* [ T ]: Kind of Organizations. Possible values:
*
* A. Corporations
* B. LLCs
* C. General partnerships
* D. Companies limited partnerships
* E. Communities of goods
* F. Cooperative Societies
* G. Associations
* H. Communities of homeowners in horizontal property regime
* J. Civil Societies
* K. Old format
* L. Old format
* M. Old format
* N. Nonresident entities
* P. Local authorities
* Q. Autonomous bodies, state or not, and the like, and congregations and religious institutions
* R. Congregations and religious institutions (since 2008 ORDER EHA/451/2008)
* S. Organs of State Administration and regions
* V. Agrarian Transformation
* W. Permanent establishments of non-resident in Spain
*
* [ C ]: Control Digit. It can be a number or a letter depending on T value:
* [ T ] --> [ C ]
* ------ ----------
* A Number
* B Number
* E Number
* H Number
* K Letter
* P Letter
* Q Letter
* S Letter
*
*/
$.validator.addMethod( "cifES", function( value, element ) {
"use strict";
if ( this.optional( element ) ) {
return true;
}
var cifRegEx = new RegExp( /^([ABCDEFGHJKLMNPQRSUVW])(\d{7})([0-9A-J])$/gi );
var letter = value.substring( 0, 1 ), // [ T ]
number = value.substring( 1, 8 ), // [ P ][ P ][ N ][ N ][ N ][ N ][ N ]
control = value.substring( 8, 9 ), // [ C ]
all_sum = 0,
even_sum = 0,
odd_sum = 0,
i, n,
control_digit,
control_letter;
function isOdd( n ) {
return n % 2 === 0;
}
// Quick format test
if ( value.length !== 9 || !cifRegEx.test( value ) ) {
return false;
}
for ( i = 0; i < number.length; i++ ) {
n = parseInt( number[ i ], 10 );
// Odd positions
if ( isOdd( i ) ) {
// Odd positions are multiplied first.
n *= 2;
// If the multiplication is bigger than 10 we need to adjust
odd_sum += n < 10 ? n : n - 9;
// Even positions
// Just sum them
} else {
even_sum += n;
}
}
all_sum = even_sum + odd_sum;
control_digit = ( 10 - ( all_sum ).toString().substr( -1 ) ).toString();
control_digit = parseInt( control_digit, 10 ) > 9 ? "0" : control_digit;
control_letter = "JABCDEFGHI".substr( control_digit, 1 ).toString();
// Control must be a digit
if ( letter.match( /[ABEH]/ ) ) {
return control === control_digit;
// Control must be a letter
} else if ( letter.match( /[KPQS]/ ) ) {
return control === control_letter;
}
// Can be either
return control === control_digit || control === control_letter;
}, "Please specify a valid CIF number." );
/*
* Brazillian CPF number (Cadastrado de Pessoas Físicas) is the equivalent of a Brazilian tax registration number.
* CPF numbers have 11 digits in total: 9 numbers followed by 2 check numbers that are being used for validation.
*/
$.validator.addMethod( "cpfBR", function( value ) {
// Removing special characters from value
value = value.replace( /([~!@#$%^&*()_+=`{}\[\]\-|\\:;'<>,.\/? ])+/g, "" );
// Checking value to have 11 digits only
if ( value.length !== 11 ) {
return false;
}
var sum = 0,
firstCN, secondCN, checkResult, i;
firstCN = parseInt( value.substring( 9, 10 ), 10 );
secondCN = parseInt( value.substring( 10, 11 ), 10 );
checkResult = function( sum, cn ) {
var result = ( sum * 10 ) % 11;
if ( ( result === 10 ) || ( result === 11 ) ) {
result = 0;
}
return ( result === cn );
};
// Checking for dump data
if ( value === "" ||
value === "00000000000" ||
value === "11111111111" ||
value === "22222222222" ||
value === "33333333333" ||
value === "44444444444" ||
value === "55555555555" ||
value === "66666666666" ||
value === "77777777777" ||
value === "88888888888" ||
value === "99999999999"
) {
return false;
}
// Step 1 - using first Check Number:
for ( i = 1; i <= 9; i++ ) {
sum = sum + parseInt( value.substring( i - 1, i ), 10 ) * ( 11 - i );
}
// If first Check Number (CN) is valid, move to Step 2 - using second Check Number:
if ( checkResult( sum, firstCN ) ) {
sum = 0;
for ( i = 1; i <= 10; i++ ) {
sum = sum + parseInt( value.substring( i - 1, i ), 10 ) * ( 12 - i );
}
return checkResult( sum, secondCN );
}
return false;
}, "Please specify a valid CPF number" );
// https://jqueryvalidation.org/creditcard-method/
// based on https://en.wikipedia.org/wiki/Luhn_algorithm
$.validator.addMethod( "creditcard", function( value, element ) {
if ( this.optional( element ) ) {
return "dependency-mismatch";
}
// Accept only spaces, digits and dashes
if ( /[^0-9 \-]+/.test( value ) ) {
return false;
}
var nCheck = 0,
nDigit = 0,
bEven = false,
n, cDigit;
value = value.replace( /\D/g, "" );
// Basing min and max length on
// https://developer.ean.com/general_info/Valid_Credit_Card_Types
if ( value.length < 13 || value.length > 19 ) {
return false;
}
for ( n = value.length - 1; n >= 0; n-- ) {
cDigit = value.charAt( n );
nDigit = parseInt( cDigit, 10 );
if ( bEven ) {
if ( ( nDigit *= 2 ) > 9 ) {
nDigit -= 9;
}
}
nCheck += nDigit;
bEven = !bEven;
}
return ( nCheck % 10 ) === 0;
}, "Please enter a valid credit card number." );
/* NOTICE: Modified version of Castle.Components.Validator.CreditCardValidator
* Redistributed under the the Apache License 2.0 at http://www.apache.org/licenses/LICENSE-2.0
* Valid Types: mastercard, visa, amex, dinersclub, enroute, discover, jcb, unknown, all (overrides all other settings)
*/
$.validator.addMethod( "creditcardtypes", function( value, element, param ) {
if ( /[^0-9\-]+/.test( value ) ) {
return false;
}
value = value.replace( /\D/g, "" );
var validTypes = 0x0000;
if ( param.mastercard ) {
validTypes |= 0x0001;
}
if ( param.visa ) {
validTypes |= 0x0002;
}
if ( param.amex ) {
validTypes |= 0x0004;
}
if ( param.dinersclub ) {
validTypes |= 0x0008;
}
if ( param.enroute ) {
validTypes |= 0x0010;
}
if ( param.discover ) {
validTypes |= 0x0020;
}
if ( param.jcb ) {
validTypes |= 0x0040;
}
if ( param.unknown ) {
validTypes |= 0x0080;
}
if ( param.all ) {
validTypes = 0x0001 | 0x0002 | 0x0004 | 0x0008 | 0x0010 | 0x0020 | 0x0040 | 0x0080;
}
if ( validTypes & 0x0001 && /^(5[12345])/.test( value ) ) { // Mastercard
return value.length === 16;
}
if ( validTypes & 0x0002 && /^(4)/.test( value ) ) { // Visa
return value.length === 16;
}
if ( validTypes & 0x0004 && /^(3[47])/.test( value ) ) { // Amex
return value.length === 15;
}
if ( validTypes & 0x0008 && /^(3(0[012345]|[68]))/.test( value ) ) { // Dinersclub
return value.length === 14;
}
if ( validTypes & 0x0010 && /^(2(014|149))/.test( value ) ) { // Enroute
return value.length === 15;
}
if ( validTypes & 0x0020 && /^(6011)/.test( value ) ) { // Discover
return value.length === 16;
}
if ( validTypes & 0x0040 && /^(3)/.test( value ) ) { // Jcb
return value.length === 16;
}
if ( validTypes & 0x0040 && /^(2131|1800)/.test( value ) ) { // Jcb
return value.length === 15;
}
if ( validTypes & 0x0080 ) { // Unknown
return true;
}
return false;
}, "Please enter a valid credit card number." );
/**
* Validates currencies with any given symbols by @jameslouiz
* Symbols can be optional or required. Symbols required by default
*
* Usage examples:
* currency: ["£", false] - Use false for soft currency validation
* currency: ["$", false]
* currency: ["RM", false] - also works with text based symbols such as "RM" - Malaysia Ringgit etc
*
*
*
* Soft symbol checking
* currencyInput: {
* currency: ["$", false]
* }
*
* Strict symbol checking (default)
* currencyInput: {
* currency: "$"
* //OR
* currency: ["$", true]
* }
*
* Multiple Symbols
* currencyInput: {
* currency: "$,£,¢"
* }
*/
$.validator.addMethod( "currency", function( value, element, param ) {
var isParamString = typeof param === "string",
symbol = isParamString ? param : param[ 0 ],
soft = isParamString ? true : param[ 1 ],
regex;
symbol = symbol.replace( /,/g, "" );
symbol = soft ? symbol + "]" : symbol + "]?";
regex = "^[" + symbol + "([1-9]{1}[0-9]{0,2}(\\,[0-9]{3})*(\\.[0-9]{0,2})?|[1-9]{1}[0-9]{0,}(\\.[0-9]{0,2})?|0(\\.[0-9]{0,2})?|(\\.[0-9]{1,2})?)$";
regex = new RegExp( regex );
return this.optional( element ) || regex.test( value );
}, "Please specify a valid currency" );
$.validator.addMethod( "dateFA", function( value, element ) {
return this.optional( element ) || /^[1-4]\d{3}\/((0?[1-6]\/((3[0-1])|([1-2][0-9])|(0?[1-9])))|((1[0-2]|(0?[7-9]))\/(30|([1-2][0-9])|(0?[1-9]))))$/.test( value );
}, $.validator.messages.date );
/**
* Return true, if the value is a valid date, also making this formal check dd/mm/yyyy.
*
* @example $.validator.methods.date("01/01/1900")
* @result true
*
* @example $.validator.methods.date("01/13/1990")
* @result false
*
* @example $.validator.methods.date("01.01.1900")
* @result false
*
* @example
* @desc Declares an optional input element whose value must be a valid date.
*
* @name $.validator.methods.dateITA
* @type Boolean
* @cat Plugins/Validate/Methods
*/
$.validator.addMethod( "dateITA", function( value, element ) {
var check = false,
re = /^\d{1,2}\/\d{1,2}\/\d{4}$/,
adata, gg, mm, aaaa, xdata;
if ( re.test( value ) ) {
adata = value.split( "/" );
gg = parseInt( adata[ 0 ], 10 );
mm = parseInt( adata[ 1 ], 10 );
aaaa = parseInt( adata[ 2 ], 10 );
xdata = new Date( Date.UTC( aaaa, mm - 1, gg, 12, 0, 0, 0 ) );
if ( ( xdata.getUTCFullYear() === aaaa ) && ( xdata.getUTCMonth() === mm - 1 ) && ( xdata.getUTCDate() === gg ) ) {
check = true;
} else {
check = false;
}
} else {
check = false;
}
return this.optional( element ) || check;
}, $.validator.messages.date );
$.validator.addMethod( "dateNL", function( value, element ) {
return this.optional( element ) || /^(0?[1-9]|[12]\d|3[01])[\.\/\-](0?[1-9]|1[012])[\.\/\-]([12]\d)?(\d\d)$/.test( value );
}, $.validator.messages.date );
// Older "accept" file extension method. Old docs: http://docs.jquery.com/Plugins/Validation/Methods/accept
$.validator.addMethod( "extension", function( value, element, param ) {
param = typeof param === "string" ? param.replace( /,/g, "|" ) : "png|jpe?g|gif";
return this.optional( element ) || value.match( new RegExp( "\\.(" + param + ")$", "i" ) );
}, $.validator.format( "Please enter a value with a valid extension." ) );
/**
* Dutch giro account numbers (not bank numbers) have max 7 digits
*/
$.validator.addMethod( "giroaccountNL", function( value, element ) {
return this.optional( element ) || /^[0-9]{1,7}$/.test( value );
}, "Please specify a valid giro account number" );
/**
* IBAN is the international bank account number.
* It has a country - specific format, that is checked here too
*
* Validation is case-insensitive. Please make sure to normalize input yourself.
*/
$.validator.addMethod( "iban", function( value, element ) {
// Some quick simple tests to prevent needless work
if ( this.optional( element ) ) {
return true;
}
// Remove spaces and to upper case
var iban = value.replace( / /g, "" ).toUpperCase(),
ibancheckdigits = "",
leadingZeroes = true,
cRest = "",
cOperator = "",
countrycode, ibancheck, charAt, cChar, bbanpattern, bbancountrypatterns, ibanregexp, i, p;
// Check for IBAN code length.
// It contains:
// country code ISO 3166-1 - two letters,
// two check digits,
// Basic Bank Account Number (BBAN) - up to 30 chars
var minimalIBANlength = 5;
if ( iban.length < minimalIBANlength ) {
return false;
}
// Check the country code and find the country specific format
countrycode = iban.substring( 0, 2 );
bbancountrypatterns = {
"AL": "\\d{8}[\\dA-Z]{16}",
"AD": "\\d{8}[\\dA-Z]{12}",
"AT": "\\d{16}",
"AZ": "[\\dA-Z]{4}\\d{20}",
"BE": "\\d{12}",
"BH": "[A-Z]{4}[\\dA-Z]{14}",
"BA": "\\d{16}",
"BR": "\\d{23}[A-Z][\\dA-Z]",
"BG": "[A-Z]{4}\\d{6}[\\dA-Z]{8}",
"CR": "\\d{17}",
"HR": "\\d{17}",
"CY": "\\d{8}[\\dA-Z]{16}",
"CZ": "\\d{20}",
"DK": "\\d{14}",
"DO": "[A-Z]{4}\\d{20}",
"EE": "\\d{16}",
"FO": "\\d{14}",
"FI": "\\d{14}",
"FR": "\\d{10}[\\dA-Z]{11}\\d{2}",
"GE": "[\\dA-Z]{2}\\d{16}",
"DE": "\\d{18}",
"GI": "[A-Z]{4}[\\dA-Z]{15}",
"GR": "\\d{7}[\\dA-Z]{16}",
"GL": "\\d{14}",
"GT": "[\\dA-Z]{4}[\\dA-Z]{20}",
"HU": "\\d{24}",
"IS": "\\d{22}",
"IE": "[\\dA-Z]{4}\\d{14}",
"IL": "\\d{19}",
"IT": "[A-Z]\\d{10}[\\dA-Z]{12}",
"KZ": "\\d{3}[\\dA-Z]{13}",
"KW": "[A-Z]{4}[\\dA-Z]{22}",
"LV": "[A-Z]{4}[\\dA-Z]{13}",
"LB": "\\d{4}[\\dA-Z]{20}",
"LI": "\\d{5}[\\dA-Z]{12}",
"LT": "\\d{16}",
"LU": "\\d{3}[\\dA-Z]{13}",
"MK": "\\d{3}[\\dA-Z]{10}\\d{2}",
"MT": "[A-Z]{4}\\d{5}[\\dA-Z]{18}",
"MR": "\\d{23}",
"MU": "[A-Z]{4}\\d{19}[A-Z]{3}",
"MC": "\\d{10}[\\dA-Z]{11}\\d{2}",
"MD": "[\\dA-Z]{2}\\d{18}",
"ME": "\\d{18}",
"NL": "[A-Z]{4}\\d{10}",
"NO": "\\d{11}",
"PK": "[\\dA-Z]{4}\\d{16}",
"PS": "[\\dA-Z]{4}\\d{21}",
"PL": "\\d{24}",
"PT": "\\d{21}",
"RO": "[A-Z]{4}[\\dA-Z]{16}",
"SM": "[A-Z]\\d{10}[\\dA-Z]{12}",
"SA": "\\d{2}[\\dA-Z]{18}",
"RS": "\\d{18}",
"SK": "\\d{20}",
"SI": "\\d{15}",
"ES": "\\d{20}",
"SE": "\\d{20}",
"CH": "\\d{5}[\\dA-Z]{12}",
"TN": "\\d{20}",
"TR": "\\d{5}[\\dA-Z]{17}",
"AE": "\\d{3}\\d{16}",
"GB": "[A-Z]{4}\\d{14}",
"VG": "[\\dA-Z]{4}\\d{16}"
};
bbanpattern = bbancountrypatterns[ countrycode ];
// As new countries will start using IBAN in the
// future, we only check if the countrycode is known.
// This prevents false negatives, while almost all
// false positives introduced by this, will be caught
// by the checksum validation below anyway.
// Strict checking should return FALSE for unknown
// countries.
if ( typeof bbanpattern !== "undefined" ) {
ibanregexp = new RegExp( "^[A-Z]{2}\\d{2}" + bbanpattern + "$", "" );
if ( !( ibanregexp.test( iban ) ) ) {
return false; // Invalid country specific format
}
}
// Now check the checksum, first convert to digits
ibancheck = iban.substring( 4, iban.length ) + iban.substring( 0, 4 );
for ( i = 0; i < ibancheck.length; i++ ) {
charAt = ibancheck.charAt( i );
if ( charAt !== "0" ) {
leadingZeroes = false;
}
if ( !leadingZeroes ) {
ibancheckdigits += "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ".indexOf( charAt );
}
}
// Calculate the result of: ibancheckdigits % 97
for ( p = 0; p < ibancheckdigits.length; p++ ) {
cChar = ibancheckdigits.charAt( p );
cOperator = "" + cRest + "" + cChar;
cRest = cOperator % 97;
}
return cRest === 1;
}, "Please specify a valid IBAN" );
$.validator.addMethod( "integer", function( value, element ) {
return this.optional( element ) || /^-?\d+$/.test( value );
}, "A positive or negative non-decimal number please" );
$.validator.addMethod( "ipv4", function( value, element ) {
return this.optional( element ) || /^(25[0-5]|2[0-4]\d|[01]?\d\d?)\.(25[0-5]|2[0-4]\d|[01]?\d\d?)\.(25[0-5]|2[0-4]\d|[01]?\d\d?)\.(25[0-5]|2[0-4]\d|[01]?\d\d?)$/i.test( value );
}, "Please enter a valid IP v4 address." );
$.validator.addMethod( "ipv6", function( value, element ) {
return this.optional( element ) || /^((([0-9A-Fa-f]{1,4}:){7}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){6}:[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){5}:([0-9A-Fa-f]{1,4}:)?[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){4}:([0-9A-Fa-f]{1,4}:){0,2}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){3}:([0-9A-Fa-f]{1,4}:){0,3}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){2}:([0-9A-Fa-f]{1,4}:){0,4}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){6}((\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b)\.){3}(\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b))|(([0-9A-Fa-f]{1,4}:){0,5}:((\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b)\.){3}(\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b))|(::([0-9A-Fa-f]{1,4}:){0,5}((\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b)\.){3}(\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b))|([0-9A-Fa-f]{1,4}::([0-9A-Fa-f]{1,4}:){0,5}[0-9A-Fa-f]{1,4})|(::([0-9A-Fa-f]{1,4}:){0,6}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){1,7}:))$/i.test( value );
}, "Please enter a valid IP v6 address." );
$.validator.addMethod( "lettersonly", function( value, element ) {
return this.optional( element ) || /^[a-z]+$/i.test( value );
}, "Letters only please" );
$.validator.addMethod( "letterswithbasicpunc", function( value, element ) {
return this.optional( element ) || /^[a-z\-.,()'"\s]+$/i.test( value );
}, "Letters or punctuation only please" );
$.validator.addMethod( "mobileNL", function( value, element ) {
return this.optional( element ) || /^((\+|00(\s|\s?\-\s?)?)31(\s|\s?\-\s?)?(\(0\)[\-\s]?)?|0)6((\s|\s?\-\s?)?[0-9]){8}$/.test( value );
}, "Please specify a valid mobile number" );
/* For UK phone functions, do the following server side processing:
* Compare original input with this RegEx pattern:
* ^\(?(?:(?:00\)?[\s\-]?\(?|\+)(44)\)?[\s\-]?\(?(?:0\)?[\s\-]?\(?)?|0)([1-9]\d{1,4}\)?[\s\d\-]+)$
* Extract $1 and set $prefix to '+44' if $1 is '44', otherwise set $prefix to '0'
* Extract $2 and remove hyphens, spaces and parentheses. Phone number is combined $prefix and $2.
* A number of very detailed GB telephone number RegEx patterns can also be found at:
* http://www.aa-asterisk.org.uk/index.php/Regular_Expressions_for_Validating_and_Formatting_GB_Telephone_Numbers
*/
$.validator.addMethod( "mobileUK", function( phone_number, element ) {
phone_number = phone_number.replace( /\(|\)|\s+|-/g, "" );
return this.optional( element ) || phone_number.length > 9 &&
phone_number.match( /^(?:(?:(?:00\s?|\+)44\s?|0)7(?:[1345789]\d{2}|624)\s?\d{3}\s?\d{3})$/ );
}, "Please specify a valid mobile number" );
$.validator.addMethod( "netmask", function( value, element ) {
return this.optional( element ) || /^(254|252|248|240|224|192|128)\.0\.0\.0|255\.(254|252|248|240|224|192|128|0)\.0\.0|255\.255\.(254|252|248|240|224|192|128|0)\.0|255\.255\.255\.(254|252|248|240|224|192|128|0)/i.test( value );
}, "Please enter a valid netmask." );
/*
* The NIE (Número de Identificación de Extranjero) is a Spanish tax identification number assigned by the Spanish
* authorities to any foreigner.
*
* The NIE is the equivalent of a Spaniards Número de Identificación Fiscal (NIF) which serves as a fiscal
* identification number. The CIF number (Certificado de Identificación Fiscal) is equivalent to the NIF, but applies to
* companies rather than individuals. The NIE consists of an 'X' or 'Y' followed by 7 or 8 digits then another letter.
*/
$.validator.addMethod( "nieES", function( value, element ) {
"use strict";
if ( this.optional( element ) ) {
return true;
}
var nieRegEx = new RegExp( /^[MXYZ]{1}[0-9]{7,8}[TRWAGMYFPDXBNJZSQVHLCKET]{1}$/gi );
var validChars = "TRWAGMYFPDXBNJZSQVHLCKET",
letter = value.substr( value.length - 1 ).toUpperCase(),
number;
value = value.toString().toUpperCase();
// Quick format test
if ( value.length > 10 || value.length < 9 || !nieRegEx.test( value ) ) {
return false;
}
// X means same number
// Y means number + 10000000
// Z means number + 20000000
value = value.replace( /^[X]/, "0" )
.replace( /^[Y]/, "1" )
.replace( /^[Z]/, "2" );
number = value.length === 9 ? value.substr( 0, 8 ) : value.substr( 0, 9 );
return validChars.charAt( parseInt( number, 10 ) % 23 ) === letter;
}, "Please specify a valid NIE number." );
/*
* The Número de Identificación Fiscal ( NIF ) is the way tax identification used in Spain for individuals
*/
$.validator.addMethod( "nifES", function( value, element ) {
"use strict";
if ( this.optional( element ) ) {
return true;
}
value = value.toUpperCase();
// Basic format test
if ( !value.match( "((^[A-Z]{1}[0-9]{7}[A-Z0-9]{1}$|^[T]{1}[A-Z0-9]{8}$)|^[0-9]{8}[A-Z]{1}$)" ) ) {
return false;
}
// Test NIF
if ( /^[0-9]{8}[A-Z]{1}$/.test( value ) ) {
return ( "TRWAGMYFPDXBNJZSQVHLCKE".charAt( value.substring( 8, 0 ) % 23 ) === value.charAt( 8 ) );
}
// Test specials NIF (starts with K, L or M)
if ( /^[KLM]{1}/.test( value ) ) {
return ( value[ 8 ] === "TRWAGMYFPDXBNJZSQVHLCKE".charAt( value.substring( 8, 1 ) % 23 ) );
}
return false;
}, "Please specify a valid NIF number." );
/*
* Numer identyfikacji podatkowej ( NIP ) is the way tax identification used in Poland for companies
*/
$.validator.addMethod( "nipPL", function( value ) {
"use strict";
value = value.replace( /[^0-9]/g, "" );
if ( value.length !== 10 ) {
return false;
}
var arrSteps = [ 6, 5, 7, 2, 3, 4, 5, 6, 7 ];
var intSum = 0;
for ( var i = 0; i < 9; i++ ) {
intSum += arrSteps[ i ] * value[ i ];
}
var int2 = intSum % 11;
var intControlNr = ( int2 === 10 ) ? 0 : int2;
return ( intControlNr === parseInt( value[ 9 ], 10 ) );
}, "Please specify a valid NIP number." );
$.validator.addMethod( "notEqualTo", function( value, element, param ) {
return this.optional( element ) || !$.validator.methods.equalTo.call( this, value, element, param );
}, "Please enter a different value, values must not be the same." );
$.validator.addMethod( "nowhitespace", function( value, element ) {
return this.optional( element ) || /^\S+$/i.test( value );
}, "No white space please" );
/**
* Return true if the field value matches the given format RegExp
*
* @example $.validator.methods.pattern("AR1004",element,/^AR\d{4}$/)
* @result true
*
* @example $.validator.methods.pattern("BR1004",element,/^AR\d{4}$/)
* @result false
*
* @name $.validator.methods.pattern
* @type Boolean
* @cat Plugins/Validate/Methods
*/
$.validator.addMethod( "pattern", function( value, element, param ) {
if ( this.optional( element ) ) {
return true;
}
if ( typeof param === "string" ) {
param = new RegExp( "^(?:" + param + ")$" );
}
return param.test( value );
}, "Invalid format." );
/**
* Dutch phone numbers have 10 digits (or 11 and start with +31).
*/
$.validator.addMethod( "phoneNL", function( value, element ) {
return this.optional( element ) || /^((\+|00(\s|\s?\-\s?)?)31(\s|\s?\-\s?)?(\(0\)[\-\s]?)?|0)[1-9]((\s|\s?\-\s?)?[0-9]){8}$/.test( value );
}, "Please specify a valid phone number." );
/* For UK phone functions, do the following server side processing:
* Compare original input with this RegEx pattern:
* ^\(?(?:(?:00\)?[\s\-]?\(?|\+)(44)\)?[\s\-]?\(?(?:0\)?[\s\-]?\(?)?|0)([1-9]\d{1,4}\)?[\s\d\-]+)$
* Extract $1 and set $prefix to '+44' if $1 is '44', otherwise set $prefix to '0'
* Extract $2 and remove hyphens, spaces and parentheses. Phone number is combined $prefix and $2.
* A number of very detailed GB telephone number RegEx patterns can also be found at:
* http://www.aa-asterisk.org.uk/index.php/Regular_Expressions_for_Validating_and_Formatting_GB_Telephone_Numbers
*/
// Matches UK landline + mobile, accepting only 01-3 for landline or 07 for mobile to exclude many premium numbers
$.validator.addMethod( "phonesUK", function( phone_number, element ) {
phone_number = phone_number.replace( /\(|\)|\s+|-/g, "" );
return this.optional( element ) || phone_number.length > 9 &&
phone_number.match( /^(?:(?:(?:00\s?|\+)44\s?|0)(?:1\d{8,9}|[23]\d{9}|7(?:[1345789]\d{8}|624\d{6})))$/ );
}, "Please specify a valid uk phone number" );
/* For UK phone functions, do the following server side processing:
* Compare original input with this RegEx pattern:
* ^\(?(?:(?:00\)?[\s\-]?\(?|\+)(44)\)?[\s\-]?\(?(?:0\)?[\s\-]?\(?)?|0)([1-9]\d{1,4}\)?[\s\d\-]+)$
* Extract $1 and set $prefix to '+44' if $1 is '44', otherwise set $prefix to '0'
* Extract $2 and remove hyphens, spaces and parentheses. Phone number is combined $prefix and $2.
* A number of very detailed GB telephone number RegEx patterns can also be found at:
* http://www.aa-asterisk.org.uk/index.php/Regular_Expressions_for_Validating_and_Formatting_GB_Telephone_Numbers
*/
$.validator.addMethod( "phoneUK", function( phone_number, element ) {
phone_number = phone_number.replace( /\(|\)|\s+|-/g, "" );
return this.optional( element ) || phone_number.length > 9 &&
phone_number.match( /^(?:(?:(?:00\s?|\+)44\s?)|(?:\(?0))(?:\d{2}\)?\s?\d{4}\s?\d{4}|\d{3}\)?\s?\d{3}\s?\d{3,4}|\d{4}\)?\s?(?:\d{5}|\d{3}\s?\d{3})|\d{5}\)?\s?\d{4,5})$/ );
}, "Please specify a valid phone number" );
/**
* Matches US phone number format
*
* where the area code may not start with 1 and the prefix may not start with 1
* allows '-' or ' ' as a separator and allows parens around area code
* some people may want to put a '1' in front of their number
*
* 1(212)-999-2345 or
* 212 999 2344 or
* 212-999-0983
*
* but not
* 111-123-5434
* and not
* 212 123 4567
*/
$.validator.addMethod( "phoneUS", function( phone_number, element ) {
phone_number = phone_number.replace( /\s+/g, "" );
return this.optional( element ) || phone_number.length > 9 &&
phone_number.match( /^(\+?1-?)?(\([2-9]([02-9]\d|1[02-9])\)|[2-9]([02-9]\d|1[02-9]))-?[2-9]([02-9]\d|1[02-9])-?\d{4}$/ );
}, "Please specify a valid phone number" );
/*
* Valida CEPs do brasileiros:
*
* Formatos aceitos:
* 99999-999
* 99.999-999
* 99999999
*/
$.validator.addMethod( "postalcodeBR", function( cep_value, element ) {
return this.optional( element ) || /^\d{2}.\d{3}-\d{3}?$|^\d{5}-?\d{3}?$/.test( cep_value );
}, "Informe um CEP válido." );
/**
* Matches a valid Canadian Postal Code
*
* @example jQuery.validator.methods.postalCodeCA( "H0H 0H0", element )
* @result true
*
* @example jQuery.validator.methods.postalCodeCA( "H0H0H0", element )
* @result false
*
* @name jQuery.validator.methods.postalCodeCA
* @type Boolean
* @cat Plugins/Validate/Methods
*/
$.validator.addMethod( "postalCodeCA", function( value, element ) {
return this.optional( element ) || /^[ABCEGHJKLMNPRSTVXY]\d[ABCEGHJKLMNPRSTVWXYZ] *\d[ABCEGHJKLMNPRSTVWXYZ]\d$/i.test( value );
}, "Please specify a valid postal code" );
/* Matches Italian postcode (CAP) */
$.validator.addMethod( "postalcodeIT", function( value, element ) {
return this.optional( element ) || /^\d{5}$/.test( value );
}, "Please specify a valid postal code" );
$.validator.addMethod( "postalcodeNL", function( value, element ) {
return this.optional( element ) || /^[1-9][0-9]{3}\s?[a-zA-Z]{2}$/.test( value );
}, "Please specify a valid postal code" );
// Matches UK postcode. Does not match to UK Channel Islands that have their own postcodes (non standard UK)
$.validator.addMethod( "postcodeUK", function( value, element ) {
return this.optional( element ) || /^((([A-PR-UWYZ][0-9])|([A-PR-UWYZ][0-9][0-9])|([A-PR-UWYZ][A-HK-Y][0-9])|([A-PR-UWYZ][A-HK-Y][0-9][0-9])|([A-PR-UWYZ][0-9][A-HJKSTUW])|([A-PR-UWYZ][A-HK-Y][0-9][ABEHMNPRVWXY]))\s?([0-9][ABD-HJLNP-UW-Z]{2})|(GIR)\s?(0AA))$/i.test( value );
}, "Please specify a valid UK postcode" );
/*
* Lets you say "at least X inputs that match selector Y must be filled."
*
* The end result is that neither of these inputs:
*
*
*
*
* ...will validate unless at least one of them is filled.
*
* partnumber: {require_from_group: [1,".productinfo"]},
* description: {require_from_group: [1,".productinfo"]}
*
* options[0]: number of fields that must be filled in the group
* options[1]: CSS selector that defines the group of conditionally required fields
*/
$.validator.addMethod( "require_from_group", function( value, element, options ) {
var $fields = $( options[ 1 ], element.form ),
$fieldsFirst = $fields.eq( 0 ),
validator = $fieldsFirst.data( "valid_req_grp" ) ? $fieldsFirst.data( "valid_req_grp" ) : $.extend( {}, this ),
isValid = $fields.filter( function() {
return validator.elementValue( this );
} ).length >= options[ 0 ];
// Store the cloned validator for future validation
$fieldsFirst.data( "valid_req_grp", validator );
// If element isn't being validated, run each require_from_group field's validation rules
if ( !$( element ).data( "being_validated" ) ) {
$fields.data( "being_validated", true );
$fields.each( function() {
validator.element( this );
} );
$fields.data( "being_validated", false );
}
return isValid;
}, $.validator.format( "Please fill at least {0} of these fields." ) );
/*
* Lets you say "either at least X inputs that match selector Y must be filled,
* OR they must all be skipped (left blank)."
*
* The end result, is that none of these inputs:
*
*
*
*
*
* ...will validate unless either at least two of them are filled,
* OR none of them are.
*
* partnumber: {skip_or_fill_minimum: [2,".productinfo"]},
* description: {skip_or_fill_minimum: [2,".productinfo"]},
* color: {skip_or_fill_minimum: [2,".productinfo"]}
*
* options[0]: number of fields that must be filled in the group
* options[1]: CSS selector that defines the group of conditionally required fields
*
*/
$.validator.addMethod( "skip_or_fill_minimum", function( value, element, options ) {
var $fields = $( options[ 1 ], element.form ),
$fieldsFirst = $fields.eq( 0 ),
validator = $fieldsFirst.data( "valid_skip" ) ? $fieldsFirst.data( "valid_skip" ) : $.extend( {}, this ),
numberFilled = $fields.filter( function() {
return validator.elementValue( this );
} ).length,
isValid = numberFilled === 0 || numberFilled >= options[ 0 ];
// Store the cloned validator for future validation
$fieldsFirst.data( "valid_skip", validator );
// If element isn't being validated, run each skip_or_fill_minimum field's validation rules
if ( !$( element ).data( "being_validated" ) ) {
$fields.data( "being_validated", true );
$fields.each( function() {
validator.element( this );
} );
$fields.data( "being_validated", false );
}
return isValid;
}, $.validator.format( "Please either skip these fields or fill at least {0} of them." ) );
/* Validates US States and/or Territories by @jdforsythe
* Can be case insensitive or require capitalization - default is case insensitive
* Can include US Territories or not - default does not
* Can include US Military postal abbreviations (AA, AE, AP) - default does not
*
* Note: "States" always includes DC (District of Colombia)
*
* Usage examples:
*
* This is the default - case insensitive, no territories, no military zones
* stateInput: {
* caseSensitive: false,
* includeTerritories: false,
* includeMilitary: false
* }
*
* Only allow capital letters, no territories, no military zones
* stateInput: {
* caseSensitive: false
* }
*
* Case insensitive, include territories but not military zones
* stateInput: {
* includeTerritories: true
* }
*
* Only allow capital letters, include territories and military zones
* stateInput: {
* caseSensitive: true,
* includeTerritories: true,
* includeMilitary: true
* }
*
*/
$.validator.addMethod( "stateUS", function( value, element, options ) {
var isDefault = typeof options === "undefined",
caseSensitive = ( isDefault || typeof options.caseSensitive === "undefined" ) ? false : options.caseSensitive,
includeTerritories = ( isDefault || typeof options.includeTerritories === "undefined" ) ? false : options.includeTerritories,
includeMilitary = ( isDefault || typeof options.includeMilitary === "undefined" ) ? false : options.includeMilitary,
regex;
if ( !includeTerritories && !includeMilitary ) {
regex = "^(A[KLRZ]|C[AOT]|D[CE]|FL|GA|HI|I[ADLN]|K[SY]|LA|M[ADEINOST]|N[CDEHJMVY]|O[HKR]|PA|RI|S[CD]|T[NX]|UT|V[AT]|W[AIVY])$";
} else if ( includeTerritories && includeMilitary ) {
regex = "^(A[AEKLPRSZ]|C[AOT]|D[CE]|FL|G[AU]|HI|I[ADLN]|K[SY]|LA|M[ADEINOPST]|N[CDEHJMVY]|O[HKR]|P[AR]|RI|S[CD]|T[NX]|UT|V[AIT]|W[AIVY])$";
} else if ( includeTerritories ) {
regex = "^(A[KLRSZ]|C[AOT]|D[CE]|FL|G[AU]|HI|I[ADLN]|K[SY]|LA|M[ADEINOPST]|N[CDEHJMVY]|O[HKR]|P[AR]|RI|S[CD]|T[NX]|UT|V[AIT]|W[AIVY])$";
} else {
regex = "^(A[AEKLPRZ]|C[AOT]|D[CE]|FL|GA|HI|I[ADLN]|K[SY]|LA|M[ADEINOST]|N[CDEHJMVY]|O[HKR]|PA|RI|S[CD]|T[NX]|UT|V[AT]|W[AIVY])$";
}
regex = caseSensitive ? new RegExp( regex ) : new RegExp( regex, "i" );
return this.optional( element ) || regex.test( value );
}, "Please specify a valid state" );
// TODO check if value starts with <, otherwise don't try stripping anything
$.validator.addMethod( "strippedminlength", function( value, element, param ) {
return $( value ).text().length >= param;
}, $.validator.format( "Please enter at least {0} characters" ) );
$.validator.addMethod( "time", function( value, element ) {
return this.optional( element ) || /^([01]\d|2[0-3]|[0-9])(:[0-5]\d){1,2}$/.test( value );
}, "Please enter a valid time, between 00:00 and 23:59" );
$.validator.addMethod( "time12h", function( value, element ) {
return this.optional( element ) || /^((0?[1-9]|1[012])(:[0-5]\d){1,2}(\ ?[AP]M))$/i.test( value );
}, "Please enter a valid time in 12-hour am/pm format" );
// Same as url, but TLD is optional
$.validator.addMethod( "url2", function( value, element ) {
return this.optional( element ) || /^(https?|ftp):\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)*(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?)(:\d*)?)(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i.test( value );
}, $.validator.messages.url );
/**
* Return true, if the value is a valid vehicle identification number (VIN).
*
* Works with all kind of text inputs.
*
* @example
* @desc Declares a required input element whose value must be a valid vehicle identification number.
*
* @name $.validator.methods.vinUS
* @type Boolean
* @cat Plugins/Validate/Methods
*/
$.validator.addMethod( "vinUS", function( v ) {
if ( v.length !== 17 ) {
return false;
}
var LL = [ "A", "B", "C", "D", "E", "F", "G", "H", "J", "K", "L", "M", "N", "P", "R", "S", "T", "U", "V", "W", "X", "Y", "Z" ],
VL = [ 1, 2, 3, 4, 5, 6, 7, 8, 1, 2, 3, 4, 5, 7, 9, 2, 3, 4, 5, 6, 7, 8, 9 ],
FL = [ 8, 7, 6, 5, 4, 3, 2, 10, 0, 9, 8, 7, 6, 5, 4, 3, 2 ],
rs = 0,
i, n, d, f, cd, cdv;
for ( i = 0; i < 17; i++ ) {
f = FL[ i ];
d = v.slice( i, i + 1 );
if ( i === 8 ) {
cdv = d;
}
if ( !isNaN( d ) ) {
d *= f;
} else {
for ( n = 0; n < LL.length; n++ ) {
if ( d.toUpperCase() === LL[ n ] ) {
d = VL[ n ];
d *= f;
if ( isNaN( cdv ) && n === 8 ) {
cdv = LL[ n ];
}
break;
}
}
}
rs += d;
}
cd = rs % 11;
if ( cd === 10 ) {
cd = "X";
}
if ( cd === cdv ) {
return true;
}
return false;
}, "The specified vehicle identification number (VIN) is invalid." );
$.validator.addMethod( "zipcodeUS", function( value, element ) {
return this.optional( element ) || /^\d{5}(-\d{4})?$/.test( value );
}, "The specified US ZIP Code is invalid" );
$.validator.addMethod( "ziprange", function( value, element ) {
return this.optional( element ) || /^90[2-5]\d\{2\}-\d{4}$/.test( value );
}, "Your ZIP-code must be in the range 902xx-xxxx to 905xx-xxxx" );
return $;
}));
================================================
FILE: public/admin-panel/assets/libs/jquery-validation/dist/localization/messages_ar.js
================================================
(function( factory ) {
if ( typeof define === "function" && define.amd ) {
define( ["jquery", "../jquery.validate"], factory );
} else if (typeof module === "object" && module.exports) {
module.exports = factory( require( "jquery" ) );
} else {
factory( jQuery );
}
}(function( $ ) {
/*
* Translated default messages for the jQuery validation plugin.
* Locale: AR (Arabic; العربية)
*/
$.extend( $.validator.messages, {
required: "هذا الحقل إلزامي",
remote: "يرجى تصحيح هذا الحقل للمتابعة",
email: "رجاء إدخال عنوان بريد إلكتروني صحيح",
url: "رجاء إدخال عنوان موقع إلكتروني صحيح",
date: "رجاء إدخال تاريخ صحيح",
dateISO: "رجاء إدخال تاريخ صحيح (ISO)",
number: "رجاء إدخال عدد بطريقة صحيحة",
digits: "رجاء إدخال أرقام فقط",
creditcard: "رجاء إدخال رقم بطاقة ائتمان صحيح",
equalTo: "رجاء إدخال نفس القيمة",
extension: "رجاء إدخال ملف بامتداد موافق عليه",
maxlength: $.validator.format( "الحد الأقصى لعدد الحروف هو {0}" ),
minlength: $.validator.format( "الحد الأدنى لعدد الحروف هو {0}" ),
rangelength: $.validator.format( "عدد الحروف يجب أن يكون بين {0} و {1}" ),
range: $.validator.format( "رجاء إدخال عدد قيمته بين {0} و {1}" ),
max: $.validator.format( "رجاء إدخال عدد أقل من أو يساوي {0}" ),
min: $.validator.format( "رجاء إدخال عدد أكبر من أو يساوي {0}" )
} );
return $;
}));
================================================
FILE: public/admin-panel/assets/libs/jquery-validation/dist/localization/messages_az.js
================================================
(function( factory ) {
if ( typeof define === "function" && define.amd ) {
define( ["jquery", "../jquery.validate"], factory );
} else if (typeof module === "object" && module.exports) {
module.exports = factory( require( "jquery" ) );
} else {
factory( jQuery );
}
}(function( $ ) {
/*
* Translated default messages for the jQuery validation plugin.
* Locale: Az (Azeri; azərbaycan dili)
*/
$.extend( $.validator.messages, {
required: "Bu xana mütləq doldurulmalıdır.",
remote: "Zəhmət olmasa, düzgün məna daxil edin.",
email: "Zəhmət olmasa, düzgün elektron poçt daxil edin.",
url: "Zəhmət olmasa, düzgün URL daxil edin.",
date: "Zəhmət olmasa, düzgün tarix daxil edin.",
dateISO: "Zəhmət olmasa, düzgün ISO formatlı tarix daxil edin.",
number: "Zəhmət olmasa, düzgün rəqəm daxil edin.",
digits: "Zəhmət olmasa, yalnız rəqəm daxil edin.",
creditcard: "Zəhmət olmasa, düzgün kredit kart nömrəsini daxil edin.",
equalTo: "Zəhmət olmasa, eyni mənanı bir daha daxil edin.",
extension: "Zəhmət olmasa, düzgün genişlənməyə malik faylı seçin.",
maxlength: $.validator.format( "Zəhmət olmasa, {0} simvoldan çox olmayaraq daxil edin." ),
minlength: $.validator.format( "Zəhmət olmasa, {0} simvoldan az olmayaraq daxil edin." ),
rangelength: $.validator.format( "Zəhmət olmasa, {0} - {1} aralığında uzunluğa malik simvol daxil edin." ),
range: $.validator.format( "Zəhmət olmasa, {0} - {1} aralığında rəqəm daxil edin." ),
max: $.validator.format( "Zəhmət olmasa, {0} və ondan kiçik rəqəm daxil edin." ),
min: $.validator.format( "Zəhmət olmasa, {0} və ondan böyük rəqəm daxil edin" )
} );
return $;
}));
================================================
FILE: public/admin-panel/assets/libs/jquery-validation/dist/localization/messages_bg.js
================================================
(function( factory ) {
if ( typeof define === "function" && define.amd ) {
define( ["jquery", "../jquery.validate"], factory );
} else if (typeof module === "object" && module.exports) {
module.exports = factory( require( "jquery" ) );
} else {
factory( jQuery );
}
}(function( $ ) {
/*
* Translated default messages for the jQuery validation plugin.
* Locale: BG (Bulgarian; български език)
*/
$.extend( $.validator.messages, {
required: "Полето е задължително.",
remote: "Моля, въведете правилната стойност.",
email: "Моля, въведете валиден email.",
url: "Моля, въведете валидно URL.",
date: "Моля, въведете валидна дата.",
dateISO: "Моля, въведете валидна дата (ISO).",
number: "Моля, въведете валиден номер.",
digits: "Моля, въведете само цифри.",
creditcard: "Моля, въведете валиден номер на кредитна карта.",
equalTo: "Моля, въведете същата стойност отново.",
extension: "Моля, въведете стойност с валидно разширение.",
maxlength: $.validator.format( "Моля, въведете повече от {0} символа." ),
minlength: $.validator.format( "Моля, въведете поне {0} символа." ),
rangelength: $.validator.format( "Моля, въведете стойност с дължина между {0} и {1} символа." ),
range: $.validator.format( "Моля, въведете стойност между {0} и {1}." ),
max: $.validator.format( "Моля, въведете стойност по-малка или равна на {0}." ),
min: $.validator.format( "Моля, въведете стойност по-голяма или равна на {0}." )
} );
return $;
}));
================================================
FILE: public/admin-panel/assets/libs/jquery-validation/dist/localization/messages_bn_BD.js
================================================
(function( factory ) {
if ( typeof define === "function" && define.amd ) {
define( ["jquery", "../jquery.validate"], factory );
} else if (typeof module === "object" && module.exports) {
module.exports = factory( require( "jquery" ) );
} else {
factory( jQuery );
}
}(function( $ ) {
/*
* Translated default messages for the jQuery validation plugin.
* Locale: bn_BD (Bengali, Bangladesh)
*/
$.extend( $.validator.messages, {
required: "এই তথ্যটি আবশ্যক।",
remote: "এই তথ্যটি ঠিক করুন।",
email: "অনুগ্রহ করে একটি সঠিক মেইল ঠিকানা লিখুন।",
url: "অনুগ্রহ করে একটি সঠিক লিঙ্ক দিন।",
date: "তারিখ সঠিক নয়।",
dateISO: "অনুগ্রহ করে একটি সঠিক (ISO) তারিখ লিখুন।",
number: "অনুগ্রহ করে একটি সঠিক নম্বর লিখুন।",
digits: "এখানে শুধু সংখ্যা ব্যবহার করা যাবে।",
creditcard: "অনুগ্রহ করে একটি ক্রেডিট কার্ডের সঠিক নম্বর লিখুন।",
equalTo: "একই মান আবার লিখুন।",
extension: "সঠিক ধরনের ফাইল আপলোড করুন।",
maxlength: $.validator.format( "{0}টির বেশি অক্ষর লেখা যাবে না।" ),
minlength: $.validator.format( "{0}টির কম অক্ষর লেখা যাবে না।" ),
rangelength: $.validator.format( "{0} থেকে {1} টি অক্ষর সম্বলিত মান লিখুন।" ),
range: $.validator.format( "{0} থেকে {1} এর মধ্যে একটি মান ব্যবহার করুন।" ),
max: $.validator.format( "অনুগ্রহ করে {0} বা তার চাইতে কম মান ব্যবহার করুন।" ),
min: $.validator.format( "অনুগ্রহ করে {0} বা তার চাইতে বেশি মান ব্যবহার করুন।" )
} );
return $;
}));
================================================
FILE: public/admin-panel/assets/libs/jquery-validation/dist/localization/messages_ca.js
================================================
(function( factory ) {
if ( typeof define === "function" && define.amd ) {
define( ["jquery", "../jquery.validate"], factory );
} else if (typeof module === "object" && module.exports) {
module.exports = factory( require( "jquery" ) );
} else {
factory( jQuery );
}
}(function( $ ) {
/*
* Translated default messages for the jQuery validation plugin.
* Locale: CA (Catalan; català)
*/
$.extend( $.validator.messages, {
required: "Aquest camp és obligatori.",
remote: "Si us plau, omple aquest camp.",
email: "Si us plau, escriu una adreça de correu-e vàlida",
url: "Si us plau, escriu una URL vàlida.",
date: "Si us plau, escriu una data vàlida.",
dateISO: "Si us plau, escriu una data (ISO) vàlida.",
number: "Si us plau, escriu un número enter vàlid.",
digits: "Si us plau, escriu només dígits.",
creditcard: "Si us plau, escriu un número de tarjeta vàlid.",
equalTo: "Si us plau, escriu el mateix valor de nou.",
extension: "Si us plau, escriu un valor amb una extensió acceptada.",
maxlength: $.validator.format( "Si us plau, no escriguis més de {0} caracters." ),
minlength: $.validator.format( "Si us plau, no escriguis menys de {0} caracters." ),
rangelength: $.validator.format( "Si us plau, escriu un valor entre {0} i {1} caracters." ),
range: $.validator.format( "Si us plau, escriu un valor entre {0} i {1}." ),
max: $.validator.format( "Si us plau, escriu un valor menor o igual a {0}." ),
min: $.validator.format( "Si us plau, escriu un valor major o igual a {0}." )
} );
return $;
}));
================================================
FILE: public/admin-panel/assets/libs/jquery-validation/dist/localization/messages_cs.js
================================================
(function( factory ) {
if ( typeof define === "function" && define.amd ) {
define( ["jquery", "../jquery.validate"], factory );
} else if (typeof module === "object" && module.exports) {
module.exports = factory( require( "jquery" ) );
} else {
factory( jQuery );
}
}(function( $ ) {
/*
* Translated default messages for the jQuery validation plugin.
* Locale: CS (Czech; čeština, český jazyk)
*/
$.extend( $.validator.messages, {
required: "Tento údaj je povinný.",
remote: "Prosím, opravte tento údaj.",
email: "Prosím, zadejte platný e-mail.",
url: "Prosím, zadejte platné URL.",
date: "Prosím, zadejte platné datum.",
dateISO: "Prosím, zadejte platné datum (ISO).",
number: "Prosím, zadejte číslo.",
digits: "Prosím, zadávejte pouze číslice.",
creditcard: "Prosím, zadejte číslo kreditní karty.",
equalTo: "Prosím, zadejte znovu stejnou hodnotu.",
extension: "Prosím, zadejte soubor se správnou příponou.",
maxlength: $.validator.format( "Prosím, zadejte nejvíce {0} znaků." ),
minlength: $.validator.format( "Prosím, zadejte nejméně {0} znaků." ),
rangelength: $.validator.format( "Prosím, zadejte od {0} do {1} znaků." ),
range: $.validator.format( "Prosím, zadejte hodnotu od {0} do {1}." ),
max: $.validator.format( "Prosím, zadejte hodnotu menší nebo rovnu {0}." ),
min: $.validator.format( "Prosím, zadejte hodnotu větší nebo rovnu {0}." )
} );
return $;
}));
================================================
FILE: public/admin-panel/assets/libs/jquery-validation/dist/localization/messages_da.js
================================================
(function( factory ) {
if ( typeof define === "function" && define.amd ) {
define( ["jquery", "../jquery.validate"], factory );
} else if (typeof module === "object" && module.exports) {
module.exports = factory( require( "jquery" ) );
} else {
factory( jQuery );
}
}(function( $ ) {
/*
* Translated default messages for the jQuery validation plugin.
* Locale: DA (Danish; dansk)
*/
$.extend( $.validator.messages, {
required: "Dette felt er påkrævet.",
maxlength: $.validator.format( "Indtast højst {0} tegn." ),
minlength: $.validator.format( "Indtast mindst {0} tegn." ),
rangelength: $.validator.format( "Indtast mindst {0} og højst {1} tegn." ),
email: "Indtast en gyldig email-adresse.",
url: "Indtast en gyldig URL.",
date: "Indtast en gyldig dato.",
number: "Indtast et tal.",
digits: "Indtast kun cifre.",
equalTo: "Indtast den samme værdi igen.",
range: $.validator.format( "Angiv en værdi mellem {0} og {1}." ),
max: $.validator.format( "Angiv en værdi der højst er {0}." ),
min: $.validator.format( "Angiv en værdi der mindst er {0}." ),
creditcard: "Indtast et gyldigt kreditkortnummer."
} );
return $;
}));
================================================
FILE: public/admin-panel/assets/libs/jquery-validation/dist/localization/messages_de.js
================================================
(function( factory ) {
if ( typeof define === "function" && define.amd ) {
define( ["jquery", "../jquery.validate"], factory );
} else if (typeof module === "object" && module.exports) {
module.exports = factory( require( "jquery" ) );
} else {
factory( jQuery );
}
}(function( $ ) {
/*
* Translated default messages for the jQuery validation plugin.
* Locale: DE (German, Deutsch)
*/
$.extend( $.validator.messages, {
required: "Dieses Feld ist ein Pflichtfeld.",
maxlength: $.validator.format( "Geben Sie bitte maximal {0} Zeichen ein." ),
minlength: $.validator.format( "Geben Sie bitte mindestens {0} Zeichen ein." ),
rangelength: $.validator.format( "Geben Sie bitte mindestens {0} und maximal {1} Zeichen ein." ),
email: "Geben Sie bitte eine gültige E-Mail Adresse ein.",
url: "Geben Sie bitte eine gültige URL ein.",
date: "Bitte geben Sie ein gültiges Datum ein.",
number: "Geben Sie bitte eine Nummer ein.",
digits: "Geben Sie bitte nur Ziffern ein.",
equalTo: "Bitte denselben Wert wiederholen.",
range: $.validator.format( "Geben Sie bitte einen Wert zwischen {0} und {1} ein." ),
max: $.validator.format( "Geben Sie bitte einen Wert kleiner oder gleich {0} ein." ),
min: $.validator.format( "Geben Sie bitte einen Wert größer oder gleich {0} ein." ),
creditcard: "Geben Sie bitte eine gültige Kreditkarten-Nummer ein."
} );
return $;
}));
================================================
FILE: public/admin-panel/assets/libs/jquery-validation/dist/localization/messages_el.js
================================================
(function( factory ) {
if ( typeof define === "function" && define.amd ) {
define( ["jquery", "../jquery.validate"], factory );
} else if (typeof module === "object" && module.exports) {
module.exports = factory( require( "jquery" ) );
} else {
factory( jQuery );
}
}(function( $ ) {
/*
* Translated default messages for the jQuery validation plugin.
* Locale: EL (Greek; ελληνικά)
*/
$.extend( $.validator.messages, {
required: "Αυτό το πεδίο είναι υποχρεωτικό.",
remote: "Παρακαλώ διορθώστε αυτό το πεδίο.",
email: "Παρακαλώ εισάγετε μια έγκυρη διεύθυνση email.",
url: "Παρακαλώ εισάγετε ένα έγκυρο URL.",
date: "Παρακαλώ εισάγετε μια έγκυρη ημερομηνία.",
dateISO: "Παρακαλώ εισάγετε μια έγκυρη ημερομηνία (ISO).",
number: "Παρακαλώ εισάγετε έναν έγκυρο αριθμό.",
digits: "Παρακαλώ εισάγετε μόνο αριθμητικά ψηφία.",
creditcard: "Παρακαλώ εισάγετε έναν έγκυρο αριθμό πιστωτικής κάρτας.",
equalTo: "Παρακαλώ εισάγετε την ίδια τιμή ξανά.",
extension: "Παρακαλώ εισάγετε μια τιμή με έγκυρη επέκταση αρχείου.",
maxlength: $.validator.format( "Παρακαλώ εισάγετε μέχρι και {0} χαρακτήρες." ),
minlength: $.validator.format( "Παρακαλώ εισάγετε τουλάχιστον {0} χαρακτήρες." ),
rangelength: $.validator.format( "Παρακαλώ εισάγετε μια τιμή με μήκος μεταξύ {0} και {1} χαρακτήρων." ),
range: $.validator.format( "Παρακαλώ εισάγετε μια τιμή μεταξύ {0} και {1}." ),
max: $.validator.format( "Παρακαλώ εισάγετε μια τιμή μικρότερη ή ίση του {0}." ),
min: $.validator.format( "Παρακαλώ εισάγετε μια τιμή μεγαλύτερη ή ίση του {0}." )
} );
return $;
}));
================================================
FILE: public/admin-panel/assets/libs/jquery-validation/dist/localization/messages_es.js
================================================
(function( factory ) {
if ( typeof define === "function" && define.amd ) {
define( ["jquery", "../jquery.validate"], factory );
} else if (typeof module === "object" && module.exports) {
module.exports = factory( require( "jquery" ) );
} else {
factory( jQuery );
}
}(function( $ ) {
/*
* Translated default messages for the jQuery validation plugin.
* Locale: ES (Spanish; Español)
*/
$.extend( $.validator.messages, {
required: "Este campo es obligatorio.",
remote: "Por favor, rellena este campo.",
email: "Por favor, escribe una dirección de correo válida.",
url: "Por favor, escribe una URL válida.",
date: "Por favor, escribe una fecha válida.",
dateISO: "Por favor, escribe una fecha (ISO) válida.",
number: "Por favor, escribe un número válido.",
digits: "Por favor, escribe sólo dígitos.",
creditcard: "Por favor, escribe un número de tarjeta válido.",
equalTo: "Por favor, escribe el mismo valor de nuevo.",
extension: "Por favor, escribe un valor con una extensión aceptada.",
maxlength: $.validator.format( "Por favor, no escribas más de {0} caracteres." ),
minlength: $.validator.format( "Por favor, no escribas menos de {0} caracteres." ),
rangelength: $.validator.format( "Por favor, escribe un valor entre {0} y {1} caracteres." ),
range: $.validator.format( "Por favor, escribe un valor entre {0} y {1}." ),
max: $.validator.format( "Por favor, escribe un valor menor o igual a {0}." ),
min: $.validator.format( "Por favor, escribe un valor mayor o igual a {0}." ),
nifES: "Por favor, escribe un NIF válido.",
nieES: "Por favor, escribe un NIE válido.",
cifES: "Por favor, escribe un CIF válido."
} );
return $;
}));
================================================
FILE: public/admin-panel/assets/libs/jquery-validation/dist/localization/messages_es_AR.js
================================================
(function( factory ) {
if ( typeof define === "function" && define.amd ) {
define( ["jquery", "../jquery.validate"], factory );
} else if (typeof module === "object" && module.exports) {
module.exports = factory( require( "jquery" ) );
} else {
factory( jQuery );
}
}(function( $ ) {
/*
* Translated default messages for the jQuery validation plugin.
* Locale: ES (Spanish; Español)
* Region: AR (Argentina)
*/
$.extend( $.validator.messages, {
required: "Este campo es obligatorio.",
remote: "Por favor, completá este campo.",
email: "Por favor, escribí una dirección de correo válida.",
url: "Por favor, escribí una URL válida.",
date: "Por favor, escribí una fecha válida.",
dateISO: "Por favor, escribí una fecha (ISO) válida.",
number: "Por favor, escribí un número entero válido.",
digits: "Por favor, escribí sólo dígitos.",
creditcard: "Por favor, escribí un número de tarjeta válido.",
equalTo: "Por favor, escribí el mismo valor de nuevo.",
extension: "Por favor, escribí un valor con una extensión aceptada.",
maxlength: $.validator.format( "Por favor, no escribas más de {0} caracteres." ),
minlength: $.validator.format( "Por favor, no escribas menos de {0} caracteres." ),
rangelength: $.validator.format( "Por favor, escribí un valor entre {0} y {1} caracteres." ),
range: $.validator.format( "Por favor, escribí un valor entre {0} y {1}." ),
max: $.validator.format( "Por favor, escribí un valor menor o igual a {0}." ),
min: $.validator.format( "Por favor, escribí un valor mayor o igual a {0}." ),
nifES: "Por favor, escribí un NIF válido.",
nieES: "Por favor, escribí un NIE válido.",
cifES: "Por favor, escribí un CIF válido."
} );
return $;
}));
================================================
FILE: public/admin-panel/assets/libs/jquery-validation/dist/localization/messages_es_PE.js
================================================
(function( factory ) {
if ( typeof define === "function" && define.amd ) {
define( ["jquery", "../jquery.validate"], factory );
} else if (typeof module === "object" && module.exports) {
module.exports = factory( require( "jquery" ) );
} else {
factory( jQuery );
}
}(function( $ ) {
/*
* Translated default messages for the jQuery validation plugin.
* Locale: ES (Spanish; Español)
* Region: PE (Perú)
*/
$.extend( $.validator.messages, {
required: "Este campo es obligatorio.",
remote: "Por favor, llene este campo.",
email: "Por favor, escriba un correo electrónico válido.",
url: "Por favor, escriba una URL válida.",
date: "Por favor, escriba una fecha válida.",
dateISO: "Por favor, escriba una fecha (ISO) válida.",
number: "Por favor, escriba un número válido.",
digits: "Por favor, escriba sólo dígitos.",
creditcard: "Por favor, escriba un número de tarjeta válido.",
equalTo: "Por favor, escriba el mismo valor de nuevo.",
extension: "Por favor, escriba un valor con una extensión permitida.",
maxlength: $.validator.format( "Por favor, no escriba más de {0} caracteres." ),
minlength: $.validator.format( "Por favor, no escriba menos de {0} caracteres." ),
rangelength: $.validator.format( "Por favor, escriba un valor entre {0} y {1} caracteres." ),
range: $.validator.format( "Por favor, escriba un valor entre {0} y {1}." ),
max: $.validator.format( "Por favor, escriba un valor menor o igual a {0}." ),
min: $.validator.format( "Por favor, escriba un valor mayor o igual a {0}." ),
nifES: "Por favor, escriba un NIF válido.",
nieES: "Por favor, escriba un NIE válido.",
cifES: "Por favor, escriba un CIF válido."
} );
return $;
}));
================================================
FILE: public/admin-panel/assets/libs/jquery-validation/dist/localization/messages_et.js
================================================
(function( factory ) {
if ( typeof define === "function" && define.amd ) {
define( ["jquery", "../jquery.validate"], factory );
} else if (typeof module === "object" && module.exports) {
module.exports = factory( require( "jquery" ) );
} else {
factory( jQuery );
}
}(function( $ ) {
/*
* Translated default messages for the jQuery validation plugin.
* Locale: ET (Estonian; eesti, eesti keel)
*/
$.extend( $.validator.messages, {
required: "See väli peab olema täidetud.",
maxlength: $.validator.format( "Palun sisestage vähem kui {0} tähemärki." ),
minlength: $.validator.format( "Palun sisestage vähemalt {0} tähemärki." ),
rangelength: $.validator.format( "Palun sisestage väärtus vahemikus {0} kuni {1} tähemärki." ),
email: "Palun sisestage korrektne e-maili aadress.",
url: "Palun sisestage korrektne URL.",
date: "Palun sisestage korrektne kuupäev.",
dateISO: "Palun sisestage korrektne kuupäev (YYYY-MM-DD).",
number: "Palun sisestage korrektne number.",
digits: "Palun sisestage ainult numbreid.",
equalTo: "Palun sisestage sama väärtus uuesti.",
range: $.validator.format( "Palun sisestage väärtus vahemikus {0} kuni {1}." ),
max: $.validator.format( "Palun sisestage väärtus, mis on väiksem või võrdne arvuga {0}." ),
min: $.validator.format( "Palun sisestage väärtus, mis on suurem või võrdne arvuga {0}." ),
creditcard: "Palun sisestage korrektne krediitkaardi number."
} );
return $;
}));
================================================
FILE: public/admin-panel/assets/libs/jquery-validation/dist/localization/messages_eu.js
================================================
(function( factory ) {
if ( typeof define === "function" && define.amd ) {
define( ["jquery", "../jquery.validate"], factory );
} else if (typeof module === "object" && module.exports) {
module.exports = factory( require( "jquery" ) );
} else {
factory( jQuery );
}
}(function( $ ) {
/*
* Translated default messages for the jQuery validation plugin.
* Locale: EU (Basque; euskara, euskera)
*/
$.extend( $.validator.messages, {
required: "Eremu hau beharrezkoa da.",
remote: "Mesedez, bete eremu hau.",
email: "Mesedez, idatzi baliozko posta helbide bat.",
url: "Mesedez, idatzi baliozko URL bat.",
date: "Mesedez, idatzi baliozko data bat.",
dateISO: "Mesedez, idatzi baliozko (ISO) data bat.",
number: "Mesedez, idatzi baliozko zenbaki oso bat.",
digits: "Mesedez, idatzi digituak soilik.",
creditcard: "Mesedez, idatzi baliozko txartel zenbaki bat.",
equalTo: "Mesedez, idatzi berdina berriro ere.",
extension: "Mesedez, idatzi onartutako luzapena duen balio bat.",
maxlength: $.validator.format( "Mesedez, ez idatzi {0} karaktere baino gehiago." ),
minlength: $.validator.format( "Mesedez, ez idatzi {0} karaktere baino gutxiago." ),
rangelength: $.validator.format( "Mesedez, idatzi {0} eta {1} karaktere arteko balio bat." ),
range: $.validator.format( "Mesedez, idatzi {0} eta {1} arteko balio bat." ),
max: $.validator.format( "Mesedez, idatzi {0} edo txikiagoa den balio bat." ),
min: $.validator.format( "Mesedez, idatzi {0} edo handiagoa den balio bat." )
} );
return $;
}));
================================================
FILE: public/admin-panel/assets/libs/jquery-validation/dist/localization/messages_fa.js
================================================
(function( factory ) {
if ( typeof define === "function" && define.amd ) {
define( ["jquery", "../jquery.validate"], factory );
} else if (typeof module === "object" && module.exports) {
module.exports = factory( require( "jquery" ) );
} else {
factory( jQuery );
}
}(function( $ ) {
/*
* Translated default messages for the jQuery validation plugin.
* Locale: FA (Persian; فارسی)
*/
$.extend( $.validator.messages, {
required: "تکمیل این فیلد اجباری است.",
remote: "لطفا این فیلد را تصحیح کنید.",
email: ".لطفا یک ایمیل صحیح وارد کنید",
url: "لطفا آدرس صحیح وارد کنید.",
date: "لطفا یک تاریخ صحیح وارد کنید",
dateFA: "لطفا یک تاریخ صحیح وارد کنید",
dateISO: "لطفا تاریخ صحیح وارد کنید (ISO).",
number: "لطفا عدد صحیح وارد کنید.",
digits: "لطفا تنها رقم وارد کنید",
creditcard: "لطفا کریدیت کارت صحیح وارد کنید.",
equalTo: "لطفا مقدار برابری وارد کنید",
extension: "لطفا مقداری وارد کنید که ",
maxlength: $.validator.format( "لطفا بیشتر از {0} حرف وارد نکنید." ),
minlength: $.validator.format( "لطفا کمتر از {0} حرف وارد نکنید." ),
rangelength: $.validator.format( "لطفا مقداری بین {0} تا {1} حرف وارد کنید." ),
range: $.validator.format( "لطفا مقداری بین {0} تا {1} حرف وارد کنید." ),
max: $.validator.format( "لطفا مقداری کمتر از {0} وارد کنید." ),
min: $.validator.format( "لطفا مقداری بیشتر از {0} وارد کنید." ),
minWords: $.validator.format( "لطفا حداقل {0} کلمه وارد کنید." ),
maxWords: $.validator.format( "لطفا حداکثر {0} کلمه وارد کنید." )
} );
return $;
}));
================================================
FILE: public/admin-panel/assets/libs/jquery-validation/dist/localization/messages_fi.js
================================================
(function( factory ) {
if ( typeof define === "function" && define.amd ) {
define( ["jquery", "../jquery.validate"], factory );
} else if (typeof module === "object" && module.exports) {
module.exports = factory( require( "jquery" ) );
} else {
factory( jQuery );
}
}(function( $ ) {
/*
* Translated default messages for the jQuery validation plugin.
* Locale: FI (Finnish; suomi, suomen kieli)
*/
$.extend( $.validator.messages, {
required: "Tämä kenttä on pakollinen.",
email: "Syötä oikea sähköpostiosoite.",
url: "Syötä oikea URL-osoite.",
date: "Syötä oikea päivämäärä.",
dateISO: "Syötä oikea päivämäärä muodossa VVVV-KK-PP.",
number: "Syötä luku.",
creditcard: "Syötä voimassa oleva luottokorttinumero.",
digits: "Syötä pelkästään numeroita.",
equalTo: "Syötä sama arvo uudestaan.",
maxlength: $.validator.format( "Voit syöttää enintään {0} merkkiä." ),
minlength: $.validator.format( "Vähintään {0} merkkiä." ),
rangelength: $.validator.format( "Syötä vähintään {0} ja enintään {1} merkkiä." ),
range: $.validator.format( "Syötä arvo väliltä {0}–{1}." ),
max: $.validator.format( "Syötä arvo, joka on enintään {0}." ),
min: $.validator.format( "Syötä arvo, joka on vähintään {0}." )
} );
return $;
}));
================================================
FILE: public/admin-panel/assets/libs/jquery-validation/dist/localization/messages_fr.js
================================================
(function( factory ) {
if ( typeof define === "function" && define.amd ) {
define( ["jquery", "../jquery.validate"], factory );
} else if (typeof module === "object" && module.exports) {
module.exports = factory( require( "jquery" ) );
} else {
factory( jQuery );
}
}(function( $ ) {
/*
* Translated default messages for the jQuery validation plugin.
* Locale: FR (French; français)
*/
$.extend( $.validator.messages, {
required: "Ce champ est obligatoire.",
remote: "Veuillez corriger ce champ.",
email: "Veuillez fournir une adresse électronique valide.",
url: "Veuillez fournir une adresse URL valide.",
date: "Veuillez fournir une date valide.",
dateISO: "Veuillez fournir une date valide (ISO).",
number: "Veuillez fournir un numéro valide.",
digits: "Veuillez fournir seulement des chiffres.",
creditcard: "Veuillez fournir un numéro de carte de crédit valide.",
equalTo: "Veuillez fournir encore la même valeur.",
notEqualTo: "Veuillez fournir une valeur différente, les valeurs ne doivent pas être identiques.",
extension: "Veuillez fournir une valeur avec une extension valide.",
maxlength: $.validator.format( "Veuillez fournir au plus {0} caractères." ),
minlength: $.validator.format( "Veuillez fournir au moins {0} caractères." ),
rangelength: $.validator.format( "Veuillez fournir une valeur qui contient entre {0} et {1} caractères." ),
range: $.validator.format( "Veuillez fournir une valeur entre {0} et {1}." ),
max: $.validator.format( "Veuillez fournir une valeur inférieure ou égale à {0}." ),
min: $.validator.format( "Veuillez fournir une valeur supérieure ou égale à {0}." ),
step: $.validator.format( "Veuillez fournir une valeur multiple de {0}." ),
maxWords: $.validator.format( "Veuillez fournir au plus {0} mots." ),
minWords: $.validator.format( "Veuillez fournir au moins {0} mots." ),
rangeWords: $.validator.format( "Veuillez fournir entre {0} et {1} mots." ),
letterswithbasicpunc: "Veuillez fournir seulement des lettres et des signes de ponctuation.",
alphanumeric: "Veuillez fournir seulement des lettres, nombres, espaces et soulignages.",
lettersonly: "Veuillez fournir seulement des lettres.",
nowhitespace: "Veuillez ne pas inscrire d'espaces blancs.",
ziprange: "Veuillez fournir un code postal entre 902xx-xxxx et 905-xx-xxxx.",
integer: "Veuillez fournir un nombre non décimal qui est positif ou négatif.",
vinUS: "Veuillez fournir un numéro d'identification du véhicule (VIN).",
dateITA: "Veuillez fournir une date valide.",
time: "Veuillez fournir une heure valide entre 00:00 et 23:59.",
phoneUS: "Veuillez fournir un numéro de téléphone valide.",
phoneUK: "Veuillez fournir un numéro de téléphone valide.",
mobileUK: "Veuillez fournir un numéro de téléphone mobile valide.",
strippedminlength: $.validator.format( "Veuillez fournir au moins {0} caractères." ),
email2: "Veuillez fournir une adresse électronique valide.",
url2: "Veuillez fournir une adresse URL valide.",
creditcardtypes: "Veuillez fournir un numéro de carte de crédit valide.",
ipv4: "Veuillez fournir une adresse IP v4 valide.",
ipv6: "Veuillez fournir une adresse IP v6 valide.",
require_from_group: "Veuillez fournir au moins {0} de ces champs.",
nifES: "Veuillez fournir un numéro NIF valide.",
nieES: "Veuillez fournir un numéro NIE valide.",
cifES: "Veuillez fournir un numéro CIF valide.",
postalCodeCA: "Veuillez fournir un code postal valide."
} );
return $;
}));
================================================
FILE: public/admin-panel/assets/libs/jquery-validation/dist/localization/messages_ge.js
================================================
(function( factory ) {
if ( typeof define === "function" && define.amd ) {
define( ["jquery", "../jquery.validate"], factory );
} else if (typeof module === "object" && module.exports) {
module.exports = factory( require( "jquery" ) );
} else {
factory( jQuery );
}
}(function( $ ) {
/**
* @author @tatocaster
* Translated default messages for the jQuery validation plugin.
* Locale: GE (Georgian; ქართული)
*/
$.extend( $.validator.messages, {
required: "ეს ველი სავალდებულოა",
remote: "გთხოვთ შეასწოროთ.",
email: "გთხოვთ შეიყვანოთ სწორი ფორმატით.",
url: "გთხოვთ შეიყვანოთ სწორი ფორმატით.",
date: "გთხოვთ შეიყვანოთ სწორი თარიღი.",
dateISO: "გთხოვთ შეიყვანოთ სწორი ფორმატით (ISO).",
number: "გთხოვთ შეიყვანოთ რიცხვი.",
digits: "დაშვებულია მხოლოდ ციფრები.",
creditcard: "გთხოვთ შეიყვანოთ სწორი ფორმატის ბარათის კოდი.",
equalTo: "გთხოვთ შეიყვანოთ იგივე მნიშვნელობა.",
maxlength: $.validator.format( "გთხოვთ შეიყვანოთ არა უმეტეს {0} სიმბოლოსი." ),
minlength: $.validator.format( "შეიყვანეთ მინიმუმ {0} სიმბოლო." ),
rangelength: $.validator.format( "გთხოვთ შეიყვანოთ {0} -დან {1} -მდე რაოდენობის სიმბოლოები." ),
range: $.validator.format( "შეიყვანეთ {0} -სა {1} -ს შორის." ),
max: $.validator.format( "გთხოვთ შეიყვანოთ მნიშვნელობა ნაკლები ან ტოლი {0} -ს." ),
min: $.validator.format( "გთხოვთ შეიყვანოთ მნიშვნელობა მეტი ან ტოლი {0} -ს." )
} );
return $;
}));
================================================
FILE: public/admin-panel/assets/libs/jquery-validation/dist/localization/messages_gl.js
================================================
(function( factory ) {
if ( typeof define === "function" && define.amd ) {
define( ["jquery", "../jquery.validate"], factory );
} else if (typeof module === "object" && module.exports) {
module.exports = factory( require( "jquery" ) );
} else {
factory( jQuery );
}
}(function( $ ) {
/*
* Translated default messages for the jQuery validation plugin.
* Locale: GL (Galician; Galego)
*/
( function( $ ) {
$.extend( $.validator.messages, {
required: "Este campo é obrigatorio.",
remote: "Por favor, cubre este campo.",
email: "Por favor, escribe unha dirección de correo válida.",
url: "Por favor, escribe unha URL válida.",
date: "Por favor, escribe unha data válida.",
dateISO: "Por favor, escribe unha data (ISO) válida.",
number: "Por favor, escribe un número válido.",
digits: "Por favor, escribe só díxitos.",
creditcard: "Por favor, escribe un número de tarxeta válido.",
equalTo: "Por favor, escribe o mesmo valor de novo.",
extension: "Por favor, escribe un valor cunha extensión aceptada.",
maxlength: $.validator.format( "Por favor, non escribas máis de {0} caracteres." ),
minlength: $.validator.format( "Por favor, non escribas menos de {0} caracteres." ),
rangelength: $.validator.format( "Por favor, escribe un valor entre {0} e {1} caracteres." ),
range: $.validator.format( "Por favor, escribe un valor entre {0} e {1}." ),
max: $.validator.format( "Por favor, escribe un valor menor ou igual a {0}." ),
min: $.validator.format( "Por favor, escribe un valor maior ou igual a {0}." ),
nifES: "Por favor, escribe un NIF válido.",
nieES: "Por favor, escribe un NIE válido.",
cifES: "Por favor, escribe un CIF válido."
} );
}( jQuery ) );
return $;
}));
================================================
FILE: public/admin-panel/assets/libs/jquery-validation/dist/localization/messages_he.js
================================================
(function( factory ) {
if ( typeof define === "function" && define.amd ) {
define( ["jquery", "../jquery.validate"], factory );
} else if (typeof module === "object" && module.exports) {
module.exports = factory( require( "jquery" ) );
} else {
factory( jQuery );
}
}(function( $ ) {
/*
* Translated default messages for the jQuery validation plugin.
* Locale: HE (Hebrew; עברית)
*/
$.extend( $.validator.messages, {
required: "השדה הזה הינו שדה חובה",
remote: "נא לתקן שדה זה",
email: "נא למלא כתובת דוא\"ל חוקית",
url: "נא למלא כתובת אינטרנט חוקית",
date: "נא למלא תאריך חוקי",
dateISO: "נא למלא תאריך חוקי (ISO)",
number: "נא למלא מספר",
digits: "נא למלא רק מספרים",
creditcard: "נא למלא מספר כרטיס אשראי חוקי",
equalTo: "נא למלא את אותו ערך שוב",
extension: "נא למלא ערך עם סיומת חוקית",
maxlength: $.validator.format( ".נא לא למלא יותר מ- {0} תווים" ),
minlength: $.validator.format( "נא למלא לפחות {0} תווים" ),
rangelength: $.validator.format( "נא למלא ערך בין {0} ל- {1} תווים" ),
range: $.validator.format( "נא למלא ערך בין {0} ל- {1}" ),
max: $.validator.format( "נא למלא ערך קטן או שווה ל- {0}" ),
min: $.validator.format( "נא למלא ערך גדול או שווה ל- {0}" )
} );
return $;
}));
================================================
FILE: public/admin-panel/assets/libs/jquery-validation/dist/localization/messages_hr.js
================================================
(function( factory ) {
if ( typeof define === "function" && define.amd ) {
define( ["jquery", "../jquery.validate"], factory );
} else if (typeof module === "object" && module.exports) {
module.exports = factory( require( "jquery" ) );
} else {
factory( jQuery );
}
}(function( $ ) {
/*
* Translated default messages for the jQuery validation plugin.
* Locale: HR (Croatia; hrvatski jezik)
*/
$.extend( $.validator.messages, {
required: "Ovo polje je obavezno.",
remote: "Ovo polje treba popraviti.",
email: "Unesite ispravnu e-mail adresu.",
url: "Unesite ispravan URL.",
date: "Unesite ispravan datum.",
dateISO: "Unesite ispravan datum (ISO).",
number: "Unesite ispravan broj.",
digits: "Unesite samo brojeve.",
creditcard: "Unesite ispravan broj kreditne kartice.",
equalTo: "Unesite ponovo istu vrijednost.",
extension: "Unesite vrijednost sa ispravnom ekstenzijom.",
maxlength: $.validator.format( "Maksimalni broj znakova je {0} ." ),
minlength: $.validator.format( "Minimalni broj znakova je {0} ." ),
rangelength: $.validator.format( "Unesite vrijednost između {0} i {1} znakova." ),
range: $.validator.format( "Unesite vrijednost između {0} i {1}." ),
max: $.validator.format( "Unesite vrijednost manju ili jednaku {0}." ),
min: $.validator.format( "Unesite vrijednost veću ili jednaku {0}." )
} );
return $;
}));
================================================
FILE: public/admin-panel/assets/libs/jquery-validation/dist/localization/messages_hu.js
================================================
(function( factory ) {
if ( typeof define === "function" && define.amd ) {
define( ["jquery", "../jquery.validate"], factory );
} else if (typeof module === "object" && module.exports) {
module.exports = factory( require( "jquery" ) );
} else {
factory( jQuery );
}
}(function( $ ) {
/*
* Translated default messages for the jQuery validation plugin.
* Locale: HU (Hungarian; Magyar)
*/
$.extend( $.validator.messages, {
required: "Kötelező megadni.",
maxlength: $.validator.format( "Legfeljebb {0} karakter hosszú legyen." ),
minlength: $.validator.format( "Legalább {0} karakter hosszú legyen." ),
rangelength: $.validator.format( "Legalább {0} és legfeljebb {1} karakter hosszú legyen." ),
email: "Érvényes e-mail címnek kell lennie.",
url: "Érvényes URL-nek kell lennie.",
date: "Dátumnak kell lennie.",
number: "Számnak kell lennie.",
digits: "Csak számjegyek lehetnek.",
equalTo: "Meg kell egyeznie a két értéknek.",
range: $.validator.format( "{0} és {1} közé kell esnie." ),
max: $.validator.format( "Nem lehet nagyobb, mint {0}." ),
min: $.validator.format( "Nem lehet kisebb, mint {0}." ),
creditcard: "Érvényes hitelkártyaszámnak kell lennie.",
remote: "Kérem javítsa ki ezt a mezőt.",
dateISO: "Kérem írjon be egy érvényes dátumot (ISO).",
step: $.validator.format( "A {0} egyik többszörösét adja meg." )
} );
return $;
}));
================================================
FILE: public/admin-panel/assets/libs/jquery-validation/dist/localization/messages_hy_AM.js
================================================
(function( factory ) {
if ( typeof define === "function" && define.amd ) {
define( ["jquery", "../jquery.validate"], factory );
} else if (typeof module === "object" && module.exports) {
module.exports = factory( require( "jquery" ) );
} else {
factory( jQuery );
}
}(function( $ ) {
/*
* Translated default messages for the jQuery validation plugin.
* Locale: HY_AM (Armenian; հայերեն լեզու)
*/
$.extend( $.validator.messages, {
required: "Պարտադիր լրացման դաշտ",
remote: "Ներմուծեք ճիշտ արժեքը",
email: "Ներմուծեք վավեր էլեկտրոնային փոստի հասցե",
url: "Ներմուծեք վավեր URL",
date: "Ներմուծեք վավեր ամսաթիվ",
dateISO: "Ներմուծեք ISO ֆորմատով վավեր ամսաթիվ։",
number: "Ներմուծեք թիվ",
digits: "Ներմուծեք միայն թվեր",
creditcard: "Ներմուծեք ճիշտ բանկային քարտի համար",
equalTo: "Ներմուծեք միևնուն արժեքը ևս մեկ անգամ",
extension: "Ընտրեք ճիշտ ընդլանումով ֆայլ",
maxlength: $.validator.format( "Ներմուծեք ոչ ավել քան {0} նիշ" ),
minlength: $.validator.format( "Ներմուծեք ոչ պակաս քան {0} նիշ" ),
rangelength: $.validator.format( "Ներմուծեք {0}֊ից {1} երկարությամբ արժեք" ),
range: $.validator.format( "Ներմուծեք թիվ {0}֊ից {1} միջակայքում" ),
max: $.validator.format( "Ներմուծեք թիվ, որը փոքր կամ հավասար է {0}֊ին" ),
min: $.validator.format( "Ներմուծեք թիվ, որը մեծ կամ հավասար է {0}֊ին" )
} );
return $;
}));
================================================
FILE: public/admin-panel/assets/libs/jquery-validation/dist/localization/messages_id.js
================================================
(function( factory ) {
if ( typeof define === "function" && define.amd ) {
define( ["jquery", "../jquery.validate"], factory );
} else if (typeof module === "object" && module.exports) {
module.exports = factory( require( "jquery" ) );
} else {
factory( jQuery );
}
}(function( $ ) {
/*
* Translated default messages for the jQuery validation plugin.
* Locale: ID (Indonesia; Indonesian)
*/
$.extend( $.validator.messages, {
required: "Kolom ini diperlukan.",
remote: "Harap benarkan kolom ini.",
email: "Silakan masukkan format email yang benar.",
url: "Silakan masukkan format URL yang benar.",
date: "Silakan masukkan format tanggal yang benar.",
dateISO: "Silakan masukkan format tanggal(ISO) yang benar.",
number: "Silakan masukkan angka yang benar.",
digits: "Harap masukan angka saja.",
creditcard: "Harap masukkan format kartu kredit yang benar.",
equalTo: "Harap masukkan nilai yg sama dengan sebelumnya.",
maxlength: $.validator.format( "Input dibatasi hanya {0} karakter." ),
minlength: $.validator.format( "Input tidak kurang dari {0} karakter." ),
rangelength: $.validator.format( "Panjang karakter yg diizinkan antara {0} dan {1} karakter." ),
range: $.validator.format( "Harap masukkan nilai antara {0} dan {1}." ),
max: $.validator.format( "Harap masukkan nilai lebih kecil atau sama dengan {0}." ),
min: $.validator.format( "Harap masukkan nilai lebih besar atau sama dengan {0}." )
} );
return $;
}));
================================================
FILE: public/admin-panel/assets/libs/jquery-validation/dist/localization/messages_is.js
================================================
(function( factory ) {
if ( typeof define === "function" && define.amd ) {
define( ["jquery", "../jquery.validate"], factory );
} else if (typeof module === "object" && module.exports) {
module.exports = factory( require( "jquery" ) );
} else {
factory( jQuery );
}
}(function( $ ) {
/*
* Translated default messages for the jQuery validation plugin.
* Locale: IS (Icelandic; íslenska)
*/
$.extend( $.validator.messages, {
required: "Þessi reitur er nauðsynlegur.",
remote: "Lagaðu þennan reit.",
maxlength: $.validator.format( "Sláðu inn mest {0} stafi." ),
minlength: $.validator.format( "Sláðu inn minnst {0} stafi." ),
rangelength: $.validator.format( "Sláðu inn minnst {0} og mest {1} stafi." ),
email: "Sláðu inn gilt netfang.",
url: "Sláðu inn gilda vefslóð.",
date: "Sláðu inn gilda dagsetningu.",
number: "Sláðu inn tölu.",
digits: "Sláðu inn tölustafi eingöngu.",
equalTo: "Sláðu sama gildi inn aftur.",
range: $.validator.format( "Sláðu inn gildi milli {0} og {1}." ),
max: $.validator.format( "Sláðu inn gildi sem er minna en eða jafnt og {0}." ),
min: $.validator.format( "Sláðu inn gildi sem er stærra en eða jafnt og {0}." ),
creditcard: "Sláðu inn gilt greiðslukortanúmer."
} );
return $;
}));
================================================
FILE: public/admin-panel/assets/libs/jquery-validation/dist/localization/messages_it.js
================================================
(function( factory ) {
if ( typeof define === "function" && define.amd ) {
define( ["jquery", "../jquery.validate"], factory );
} else if (typeof module === "object" && module.exports) {
module.exports = factory( require( "jquery" ) );
} else {
factory( jQuery );
}
}(function( $ ) {
/*
* Translated default messages for the jQuery validation plugin.
* Locale: IT (Italian; Italiano)
*/
$.extend( $.validator.messages, {
required: "Campo obbligatorio",
remote: "Controlla questo campo",
email: "Inserisci un indirizzo email valido",
url: "Inserisci un indirizzo web valido",
date: "Inserisci una data valida",
dateISO: "Inserisci una data valida (ISO)",
number: "Inserisci un numero valido",
digits: "Inserisci solo numeri",
creditcard: "Inserisci un numero di carta di credito valido",
equalTo: "Il valore non corrisponde",
extension: "Inserisci un valore con un'estensione valida",
maxlength: $.validator.format( "Non inserire più di {0} caratteri" ),
minlength: $.validator.format( "Inserisci almeno {0} caratteri" ),
rangelength: $.validator.format( "Inserisci un valore compreso tra {0} e {1} caratteri" ),
range: $.validator.format( "Inserisci un valore compreso tra {0} e {1}" ),
max: $.validator.format( "Inserisci un valore minore o uguale a {0}" ),
min: $.validator.format( "Inserisci un valore maggiore o uguale a {0}" ),
nifES: "Inserisci un NIF valido",
nieES: "Inserisci un NIE valido",
cifES: "Inserisci un CIF valido",
currency: "Inserisci una valuta valida"
} );
return $;
}));
================================================
FILE: public/admin-panel/assets/libs/jquery-validation/dist/localization/messages_ja.js
================================================
(function( factory ) {
if ( typeof define === "function" && define.amd ) {
define( ["jquery", "../jquery.validate"], factory );
} else if (typeof module === "object" && module.exports) {
module.exports = factory( require( "jquery" ) );
} else {
factory( jQuery );
}
}(function( $ ) {
/*
* Translated default messages for the jQuery validation plugin.
* Locale: JA (Japanese; 日本語)
*/
$.extend( $.validator.messages, {
required: "このフィールドは必須です。",
remote: "このフィールドを修正してください。",
email: "有効なEメールアドレスを入力してください。",
url: "有効なURLを入力してください。",
date: "有効な日付を入力してください。",
dateISO: "有効な日付(ISO)を入力してください。",
number: "有効な数字を入力してください。",
digits: "数字のみを入力してください。",
creditcard: "有効なクレジットカード番号を入力してください。",
equalTo: "同じ値をもう一度入力してください。",
extension: "有効な拡張子を含む値を入力してください。",
maxlength: $.validator.format( "{0} 文字以内で入力してください。" ),
minlength: $.validator.format( "{0} 文字以上で入力してください。" ),
rangelength: $.validator.format( "{0} 文字から {1} 文字までの値を入力してください。" ),
range: $.validator.format( "{0} から {1} までの値を入力してください。" ),
step: $.validator.format( "{0} の倍数を入力してください。" ),
max: $.validator.format( "{0} 以下の値を入力してください。" ),
min: $.validator.format( "{0} 以上の値を入力してください。" )
} );
return $;
}));
================================================
FILE: public/admin-panel/assets/libs/jquery-validation/dist/localization/messages_ka.js
================================================
(function( factory ) {
if ( typeof define === "function" && define.amd ) {
define( ["jquery", "../jquery.validate"], factory );
} else if (typeof module === "object" && module.exports) {
module.exports = factory( require( "jquery" ) );
} else {
factory( jQuery );
}
}(function( $ ) {
/*
* Translated default messages for the jQuery validation plugin.
* Locale: KA (Georgian; ქართული)
*/
$.extend( $.validator.messages, {
required: "ამ ველის შევსება აუცილებელია.",
remote: "გთხოვთ მიუთითოთ სწორი მნიშვნელობა.",
email: "გთხოვთ მიუთითოთ ელ-ფოსტის კორექტული მისამართი.",
url: "გთხოვთ მიუთითოთ კორექტული URL.",
date: "გთხოვთ მიუთითოთ კორექტული თარიღი.",
dateISO: "გთხოვთ მიუთითოთ კორექტული თარიღი ISO ფორმატში.",
number: "გთხოვთ მიუთითოთ ციფრი.",
digits: "გთხოვთ მიუთითოთ მხოლოდ ციფრები.",
creditcard: "გთხოვთ მიუთითოთ საკრედიტო ბარათის კორექტული ნომერი.",
equalTo: "გთხოვთ მიუთითოთ ასეთივე მნიშვნელობა კიდევ ერთხელ.",
extension: "გთხოვთ აირჩიოთ ფაილი კორექტული გაფართოებით.",
maxlength: $.validator.format( "დასაშვებია არაუმეტეს {0} სიმბოლო." ),
minlength: $.validator.format( "აუცილებელია შეიყვანოთ მინიმუმ {0} სიმბოლო." ),
rangelength: $.validator.format( "ტექსტში სიმბოლოების რაოდენობა უნდა იყოს {0}-დან {1}-მდე." ),
range: $.validator.format( "გთხოვთ შეიყვანოთ ციფრი {0}-დან {1}-მდე." ),
max: $.validator.format( "გთხოვთ შეიყვანოთ ციფრი რომელიც ნაკლებია ან უდრის {0}-ს." ),
min: $.validator.format( "გთხოვთ შეიყვანოთ ციფრი რომელიც მეტია ან უდრის {0}-ს." )
} );
return $;
}));
================================================
FILE: public/admin-panel/assets/libs/jquery-validation/dist/localization/messages_kk.js
================================================
(function( factory ) {
if ( typeof define === "function" && define.amd ) {
define( ["jquery", "../jquery.validate"], factory );
} else if (typeof module === "object" && module.exports) {
module.exports = factory( require( "jquery" ) );
} else {
factory( jQuery );
}
}(function( $ ) {
/*
* Translated default messages for the jQuery validation plugin.
* Locale: KK (Kazakh; қазақ тілі)
*/
$.extend( $.validator.messages, {
required: "Бұл өрісті міндетті түрде толтырыңыз.",
remote: "Дұрыс мағына енгізуіңізді сұраймыз.",
email: "Нақты электронды поштаңызды енгізуіңізді сұраймыз.",
url: "Нақты URL-ды енгізуіңізді сұраймыз.",
date: "Нақты URL-ды енгізуіңізді сұраймыз.",
dateISO: "Нақты ISO форматымен сәйкес датасын енгізуіңізді сұраймыз.",
number: "Күнді енгізуіңізді сұраймыз.",
digits: "Тек қана сандарды енгізуіңізді сұраймыз.",
creditcard: "Несие картасының нөмірін дұрыс енгізуіңізді сұраймыз.",
equalTo: "Осы мәнді қайта енгізуіңізді сұраймыз.",
extension: "Файлдың кеңейтуін дұрыс таңдаңыз.",
maxlength: $.validator.format( "Ұзындығы {0} символдан көр болмасын." ),
minlength: $.validator.format( "Ұзындығы {0} символдан аз болмасын." ),
rangelength: $.validator.format( "Ұзындығы {0}-{1} дейін мән енгізуіңізді сұраймыз." ),
range: $.validator.format( "Пожалуйста, введите число от {0} до {1}. - {0} - {1} санын енгізуіңізді сұраймыз." ),
max: $.validator.format( "{0} аз немесе тең санын енгізуіңіді сұраймыз." ),
min: $.validator.format( "{0} көп немесе тең санын енгізуіңізді сұраймыз." )
} );
return $;
}));
================================================
FILE: public/admin-panel/assets/libs/jquery-validation/dist/localization/messages_ko.js
================================================
(function( factory ) {
if ( typeof define === "function" && define.amd ) {
define( ["jquery", "../jquery.validate"], factory );
} else if (typeof module === "object" && module.exports) {
module.exports = factory( require( "jquery" ) );
} else {
factory( jQuery );
}
}(function( $ ) {
/*
* Translated default messages for the jQuery validation plugin.
* Locale: KO (Korean; 한국어)
*/
$.extend( $.validator.messages, {
required: "필수 항목입니다.",
remote: "항목을 수정하세요.",
email: "유효하지 않은 E-Mail주소입니다.",
url: "유효하지 않은 URL입니다.",
date: "올바른 날짜를 입력하세요.",
dateISO: "올바른 날짜(ISO)를 입력하세요.",
number: "유효한 숫자가 아닙니다.",
digits: "숫자만 입력 가능합니다.",
creditcard: "신용카드 번호가 바르지 않습니다.",
equalTo: "같은 값을 다시 입력하세요.",
extension: "올바른 확장자가 아닙니다.",
maxlength: $.validator.format( "{0}자를 넘을 수 없습니다. " ),
minlength: $.validator.format( "{0}자 이상 입력하세요." ),
rangelength: $.validator.format( "문자 길이가 {0} 에서 {1} 사이의 값을 입력하세요." ),
range: $.validator.format( "{0} 에서 {1} 사이의 값을 입력하세요." ),
max: $.validator.format( "{0} 이하의 값을 입력하세요." ),
min: $.validator.format( "{0} 이상의 값을 입력하세요." )
} );
return $;
}));
================================================
FILE: public/admin-panel/assets/libs/jquery-validation/dist/localization/messages_lt.js
================================================
(function( factory ) {
if ( typeof define === "function" && define.amd ) {
define( ["jquery", "../jquery.validate"], factory );
} else if (typeof module === "object" && module.exports) {
module.exports = factory( require( "jquery" ) );
} else {
factory( jQuery );
}
}(function( $ ) {
/*
* Translated default messages for the jQuery validation plugin.
* Locale: LT (Lithuanian; lietuvių kalba)
*/
$.extend( $.validator.messages, {
required: "Šis laukas yra privalomas.",
remote: "Prašau pataisyti šį lauką.",
email: "Prašau įvesti teisingą elektroninio pašto adresą.",
url: "Prašau įvesti teisingą URL.",
date: "Prašau įvesti teisingą datą.",
dateISO: "Prašau įvesti teisingą datą (ISO).",
number: "Prašau įvesti teisingą skaičių.",
digits: "Prašau naudoti tik skaitmenis.",
creditcard: "Prašau įvesti teisingą kreditinės kortelės numerį.",
equalTo: "Prašau įvestį tą pačią reikšmę dar kartą.",
extension: "Prašau įvesti reikšmę su teisingu plėtiniu.",
maxlength: $.validator.format( "Prašau įvesti ne daugiau kaip {0} simbolių." ),
minlength: $.validator.format( "Prašau įvesti bent {0} simbolius." ),
rangelength: $.validator.format( "Prašau įvesti reikšmes, kurių ilgis nuo {0} iki {1} simbolių." ),
range: $.validator.format( "Prašau įvesti reikšmę intervale nuo {0} iki {1}." ),
max: $.validator.format( "Prašau įvesti reikšmę mažesnę arba lygią {0}." ),
min: $.validator.format( "Prašau įvesti reikšmę didesnę arba lygią {0}." )
} );
return $;
}));
================================================
FILE: public/admin-panel/assets/libs/jquery-validation/dist/localization/messages_lv.js
================================================
(function( factory ) {
if ( typeof define === "function" && define.amd ) {
define( ["jquery", "../jquery.validate"], factory );
} else if (typeof module === "object" && module.exports) {
module.exports = factory( require( "jquery" ) );
} else {
factory( jQuery );
}
}(function( $ ) {
/*
* Translated default messages for the jQuery validation plugin.
* Locale: LV (Latvian; latviešu valoda)
*/
$.extend( $.validator.messages, {
required: "Šis lauks ir obligāts.",
remote: "Lūdzu, pārbaudiet šo lauku.",
email: "Lūdzu, ievadiet derīgu e-pasta adresi.",
url: "Lūdzu, ievadiet derīgu URL adresi.",
date: "Lūdzu, ievadiet derīgu datumu.",
dateISO: "Lūdzu, ievadiet derīgu datumu (ISO).",
number: "Lūdzu, ievadiet derīgu numuru.",
digits: "Lūdzu, ievadiet tikai ciparus.",
creditcard: "Lūdzu, ievadiet derīgu kredītkartes numuru.",
equalTo: "Lūdzu, ievadiet to pašu vēlreiz.",
extension: "Lūdzu, ievadiet vērtību ar derīgu paplašinājumu.",
maxlength: $.validator.format( "Lūdzu, ievadiet ne vairāk kā {0} rakstzīmes." ),
minlength: $.validator.format( "Lūdzu, ievadiet vismaz {0} rakstzīmes." ),
rangelength: $.validator.format( "Lūdzu ievadiet {0} līdz {1} rakstzīmes." ),
range: $.validator.format( "Lūdzu, ievadiet skaitli no {0} līdz {1}." ),
max: $.validator.format( "Lūdzu, ievadiet skaitli, kurš ir mazāks vai vienāds ar {0}." ),
min: $.validator.format( "Lūdzu, ievadiet skaitli, kurš ir lielāks vai vienāds ar {0}." )
} );
return $;
}));
================================================
FILE: public/admin-panel/assets/libs/jquery-validation/dist/localization/messages_mk.js
================================================
(function( factory ) {
if ( typeof define === "function" && define.amd ) {
define( ["jquery", "../jquery.validate"], factory );
} else if (typeof module === "object" && module.exports) {
module.exports = factory( require( "jquery" ) );
} else {
factory( jQuery );
}
}(function( $ ) {
/*
* Translated default messages for the jQuery validation plugin.
* Locale: MK (Macedonian; македонски јазик)
*/
$.extend( $.validator.messages, {
required: "Полето е задолжително.",
remote: "Поправете го ова поле",
email: "Внесете правилна e-mail адреса",
url: "Внесете правилен URL.",
date: "Внесете правилен датум",
dateISO: "Внесете правилен датум (ISO).",
number: "Внесете правилен број.",
digits: "Внесете само бројки.",
creditcard: "Внесете правилен број на кредитната картичка.",
equalTo: "Внесете ја истата вредност повторно.",
extension: "Внесете вредност со соодветна екстензија.",
maxlength: $.validator.format( "Внесете максимално {0} знаци." ),
minlength: $.validator.format( "Внесете барем {0} знаци." ),
rangelength: $.validator.format( "Внесете вредност со должина помеѓу {0} и {1} знаци." ),
range: $.validator.format( "Внесете вредност помеѓу {0} и {1}." ),
max: $.validator.format( "Внесете вредност помала или еднаква на {0}." ),
min: $.validator.format( "Внесете вредност поголема или еднаква на {0}" )
} );
return $;
}));
================================================
FILE: public/admin-panel/assets/libs/jquery-validation/dist/localization/messages_my.js
================================================
(function( factory ) {
if ( typeof define === "function" && define.amd ) {
define( ["jquery", "../jquery.validate"], factory );
} else if (typeof module === "object" && module.exports) {
module.exports = factory( require( "jquery" ) );
} else {
factory( jQuery );
}
}(function( $ ) {
/*
* Translated default messages for the jQuery validation plugin.
* Locale: MY (Malay; Melayu)
*/
$.extend( $.validator.messages, {
required: "Medan ini diperlukan.",
remote: "Sila betulkan medan ini.",
email: "Sila masukkan alamat emel yang betul.",
url: "Sila masukkan URL yang betul.",
date: "Sila masukkan tarikh yang betul.",
dateISO: "Sila masukkan tarikh(ISO) yang betul.",
number: "Sila masukkan nombor yang betul.",
digits: "Sila masukkan nilai digit sahaja.",
creditcard: "Sila masukkan nombor kredit kad yang betul.",
equalTo: "Sila masukkan nilai yang sama semula.",
extension: "Sila masukkan nilai yang telah diterima.",
maxlength: $.validator.format( "Sila masukkan tidak lebih dari {0} aksara." ),
minlength: $.validator.format( "Sila masukkan sekurang-kurangnya {0} aksara." ),
rangelength: $.validator.format( "Sila masukkan antara {0} dan {1} panjang aksara." ),
range: $.validator.format( "Sila masukkan nilai antara {0} dan {1} aksara." ),
max: $.validator.format( "Sila masukkan nilai yang kurang atau sama dengan {0}." ),
min: $.validator.format( "Sila masukkan nilai yang lebih atau sama dengan {0}." )
} );
return $;
}));
================================================
FILE: public/admin-panel/assets/libs/jquery-validation/dist/localization/messages_nl.js
================================================
(function( factory ) {
if ( typeof define === "function" && define.amd ) {
define( ["jquery", "../jquery.validate"], factory );
} else if (typeof module === "object" && module.exports) {
module.exports = factory( require( "jquery" ) );
} else {
factory( jQuery );
}
}(function( $ ) {
/*
* Translated default messages for the jQuery validation plugin.
* Locale: NL (Dutch; Nederlands, Vlaams)
*/
$.extend( $.validator.messages, {
required: "Dit is een verplicht veld.",
remote: "Controleer dit veld.",
email: "Vul hier een geldig e-mailadres in.",
url: "Vul hier een geldige URL in.",
date: "Vul hier een geldige datum in.",
dateISO: "Vul hier een geldige datum in (ISO-formaat).",
number: "Vul hier een geldig getal in.",
digits: "Vul hier alleen getallen in.",
creditcard: "Vul hier een geldig creditcardnummer in.",
equalTo: "Vul hier dezelfde waarde in.",
extension: "Vul hier een waarde in met een geldige extensie.",
maxlength: $.validator.format( "Vul hier maximaal {0} tekens in." ),
minlength: $.validator.format( "Vul hier minimaal {0} tekens in." ),
rangelength: $.validator.format( "Vul hier een waarde in van minimaal {0} en maximaal {1} tekens." ),
range: $.validator.format( "Vul hier een waarde in van minimaal {0} en maximaal {1}." ),
max: $.validator.format( "Vul hier een waarde in kleiner dan of gelijk aan {0}." ),
min: $.validator.format( "Vul hier een waarde in groter dan of gelijk aan {0}." ),
step: $.validator.format( "Vul hier een veelvoud van {0} in." ),
// For validations in additional-methods.js
iban: "Vul hier een geldig IBAN in.",
dateNL: "Vul hier een geldige datum in.",
phoneNL: "Vul hier een geldig Nederlands telefoonnummer in.",
mobileNL: "Vul hier een geldig Nederlands mobiel telefoonnummer in.",
postalcodeNL: "Vul hier een geldige postcode in.",
bankaccountNL: "Vul hier een geldig bankrekeningnummer in.",
giroaccountNL: "Vul hier een geldig gironummer in.",
bankorgiroaccountNL: "Vul hier een geldig bank- of gironummer in."
} );
return $;
}));
================================================
FILE: public/admin-panel/assets/libs/jquery-validation/dist/localization/messages_no.js
================================================
(function( factory ) {
if ( typeof define === "function" && define.amd ) {
define( ["jquery", "../jquery.validate"], factory );
} else if (typeof module === "object" && module.exports) {
module.exports = factory( require( "jquery" ) );
} else {
factory( jQuery );
}
}(function( $ ) {
/*
* Translated default messages for the jQuery validation plugin.
* Locale: NO (Norwegian; Norsk)
*/
$.extend( $.validator.messages, {
required: "Dette feltet er obligatorisk.",
maxlength: $.validator.format( "Maksimalt {0} tegn." ),
minlength: $.validator.format( "Minimum {0} tegn." ),
rangelength: $.validator.format( "Angi minimum {0} og maksimum {1} tegn." ),
email: "Oppgi en gyldig epostadresse.",
url: "Angi en gyldig URL.",
date: "Angi en gyldig dato.",
dateISO: "Angi en gyldig dato (&ARING;&ARING;&ARING;&ARING;-MM-DD).",
dateSE: "Angi en gyldig dato.",
number: "Angi et gyldig nummer.",
numberSE: "Angi et gyldig nummer.",
digits: "Skriv kun tall.",
equalTo: "Skriv samme verdi igjen.",
range: $.validator.format( "Angi en verdi mellom {0} og {1}." ),
max: $.validator.format( "Angi en verdi som er mindre eller lik {0}." ),
min: $.validator.format( "Angi en verdi som er større eller lik {0}." ),
step: $.validator.format( "Angi en verdi ganger {0}." ),
creditcard: "Angi et gyldig kredittkortnummer."
} );
return $;
}));
================================================
FILE: public/admin-panel/assets/libs/jquery-validation/dist/localization/messages_pl.js
================================================
(function( factory ) {
if ( typeof define === "function" && define.amd ) {
define( ["jquery", "../jquery.validate"], factory );
} else if (typeof module === "object" && module.exports) {
module.exports = factory( require( "jquery" ) );
} else {
factory( jQuery );
}
}(function( $ ) {
/*
* Translated default messages for the jQuery validation plugin.
* Locale: PL (Polish; język polski, polszczyzna)
*/
$.extend( $.validator.messages, {
required: "To pole jest wymagane.",
remote: "Proszę o wypełnienie tego pola.",
email: "Proszę o podanie prawidłowego adresu email.",
url: "Proszę o podanie prawidłowego URL.",
date: "Proszę o podanie prawidłowej daty.",
dateISO: "Proszę o podanie prawidłowej daty (ISO).",
number: "Proszę o podanie prawidłowej liczby.",
digits: "Proszę o podanie samych cyfr.",
creditcard: "Proszę o podanie prawidłowej karty kredytowej.",
equalTo: "Proszę o podanie tej samej wartości ponownie.",
extension: "Proszę o podanie wartości z prawidłowym rozszerzeniem.",
nipPL: "Proszę o podanie prawidłowego numeru NIP.",
maxlength: $.validator.format( "Proszę o podanie nie więcej niż {0} znaków." ),
minlength: $.validator.format( "Proszę o podanie przynajmniej {0} znaków." ),
rangelength: $.validator.format( "Proszę o podanie wartości o długości od {0} do {1} znaków." ),
range: $.validator.format( "Proszę o podanie wartości z przedziału od {0} do {1}." ),
max: $.validator.format( "Proszę o podanie wartości mniejszej bądź równej {0}." ),
min: $.validator.format( "Proszę o podanie wartości większej bądź równej {0}." ),
pattern: $.validator.format( "Pole zawiera niedozwolone znaki." )
} );
return $;
}));
================================================
FILE: public/admin-panel/assets/libs/jquery-validation/dist/localization/messages_pt_BR.js
================================================
(function( factory ) {
if ( typeof define === "function" && define.amd ) {
define( ["jquery", "../jquery.validate"], factory );
} else if (typeof module === "object" && module.exports) {
module.exports = factory( require( "jquery" ) );
} else {
factory( jQuery );
}
}(function( $ ) {
/*
* Translated default messages for the jQuery validation plugin.
* Locale: PT (Portuguese; português)
* Region: BR (Brazil)
*/
$.extend( $.validator.messages, {
// Core
required: "Este campo é requerido.",
remote: "Por favor, corrija este campo.",
email: "Por favor, forneça um endereço de email válido.",
url: "Por favor, forneça uma URL válida.",
date: "Por favor, forneça uma data válida.",
dateISO: "Por favor, forneça uma data válida (ISO).",
number: "Por favor, forneça um número válido.",
digits: "Por favor, forneça somente dígitos.",
creditcard: "Por favor, forneça um cartão de crédito válido.",
equalTo: "Por favor, forneça o mesmo valor novamente.",
maxlength: $.validator.format( "Por favor, forneça não mais que {0} caracteres." ),
minlength: $.validator.format( "Por favor, forneça ao menos {0} caracteres." ),
rangelength: $.validator.format( "Por favor, forneça um valor entre {0} e {1} caracteres de comprimento." ),
range: $.validator.format( "Por favor, forneça um valor entre {0} e {1}." ),
max: $.validator.format( "Por favor, forneça um valor menor ou igual a {0}." ),
min: $.validator.format( "Por favor, forneça um valor maior ou igual a {0}." ),
step: $.validator.format( "Por favor, forneça um valor m´tiplo de {0}." ),
// Metodos Adicionais
maxWords: $.validator.format( "Por favor, forneça com {0} palavras ou menos." ),
minWords: $.validator.format( "Por favor, forneça pelo menos {0} palavras." ),
rangeWords: $.validator.format( "Por favor, forneça entre {0} e {1} palavras." ),
accept: "Por favor, forneça um tipo válido.",
alphanumeric: "Por favor, forneça somente com letras, números e sublinhados.",
bankaccountNL: "Por favor, forneça com um número de conta bancária válida.",
bankorgiroaccountNL: "Por favor, forneça um banco válido ou número de conta.",
bic: "Por favor, forneça um código BIC válido.",
cifES: "Por favor, forneça um código CIF válido.",
creditcardtypes: "Por favor, forneça um número de cartão de crédito válido.",
currency: "Por favor, forneça uma moeda válida.",
dateFA: "Por favor, forneça uma data correta.",
dateITA: "Por favor, forneça uma data correta.",
dateNL: "Por favor, forneça uma data correta.",
extension: "Por favor, forneça um valor com uma extensão válida.",
giroaccountNL: "Por favor, forneça um número de conta corrente válido.",
iban: "Por favor, forneça um código IBAN válido.",
integer: "Por favor, forneça um número não decimal.",
ipv4: "Por favor, forneça um IPv4 válido.",
ipv6: "Por favor, forneça um IPv6 válido.",
lettersonly: "Por favor, forneça apenas com letras.",
letterswithbasicpunc: "Por favor, forneça apenas letras ou pontuações.",
mobileNL: "Por favor, forneceça um número válido de telefone.",
mobileUK: "Por favor, forneceça um número válido de telefone.",
nieES: "Por favor, forneça um NIE válido.",
nifES: "Por favor, forneça um NIF válido.",
nowhitespace: "Por favor, não utilize espaços em branco.",
pattern: "O formato fornenecido é inválido.",
phoneNL: "Por favor, forneceça um número de telefone válido.",
phoneUK: "Por favor, forneceça um número de telefone válido.",
phoneUS: "Por favor, forneceça um número de telefone válido.",
phonesUK: "Por favor, forneceça um número de telefone válido.",
postalCodeCA: "Por favor, forneceça um número de código postal válido.",
postalcodeIT: "Por favor, forneceça um número de código postal válido.",
postalcodeNL: "Por favor, forneceça um número de código postal válido.",
postcodeUK: "Por favor, forneceça um número de código postal válido.",
postalcodeBR: "Por favor, forneça um CEP válido.",
require_from_group: $.validator.format( "Por favor, forneça pelo menos {0} destes campos." ),
skip_or_fill_minimum: $.validator.format( "Por favor, optar entre ignorar esses campos ou preencher pelo menos {0} deles." ),
stateUS: "Por favor, forneça um estado válido.",
strippedminlength: $.validator.format( "Por favor, forneça pelo menos {0} caracteres." ),
time: "Por favor, forneça um horário válido, no intervado de 00:00 e 23:59.",
time12h: "Por favor, forneça um horário válido, no intervado de 01:00 e 12:59 am/pm.",
url2: "Por favor, forneceça uma URL válida.",
vinUS: "O número de identificação de veículo informada (VIN) é inválido.",
zipcodeUS: "Por favor, forneceça um código postal americano válido.",
ziprange: "O código postal deve estar entre 902xx-xxxx e 905xx-xxxx",
cpfBR: "Por favor, forneça um CPF válido."
} );
return $;
}));
================================================
FILE: public/admin-panel/assets/libs/jquery-validation/dist/localization/messages_pt_PT.js
================================================
(function( factory ) {
if ( typeof define === "function" && define.amd ) {
define( ["jquery", "../jquery.validate"], factory );
} else if (typeof module === "object" && module.exports) {
module.exports = factory( require( "jquery" ) );
} else {
factory( jQuery );
}
}(function( $ ) {
/*
* Translated default messages for the jQuery validation plugin.
* Locale: PT (Portuguese; português)
* Region: PT (Portugal)
*/
$.extend( $.validator.messages, {
required: "Campo de preenchimento obrigatório.",
remote: "Por favor, corrija este campo.",
email: "Por favor, introduza um endereço eletrónico válido.",
url: "Por favor, introduza um URL válido.",
date: "Por favor, introduza uma data válida.",
dateISO: "Por favor, introduza uma data válida (ISO).",
number: "Por favor, introduza um número válido.",
digits: "Por favor, introduza apenas dígitos.",
creditcard: "Por favor, introduza um número de cartão de crédito válido.",
equalTo: "Por favor, introduza de novo o mesmo valor.",
extension: "Por favor, introduza um ficheiro com uma extensão válida.",
maxlength: $.validator.format( "Por favor, não introduza mais do que {0} caracteres." ),
minlength: $.validator.format( "Por favor, introduza pelo menos {0} caracteres." ),
rangelength: $.validator.format( "Por favor, introduza entre {0} e {1} caracteres." ),
range: $.validator.format( "Por favor, introduza um valor entre {0} e {1}." ),
max: $.validator.format( "Por favor, introduza um valor menor ou igual a {0}." ),
min: $.validator.format( "Por favor, introduza um valor maior ou igual a {0}." ),
nifES: "Por favor, introduza um NIF válido.",
nieES: "Por favor, introduza um NIE válido.",
cifES: "Por favor, introduza um CIF válido."
} );
return $;
}));
================================================
FILE: public/admin-panel/assets/libs/jquery-validation/dist/localization/messages_ro.js
================================================
(function( factory ) {
if ( typeof define === "function" && define.amd ) {
define( ["jquery", "../jquery.validate"], factory );
} else if (typeof module === "object" && module.exports) {
module.exports = factory( require( "jquery" ) );
} else {
factory( jQuery );
}
}(function( $ ) {
/*
* Translated default messages for the jQuery validation plugin.
* Locale: RO (Romanian, limba română)
*/
$.extend( $.validator.messages, {
required: "Acest câmp este obligatoriu.",
remote: "Te rugăm să completezi acest câmp.",
email: "Te rugăm să introduci o adresă de email validă",
url: "Te rugăm sa introduci o adresă URL validă.",
date: "Te rugăm să introduci o dată corectă.",
dateISO: "Te rugăm să introduci o dată (ISO) corectă.",
number: "Te rugăm să introduci un număr întreg valid.",
digits: "Te rugăm să introduci doar cifre.",
creditcard: "Te rugăm să introduci un numar de carte de credit valid.",
equalTo: "Te rugăm să reintroduci valoarea.",
extension: "Te rugăm să introduci o valoare cu o extensie validă.",
maxlength: $.validator.format( "Te rugăm să nu introduci mai mult de {0} caractere." ),
minlength: $.validator.format( "Te rugăm să introduci cel puțin {0} caractere." ),
rangelength: $.validator.format( "Te rugăm să introduci o valoare între {0} și {1} caractere." ),
range: $.validator.format( "Te rugăm să introduci o valoare între {0} și {1}." ),
max: $.validator.format( "Te rugăm să introduci o valoare egal sau mai mică decât {0}." ),
min: $.validator.format( "Te rugăm să introduci o valoare egal sau mai mare decât {0}." )
} );
return $;
}));
================================================
FILE: public/admin-panel/assets/libs/jquery-validation/dist/localization/messages_ru.js
================================================
(function( factory ) {
if ( typeof define === "function" && define.amd ) {
define( ["jquery", "../jquery.validate"], factory );
} else if (typeof module === "object" && module.exports) {
module.exports = factory( require( "jquery" ) );
} else {
factory( jQuery );
}
}(function( $ ) {
/*
* Translated default messages for the jQuery validation plugin.
* Locale: RU (Russian; русский язык)
*/
$.extend( $.validator.messages, {
required: "Это поле необходимо заполнить.",
remote: "Пожалуйста, введите правильное значение.",
email: "Пожалуйста, введите корректный адрес электронной почты.",
url: "Пожалуйста, введите корректный URL.",
date: "Пожалуйста, введите корректную дату.",
dateISO: "Пожалуйста, введите корректную дату в формате ISO.",
number: "Пожалуйста, введите число.",
digits: "Пожалуйста, вводите только цифры.",
creditcard: "Пожалуйста, введите правильный номер кредитной карты.",
equalTo: "Пожалуйста, введите такое же значение ещё раз.",
extension: "Пожалуйста, выберите файл с правильным расширением.",
maxlength: $.validator.format( "Пожалуйста, введите не больше {0} символов." ),
minlength: $.validator.format( "Пожалуйста, введите не меньше {0} символов." ),
rangelength: $.validator.format( "Пожалуйста, введите значение длиной от {0} до {1} символов." ),
range: $.validator.format( "Пожалуйста, введите число от {0} до {1}." ),
max: $.validator.format( "Пожалуйста, введите число, меньшее или равное {0}." ),
min: $.validator.format( "Пожалуйста, введите число, большее или равное {0}." )
} );
return $;
}));
================================================
FILE: public/admin-panel/assets/libs/jquery-validation/dist/localization/messages_sd.js
================================================
(function( factory ) {
if ( typeof define === "function" && define.amd ) {
define( ["jquery", "../jquery.validate"], factory );
} else if (typeof module === "object" && module.exports) {
module.exports = factory( require( "jquery" ) );
} else {
factory( jQuery );
}
}(function( $ ) {
/*
* Translated default messages for the jQuery validation plugin.
* Locale: SD (Sindhi; سنڌي)
*/
$.extend( $.validator.messages, {
required: "هنن جاين جي ضرورت آهي",
remote: "هنن جاين جي ضرورت آهي",
email: "لکيل اي ميل غلط آهي",
url: "لکيل ايڊريس غلط آهي",
date: "لکيل تاريخ غلط آهي",
dateISO: "جي معيار جي مطابق نه آهي (ISO) لکيل تاريخ",
number: "لکيل انگ صحيح ناهي",
digits: "رڳو انگ داخل ڪري سگهجي ٿو",
creditcard: "لکيل ڪارڊ نمبر صحيح نه آهي",
equalTo: "داخل ٿيل ڀيٽ صحيح نه آهي",
extension: "لکيل غلط آهي",
maxlength: $.validator.format( "وڌ کان وڌ {0} جي داخلا ڪري سگهجي ٿي" ),
minlength: $.validator.format( "گهٽ ۾ گهٽ {0} جي داخلا ڪرڻ ضروري آهي" ),
rangelength: $.validator.format( "داخلا جو {0} ۽ {1}جي وچ ۾ هجڻ ضروري آهي" ),
range: $.validator.format( "داخلا جو {0} ۽ {1}جي وچ ۾ هجڻ ضروري آهي" ),
max: $.validator.format( "وڌ کان وڌ {0} جي داخلا ڪري سگهجي ٿي" ),
min: $.validator.format( "گهٽ ۾ گهٽ {0} جي داخلا ڪرڻ ضروري آهي" )
} );
return $;
}));
================================================
FILE: public/admin-panel/assets/libs/jquery-validation/dist/localization/messages_si.js
================================================
(function( factory ) {
if ( typeof define === "function" && define.amd ) {
define( ["jquery", "../jquery.validate"], factory );
} else if (typeof module === "object" && module.exports) {
module.exports = factory( require( "jquery" ) );
} else {
factory( jQuery );
}
}(function( $ ) {
/*
* Translated default messages for the jQuery validation plugin.
* Locale: SI (Slovenian)
*/
$.extend( $.validator.messages, {
required: "To polje je obvezno.",
remote: "Vpis v tem polju ni v pravi obliki.",
email: "Prosimo, vnesite pravi email naslov.",
url: "Prosimo, vnesite pravi URL.",
date: "Prosimo, vnesite pravi datum.",
dateISO: "Prosimo, vnesite pravi datum (ISO).",
number: "Prosimo, vnesite pravo številko.",
digits: "Prosimo, vnesite samo številke.",
creditcard: "Prosimo, vnesite pravo številko kreditne kartice.",
equalTo: "Prosimo, ponovno vnesite enako vsebino.",
extension: "Prosimo, vnesite vsebino z pravo končnico.",
maxlength: $.validator.format( "Prosimo, da ne vnašate več kot {0} znakov." ),
minlength: $.validator.format( "Prosimo, vnesite vsaj {0} znakov." ),
rangelength: $.validator.format( "Prosimo, vnesite od {0} do {1} znakov." ),
range: $.validator.format( "Prosimo, vnesite vrednost med {0} in {1}." ),
max: $.validator.format( "Prosimo, vnesite vrednost manjšo ali enako {0}." ),
min: $.validator.format( "Prosimo, vnesite vrednost večjo ali enako {0}." )
} );
return $;
}));
================================================
FILE: public/admin-panel/assets/libs/jquery-validation/dist/localization/messages_sk.js
================================================
(function( factory ) {
if ( typeof define === "function" && define.amd ) {
define( ["jquery", "../jquery.validate"], factory );
} else if (typeof module === "object" && module.exports) {
module.exports = factory( require( "jquery" ) );
} else {
factory( jQuery );
}
}(function( $ ) {
/*
* Translated default messages for the jQuery validation plugin.
* Locale: SK (Slovak; slovenčina, slovenský jazyk)
*/
$.extend( $.validator.messages, {
required: "Povinné zadať.",
maxlength: $.validator.format( "Maximálne {0} znakov." ),
minlength: $.validator.format( "Minimálne {0} znakov." ),
rangelength: $.validator.format( "Minimálne {0} a maximálne {1} znakov." ),
email: "E-mailová adresa musí byť platná.",
url: "URL musí byť platná.",
date: "Musí byť dátum.",
number: "Musí byť číslo.",
digits: "Môže obsahovať iba číslice.",
equalTo: "Dve hodnoty sa musia rovnať.",
range: $.validator.format( "Musí byť medzi {0} a {1}." ),
max: $.validator.format( "Nemôže byť viac ako {0}." ),
min: $.validator.format( "Nemôže byť menej ako {0}." ),
creditcard: "Číslo platobnej karty musí byť platné."
} );
return $;
}));
================================================
FILE: public/admin-panel/assets/libs/jquery-validation/dist/localization/messages_sl.js
================================================
(function( factory ) {
if ( typeof define === "function" && define.amd ) {
define( ["jquery", "../jquery.validate"], factory );
} else if (typeof module === "object" && module.exports) {
module.exports = factory( require( "jquery" ) );
} else {
factory( jQuery );
}
}(function( $ ) {
/*
* Translated default messages for the jQuery validation plugin.
* Language: SL (Slovenian; slovenski jezik)
*/
$.extend( $.validator.messages, {
required: "To polje je obvezno.",
remote: "Prosimo popravite to polje.",
email: "Prosimo vnesite veljaven email naslov.",
url: "Prosimo vnesite veljaven URL naslov.",
date: "Prosimo vnesite veljaven datum.",
dateISO: "Prosimo vnesite veljaven ISO datum.",
number: "Prosimo vnesite veljavno število.",
digits: "Prosimo vnesite samo števila.",
creditcard: "Prosimo vnesite veljavno številko kreditne kartice.",
equalTo: "Prosimo ponovno vnesite vrednost.",
extension: "Prosimo vnesite vrednost z veljavno končnico.",
maxlength: $.validator.format( "Prosimo vnesite največ {0} znakov." ),
minlength: $.validator.format( "Prosimo vnesite najmanj {0} znakov." ),
rangelength: $.validator.format( "Prosimo vnesite najmanj {0} in največ {1} znakov." ),
range: $.validator.format( "Prosimo vnesite vrednost med {0} in {1}." ),
max: $.validator.format( "Prosimo vnesite vrednost manjše ali enako {0}." ),
min: $.validator.format( "Prosimo vnesite vrednost večje ali enako {0}." )
} );
return $;
}));
================================================
FILE: public/admin-panel/assets/libs/jquery-validation/dist/localization/messages_sr.js
================================================
(function( factory ) {
if ( typeof define === "function" && define.amd ) {
define( ["jquery", "../jquery.validate"], factory );
} else if (typeof module === "object" && module.exports) {
module.exports = factory( require( "jquery" ) );
} else {
factory( jQuery );
}
}(function( $ ) {
/*
* Translated default messages for the jQuery validation plugin.
* Locale: SR (Serbian; српски језик)
*/
$.extend( $.validator.messages, {
required: "Поље је обавезно.",
remote: "Средите ово поље.",
email: "Унесите исправну и-мејл адресу.",
url: "Унесите исправан URL.",
date: "Унесите исправан датум.",
dateISO: "Унесите исправан датум (ISO).",
number: "Унесите исправан број.",
digits: "Унесите само цифе.",
creditcard: "Унесите исправан број кредитне картице.",
equalTo: "Унесите исту вредност поново.",
extension: "Унесите вредност са одговарајућом екстензијом.",
maxlength: $.validator.format( "Унесите мање од {0} карактера." ),
minlength: $.validator.format( "Унесите барем {0} карактера." ),
rangelength: $.validator.format( "Унесите вредност дугачку између {0} и {1} карактера." ),
range: $.validator.format( "Унесите вредност између {0} и {1}." ),
max: $.validator.format( "Унесите вредност мању или једнаку {0}." ),
min: $.validator.format( "Унесите вредност већу или једнаку {0}." )
} );
return $;
}));
================================================
FILE: public/admin-panel/assets/libs/jquery-validation/dist/localization/messages_sr_lat.js
================================================
(function( factory ) {
if ( typeof define === "function" && define.amd ) {
define( ["jquery", "../jquery.validate"], factory );
} else if (typeof module === "object" && module.exports) {
module.exports = factory( require( "jquery" ) );
} else {
factory( jQuery );
}
}(function( $ ) {
/*
* Translated default messages for the jQuery validation plugin.
* Locale: SR (Serbian - Latin alphabet; srpski jezik - latinica)
*/
$.extend( $.validator.messages, {
required: "Polje je obavezno.",
remote: "Sredite ovo polje.",
email: "Unesite ispravnu e-mail adresu",
url: "Unesite ispravan URL.",
date: "Unesite ispravan datum.",
dateISO: "Unesite ispravan datum (ISO).",
number: "Unesite ispravan broj.",
digits: "Unesite samo cifre.",
creditcard: "Unesite ispravan broj kreditne kartice.",
equalTo: "Unesite istu vrednost ponovo.",
extension: "Unesite vrednost sa odgovarajućom ekstenzijom.",
maxlength: $.validator.format( "Unesite manje od {0} karaktera." ),
minlength: $.validator.format( "Unesite barem {0} karaktera." ),
rangelength: $.validator.format( "Unesite vrednost dugačku između {0} i {1} karaktera." ),
range: $.validator.format( "Unesite vrednost između {0} i {1}." ),
max: $.validator.format( "Unesite vrednost manju ili jednaku {0}." ),
min: $.validator.format( "Unesite vrednost veću ili jednaku {0}." )
} );
return $;
}));
================================================
FILE: public/admin-panel/assets/libs/jquery-validation/dist/localization/messages_sv.js
================================================
(function( factory ) {
if ( typeof define === "function" && define.amd ) {
define( ["jquery", "../jquery.validate"], factory );
} else if (typeof module === "object" && module.exports) {
module.exports = factory( require( "jquery" ) );
} else {
factory( jQuery );
}
}(function( $ ) {
/*
* Translated default messages for the jQuery validation plugin.
* Locale: SV (Swedish; Svenska)
*/
$.extend( $.validator.messages, {
required: "Detta fält är obligatoriskt.",
maxlength: $.validator.format( "Du får ange högst {0} tecken." ),
minlength: $.validator.format( "Du måste ange minst {0} tecken." ),
rangelength: $.validator.format( "Ange minst {0} och max {1} tecken." ),
email: "Ange en korrekt e-postadress.",
url: "Ange en korrekt URL.",
date: "Ange ett korrekt datum.",
dateISO: "Ange ett korrekt datum (ÅÅÅÅ-MM-DD).",
number: "Ange ett korrekt nummer.",
digits: "Ange endast siffror.",
equalTo: "Ange samma värde igen.",
range: $.validator.format( "Ange ett värde mellan {0} och {1}." ),
max: $.validator.format( "Ange ett värde som är mindre eller lika med {0}." ),
min: $.validator.format( "Ange ett värde som är större eller lika med {0}." ),
creditcard: "Ange ett korrekt kreditkortsnummer."
} );
return $;
}));
================================================
FILE: public/admin-panel/assets/libs/jquery-validation/dist/localization/messages_th.js
================================================
(function( factory ) {
if ( typeof define === "function" && define.amd ) {
define( ["jquery", "../jquery.validate"], factory );
} else if (typeof module === "object" && module.exports) {
module.exports = factory( require( "jquery" ) );
} else {
factory( jQuery );
}
}(function( $ ) {
/*
* Translated default messages for the jQuery validation plugin.
* Locale: TH (Thai; ไทย)
*/
$.extend( $.validator.messages, {
required: "โปรดระบุ",
remote: "โปรดแก้ไขให้ถูกต้อง",
email: "โปรดระบุที่อยู่อีเมล์ที่ถูกต้อง",
url: "โปรดระบุ URL ที่ถูกต้อง",
date: "โปรดระบุวันที่ ที่ถูกต้อง",
dateISO: "โปรดระบุวันที่ ที่ถูกต้อง (ระบบ ISO).",
number: "โปรดระบุทศนิยมที่ถูกต้อง",
digits: "โปรดระบุจำนวนเต็มที่ถูกต้อง",
creditcard: "โปรดระบุรหัสบัตรเครดิตที่ถูกต้อง",
equalTo: "โปรดระบุค่าเดิมอีกครั้ง",
extension: "โปรดระบุค่าที่มีส่วนขยายที่ถูกต้อง",
maxlength: $.validator.format( "โปรดอย่าระบุค่าที่ยาวกว่า {0} อักขระ" ),
minlength: $.validator.format( "โปรดอย่าระบุค่าที่สั้นกว่า {0} อักขระ" ),
rangelength: $.validator.format( "โปรดอย่าระบุค่าความยาวระหว่าง {0} ถึง {1} อักขระ" ),
range: $.validator.format( "โปรดระบุค่าระหว่าง {0} และ {1}" ),
max: $.validator.format( "โปรดระบุค่าน้อยกว่าหรือเท่ากับ {0}" ),
min: $.validator.format( "โปรดระบุค่ามากกว่าหรือเท่ากับ {0}" )
} );
return $;
}));
================================================
FILE: public/admin-panel/assets/libs/jquery-validation/dist/localization/messages_tj.js
================================================
(function( factory ) {
if ( typeof define === "function" && define.amd ) {
define( ["jquery", "../jquery.validate"], factory );
} else if (typeof module === "object" && module.exports) {
module.exports = factory( require( "jquery" ) );
} else {
factory( jQuery );
}
}(function( $ ) {
/*
* Translated default messages for the jQuery validation plugin.
* Locale: TJ (Tajikistan; Забони тоҷикӣ)
*/
$.extend( $.validator.messages, {
required: "Ворид кардани ин филд маҷбури аст.",
remote: "Илтимос, маълумоти саҳеҳ ворид кунед.",
email: "Илтимос, почтаи электронии саҳеҳ ворид кунед.",
url: "Илтимос, URL адреси саҳеҳ ворид кунед.",
date: "Илтимос, таърихи саҳеҳ ворид кунед.",
dateISO: "Илтимос, таърихи саҳеҳи (ISO)ӣ ворид кунед.",
number: "Илтимос, рақамҳои саҳеҳ ворид кунед.",
digits: "Илтимос, танҳо рақам ворид кунед.",
creditcard: "Илтимос, кредит карди саҳеҳ ворид кунед.",
equalTo: "Илтимос, миқдори баробар ворид кунед.",
extension: "Илтимос, қофияи файлро дуруст интихоб кунед",
maxlength: $.validator.format( "Илтимос, бештар аз {0} рамз ворид накунед." ),
minlength: $.validator.format( "Илтимос, камтар аз {0} рамз ворид накунед." ),
rangelength: $.validator.format( "Илтимос, камтар аз {0} ва зиёда аз {1} рамз ворид кунед." ),
range: $.validator.format( "Илтимос, аз {0} то {1} рақам зиёд ворид кунед." ),
max: $.validator.format( "Илтимос, бештар аз {0} рақам ворид накунед." ),
min: $.validator.format( "Илтимос, камтар аз {0} рақам ворид накунед." )
} );
return $;
}));
================================================
FILE: public/admin-panel/assets/libs/jquery-validation/dist/localization/messages_tr.js
================================================
(function( factory ) {
if ( typeof define === "function" && define.amd ) {
define( ["jquery", "../jquery.validate"], factory );
} else if (typeof module === "object" && module.exports) {
module.exports = factory( require( "jquery" ) );
} else {
factory( jQuery );
}
}(function( $ ) {
/*
* Translated default messages for the jQuery validation plugin.
* Locale: TR (Turkish; Türkçe)
*/
$.extend( $.validator.messages, {
required: "Bu alanın doldurulması zorunludur.",
remote: "Lütfen bu alanı düzeltin.",
email: "Lütfen geçerli bir e-posta adresi giriniz.",
url: "Lütfen geçerli bir web adresi (URL) giriniz.",
date: "Lütfen geçerli bir tarih giriniz.",
dateISO: "Lütfen geçerli bir tarih giriniz(ISO formatında)",
number: "Lütfen geçerli bir sayı giriniz.",
digits: "Lütfen sadece sayısal karakterler giriniz.",
creditcard: "Lütfen geçerli bir kredi kartı giriniz.",
equalTo: "Lütfen aynı değeri tekrar giriniz.",
extension: "Lütfen geçerli uzantıya sahip bir değer giriniz.",
maxlength: $.validator.format( "Lütfen en fazla {0} karakter uzunluğunda bir değer giriniz." ),
minlength: $.validator.format( "Lütfen en az {0} karakter uzunluğunda bir değer giriniz." ),
rangelength: $.validator.format( "Lütfen en az {0} ve en fazla {1} uzunluğunda bir değer giriniz." ),
range: $.validator.format( "Lütfen {0} ile {1} arasında bir değer giriniz." ),
max: $.validator.format( "Lütfen {0} değerine eşit ya da daha küçük bir değer giriniz." ),
min: $.validator.format( "Lütfen {0} değerine eşit ya da daha büyük bir değer giriniz." ),
require_from_group: "Lütfen bu alanların en az {0} tanesini doldurunuz."
} );
return $;
}));
================================================
FILE: public/admin-panel/assets/libs/jquery-validation/dist/localization/messages_uk.js
================================================
(function( factory ) {
if ( typeof define === "function" && define.amd ) {
define( ["jquery", "../jquery.validate"], factory );
} else if (typeof module === "object" && module.exports) {
module.exports = factory( require( "jquery" ) );
} else {
factory( jQuery );
}
}(function( $ ) {
/*
* Translated default messages for the jQuery validation plugin.
* Locale: UK (Ukrainian; українська мова)
*/
$.extend( $.validator.messages, {
required: "Це поле необхідно заповнити.",
remote: "Будь ласка, введіть правильне значення.",
email: "Будь ласка, введіть коректну адресу електронної пошти.",
url: "Будь ласка, введіть коректний URL.",
date: "Будь ласка, введіть коректну дату.",
dateISO: "Будь ласка, введіть коректну дату у форматі ISO.",
number: "Будь ласка, введіть число.",
digits: "Вводите потрібно лише цифри.",
creditcard: "Будь ласка, введіть правильний номер кредитної карти.",
equalTo: "Будь ласка, введіть таке ж значення ще раз.",
extension: "Будь ласка, виберіть файл з правильним розширенням.",
maxlength: $.validator.format( "Будь ласка, введіть не більше {0} символів." ),
minlength: $.validator.format( "Будь ласка, введіть не менше {0} символів." ),
rangelength: $.validator.format( "Будь ласка, введіть значення довжиною від {0} до {1} символів." ),
range: $.validator.format( "Будь ласка, введіть число від {0} до {1}." ),
max: $.validator.format( "Будь ласка, введіть число, менше або рівно {0}." ),
min: $.validator.format( "Будь ласка, введіть число, більше або рівно {0}." )
} );
return $;
}));
================================================
FILE: public/admin-panel/assets/libs/jquery-validation/dist/localization/messages_ur.js
================================================
(function( factory ) {
if ( typeof define === "function" && define.amd ) {
define( ["jquery", "../jquery.validate"], factory );
} else if (typeof module === "object" && module.exports) {
module.exports = factory( require( "jquery" ) );
} else {
factory( jQuery );
}
}(function( $ ) {
/*
* Translated default messages for the jQuery validation plugin.
* Locale: UR (Urdu; اردو)
*/
$.extend( $.validator.messages, {
required: "ان معلومات کا اندراج ضروری ہے",
remote: "ان معلومات کا اندراج ضروری ہے",
email: "درج کی ہوئی ای میل درست نہیں ہے",
url: "درج کیا گیا پتہ درست نہیں ہے",
date: "درج کی گئی تاریخ درست نہیں ہے",
dateISO: "معیار کے مطابق نہیں ہے (ISO) درج کی گئی تاریخ",
number: "درج کیےگئے ہندسے درست نہیں ہیں",
digits: "صرف ہندسے اندراج کئے جاسکتے ہیں",
creditcard: "درج کیا گیا کارڈ نمبر درست نہیں ہے",
equalTo: "اندراج کا موازنہ درست نہیں ہے",
extension: "اندراج درست نہیں ہے",
maxlength: $.validator.format( "زیادہ سے زیادہ {0} کا اندراج کر سکتے ہیں" ),
minlength: $.validator.format( "کم سے کم {0} کا اندراج کرنا ضروری ہے" ),
rangelength: $.validator.format( "اندراج کا {0} اور {1}کے درمیان ہونا ضروری ہے" ),
range: $.validator.format( "اندراج کا {0} اور {1} کے درمیان ہونا ضروری ہے" ),
max: $.validator.format( "زیادہ سے زیادہ {0} کا اندراج کر سکتے ہیں" ),
min: $.validator.format( "کم سے کم {0} کا اندراج کرنا ضروری ہے" )
} );
return $;
}));
================================================
FILE: public/admin-panel/assets/libs/jquery-validation/dist/localization/messages_vi.js
================================================
(function( factory ) {
if ( typeof define === "function" && define.amd ) {
define( ["jquery", "../jquery.validate"], factory );
} else if (typeof module === "object" && module.exports) {
module.exports = factory( require( "jquery" ) );
} else {
factory( jQuery );
}
}(function( $ ) {
/*
* Translated default messages for the jQuery validation plugin.
* Locale: VI (Vietnamese; Tiếng Việt)
*/
$.extend( $.validator.messages, {
required: "Hãy nhập.",
remote: "Hãy sửa cho đúng.",
email: "Hãy nhập email.",
url: "Hãy nhập URL.",
date: "Hãy nhập ngày.",
dateISO: "Hãy nhập ngày (ISO).",
number: "Hãy nhập số.",
digits: "Hãy nhập chữ số.",
creditcard: "Hãy nhập số thẻ tín dụng.",
equalTo: "Hãy nhập thêm lần nữa.",
extension: "Phần mở rộng không đúng.",
maxlength: $.validator.format( "Hãy nhập từ {0} kí tự trở xuống." ),
minlength: $.validator.format( "Hãy nhập từ {0} kí tự trở lên." ),
rangelength: $.validator.format( "Hãy nhập từ {0} đến {1} kí tự." ),
range: $.validator.format( "Hãy nhập từ {0} đến {1}." ),
max: $.validator.format( "Hãy nhập từ {0} trở xuống." ),
min: $.validator.format( "Hãy nhập từ {1} trở lên." )
} );
return $;
}));
================================================
FILE: public/admin-panel/assets/libs/jquery-validation/dist/localization/messages_zh.js
================================================
(function( factory ) {
if ( typeof define === "function" && define.amd ) {
define( ["jquery", "../jquery.validate"], factory );
} else if (typeof module === "object" && module.exports) {
module.exports = factory( require( "jquery" ) );
} else {
factory( jQuery );
}
}(function( $ ) {
/*
* Translated default messages for the jQuery validation plugin.
* Locale: ZH (Chinese, 中文 (Zhōngwén), 汉语, 漢語)
*/
$.extend( $.validator.messages, {
required: "这是必填字段",
remote: "请修正此字段",
email: "请输入有效的电子邮件地址",
url: "请输入有效的网址",
date: "请输入有效的日期",
dateISO: "请输入有效的日期 (YYYY-MM-DD)",
number: "请输入有效的数字",
digits: "只能输入数字",
creditcard: "请输入有效的信用卡号码",
equalTo: "你的输入不相同",
extension: "请输入有效的后缀",
maxlength: $.validator.format( "最多可以输入 {0} 个字符" ),
minlength: $.validator.format( "最少要输入 {0} 个字符" ),
rangelength: $.validator.format( "请输入长度在 {0} 到 {1} 之间的字符串" ),
range: $.validator.format( "请输入范围在 {0} 到 {1} 之间的数值" ),
max: $.validator.format( "请输入不大于 {0} 的数值" ),
min: $.validator.format( "请输入不小于 {0} 的数值" )
} );
return $;
}));
================================================
FILE: public/admin-panel/assets/libs/jquery-validation/dist/localization/messages_zh_TW.js
================================================
(function( factory ) {
if ( typeof define === "function" && define.amd ) {
define( ["jquery", "../jquery.validate"], factory );
} else if (typeof module === "object" && module.exports) {
module.exports = factory( require( "jquery" ) );
} else {
factory( jQuery );
}
}(function( $ ) {
/*
* Translated default messages for the jQuery validation plugin.
* Locale: ZH (Chinese; 中文 (Zhōngwén), 汉语, 漢語)
* Region: TW (Taiwan)
*/
$.extend( $.validator.messages, {
required: "必須填寫",
remote: "請修正此欄位",
email: "請輸入有效的電子郵件",
url: "請輸入有效的網址",
date: "請輸入有效的日期",
dateISO: "請輸入有效的日期 (YYYY-MM-DD)",
number: "請輸入正確的數值",
digits: "只可輸入數字",
creditcard: "請輸入有效的信用卡號碼",
equalTo: "請重複輸入一次",
extension: "請輸入有效的後綴",
maxlength: $.validator.format( "最多 {0} 個字" ),
minlength: $.validator.format( "最少 {0} 個字" ),
rangelength: $.validator.format( "請輸入長度為 {0} 至 {1} 之間的字串" ),
range: $.validator.format( "請輸入 {0} 至 {1} 之間的數值" ),
max: $.validator.format( "請輸入不大於 {0} 的數值" ),
min: $.validator.format( "請輸入不小於 {0} 的數值" )
} );
return $;
}));
================================================
FILE: public/admin-panel/assets/libs/jquery-validation/dist/localization/methods_de.js
================================================
(function( factory ) {
if ( typeof define === "function" && define.amd ) {
define( ["jquery", "../jquery.validate"], factory );
} else if (typeof module === "object" && module.exports) {
module.exports = factory( require( "jquery" ) );
} else {
factory( jQuery );
}
}(function( $ ) {
/*
* Localized default methods for the jQuery validation plugin.
* Locale: DE
*/
$.extend( $.validator.methods, {
date: function( value, element ) {
return this.optional( element ) || /^\d\d?\.\d\d?\.\d\d\d?\d?$/.test( value );
},
number: function( value, element ) {
return this.optional( element ) || /^-?(?:\d+|\d{1,3}(?:\.\d{3})+)(?:,\d+)?$/.test( value );
}
} );
return $;
}));
================================================
FILE: public/admin-panel/assets/libs/jquery-validation/dist/localization/methods_es_CL.js
================================================
(function( factory ) {
if ( typeof define === "function" && define.amd ) {
define( ["jquery", "../jquery.validate"], factory );
} else if (typeof module === "object" && module.exports) {
module.exports = factory( require( "jquery" ) );
} else {
factory( jQuery );
}
}(function( $ ) {
/*
* Localized default methods for the jQuery validation plugin.
* Locale: ES_CL
*/
$.extend( $.validator.methods, {
date: function( value, element ) {
return this.optional( element ) || /^\d\d?\-\d\d?\-\d\d\d?\d?$/.test( value );
},
number: function( value, element ) {
return this.optional( element ) || /^-?(?:\d+|\d{1,3}(?:\.\d{3})+)(?:,\d+)?$/.test( value );
}
} );
return $;
}));
================================================
FILE: public/admin-panel/assets/libs/jquery-validation/dist/localization/methods_fi.js
================================================
(function( factory ) {
if ( typeof define === "function" && define.amd ) {
define( ["jquery", "../jquery.validate"], factory );
} else if (typeof module === "object" && module.exports) {
module.exports = factory( require( "jquery" ) );
} else {
factory( jQuery );
}
}(function( $ ) {
/*
* Localized default methods for the jQuery validation plugin.
* Locale: FI
*/
$.extend( $.validator.methods, {
date: function( value, element ) {
return this.optional( element ) || /^\d{1,2}\.\d{1,2}\.\d{4}$/.test( value );
},
number: function( value, element ) {
return this.optional( element ) || /^-?(?:\d+)(?:,\d+)?$/.test( value );
}
} );
return $;
}));
================================================
FILE: public/admin-panel/assets/libs/jquery-validation/dist/localization/methods_nl.js
================================================
(function( factory ) {
if ( typeof define === "function" && define.amd ) {
define( ["jquery", "../jquery.validate"], factory );
} else if (typeof module === "object" && module.exports) {
module.exports = factory( require( "jquery" ) );
} else {
factory( jQuery );
}
}(function( $ ) {
/*
* Localized default methods for the jQuery validation plugin.
* Locale: NL
*/
$.extend( $.validator.methods, {
date: function( value, element ) {
return this.optional( element ) || /^\d\d?[\.\/\-]\d\d?[\.\/\-]\d\d\d?\d?$/.test( value );
},
number: function( value, element ) {
return this.optional( element ) || /^-?(?:\d+|\d{1,3}(?:\.\d{3})+)(?:,\d+)?$/.test( value );
}
} );
return $;
}));
================================================
FILE: public/admin-panel/assets/libs/jquery-validation/dist/localization/methods_pt.js
================================================
(function( factory ) {
if ( typeof define === "function" && define.amd ) {
define( ["jquery", "../jquery.validate"], factory );
} else if (typeof module === "object" && module.exports) {
module.exports = factory( require( "jquery" ) );
} else {
factory( jQuery );
}
}(function( $ ) {
/*
* Localized default methods for the jQuery validation plugin.
* Locale: PT_BR
*/
$.extend( $.validator.methods, {
date: function( value, element ) {
return this.optional( element ) || /^\d\d?\/\d\d?\/\d\d\d?\d?$/.test( value );
}
} );
return $;
}));
================================================
FILE: public/admin-panel/assets/libs/jquery.flot.tooltip/js/jquery.flot.tooltip.source.js
================================================
(function ($) {
// plugin options, default values
var defaultOptions = {
tooltip: {
show: false,
cssClass: "flotTip",
content: "%s | X: %x | Y: %y",
// allowed templates are:
// %s -> series label,
// %c -> series color,
// %lx -> x axis label (requires flot-axislabels plugin https://github.com/markrcote/flot-axislabels),
// %ly -> y axis label (requires flot-axislabels plugin https://github.com/markrcote/flot-axislabels),
// %x -> X value,
// %y -> Y value,
// %x.2 -> precision of X value,
// %p -> percent
// %n -> value (not percent) of pie chart
xDateFormat: null,
yDateFormat: null,
monthNames: null,
dayNames: null,
shifts: {
x: 10,
y: 20
},
defaultTheme: true,
snap: true,
lines: false,
clickTips: false,
// callbacks
onHover: function (flotItem, $tooltipEl) {},
$compat: false
}
};
// dummy default options object for legacy code (<0.8.5) - is deleted later
defaultOptions.tooltipOpts = defaultOptions.tooltip;
// object
var FlotTooltip = function (plot) {
// variables
this.tipPosition = {x: 0, y: 0};
this.init(plot);
};
// main plugin function
FlotTooltip.prototype.init = function (plot) {
var that = this;
// detect other flot plugins
var plotPluginsLength = $.plot.plugins.length;
this.plotPlugins = [];
if (plotPluginsLength) {
for (var p = 0; p < plotPluginsLength; p++) {
this.plotPlugins.push($.plot.plugins[p].name);
}
}
plot.hooks.bindEvents.push(function (plot, eventHolder) {
// get plot options
that.plotOptions = plot.getOptions();
// for legacy (<0.8.5) implementations
if (typeof(that.plotOptions.tooltip) === 'boolean') {
that.plotOptions.tooltipOpts.show = that.plotOptions.tooltip;
that.plotOptions.tooltip = that.plotOptions.tooltipOpts;
delete that.plotOptions.tooltipOpts;
}
// if not enabled return
if (that.plotOptions.tooltip.show === false || typeof that.plotOptions.tooltip.show === 'undefined') return;
// shortcut to access tooltip options
that.tooltipOptions = that.plotOptions.tooltip;
if (that.tooltipOptions.$compat) {
that.wfunc = 'width';
that.hfunc = 'height';
} else {
that.wfunc = 'innerWidth';
that.hfunc = 'innerHeight';
}
// create tooltip DOM element
var $tip = that.getDomElement();
// bind event
$( plot.getPlaceholder() ).bind("plothover", plothover);
if (that.tooltipOptions.clickTips) {
$( plot.getPlaceholder() ).bind("plotclick", plotclick);
}
that.clickmode = false;
$(eventHolder).bind('mousemove', mouseMove);
});
plot.hooks.shutdown.push(function (plot, eventHolder){
$(plot.getPlaceholder()).unbind("plothover", plothover);
$(plot.getPlaceholder()).unbind("plotclick", plotclick);
plot.removeTooltip();
$(eventHolder).unbind("mousemove", mouseMove);
});
function mouseMove(e){
var pos = {};
pos.x = e.pageX;
pos.y = e.pageY;
plot.setTooltipPosition(pos);
}
/**
* open the tooltip (if not already open) and freeze it on the current position till the next click
*/
function plotclick(event, pos, item) {
if (! that.clickmode) {
// it is the click activating the clicktip
plothover(event, pos, item);
if (that.getDomElement().is(":visible")) {
$(plot.getPlaceholder()).unbind("plothover", plothover);
that.clickmode = true;
}
} else {
// it is the click deactivating the clicktip
$( plot.getPlaceholder() ).bind("plothover", plothover);
plot.hideTooltip();
that.clickmode = false;
}
}
function plothover(event, pos, item) {
// Simple distance formula.
var lineDistance = function (p1x, p1y, p2x, p2y) {
return Math.sqrt((p2x - p1x) * (p2x - p1x) + (p2y - p1y) * (p2y - p1y));
};
// Here is some voodoo magic for determining the distance to a line form a given point {x, y}.
var dotLineLength = function (x, y, x0, y0, x1, y1, o) {
if (o && !(o =
function (x, y, x0, y0, x1, y1) {
if (typeof x0 !== 'undefined') return { x: x0, y: y };
else if (typeof y0 !== 'undefined') return { x: x, y: y0 };
var left,
tg = -1 / ((y1 - y0) / (x1 - x0));
return {
x: left = (x1 * (x * tg - y + y0) + x0 * (x * -tg + y - y1)) / (tg * (x1 - x0) + y0 - y1),
y: tg * left - tg * x + y
};
} (x, y, x0, y0, x1, y1),
o.x >= Math.min(x0, x1) && o.x <= Math.max(x0, x1) && o.y >= Math.min(y0, y1) && o.y <= Math.max(y0, y1))
) {
var l1 = lineDistance(x, y, x0, y0), l2 = lineDistance(x, y, x1, y1);
return l1 > l2 ? l2 : l1;
} else {
var a = y0 - y1, b = x1 - x0, c = x0 * y1 - y0 * x1;
return Math.abs(a * x + b * y + c) / Math.sqrt(a * a + b * b);
}
};
if (item) {
plot.showTooltip(item, that.tooltipOptions.snap ? item : pos);
} else if (that.plotOptions.series.lines.show && that.tooltipOptions.lines === true) {
var maxDistance = that.plotOptions.grid.mouseActiveRadius;
var closestTrace = {
distance: maxDistance + 1
};
var ttPos = pos;
$.each(plot.getData(), function (i, series) {
var xBeforeIndex = 0,
xAfterIndex = -1;
// Our search here assumes our data is sorted via the x-axis.
// TODO: Improve efficiency somehow - search smaller sets of data.
for (var j = 1; j < series.data.length; j++) {
if (series.data[j - 1][0] <= pos.x && series.data[j][0] >= pos.x) {
xBeforeIndex = j - 1;
xAfterIndex = j;
}
}
if (xAfterIndex === -1) {
plot.hideTooltip();
return;
}
var pointPrev = { x: series.data[xBeforeIndex][0], y: series.data[xBeforeIndex][1] },
pointNext = { x: series.data[xAfterIndex][0], y: series.data[xAfterIndex][1] };
var distToLine = dotLineLength(series.xaxis.p2c(pos.x), series.yaxis.p2c(pos.y), series.xaxis.p2c(pointPrev.x),
series.yaxis.p2c(pointPrev.y), series.xaxis.p2c(pointNext.x), series.yaxis.p2c(pointNext.y), false);
if (distToLine < closestTrace.distance) {
var closestIndex = lineDistance(pointPrev.x, pointPrev.y, pos.x, pos.y) <
lineDistance(pos.x, pos.y, pointNext.x, pointNext.y) ? xBeforeIndex : xAfterIndex;
var pointSize = series.datapoints.pointsize;
// Calculate the point on the line vertically closest to our cursor.
var pointOnLine = [
pos.x,
pointPrev.y + ((pointNext.y - pointPrev.y) * ((pos.x - pointPrev.x) / (pointNext.x - pointPrev.x)))
];
var item = {
datapoint: pointOnLine,
dataIndex: closestIndex,
series: series,
seriesIndex: i
};
closestTrace = {
distance: distToLine,
item: item
};
if (that.tooltipOptions.snap) {
ttPos = {
pageX: series.xaxis.p2c(pointOnLine[0]),
pageY: series.yaxis.p2c(pointOnLine[1])
};
}
}
});
if (closestTrace.distance < maxDistance + 1)
plot.showTooltip(closestTrace.item, ttPos);
else
plot.hideTooltip();
} else {
plot.hideTooltip();
}
}
// Quick little function for setting the tooltip position.
plot.setTooltipPosition = function (pos) {
var $tip = that.getDomElement();
var totalTipWidth = $tip.outerWidth() + that.tooltipOptions.shifts.x;
var totalTipHeight = $tip.outerHeight() + that.tooltipOptions.shifts.y;
if ((pos.x - $(window).scrollLeft()) > ($(window)[that.wfunc]() - totalTipWidth)) {
pos.x -= totalTipWidth;
pos.x = Math.max(pos.x, 0);
}
if ((pos.y - $(window).scrollTop()) > ($(window)[that.hfunc]() - totalTipHeight)) {
pos.y -= totalTipHeight;
}
/*
The section applies the new positioning ONLY if pos.x and pos.y
are numbers. If they are undefined or not a number, use the last
known numerical position. This hack fixes a bug that kept pie
charts from keeping their tooltip positioning.
*/
if (isNaN(pos.x)) {
that.tipPosition.x = that.tipPosition.xPrev;
}
else {
that.tipPosition.x = pos.x;
that.tipPosition.xPrev = pos.x;
}
if (isNaN(pos.y)) {
that.tipPosition.y = that.tipPosition.yPrev;
}
else {
that.tipPosition.y = pos.y;
that.tipPosition.yPrev = pos.y;
}
};
// Quick little function for showing the tooltip.
plot.showTooltip = function (target, position, targetPosition) {
var $tip = that.getDomElement();
// convert tooltip content template to real tipText
var tipText = that.stringFormat(that.tooltipOptions.content, target);
if (tipText === '')
return;
$tip.html(tipText);
plot.setTooltipPosition({ x: that.tipPosition.x, y: that.tipPosition.y });
$tip.css({
left: that.tipPosition.x + that.tooltipOptions.shifts.x,
top: that.tipPosition.y + that.tooltipOptions.shifts.y
}).show();
// run callback
if (typeof that.tooltipOptions.onHover === 'function') {
that.tooltipOptions.onHover(target, $tip);
}
};
// Quick little function for hiding the tooltip.
plot.hideTooltip = function () {
that.getDomElement().hide().html('');
};
plot.removeTooltip = function() {
that.getDomElement().remove();
};
};
/**
* get or create tooltip DOM element
* @return jQuery object
*/
FlotTooltip.prototype.getDomElement = function () {
var $tip = $('');
if (this.tooltipOptions && this.tooltipOptions.cssClass) {
$tip = $('.' + this.tooltipOptions.cssClass);
if( $tip.length === 0 ){
$tip = $('
').addClass(this.tooltipOptions.cssClass);
$tip.appendTo('body').hide().css({position: 'absolute'});
if(this.tooltipOptions.defaultTheme) {
$tip.css({
'background': '#fff',
'z-index': '1040',
'padding': '0.4em 0.6em',
'border-radius': '0.5em',
'font-size': '0.8em',
'border': '1px solid #111',
'display': 'none',
'white-space': 'nowrap'
});
}
}
}
return $tip;
};
/**
* core function, create tooltip content
* @param {string} content - template with tooltip content
* @param {object} item - Flot item
* @return {string} real tooltip content for current item
*/
FlotTooltip.prototype.stringFormat = function (content, item) {
var percentPattern = /%p\.{0,1}(\d{0,})/;
var seriesPattern = /%s/;
var colorPattern = /%c/;
var xLabelPattern = /%lx/; // requires flot-axislabels plugin https://github.com/markrcote/flot-axislabels, will be ignored if plugin isn't loaded
var yLabelPattern = /%ly/; // requires flot-axislabels plugin https://github.com/markrcote/flot-axislabels, will be ignored if plugin isn't loaded
var xPattern = /%x\.{0,1}(\d{0,})/;
var yPattern = /%y\.{0,1}(\d{0,})/;
var xPatternWithoutPrecision = "%x";
var yPatternWithoutPrecision = "%y";
var customTextPattern = "%ct";
var nPiePattern = "%n";
var x, y, customText, p, n;
// for threshold plugin we need to read data from different place
if (typeof item.series.threshold !== "undefined") {
x = item.datapoint[0];
y = item.datapoint[1];
customText = item.datapoint[2];
}
// for CurvedLines plugin we need to read data from different place
else if (typeof item.series.curvedLines !== "undefined") {
x = item.datapoint[0];
y = item.datapoint[1];
}
else if (typeof item.series.lines !== "undefined" && item.series.lines.steps) {
x = item.series.datapoints.points[item.dataIndex * 2];
y = item.series.datapoints.points[item.dataIndex * 2 + 1];
// TODO: where to find custom text in this variant?
customText = "";
} else {
x = item.series.data[item.dataIndex][0];
y = item.series.data[item.dataIndex][1];
customText = item.series.data[item.dataIndex][2];
}
// I think this is only in case of threshold plugin
if (item.series.label === null && item.series.originSeries) {
item.series.label = item.series.originSeries.label;
}
// if it is a function callback get the content string
if (typeof(content) === 'function') {
content = content(item.series.label, x, y, item);
}
// the case where the passed content is equal to false
if (typeof(content) === 'boolean' && !content) {
return '';
}
/* replacement of %ct and other multi-character templates must
precede the replacement of single-character templates
to avoid conflict between '%c' and '%ct' and similar substrings
*/
if (customText) {
content = content.replace(customTextPattern, customText);
}
// percent match for pie charts and stacked percent
if (typeof (item.series.percent) !== 'undefined') {
p = item.series.percent;
} else if (typeof (item.series.percents) !== 'undefined') {
p = item.series.percents[item.dataIndex];
}
if (typeof p === 'number') {
content = this.adjustValPrecision(percentPattern, content, p);
}
// replace %n with number of items represented by slice in pie charts
if (item.series.hasOwnProperty('pie')) {
if (typeof item.series.data[0][1] !== 'undefined') {
n = item.series.data[0][1];
}
}
if (typeof n === 'number') {
content = content.replace(nPiePattern, n);
}
// series match
if (typeof(item.series.label) !== 'undefined') {
content = content.replace(seriesPattern, item.series.label);
} else {
//remove %s if label is undefined
content = content.replace(seriesPattern, "");
}
// color match
if (typeof(item.series.color) !== 'undefined') {
content = content.replace(colorPattern, item.series.color);
} else {
//remove %s if color is undefined
content = content.replace(colorPattern, "");
}
// x axis label match
if (this.hasAxisLabel('xaxis', item)) {
content = content.replace(xLabelPattern, item.series.xaxis.options.axisLabel);
} else {
//remove %lx if axis label is undefined or axislabels plugin not present
content = content.replace(xLabelPattern, "");
}
// y axis label match
if (this.hasAxisLabel('yaxis', item)) {
content = content.replace(yLabelPattern, item.series.yaxis.options.axisLabel);
} else {
//remove %ly if axis label is undefined or axislabels plugin not present
content = content.replace(yLabelPattern, "");
}
// time mode axes with custom dateFormat
if (this.isTimeMode('xaxis', item) && this.isXDateFormat(item)) {
content = content.replace(xPattern, this.timestampToDate(x, this.tooltipOptions.xDateFormat, item.series.xaxis.options));
}
if (this.isTimeMode('yaxis', item) && this.isYDateFormat(item)) {
content = content.replace(yPattern, this.timestampToDate(y, this.tooltipOptions.yDateFormat, item.series.yaxis.options));
}
// set precision if defined
if (typeof x === 'number') {
content = this.adjustValPrecision(xPattern, content, x);
}
if (typeof y === 'number') {
content = this.adjustValPrecision(yPattern, content, y);
}
// change x from number to given label, if given
if (typeof item.series.xaxis.ticks !== 'undefined') {
var ticks;
if (this.hasRotatedXAxisTicks(item)) {
// xaxis.ticks will be an empty array if tickRotor is being used, but the values are available in rotatedTicks
ticks = 'rotatedTicks';
} else {
ticks = 'ticks';
}
// see https://github.com/krzysu/flot.tooltip/issues/65
var tickIndex = item.dataIndex + item.seriesIndex;
for (var xIndex in item.series.xaxis[ticks]) {
if (item.series.xaxis[ticks].hasOwnProperty(tickIndex) && !this.isTimeMode('xaxis', item)) {
var valueX = (this.isCategoriesMode('xaxis', item)) ? item.series.xaxis[ticks][tickIndex].label : item.series.xaxis[ticks][tickIndex].v;
if (valueX === x) {
content = content.replace(xPattern, item.series.xaxis[ticks][tickIndex].label.replace(/\$/g, '$$$$'));
}
}
}
}
// change y from number to given label, if given
if (typeof item.series.yaxis.ticks !== 'undefined') {
for (var yIndex in item.series.yaxis.ticks) {
if (item.series.yaxis.ticks.hasOwnProperty(yIndex)) {
var valueY = (this.isCategoriesMode('yaxis', item)) ? item.series.yaxis.ticks[yIndex].label : item.series.yaxis.ticks[yIndex].v;
if (valueY === y) {
content = content.replace(yPattern, item.series.yaxis.ticks[yIndex].label.replace(/\$/g, '$$$$'));
}
}
}
}
// if no value customization, use tickFormatter by default
if (typeof item.series.xaxis.tickFormatter !== 'undefined') {
//escape dollar
content = content.replace(xPatternWithoutPrecision, item.series.xaxis.tickFormatter(x, item.series.xaxis).replace(/\$/g, '$$'));
}
if (typeof item.series.yaxis.tickFormatter !== 'undefined') {
//escape dollar
content = content.replace(yPatternWithoutPrecision, item.series.yaxis.tickFormatter(y, item.series.yaxis).replace(/\$/g, '$$'));
}
return content;
};
// helpers just for readability
FlotTooltip.prototype.isTimeMode = function (axisName, item) {
return (typeof item.series[axisName].options.mode !== 'undefined' && item.series[axisName].options.mode === 'time');
};
FlotTooltip.prototype.isXDateFormat = function (item) {
return (typeof this.tooltipOptions.xDateFormat !== 'undefined' && this.tooltipOptions.xDateFormat !== null);
};
FlotTooltip.prototype.isYDateFormat = function (item) {
return (typeof this.tooltipOptions.yDateFormat !== 'undefined' && this.tooltipOptions.yDateFormat !== null);
};
FlotTooltip.prototype.isCategoriesMode = function (axisName, item) {
return (typeof item.series[axisName].options.mode !== 'undefined' && item.series[axisName].options.mode === 'categories');
};
//
FlotTooltip.prototype.timestampToDate = function (tmst, dateFormat, options) {
var theDate = $.plot.dateGenerator(tmst, options);
return $.plot.formatDate(theDate, dateFormat, this.tooltipOptions.monthNames, this.tooltipOptions.dayNames);
};
//
FlotTooltip.prototype.adjustValPrecision = function (pattern, content, value) {
var precision;
var matchResult = content.match(pattern);
if( matchResult !== null ) {
if(RegExp.$1 !== '') {
precision = RegExp.$1;
value = value.toFixed(precision);
// only replace content if precision exists, in other case use thickformater
content = content.replace(pattern, value);
}
}
return content;
};
// other plugins detection below
// check if flot-axislabels plugin (https://github.com/markrcote/flot-axislabels) is used and that an axis label is given
FlotTooltip.prototype.hasAxisLabel = function (axisName, item) {
return ($.inArray('axisLabels', this.plotPlugins) !== -1 && typeof item.series[axisName].options.axisLabel !== 'undefined' && item.series[axisName].options.axisLabel.length > 0);
};
// check whether flot-tickRotor, a plugin which allows rotation of X-axis ticks, is being used
FlotTooltip.prototype.hasRotatedXAxisTicks = function (item) {
return ($.inArray('tickRotor',this.plotPlugins) !== -1 && typeof item.series.xaxis.rotatedTicks !== 'undefined');
};
//
var init = function (plot) {
new FlotTooltip(plot);
};
// define Flot plugin
$.plot.plugins.push({
init: init,
options: defaultOptions,
name: 'tooltip',
version: '0.8.5'
});
})(jQuery);
================================================
FILE: public/admin-panel/assets/libs/magnific-popup/animation.css
================================================
/*
====== Zoom effect ======
*/
.mfp-zoom-in {
/* start state */
/* animate in */
/* animate out */
}
.mfp-zoom-in .mfp-with-anim {
opacity: 0;
transition: all 0.2s ease-in-out;
transform: scale(0.8);
}
.mfp-zoom-in.mfp-bg {
opacity: 0;
transition: all 0.3s ease-out;
}
.mfp-zoom-in.mfp-ready .mfp-with-anim {
opacity: 1;
transform: scale(1);
}
.mfp-zoom-in.mfp-ready.mfp-bg {
opacity: 0.8;
}
.mfp-zoom-in.mfp-removing .mfp-with-anim {
transform: scale(0.8);
opacity: 0;
}
.mfp-zoom-in.mfp-removing.mfp-bg {
opacity: 0;
}
/*
====== Newspaper effect ======
*/
.mfp-newspaper {
/* start state */
/* animate in */
/* animate out */
}
.mfp-newspaper .mfp-with-anim {
opacity: 0;
-webkit-transition: all 0.2s ease-in-out;
transition: all 0.5s;
transform: scale(0) rotate(500deg);
}
.mfp-newspaper.mfp-bg {
opacity: 0;
transition: all 0.5s;
}
.mfp-newspaper.mfp-ready .mfp-with-anim {
opacity: 1;
transform: scale(1) rotate(0deg);
}
.mfp-newspaper.mfp-ready.mfp-bg {
opacity: 0.8;
}
.mfp-newspaper.mfp-removing .mfp-with-anim {
transform: scale(0) rotate(500deg);
opacity: 0;
}
.mfp-newspaper.mfp-removing.mfp-bg {
opacity: 0;
}
/*
====== Move-horizontal effect ======
*/
.mfp-move-horizontal {
/* start state */
/* animate in */
/* animate out */
}
.mfp-move-horizontal .mfp-with-anim {
opacity: 0;
transition: all 0.3s;
transform: translateX(-50px);
}
.mfp-move-horizontal.mfp-bg {
opacity: 0;
transition: all 0.3s;
}
.mfp-move-horizontal.mfp-ready .mfp-with-anim {
opacity: 1;
transform: translateX(0);
}
.mfp-move-horizontal.mfp-ready.mfp-bg {
opacity: 0.8;
}
.mfp-move-horizontal.mfp-removing .mfp-with-anim {
transform: translateX(50px);
opacity: 0;
}
.mfp-move-horizontal.mfp-removing.mfp-bg {
opacity: 0;
}
/*
====== Move-from-top effect ======
*/
.mfp-move-from-top {
/* start state */
/* animate in */
/* animate out */
}
.mfp-move-from-top .mfp-content {
vertical-align: top;
}
.mfp-move-from-top .mfp-with-anim {
opacity: 0;
transition: all 0.2s;
transform: translateY(-100px);
}
.mfp-move-from-top.mfp-bg {
opacity: 0;
transition: all 0.2s;
}
.mfp-move-from-top.mfp-ready .mfp-with-anim {
opacity: 1;
transform: translateY(0);
}
.mfp-move-from-top.mfp-ready.mfp-bg {
opacity: 0.8;
}
.mfp-move-from-top.mfp-removing .mfp-with-anim {
transform: translateY(-50px);
opacity: 0;
}
.mfp-move-from-top.mfp-removing.mfp-bg {
opacity: 0;
}
/*
====== 3d unfold ======
*/
.mfp-3d-unfold {
/* start state */
/* animate in */
/* animate out */
}
.mfp-3d-unfold .mfp-content {
perspective: 2000px;
}
.mfp-3d-unfold .mfp-with-anim {
opacity: 0;
transition: all 0.3s ease-in-out;
transform-style: preserve-3d;
transform: rotateY(-60deg);
}
.mfp-3d-unfold.mfp-bg {
opacity: 0;
transition: all 0.5s;
}
.mfp-3d-unfold.mfp-ready .mfp-with-anim {
opacity: 1;
transform: rotateY(0deg);
}
.mfp-3d-unfold.mfp-ready.mfp-bg {
opacity: 0.8;
}
.mfp-3d-unfold.mfp-removing .mfp-with-anim {
transform: rotateY(60deg);
opacity: 0;
}
.mfp-3d-unfold.mfp-removing.mfp-bg {
opacity: 0;
}
/*
====== Zoom-out effect ======
*/
.mfp-zoom-out {
/* start state */
/* animate in */
/* animate out */
}
.mfp-zoom-out .mfp-with-anim {
opacity: 0;
transition: all 0.3s ease-in-out;
transform: scale(1.3);
}
.mfp-zoom-out.mfp-bg {
opacity: 0;
transition: all 0.3s ease-out;
}
.mfp-zoom-out.mfp-ready .mfp-with-anim {
opacity: 1;
transform: scale(1);
}
.mfp-zoom-out.mfp-ready.mfp-bg {
opacity: 0.8;
}
.mfp-zoom-out.mfp-removing .mfp-with-anim {
transform: scale(1.3);
opacity: 0;
}
.mfp-zoom-out.mfp-removing.mfp-bg {
opacity: 0;
}
/*
====== "Hinge" close effect ======
*/
@keyframes hinge {
0% {
transform: rotate(0);
transform-origin: top left;
animation-timing-function: ease-in-out;
}
20%,
60% {
transform: rotate(80deg);
transform-origin: top left;
animation-timing-function: ease-in-out;
}
40% {
transform: rotate(60deg);
transform-origin: top left;
animation-timing-function: ease-in-out;
}
80% {
transform: rotate(60deg) translateY(0);
opacity: 1;
transform-origin: top left;
animation-timing-function: ease-in-out;
}
100% {
transform: translateY(700px);
opacity: 0;
}
}
.hinge {
animation-duration: 1s;
animation-name: hinge;
}
.mfp-with-fade .mfp-content,
.mfp-with-fade.mfp-bg {
opacity: 0;
transition: opacity 0.5s ease-out;
}
.mfp-with-fade.mfp-ready .mfp-content {
opacity: 1;
}
.mfp-with-fade.mfp-ready.mfp-bg {
opacity: 0.8;
}
.mfp-with-fade.mfp-removing.mfp-bg {
opacity: 0;
}
.white-popup-block{
background: #FFF;
padding: 20px 30px;
text-align: left;
max-width: 650px;
margin: 40px auto;
position: relative;}
.mfp-fade.mfp-bg {
opacity: 0;
-webkit-transition: all 0.15s ease-out;
-moz-transition: all 0.15s ease-out;
transition: all 0.15s ease-out;
}
.mfp-fade.mfp-bg.mfp-ready {
opacity: 0.8;
}
.mfp-fade.mfp-bg.mfp-removing {
opacity: 0;
}
.mfp-fade.mfp-wrap .mfp-content {
opacity: 0;
-webkit-transition: all 0.15s ease-out;
-moz-transition: all 0.15s ease-out;
transition: all 0.15s ease-out;
}
.mfp-fade.mfp-wrap.mfp-ready .mfp-content {
opacity: 1;
}
.mfp-fade.mfp-wrap.mfp-removing .mfp-content {
opacity: 0;
}
================================================
FILE: public/admin-panel/assets/libs/magnific-popup/dist/magnific-popup.css
================================================
/* Magnific Popup CSS */
.mfp-bg {
top: 0;
left: 0;
width: 100%;
height: 100%;
z-index: 1042;
overflow: hidden;
position: fixed;
background: #0b0b0b;
opacity: 0.8; }
.mfp-wrap {
top: 0;
left: 0;
width: 100%;
height: 100%;
z-index: 1043;
position: fixed;
outline: none !important;
-webkit-backface-visibility: hidden; }
.mfp-container {
text-align: center;
position: absolute;
width: 100%;
height: 100%;
left: 0;
top: 0;
padding: 0 8px;
box-sizing: border-box; }
.mfp-container:before {
content: '';
display: inline-block;
height: 100%;
vertical-align: middle; }
.mfp-align-top .mfp-container:before {
display: none; }
.mfp-content {
position: relative;
display: inline-block;
vertical-align: middle;
margin: 0 auto;
text-align: left;
z-index: 1045; }
.mfp-inline-holder .mfp-content,
.mfp-ajax-holder .mfp-content {
width: 100%;
cursor: auto; }
.mfp-ajax-cur {
cursor: progress; }
.mfp-zoom-out-cur, .mfp-zoom-out-cur .mfp-image-holder .mfp-close {
cursor: -moz-zoom-out;
cursor: -webkit-zoom-out;
cursor: zoom-out; }
.mfp-zoom {
cursor: pointer;
cursor: -webkit-zoom-in;
cursor: -moz-zoom-in;
cursor: zoom-in; }
.mfp-auto-cursor .mfp-content {
cursor: auto; }
.mfp-close,
.mfp-arrow,
.mfp-preloader,
.mfp-counter {
-webkit-user-select: none;
-moz-user-select: none;
user-select: none; }
.mfp-loading.mfp-figure {
display: none; }
.mfp-hide {
display: none !important; }
.mfp-preloader {
color: #CCC;
position: absolute;
top: 50%;
width: auto;
text-align: center;
margin-top: -0.8em;
left: 8px;
right: 8px;
z-index: 1044; }
.mfp-preloader a {
color: #CCC; }
.mfp-preloader a:hover {
color: #FFF; }
.mfp-s-ready .mfp-preloader {
display: none; }
.mfp-s-error .mfp-content {
display: none; }
button.mfp-close,
button.mfp-arrow {
overflow: visible;
cursor: pointer;
background: transparent;
border: 0;
-webkit-appearance: none;
display: block;
outline: none;
padding: 0;
z-index: 1046;
box-shadow: none;
touch-action: manipulation; }
button::-moz-focus-inner {
padding: 0;
border: 0; }
.mfp-close {
width: 44px;
height: 44px;
line-height: 44px;
position: absolute;
right: 0;
top: 0;
text-decoration: none;
text-align: center;
opacity: 0.65;
padding: 0 0 18px 10px;
color: #FFF;
font-style: normal;
font-size: 28px;
font-family: Arial, Baskerville, monospace; }
.mfp-close:hover,
.mfp-close:focus {
opacity: 1; }
.mfp-close:active {
top: 1px; }
.mfp-close-btn-in .mfp-close {
color: #333; }
.mfp-image-holder .mfp-close,
.mfp-iframe-holder .mfp-close {
color: #FFF;
right: -6px;
text-align: right;
padding-right: 6px;
width: 100%; }
.mfp-counter {
position: absolute;
top: 0;
right: 0;
color: #CCC;
font-size: 12px;
line-height: 18px;
white-space: nowrap; }
.mfp-arrow {
position: absolute;
opacity: 0.65;
margin: 0;
top: 50%;
margin-top: -55px;
padding: 0;
width: 90px;
height: 110px;
-webkit-tap-highlight-color: transparent; }
.mfp-arrow:active {
margin-top: -54px; }
.mfp-arrow:hover,
.mfp-arrow:focus {
opacity: 1; }
.mfp-arrow:before,
.mfp-arrow:after {
content: '';
display: block;
width: 0;
height: 0;
position: absolute;
left: 0;
top: 0;
margin-top: 35px;
margin-left: 35px;
border: medium inset transparent; }
.mfp-arrow:after {
border-top-width: 13px;
border-bottom-width: 13px;
top: 8px; }
.mfp-arrow:before {
border-top-width: 21px;
border-bottom-width: 21px;
opacity: 0.7; }
.mfp-arrow-left {
left: 0; }
.mfp-arrow-left:after {
border-right: 17px solid #FFF;
margin-left: 31px; }
.mfp-arrow-left:before {
margin-left: 25px;
border-right: 27px solid #3F3F3F; }
.mfp-arrow-right {
right: 0; }
.mfp-arrow-right:after {
border-left: 17px solid #FFF;
margin-left: 39px; }
.mfp-arrow-right:before {
border-left: 27px solid #3F3F3F; }
.mfp-iframe-holder {
padding-top: 40px;
padding-bottom: 40px; }
.mfp-iframe-holder .mfp-content {
line-height: 0;
width: 100%;
max-width: 900px; }
.mfp-iframe-holder .mfp-close {
top: -40px; }
.mfp-iframe-scaler {
width: 100%;
height: 0;
overflow: hidden;
padding-top: 56.25%; }
.mfp-iframe-scaler iframe {
position: absolute;
display: block;
top: 0;
left: 0;
width: 100%;
height: 100%;
box-shadow: 0 0 8px rgba(0, 0, 0, 0.6);
background: #000; }
/* Main image in popup */
img.mfp-img {
width: auto;
max-width: 100%;
height: auto;
display: block;
line-height: 0;
box-sizing: border-box;
padding: 40px 0 40px;
margin: 0 auto; }
/* The shadow behind the image */
.mfp-figure {
line-height: 0; }
.mfp-figure:after {
content: '';
position: absolute;
left: 0;
top: 40px;
bottom: 40px;
display: block;
right: 0;
width: auto;
height: auto;
z-index: -1;
box-shadow: 0 0 8px rgba(0, 0, 0, 0.6);
background: #444; }
.mfp-figure small {
color: #BDBDBD;
display: block;
font-size: 12px;
line-height: 14px; }
.mfp-figure figure {
margin: 0; }
.mfp-bottom-bar {
margin-top: -36px;
position: absolute;
top: 100%;
left: 0;
width: 100%;
cursor: auto; }
.mfp-title {
text-align: left;
line-height: 18px;
color: #F3F3F3;
word-wrap: break-word;
padding-right: 36px; }
.mfp-image-holder .mfp-content {
max-width: 100%; }
.mfp-gallery .mfp-image-holder .mfp-figure {
cursor: pointer; }
@media screen and (max-width: 800px) and (orientation: landscape), screen and (max-height: 300px) {
/**
* Remove all paddings around the image on small screen
*/
.mfp-img-mobile .mfp-image-holder {
padding-left: 0;
padding-right: 0; }
.mfp-img-mobile img.mfp-img {
padding: 0; }
.mfp-img-mobile .mfp-figure:after {
top: 0;
bottom: 0; }
.mfp-img-mobile .mfp-figure small {
display: inline;
margin-left: 5px; }
.mfp-img-mobile .mfp-bottom-bar {
background: rgba(0, 0, 0, 0.6);
bottom: 0;
margin: 0;
top: auto;
padding: 3px 5px;
position: fixed;
box-sizing: border-box; }
.mfp-img-mobile .mfp-bottom-bar:empty {
padding: 0; }
.mfp-img-mobile .mfp-counter {
right: 5px;
top: 3px; }
.mfp-img-mobile .mfp-close {
top: 0;
right: 0;
width: 35px;
height: 35px;
line-height: 35px;
background: rgba(0, 0, 0, 0.6);
position: fixed;
text-align: center;
padding: 0; } }
@media all and (max-width: 900px) {
.mfp-arrow {
-webkit-transform: scale(0.75);
transform: scale(0.75); }
.mfp-arrow-left {
-webkit-transform-origin: 0;
transform-origin: 0; }
.mfp-arrow-right {
-webkit-transform-origin: 100%;
transform-origin: 100%; }
.mfp-container {
padding-left: 6px;
padding-right: 6px; } }
================================================
FILE: public/admin-panel/assets/libs/magnific-popup/meg.init.js
================================================
$(function() {
$('.image-popup-vertical-fit').magnificPopup({
type: 'image',
closeOnContentClick: true,
mainClass: 'mfp-img-mobile',
image: {
verticalFit: true
}
});
$('.image-popup-fit-width').magnificPopup({
type: 'image',
closeOnContentClick: true,
image: {
verticalFit: false
}
});
$('.image-popup-no-margins').magnificPopup({
type: 'image',
closeOnContentClick: true,
closeBtnInside: false,
fixedContentPos: true,
mainClass: 'mfp-no-margins mfp-with-zoom', // class to remove default margin from left and right side
image: {
verticalFit: true
},
zoom: {
enabled: true,
duration: 300 // don't foget to change the duration also in CSS
}
});
$('.popup-gallery').magnificPopup({
delegate: 'a',
type: 'image',
tLoading: 'Loading image #%curr%...',
mainClass: 'mfp-img-mobile',
gallery: {
enabled: true,
navigateByImgClick: true,
preload: [0,1] // Will preload 0 - before current, and 1 after the current image
},
image: {
tError: '
The image #%curr% could not be loaded.',
titleSrc: function(item) {
return item.el.attr('title') + '
by Marsel Van Oosten ';
}
}
});
$('.zoom-gallery').magnificPopup({
delegate: 'a',
type: 'image',
closeOnContentClick: false,
closeBtnInside: false,
mainClass: 'mfp-with-zoom mfp-img-mobile',
image: {
verticalFit: true,
titleSrc: function(item) {
return item.el.attr('title') + ' ·
image source ';
}
},
gallery: {
enabled: true
},
zoom: {
enabled: true,
duration: 300, // don't foget to change the duration also in CSS
opener: function(element) {
return element.find('img');
}
}
});
$('#image-popups').magnificPopup({
delegate: 'a',
type: 'image',
removalDelay: 500, //delay removal by X to allow out-animation
callbacks: {
beforeOpen: function() {
// just a hack that adds mfp-anim class to markup
this.st.image.markup = this.st.image.markup.replace('mfp-figure', 'mfp-figure mfp-with-anim');
this.st.mainClass = this.st.el.attr('data-effect');
}
},
closeOnContentClick: true,
midClick: true // allow opening popup on middle mouse click. Always set it to true if you don't provide alternative source.
});
$('.popup-youtube, .popup-vimeo, .popup-gmaps').magnificPopup({
disableOn: 700,
type: 'iframe',
mainClass: 'mfp-fade',
removalDelay: 160,
preloader: false,
fixedContentPos: false
});
$('.popup-with-form').magnificPopup({
type: 'inline',
preloader: false,
focus: '#name',
// When elemened is focused, some mobile browsers in some cases zoom in
// It looks not nice, so we disable it:
callbacks: {
beforeOpen: function() {
if($(window).width() < 700) {
this.st.focus = false;
} else {
this.st.focus = '#name';
}
}
}
});
$('.simple-ajax-popup-align-top').magnificPopup({
type: 'ajax',
alignTop: true,
overflowY: 'scroll' // as we know that popup content is tall we set scroll overflow by default to avoid jump
});
$('.simple-ajax-popup').magnificPopup({
type: 'ajax'
});
});
================================================
FILE: public/admin-panel/assets/libs/moment/ender.js
================================================
$.ender({ moment: require('moment') })
================================================
FILE: public/admin-panel/assets/libs/moment/locale/af.js
================================================
//! moment.js locale configuration
;(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined'
&& typeof require === 'function' ? factory(require('../moment')) :
typeof define === 'function' && define.amd ? define(['../moment'], factory) :
factory(global.moment)
}(this, (function (moment) { 'use strict';
var af = moment.defineLocale('af', {
months : 'Januarie_Februarie_Maart_April_Mei_Junie_Julie_Augustus_September_Oktober_November_Desember'.split('_'),
monthsShort : 'Jan_Feb_Mrt_Apr_Mei_Jun_Jul_Aug_Sep_Okt_Nov_Des'.split('_'),
weekdays : 'Sondag_Maandag_Dinsdag_Woensdag_Donderdag_Vrydag_Saterdag'.split('_'),
weekdaysShort : 'Son_Maa_Din_Woe_Don_Vry_Sat'.split('_'),
weekdaysMin : 'So_Ma_Di_Wo_Do_Vr_Sa'.split('_'),
meridiemParse: /vm|nm/i,
isPM : function (input) {
return /^nm$/i.test(input);
},
meridiem : function (hours, minutes, isLower) {
if (hours < 12) {
return isLower ? 'vm' : 'VM';
} else {
return isLower ? 'nm' : 'NM';
}
},
longDateFormat : {
LT : 'HH:mm',
LTS : 'HH:mm:ss',
L : 'DD/MM/YYYY',
LL : 'D MMMM YYYY',
LLL : 'D MMMM YYYY HH:mm',
LLLL : 'dddd, D MMMM YYYY HH:mm'
},
calendar : {
sameDay : '[Vandag om] LT',
nextDay : '[Môre om] LT',
nextWeek : 'dddd [om] LT',
lastDay : '[Gister om] LT',
lastWeek : '[Laas] dddd [om] LT',
sameElse : 'L'
},
relativeTime : {
future : 'oor %s',
past : '%s gelede',
s : '\'n paar sekondes',
ss : '%d sekondes',
m : '\'n minuut',
mm : '%d minute',
h : '\'n uur',
hh : '%d ure',
d : '\'n dag',
dd : '%d dae',
M : '\'n maand',
MM : '%d maande',
y : '\'n jaar',
yy : '%d jaar'
},
dayOfMonthOrdinalParse: /\d{1,2}(ste|de)/,
ordinal : function (number) {
return number + ((number === 1 || number === 8 || number >= 20) ? 'ste' : 'de'); // Thanks to Joris Röling : https://github.com/jjupiter
},
week : {
dow : 1, // Maandag is die eerste dag van die week.
doy : 4 // Die week wat die 4de Januarie bevat is die eerste week van die jaar.
}
});
return af;
})));
================================================
FILE: public/admin-panel/assets/libs/moment/locale/ar-dz.js
================================================
//! moment.js locale configuration
;(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined'
&& typeof require === 'function' ? factory(require('../moment')) :
typeof define === 'function' && define.amd ? define(['../moment'], factory) :
factory(global.moment)
}(this, (function (moment) { 'use strict';
var arDz = moment.defineLocale('ar-dz', {
months : 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split('_'),
monthsShort : 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split('_'),
weekdays : 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),
weekdaysShort : 'احد_اثنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'),
weekdaysMin : 'أح_إث_ثلا_أر_خم_جم_سب'.split('_'),
weekdaysParseExact : true,
longDateFormat : {
LT : 'HH:mm',
LTS : 'HH:mm:ss',
L : 'DD/MM/YYYY',
LL : 'D MMMM YYYY',
LLL : 'D MMMM YYYY HH:mm',
LLLL : 'dddd D MMMM YYYY HH:mm'
},
calendar : {
sameDay: '[اليوم على الساعة] LT',
nextDay: '[غدا على الساعة] LT',
nextWeek: 'dddd [على الساعة] LT',
lastDay: '[أمس على الساعة] LT',
lastWeek: 'dddd [على الساعة] LT',
sameElse: 'L'
},
relativeTime : {
future : 'في %s',
past : 'منذ %s',
s : 'ثوان',
ss : '%d ثانية',
m : 'دقيقة',
mm : '%d دقائق',
h : 'ساعة',
hh : '%d ساعات',
d : 'يوم',
dd : '%d أيام',
M : 'شهر',
MM : '%d أشهر',
y : 'سنة',
yy : '%d سنوات'
},
week : {
dow : 0, // Sunday is the first day of the week.
doy : 4 // The week that contains Jan 1st is the first week of the year.
}
});
return arDz;
})));
================================================
FILE: public/admin-panel/assets/libs/moment/locale/ar-kw.js
================================================
//! moment.js locale configuration
;(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined'
&& typeof require === 'function' ? factory(require('../moment')) :
typeof define === 'function' && define.amd ? define(['../moment'], factory) :
factory(global.moment)
}(this, (function (moment) { 'use strict';
var arKw = moment.defineLocale('ar-kw', {
months : 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split('_'),
monthsShort : 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split('_'),
weekdays : 'الأحد_الإتنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),
weekdaysShort : 'احد_اتنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'),
weekdaysMin : 'ح_ن_ث_ر_خ_ج_س'.split('_'),
weekdaysParseExact : true,
longDateFormat : {
LT : 'HH:mm',
LTS : 'HH:mm:ss',
L : 'DD/MM/YYYY',
LL : 'D MMMM YYYY',
LLL : 'D MMMM YYYY HH:mm',
LLLL : 'dddd D MMMM YYYY HH:mm'
},
calendar : {
sameDay: '[اليوم على الساعة] LT',
nextDay: '[غدا على الساعة] LT',
nextWeek: 'dddd [على الساعة] LT',
lastDay: '[أمس على الساعة] LT',
lastWeek: 'dddd [على الساعة] LT',
sameElse: 'L'
},
relativeTime : {
future : 'في %s',
past : 'منذ %s',
s : 'ثوان',
ss : '%d ثانية',
m : 'دقيقة',
mm : '%d دقائق',
h : 'ساعة',
hh : '%d ساعات',
d : 'يوم',
dd : '%d أيام',
M : 'شهر',
MM : '%d أشهر',
y : 'سنة',
yy : '%d سنوات'
},
week : {
dow : 0, // Sunday is the first day of the week.
doy : 12 // The week that contains Jan 1st is the first week of the year.
}
});
return arKw;
})));
================================================
FILE: public/admin-panel/assets/libs/moment/locale/ar-ly.js
================================================
//! moment.js locale configuration
;(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined'
&& typeof require === 'function' ? factory(require('../moment')) :
typeof define === 'function' && define.amd ? define(['../moment'], factory) :
factory(global.moment)
}(this, (function (moment) { 'use strict';
var symbolMap = {
'1': '1',
'2': '2',
'3': '3',
'4': '4',
'5': '5',
'6': '6',
'7': '7',
'8': '8',
'9': '9',
'0': '0'
}, pluralForm = function (n) {
return n === 0 ? 0 : n === 1 ? 1 : n === 2 ? 2 : n % 100 >= 3 && n % 100 <= 10 ? 3 : n % 100 >= 11 ? 4 : 5;
}, plurals = {
s : ['أقل من ثانية', 'ثانية واحدة', ['ثانيتان', 'ثانيتين'], '%d ثوان', '%d ثانية', '%d ثانية'],
m : ['أقل من دقيقة', 'دقيقة واحدة', ['دقيقتان', 'دقيقتين'], '%d دقائق', '%d دقيقة', '%d دقيقة'],
h : ['أقل من ساعة', 'ساعة واحدة', ['ساعتان', 'ساعتين'], '%d ساعات', '%d ساعة', '%d ساعة'],
d : ['أقل من يوم', 'يوم واحد', ['يومان', 'يومين'], '%d أيام', '%d يومًا', '%d يوم'],
M : ['أقل من شهر', 'شهر واحد', ['شهران', 'شهرين'], '%d أشهر', '%d شهرا', '%d شهر'],
y : ['أقل من عام', 'عام واحد', ['عامان', 'عامين'], '%d أعوام', '%d عامًا', '%d عام']
}, pluralize = function (u) {
return function (number, withoutSuffix, string, isFuture) {
var f = pluralForm(number),
str = plurals[u][pluralForm(number)];
if (f === 2) {
str = str[withoutSuffix ? 0 : 1];
}
return str.replace(/%d/i, number);
};
}, months = [
'يناير',
'فبراير',
'مارس',
'أبريل',
'مايو',
'يونيو',
'يوليو',
'أغسطس',
'سبتمبر',
'أكتوبر',
'نوفمبر',
'ديسمبر'
];
var arLy = moment.defineLocale('ar-ly', {
months : months,
monthsShort : months,
weekdays : 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),
weekdaysShort : 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),
weekdaysMin : 'ح_ن_ث_ر_خ_ج_س'.split('_'),
weekdaysParseExact : true,
longDateFormat : {
LT : 'HH:mm',
LTS : 'HH:mm:ss',
L : 'D/\u200FM/\u200FYYYY',
LL : 'D MMMM YYYY',
LLL : 'D MMMM YYYY HH:mm',
LLLL : 'dddd D MMMM YYYY HH:mm'
},
meridiemParse: /ص|م/,
isPM : function (input) {
return 'م' === input;
},
meridiem : function (hour, minute, isLower) {
if (hour < 12) {
return 'ص';
} else {
return 'م';
}
},
calendar : {
sameDay: '[اليوم عند الساعة] LT',
nextDay: '[غدًا عند الساعة] LT',
nextWeek: 'dddd [عند الساعة] LT',
lastDay: '[أمس عند الساعة] LT',
lastWeek: 'dddd [عند الساعة] LT',
sameElse: 'L'
},
relativeTime : {
future : 'بعد %s',
past : 'منذ %s',
s : pluralize('s'),
ss : pluralize('s'),
m : pluralize('m'),
mm : pluralize('m'),
h : pluralize('h'),
hh : pluralize('h'),
d : pluralize('d'),
dd : pluralize('d'),
M : pluralize('M'),
MM : pluralize('M'),
y : pluralize('y'),
yy : pluralize('y')
},
preparse: function (string) {
return string.replace(/،/g, ',');
},
postformat: function (string) {
return string.replace(/\d/g, function (match) {
return symbolMap[match];
}).replace(/,/g, '،');
},
week : {
dow : 6, // Saturday is the first day of the week.
doy : 12 // The week that contains Jan 1st is the first week of the year.
}
});
return arLy;
})));
================================================
FILE: public/admin-panel/assets/libs/moment/locale/ar-ma.js
================================================
//! moment.js locale configuration
;(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined'
&& typeof require === 'function' ? factory(require('../moment')) :
typeof define === 'function' && define.amd ? define(['../moment'], factory) :
factory(global.moment)
}(this, (function (moment) { 'use strict';
var arMa = moment.defineLocale('ar-ma', {
months : 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split('_'),
monthsShort : 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split('_'),
weekdays : 'الأحد_الإتنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),
weekdaysShort : 'احد_اتنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'),
weekdaysMin : 'ح_ن_ث_ر_خ_ج_س'.split('_'),
weekdaysParseExact : true,
longDateFormat : {
LT : 'HH:mm',
LTS : 'HH:mm:ss',
L : 'DD/MM/YYYY',
LL : 'D MMMM YYYY',
LLL : 'D MMMM YYYY HH:mm',
LLLL : 'dddd D MMMM YYYY HH:mm'
},
calendar : {
sameDay: '[اليوم على الساعة] LT',
nextDay: '[غدا على الساعة] LT',
nextWeek: 'dddd [على الساعة] LT',
lastDay: '[أمس على الساعة] LT',
lastWeek: 'dddd [على الساعة] LT',
sameElse: 'L'
},
relativeTime : {
future : 'في %s',
past : 'منذ %s',
s : 'ثوان',
ss : '%d ثانية',
m : 'دقيقة',
mm : '%d دقائق',
h : 'ساعة',
hh : '%d ساعات',
d : 'يوم',
dd : '%d أيام',
M : 'شهر',
MM : '%d أشهر',
y : 'سنة',
yy : '%d سنوات'
},
week : {
dow : 6, // Saturday is the first day of the week.
doy : 12 // The week that contains Jan 1st is the first week of the year.
}
});
return arMa;
})));
================================================
FILE: public/admin-panel/assets/libs/moment/locale/ar-sa.js
================================================
//! moment.js locale configuration
;(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined'
&& typeof require === 'function' ? factory(require('../moment')) :
typeof define === 'function' && define.amd ? define(['../moment'], factory) :
factory(global.moment)
}(this, (function (moment) { 'use strict';
var symbolMap = {
'1': '١',
'2': '٢',
'3': '٣',
'4': '٤',
'5': '٥',
'6': '٦',
'7': '٧',
'8': '٨',
'9': '٩',
'0': '٠'
}, numberMap = {
'١': '1',
'٢': '2',
'٣': '3',
'٤': '4',
'٥': '5',
'٦': '6',
'٧': '7',
'٨': '8',
'٩': '9',
'٠': '0'
};
var arSa = moment.defineLocale('ar-sa', {
months : 'يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split('_'),
monthsShort : 'يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split('_'),
weekdays : 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),
weekdaysShort : 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),
weekdaysMin : 'ح_ن_ث_ر_خ_ج_س'.split('_'),
weekdaysParseExact : true,
longDateFormat : {
LT : 'HH:mm',
LTS : 'HH:mm:ss',
L : 'DD/MM/YYYY',
LL : 'D MMMM YYYY',
LLL : 'D MMMM YYYY HH:mm',
LLLL : 'dddd D MMMM YYYY HH:mm'
},
meridiemParse: /ص|م/,
isPM : function (input) {
return 'م' === input;
},
meridiem : function (hour, minute, isLower) {
if (hour < 12) {
return 'ص';
} else {
return 'م';
}
},
calendar : {
sameDay: '[اليوم على الساعة] LT',
nextDay: '[غدا على الساعة] LT',
nextWeek: 'dddd [على الساعة] LT',
lastDay: '[أمس على الساعة] LT',
lastWeek: 'dddd [على الساعة] LT',
sameElse: 'L'
},
relativeTime : {
future : 'في %s',
past : 'منذ %s',
s : 'ثوان',
ss : '%d ثانية',
m : 'دقيقة',
mm : '%d دقائق',
h : 'ساعة',
hh : '%d ساعات',
d : 'يوم',
dd : '%d أيام',
M : 'شهر',
MM : '%d أشهر',
y : 'سنة',
yy : '%d سنوات'
},
preparse: function (string) {
return string.replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) {
return numberMap[match];
}).replace(/،/g, ',');
},
postformat: function (string) {
return string.replace(/\d/g, function (match) {
return symbolMap[match];
}).replace(/,/g, '،');
},
week : {
dow : 0, // Sunday is the first day of the week.
doy : 6 // The week that contains Jan 1st is the first week of the year.
}
});
return arSa;
})));
================================================
FILE: public/admin-panel/assets/libs/moment/locale/ar-tn.js
================================================
//! moment.js locale configuration
;(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined'
&& typeof require === 'function' ? factory(require('../moment')) :
typeof define === 'function' && define.amd ? define(['../moment'], factory) :
factory(global.moment)
}(this, (function (moment) { 'use strict';
var arTn = moment.defineLocale('ar-tn', {
months: 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split('_'),
monthsShort: 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split('_'),
weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),
weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),
weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),
weekdaysParseExact : true,
longDateFormat: {
LT: 'HH:mm',
LTS: 'HH:mm:ss',
L: 'DD/MM/YYYY',
LL: 'D MMMM YYYY',
LLL: 'D MMMM YYYY HH:mm',
LLLL: 'dddd D MMMM YYYY HH:mm'
},
calendar: {
sameDay: '[اليوم على الساعة] LT',
nextDay: '[غدا على الساعة] LT',
nextWeek: 'dddd [على الساعة] LT',
lastDay: '[أمس على الساعة] LT',
lastWeek: 'dddd [على الساعة] LT',
sameElse: 'L'
},
relativeTime: {
future: 'في %s',
past: 'منذ %s',
s: 'ثوان',
ss : '%d ثانية',
m: 'دقيقة',
mm: '%d دقائق',
h: 'ساعة',
hh: '%d ساعات',
d: 'يوم',
dd: '%d أيام',
M: 'شهر',
MM: '%d أشهر',
y: 'سنة',
yy: '%d سنوات'
},
week: {
dow: 1, // Monday is the first day of the week.
doy: 4 // The week that contains Jan 4th is the first week of the year.
}
});
return arTn;
})));
================================================
FILE: public/admin-panel/assets/libs/moment/locale/ar.js
================================================
//! moment.js locale configuration
;(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined'
&& typeof require === 'function' ? factory(require('../moment')) :
typeof define === 'function' && define.amd ? define(['../moment'], factory) :
factory(global.moment)
}(this, (function (moment) { 'use strict';
var symbolMap = {
'1': '١',
'2': '٢',
'3': '٣',
'4': '٤',
'5': '٥',
'6': '٦',
'7': '٧',
'8': '٨',
'9': '٩',
'0': '٠'
}, numberMap = {
'١': '1',
'٢': '2',
'٣': '3',
'٤': '4',
'٥': '5',
'٦': '6',
'٧': '7',
'٨': '8',
'٩': '9',
'٠': '0'
}, pluralForm = function (n) {
return n === 0 ? 0 : n === 1 ? 1 : n === 2 ? 2 : n % 100 >= 3 && n % 100 <= 10 ? 3 : n % 100 >= 11 ? 4 : 5;
}, plurals = {
s : ['أقل من ثانية', 'ثانية واحدة', ['ثانيتان', 'ثانيتين'], '%d ثوان', '%d ثانية', '%d ثانية'],
m : ['أقل من دقيقة', 'دقيقة واحدة', ['دقيقتان', 'دقيقتين'], '%d دقائق', '%d دقيقة', '%d دقيقة'],
h : ['أقل من ساعة', 'ساعة واحدة', ['ساعتان', 'ساعتين'], '%d ساعات', '%d ساعة', '%d ساعة'],
d : ['أقل من يوم', 'يوم واحد', ['يومان', 'يومين'], '%d أيام', '%d يومًا', '%d يوم'],
M : ['أقل من شهر', 'شهر واحد', ['شهران', 'شهرين'], '%d أشهر', '%d شهرا', '%d شهر'],
y : ['أقل من عام', 'عام واحد', ['عامان', 'عامين'], '%d أعوام', '%d عامًا', '%d عام']
}, pluralize = function (u) {
return function (number, withoutSuffix, string, isFuture) {
var f = pluralForm(number),
str = plurals[u][pluralForm(number)];
if (f === 2) {
str = str[withoutSuffix ? 0 : 1];
}
return str.replace(/%d/i, number);
};
}, months = [
'يناير',
'فبراير',
'مارس',
'أبريل',
'مايو',
'يونيو',
'يوليو',
'أغسطس',
'سبتمبر',
'أكتوبر',
'نوفمبر',
'ديسمبر'
];
var ar = moment.defineLocale('ar', {
months : months,
monthsShort : months,
weekdays : 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),
weekdaysShort : 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),
weekdaysMin : 'ح_ن_ث_ر_خ_ج_س'.split('_'),
weekdaysParseExact : true,
longDateFormat : {
LT : 'HH:mm',
LTS : 'HH:mm:ss',
L : 'D/\u200FM/\u200FYYYY',
LL : 'D MMMM YYYY',
LLL : 'D MMMM YYYY HH:mm',
LLLL : 'dddd D MMMM YYYY HH:mm'
},
meridiemParse: /ص|م/,
isPM : function (input) {
return 'م' === input;
},
meridiem : function (hour, minute, isLower) {
if (hour < 12) {
return 'ص';
} else {
return 'م';
}
},
calendar : {
sameDay: '[اليوم عند الساعة] LT',
nextDay: '[غدًا عند الساعة] LT',
nextWeek: 'dddd [عند الساعة] LT',
lastDay: '[أمس عند الساعة] LT',
lastWeek: 'dddd [عند الساعة] LT',
sameElse: 'L'
},
relativeTime : {
future : 'بعد %s',
past : 'منذ %s',
s : pluralize('s'),
ss : pluralize('s'),
m : pluralize('m'),
mm : pluralize('m'),
h : pluralize('h'),
hh : pluralize('h'),
d : pluralize('d'),
dd : pluralize('d'),
M : pluralize('M'),
MM : pluralize('M'),
y : pluralize('y'),
yy : pluralize('y')
},
preparse: function (string) {
return string.replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) {
return numberMap[match];
}).replace(/،/g, ',');
},
postformat: function (string) {
return string.replace(/\d/g, function (match) {
return symbolMap[match];
}).replace(/,/g, '،');
},
week : {
dow : 6, // Saturday is the first day of the week.
doy : 12 // The week that contains Jan 1st is the first week of the year.
}
});
return ar;
})));
================================================
FILE: public/admin-panel/assets/libs/moment/locale/az.js
================================================
//! moment.js locale configuration
;(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined'
&& typeof require === 'function' ? factory(require('../moment')) :
typeof define === 'function' && define.amd ? define(['../moment'], factory) :
factory(global.moment)
}(this, (function (moment) { 'use strict';
var suffixes = {
1: '-inci',
5: '-inci',
8: '-inci',
70: '-inci',
80: '-inci',
2: '-nci',
7: '-nci',
20: '-nci',
50: '-nci',
3: '-üncü',
4: '-üncü',
100: '-üncü',
6: '-ncı',
9: '-uncu',
10: '-uncu',
30: '-uncu',
60: '-ıncı',
90: '-ıncı'
};
var az = moment.defineLocale('az', {
months : 'yanvar_fevral_mart_aprel_may_iyun_iyul_avqust_sentyabr_oktyabr_noyabr_dekabr'.split('_'),
monthsShort : 'yan_fev_mar_apr_may_iyn_iyl_avq_sen_okt_noy_dek'.split('_'),
weekdays : 'Bazar_Bazar ertəsi_Çərşənbə axşamı_Çərşənbə_Cümə axşamı_Cümə_Şənbə'.split('_'),
weekdaysShort : 'Baz_BzE_ÇAx_Çər_CAx_Cüm_Şən'.split('_'),
weekdaysMin : 'Bz_BE_ÇA_Çə_CA_Cü_Şə'.split('_'),
weekdaysParseExact : true,
longDateFormat : {
LT : 'HH:mm',
LTS : 'HH:mm:ss',
L : 'DD.MM.YYYY',
LL : 'D MMMM YYYY',
LLL : 'D MMMM YYYY HH:mm',
LLLL : 'dddd, D MMMM YYYY HH:mm'
},
calendar : {
sameDay : '[bugün saat] LT',
nextDay : '[sabah saat] LT',
nextWeek : '[gələn həftə] dddd [saat] LT',
lastDay : '[dünən] LT',
lastWeek : '[keçən həftə] dddd [saat] LT',
sameElse : 'L'
},
relativeTime : {
future : '%s sonra',
past : '%s əvvəl',
s : 'birneçə saniyyə',
ss : '%d saniyə',
m : 'bir dəqiqə',
mm : '%d dəqiqə',
h : 'bir saat',
hh : '%d saat',
d : 'bir gün',
dd : '%d gün',
M : 'bir ay',
MM : '%d ay',
y : 'bir il',
yy : '%d il'
},
meridiemParse: /gecə|səhər|gündüz|axşam/,
isPM : function (input) {
return /^(gündüz|axşam)$/.test(input);
},
meridiem : function (hour, minute, isLower) {
if (hour < 4) {
return 'gecə';
} else if (hour < 12) {
return 'səhər';
} else if (hour < 17) {
return 'gündüz';
} else {
return 'axşam';
}
},
dayOfMonthOrdinalParse: /\d{1,2}-(ıncı|inci|nci|üncü|ncı|uncu)/,
ordinal : function (number) {
if (number === 0) { // special case for zero
return number + '-ıncı';
}
var a = number % 10,
b = number % 100 - a,
c = number >= 100 ? 100 : null;
return number + (suffixes[a] || suffixes[b] || suffixes[c]);
},
week : {
dow : 1, // Monday is the first day of the week.
doy : 7 // The week that contains Jan 1st is the first week of the year.
}
});
return az;
})));
================================================
FILE: public/admin-panel/assets/libs/moment/locale/be.js
================================================
//! moment.js locale configuration
;(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined'
&& typeof require === 'function' ? factory(require('../moment')) :
typeof define === 'function' && define.amd ? define(['../moment'], factory) :
factory(global.moment)
}(this, (function (moment) { 'use strict';
function plural(word, num) {
var forms = word.split('_');
return num % 10 === 1 && num % 100 !== 11 ? forms[0] : (num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) ? forms[1] : forms[2]);
}
function relativeTimeWithPlural(number, withoutSuffix, key) {
var format = {
'ss': withoutSuffix ? 'секунда_секунды_секунд' : 'секунду_секунды_секунд',
'mm': withoutSuffix ? 'хвіліна_хвіліны_хвілін' : 'хвіліну_хвіліны_хвілін',
'hh': withoutSuffix ? 'гадзіна_гадзіны_гадзін' : 'гадзіну_гадзіны_гадзін',
'dd': 'дзень_дні_дзён',
'MM': 'месяц_месяцы_месяцаў',
'yy': 'год_гады_гадоў'
};
if (key === 'm') {
return withoutSuffix ? 'хвіліна' : 'хвіліну';
}
else if (key === 'h') {
return withoutSuffix ? 'гадзіна' : 'гадзіну';
}
else {
return number + ' ' + plural(format[key], +number);
}
}
var be = moment.defineLocale('be', {
months : {
format: 'студзеня_лютага_сакавіка_красавіка_траўня_чэрвеня_ліпеня_жніўня_верасня_кастрычніка_лістапада_снежня'.split('_'),
standalone: 'студзень_люты_сакавік_красавік_травень_чэрвень_ліпень_жнівень_верасень_кастрычнік_лістапад_снежань'.split('_')
},
monthsShort : 'студ_лют_сак_крас_трав_чэрв_ліп_жнів_вер_каст_ліст_снеж'.split('_'),
weekdays : {
format: 'нядзелю_панядзелак_аўторак_сераду_чацвер_пятніцу_суботу'.split('_'),
standalone: 'нядзеля_панядзелак_аўторак_серада_чацвер_пятніца_субота'.split('_'),
isFormat: /\[ ?[Вв] ?(?:мінулую|наступную)? ?\] ?dddd/
},
weekdaysShort : 'нд_пн_ат_ср_чц_пт_сб'.split('_'),
weekdaysMin : 'нд_пн_ат_ср_чц_пт_сб'.split('_'),
longDateFormat : {
LT : 'HH:mm',
LTS : 'HH:mm:ss',
L : 'DD.MM.YYYY',
LL : 'D MMMM YYYY г.',
LLL : 'D MMMM YYYY г., HH:mm',
LLLL : 'dddd, D MMMM YYYY г., HH:mm'
},
calendar : {
sameDay: '[Сёння ў] LT',
nextDay: '[Заўтра ў] LT',
lastDay: '[Учора ў] LT',
nextWeek: function () {
return '[У] dddd [ў] LT';
},
lastWeek: function () {
switch (this.day()) {
case 0:
case 3:
case 5:
case 6:
return '[У мінулую] dddd [ў] LT';
case 1:
case 2:
case 4:
return '[У мінулы] dddd [ў] LT';
}
},
sameElse: 'L'
},
relativeTime : {
future : 'праз %s',
past : '%s таму',
s : 'некалькі секунд',
m : relativeTimeWithPlural,
mm : relativeTimeWithPlural,
h : relativeTimeWithPlural,
hh : relativeTimeWithPlural,
d : 'дзень',
dd : relativeTimeWithPlural,
M : 'месяц',
MM : relativeTimeWithPlural,
y : 'год',
yy : relativeTimeWithPlural
},
meridiemParse: /ночы|раніцы|дня|вечара/,
isPM : function (input) {
return /^(дня|вечара)$/.test(input);
},
meridiem : function (hour, minute, isLower) {
if (hour < 4) {
return 'ночы';
} else if (hour < 12) {
return 'раніцы';
} else if (hour < 17) {
return 'дня';
} else {
return 'вечара';
}
},
dayOfMonthOrdinalParse: /\d{1,2}-(і|ы|га)/,
ordinal: function (number, period) {
switch (period) {
case 'M':
case 'd':
case 'DDD':
case 'w':
case 'W':
return (number % 10 === 2 || number % 10 === 3) && (number % 100 !== 12 && number % 100 !== 13) ? number + '-і' : number + '-ы';
case 'D':
return number + '-га';
default:
return number;
}
},
week : {
dow : 1, // Monday is the first day of the week.
doy : 7 // The week that contains Jan 1st is the first week of the year.
}
});
return be;
})));
================================================
FILE: public/admin-panel/assets/libs/moment/locale/bg.js
================================================
//! moment.js locale configuration
;(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined'
&& typeof require === 'function' ? factory(require('../moment')) :
typeof define === 'function' && define.amd ? define(['../moment'], factory) :
factory(global.moment)
}(this, (function (moment) { 'use strict';
var bg = moment.defineLocale('bg', {
months : 'януари_февруари_март_април_май_юни_юли_август_септември_октомври_ноември_декември'.split('_'),
monthsShort : 'янр_фев_мар_апр_май_юни_юли_авг_сеп_окт_ное_дек'.split('_'),
weekdays : 'неделя_понеделник_вторник_сряда_четвъртък_петък_събота'.split('_'),
weekdaysShort : 'нед_пон_вто_сря_чет_пет_съб'.split('_'),
weekdaysMin : 'нд_пн_вт_ср_чт_пт_сб'.split('_'),
longDateFormat : {
LT : 'H:mm',
LTS : 'H:mm:ss',
L : 'D.MM.YYYY',
LL : 'D MMMM YYYY',
LLL : 'D MMMM YYYY H:mm',
LLLL : 'dddd, D MMMM YYYY H:mm'
},
calendar : {
sameDay : '[Днес в] LT',
nextDay : '[Утре в] LT',
nextWeek : 'dddd [в] LT',
lastDay : '[Вчера в] LT',
lastWeek : function () {
switch (this.day()) {
case 0:
case 3:
case 6:
return '[В изминалата] dddd [в] LT';
case 1:
case 2:
case 4:
case 5:
return '[В изминалия] dddd [в] LT';
}
},
sameElse : 'L'
},
relativeTime : {
future : 'след %s',
past : 'преди %s',
s : 'няколко секунди',
ss : '%d секунди',
m : 'минута',
mm : '%d минути',
h : 'час',
hh : '%d часа',
d : 'ден',
dd : '%d дни',
M : 'месец',
MM : '%d месеца',
y : 'година',
yy : '%d години'
},
dayOfMonthOrdinalParse: /\d{1,2}-(ев|ен|ти|ви|ри|ми)/,
ordinal : function (number) {
var lastDigit = number % 10,
last2Digits = number % 100;
if (number === 0) {
return number + '-ев';
} else if (last2Digits === 0) {
return number + '-ен';
} else if (last2Digits > 10 && last2Digits < 20) {
return number + '-ти';
} else if (lastDigit === 1) {
return number + '-ви';
} else if (lastDigit === 2) {
return number + '-ри';
} else if (lastDigit === 7 || lastDigit === 8) {
return number + '-ми';
} else {
return number + '-ти';
}
},
week : {
dow : 1, // Monday is the first day of the week.
doy : 7 // The week that contains Jan 1st is the first week of the year.
}
});
return bg;
})));
================================================
FILE: public/admin-panel/assets/libs/moment/locale/bm.js
================================================
//! moment.js locale configuration
;(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined'
&& typeof require === 'function' ? factory(require('../moment')) :
typeof define === 'function' && define.amd ? define(['../moment'], factory) :
factory(global.moment)
}(this, (function (moment) { 'use strict';
var bm = moment.defineLocale('bm', {
months : 'Zanwuyekalo_Fewuruyekalo_Marisikalo_Awirilikalo_Mɛkalo_Zuwɛnkalo_Zuluyekalo_Utikalo_Sɛtanburukalo_ɔkutɔburukalo_Nowanburukalo_Desanburukalo'.split('_'),
monthsShort : 'Zan_Few_Mar_Awi_Mɛ_Zuw_Zul_Uti_Sɛt_ɔku_Now_Des'.split('_'),
weekdays : 'Kari_Ntɛnɛn_Tarata_Araba_Alamisa_Juma_Sibiri'.split('_'),
weekdaysShort : 'Kar_Ntɛ_Tar_Ara_Ala_Jum_Sib'.split('_'),
weekdaysMin : 'Ka_Nt_Ta_Ar_Al_Ju_Si'.split('_'),
longDateFormat : {
LT : 'HH:mm',
LTS : 'HH:mm:ss',
L : 'DD/MM/YYYY',
LL : 'MMMM [tile] D [san] YYYY',
LLL : 'MMMM [tile] D [san] YYYY [lɛrɛ] HH:mm',
LLLL : 'dddd MMMM [tile] D [san] YYYY [lɛrɛ] HH:mm'
},
calendar : {
sameDay : '[Bi lɛrɛ] LT',
nextDay : '[Sini lɛrɛ] LT',
nextWeek : 'dddd [don lɛrɛ] LT',
lastDay : '[Kunu lɛrɛ] LT',
lastWeek : 'dddd [tɛmɛnen lɛrɛ] LT',
sameElse : 'L'
},
relativeTime : {
future : '%s kɔnɔ',
past : 'a bɛ %s bɔ',
s : 'sanga dama dama',
ss : 'sekondi %d',
m : 'miniti kelen',
mm : 'miniti %d',
h : 'lɛrɛ kelen',
hh : 'lɛrɛ %d',
d : 'tile kelen',
dd : 'tile %d',
M : 'kalo kelen',
MM : 'kalo %d',
y : 'san kelen',
yy : 'san %d'
},
week : {
dow : 1, // Monday is the first day of the week.
doy : 4 // The week that contains Jan 4th is the first week of the year.
}
});
return bm;
})));
================================================
FILE: public/admin-panel/assets/libs/moment/locale/bn.js
================================================
//! moment.js locale configuration
;(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined'
&& typeof require === 'function' ? factory(require('../moment')) :
typeof define === 'function' && define.amd ? define(['../moment'], factory) :
factory(global.moment)
}(this, (function (moment) { 'use strict';
var symbolMap = {
'1': '১',
'2': '২',
'3': '৩',
'4': '৪',
'5': '৫',
'6': '৬',
'7': '৭',
'8': '৮',
'9': '৯',
'0': '০'
},
numberMap = {
'১': '1',
'২': '2',
'৩': '3',
'৪': '4',
'৫': '5',
'৬': '6',
'৭': '7',
'৮': '8',
'৯': '9',
'০': '0'
};
var bn = moment.defineLocale('bn', {
months : 'জানুয়ারী_ফেব্রুয়ারি_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্টেম্বর_অক্টোবর_নভেম্বর_ডিসেম্বর'.split('_'),
monthsShort : 'জানু_ফেব_মার্চ_এপ্র_মে_জুন_জুল_আগ_সেপ্ট_অক্টো_নভে_ডিসে'.split('_'),
weekdays : 'রবিবার_সোমবার_মঙ্গলবার_বুধবার_বৃহস্পতিবার_শুক্রবার_শনিবার'.split('_'),
weekdaysShort : 'রবি_সোম_মঙ্গল_বুধ_বৃহস্পতি_শুক্র_শনি'.split('_'),
weekdaysMin : 'রবি_সোম_মঙ্গ_বুধ_বৃহঃ_শুক্র_শনি'.split('_'),
longDateFormat : {
LT : 'A h:mm সময়',
LTS : 'A h:mm:ss সময়',
L : 'DD/MM/YYYY',
LL : 'D MMMM YYYY',
LLL : 'D MMMM YYYY, A h:mm সময়',
LLLL : 'dddd, D MMMM YYYY, A h:mm সময়'
},
calendar : {
sameDay : '[আজ] LT',
nextDay : '[আগামীকাল] LT',
nextWeek : 'dddd, LT',
lastDay : '[গতকাল] LT',
lastWeek : '[গত] dddd, LT',
sameElse : 'L'
},
relativeTime : {
future : '%s পরে',
past : '%s আগে',
s : 'কয়েক সেকেন্ড',
ss : '%d সেকেন্ড',
m : 'এক মিনিট',
mm : '%d মিনিট',
h : 'এক ঘন্টা',
hh : '%d ঘন্টা',
d : 'এক দিন',
dd : '%d দিন',
M : 'এক মাস',
MM : '%d মাস',
y : 'এক বছর',
yy : '%d বছর'
},
preparse: function (string) {
return string.replace(/[১২৩৪৫৬৭৮৯০]/g, function (match) {
return numberMap[match];
});
},
postformat: function (string) {
return string.replace(/\d/g, function (match) {
return symbolMap[match];
});
},
meridiemParse: /রাত|সকাল|দুপুর|বিকাল|রাত/,
meridiemHour : function (hour, meridiem) {
if (hour === 12) {
hour = 0;
}
if ((meridiem === 'রাত' && hour >= 4) ||
(meridiem === 'দুপুর' && hour < 5) ||
meridiem === 'বিকাল') {
return hour + 12;
} else {
return hour;
}
},
meridiem : function (hour, minute, isLower) {
if (hour < 4) {
return 'রাত';
} else if (hour < 10) {
return 'সকাল';
} else if (hour < 17) {
return 'দুপুর';
} else if (hour < 20) {
return 'বিকাল';
} else {
return 'রাত';
}
},
week : {
dow : 0, // Sunday is the first day of the week.
doy : 6 // The week that contains Jan 1st is the first week of the year.
}
});
return bn;
})));
================================================
FILE: public/admin-panel/assets/libs/moment/locale/bo.js
================================================
//! moment.js locale configuration
;(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined'
&& typeof require === 'function' ? factory(require('../moment')) :
typeof define === 'function' && define.amd ? define(['../moment'], factory) :
factory(global.moment)
}(this, (function (moment) { 'use strict';
var symbolMap = {
'1': '༡',
'2': '༢',
'3': '༣',
'4': '༤',
'5': '༥',
'6': '༦',
'7': '༧',
'8': '༨',
'9': '༩',
'0': '༠'
},
numberMap = {
'༡': '1',
'༢': '2',
'༣': '3',
'༤': '4',
'༥': '5',
'༦': '6',
'༧': '7',
'༨': '8',
'༩': '9',
'༠': '0'
};
var bo = moment.defineLocale('bo', {
months : 'ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ'.split('_'),
monthsShort : 'ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ'.split('_'),
weekdays : 'གཟའ་ཉི་མ་_གཟའ་ཟླ་བ་_གཟའ་མིག་དམར་_གཟའ་ལྷག་པ་_གཟའ་ཕུར་བུ_གཟའ་པ་སངས་_གཟའ་སྤེན་པ་'.split('_'),
weekdaysShort : 'ཉི་མ་_ཟླ་བ་_མིག་དམར་_ལྷག་པ་_ཕུར་བུ_པ་སངས་_སྤེན་པ་'.split('_'),
weekdaysMin : 'ཉི་མ་_ཟླ་བ་_མིག་དམར་_ལྷག་པ་_ཕུར་བུ_པ་སངས་_སྤེན་པ་'.split('_'),
longDateFormat : {
LT : 'A h:mm',
LTS : 'A h:mm:ss',
L : 'DD/MM/YYYY',
LL : 'D MMMM YYYY',
LLL : 'D MMMM YYYY, A h:mm',
LLLL : 'dddd, D MMMM YYYY, A h:mm'
},
calendar : {
sameDay : '[དི་རིང] LT',
nextDay : '[སང་ཉིན] LT',
nextWeek : '[བདུན་ཕྲག་རྗེས་མ], LT',
lastDay : '[ཁ་སང] LT',
lastWeek : '[བདུན་ཕྲག་མཐའ་མ] dddd, LT',
sameElse : 'L'
},
relativeTime : {
future : '%s ལ་',
past : '%s སྔན་ལ',
s : 'ལམ་སང',
ss : '%d སྐར་ཆ།',
m : 'སྐར་མ་གཅིག',
mm : '%d སྐར་མ',
h : 'ཆུ་ཚོད་གཅིག',
hh : '%d ཆུ་ཚོད',
d : 'ཉིན་གཅིག',
dd : '%d ཉིན་',
M : 'ཟླ་བ་གཅིག',
MM : '%d ཟླ་བ',
y : 'ལོ་གཅིག',
yy : '%d ལོ'
},
preparse: function (string) {
return string.replace(/[༡༢༣༤༥༦༧༨༩༠]/g, function (match) {
return numberMap[match];
});
},
postformat: function (string) {
return string.replace(/\d/g, function (match) {
return symbolMap[match];
});
},
meridiemParse: /མཚན་མོ|ཞོགས་ཀས|ཉིན་གུང|དགོང་དག|མཚན་མོ/,
meridiemHour : function (hour, meridiem) {
if (hour === 12) {
hour = 0;
}
if ((meridiem === 'མཚན་མོ' && hour >= 4) ||
(meridiem === 'ཉིན་གུང' && hour < 5) ||
meridiem === 'དགོང་དག') {
return hour + 12;
} else {
return hour;
}
},
meridiem : function (hour, minute, isLower) {
if (hour < 4) {
return 'མཚན་མོ';
} else if (hour < 10) {
return 'ཞོགས་ཀས';
} else if (hour < 17) {
return 'ཉིན་གུང';
} else if (hour < 20) {
return 'དགོང་དག';
} else {
return 'མཚན་མོ';
}
},
week : {
dow : 0, // Sunday is the first day of the week.
doy : 6 // The week that contains Jan 1st is the first week of the year.
}
});
return bo;
})));
================================================
FILE: public/admin-panel/assets/libs/moment/locale/br.js
================================================
//! moment.js locale configuration
;(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined'
&& typeof require === 'function' ? factory(require('../moment')) :
typeof define === 'function' && define.amd ? define(['../moment'], factory) :
factory(global.moment)
}(this, (function (moment) { 'use strict';
function relativeTimeWithMutation(number, withoutSuffix, key) {
var format = {
'mm': 'munutenn',
'MM': 'miz',
'dd': 'devezh'
};
return number + ' ' + mutation(format[key], number);
}
function specialMutationForYears(number) {
switch (lastNumber(number)) {
case 1:
case 3:
case 4:
case 5:
case 9:
return number + ' bloaz';
default:
return number + ' vloaz';
}
}
function lastNumber(number) {
if (number > 9) {
return lastNumber(number % 10);
}
return number;
}
function mutation(text, number) {
if (number === 2) {
return softMutation(text);
}
return text;
}
function softMutation(text) {
var mutationTable = {
'm': 'v',
'b': 'v',
'd': 'z'
};
if (mutationTable[text.charAt(0)] === undefined) {
return text;
}
return mutationTable[text.charAt(0)] + text.substring(1);
}
var br = moment.defineLocale('br', {
months : 'Genver_C\'hwevrer_Meurzh_Ebrel_Mae_Mezheven_Gouere_Eost_Gwengolo_Here_Du_Kerzu'.split('_'),
monthsShort : 'Gen_C\'hwe_Meu_Ebr_Mae_Eve_Gou_Eos_Gwe_Her_Du_Ker'.split('_'),
weekdays : 'Sul_Lun_Meurzh_Merc\'her_Yaou_Gwener_Sadorn'.split('_'),
weekdaysShort : 'Sul_Lun_Meu_Mer_Yao_Gwe_Sad'.split('_'),
weekdaysMin : 'Su_Lu_Me_Mer_Ya_Gw_Sa'.split('_'),
weekdaysParseExact : true,
longDateFormat : {
LT : 'h[e]mm A',
LTS : 'h[e]mm:ss A',
L : 'DD/MM/YYYY',
LL : 'D [a viz] MMMM YYYY',
LLL : 'D [a viz] MMMM YYYY h[e]mm A',
LLLL : 'dddd, D [a viz] MMMM YYYY h[e]mm A'
},
calendar : {
sameDay : '[Hiziv da] LT',
nextDay : '[Warc\'hoazh da] LT',
nextWeek : 'dddd [da] LT',
lastDay : '[Dec\'h da] LT',
lastWeek : 'dddd [paset da] LT',
sameElse : 'L'
},
relativeTime : {
future : 'a-benn %s',
past : '%s \'zo',
s : 'un nebeud segondennoù',
ss : '%d eilenn',
m : 'ur vunutenn',
mm : relativeTimeWithMutation,
h : 'un eur',
hh : '%d eur',
d : 'un devezh',
dd : relativeTimeWithMutation,
M : 'ur miz',
MM : relativeTimeWithMutation,
y : 'ur bloaz',
yy : specialMutationForYears
},
dayOfMonthOrdinalParse: /\d{1,2}(añ|vet)/,
ordinal : function (number) {
var output = (number === 1) ? 'añ' : 'vet';
return number + output;
},
week : {
dow : 1, // Monday is the first day of the week.
doy : 4 // The week that contains Jan 4th is the first week of the year.
}
});
return br;
})));
================================================
FILE: public/admin-panel/assets/libs/moment/locale/bs.js
================================================
//! moment.js locale configuration
;(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined'
&& typeof require === 'function' ? factory(require('../moment')) :
typeof define === 'function' && define.amd ? define(['../moment'], factory) :
factory(global.moment)
}(this, (function (moment) { 'use strict';
function translate(number, withoutSuffix, key) {
var result = number + ' ';
switch (key) {
case 'ss':
if (number === 1) {
result += 'sekunda';
} else if (number === 2 || number === 3 || number === 4) {
result += 'sekunde';
} else {
result += 'sekundi';
}
return result;
case 'm':
return withoutSuffix ? 'jedna minuta' : 'jedne minute';
case 'mm':
if (number === 1) {
result += 'minuta';
} else if (number === 2 || number === 3 || number === 4) {
result += 'minute';
} else {
result += 'minuta';
}
return result;
case 'h':
return withoutSuffix ? 'jedan sat' : 'jednog sata';
case 'hh':
if (number === 1) {
result += 'sat';
} else if (number === 2 || number === 3 || number === 4) {
result += 'sata';
} else {
result += 'sati';
}
return result;
case 'dd':
if (number === 1) {
result += 'dan';
} else {
result += 'dana';
}
return result;
case 'MM':
if (number === 1) {
result += 'mjesec';
} else if (number === 2 || number === 3 || number === 4) {
result += 'mjeseca';
} else {
result += 'mjeseci';
}
return result;
case 'yy':
if (number === 1) {
result += 'godina';
} else if (number === 2 || number === 3 || number === 4) {
result += 'godine';
} else {
result += 'godina';
}
return result;
}
}
var bs = moment.defineLocale('bs', {
months : 'januar_februar_mart_april_maj_juni_juli_august_septembar_oktobar_novembar_decembar'.split('_'),
monthsShort : 'jan._feb._mar._apr._maj._jun._jul._aug._sep._okt._nov._dec.'.split('_'),
monthsParseExact: true,
weekdays : 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split('_'),
weekdaysShort : 'ned._pon._uto._sri._čet._pet._sub.'.split('_'),
weekdaysMin : 'ne_po_ut_sr_če_pe_su'.split('_'),
weekdaysParseExact : true,
longDateFormat : {
LT : 'H:mm',
LTS : 'H:mm:ss',
L : 'DD.MM.YYYY',
LL : 'D. MMMM YYYY',
LLL : 'D. MMMM YYYY H:mm',
LLLL : 'dddd, D. MMMM YYYY H:mm'
},
calendar : {
sameDay : '[danas u] LT',
nextDay : '[sutra u] LT',
nextWeek : function () {
switch (this.day()) {
case 0:
return '[u] [nedjelju] [u] LT';
case 3:
return '[u] [srijedu] [u] LT';
case 6:
return '[u] [subotu] [u] LT';
case 1:
case 2:
case 4:
case 5:
return '[u] dddd [u] LT';
}
},
lastDay : '[jučer u] LT',
lastWeek : function () {
switch (this.day()) {
case 0:
case 3:
return '[prošlu] dddd [u] LT';
case 6:
return '[prošle] [subote] [u] LT';
case 1:
case 2:
case 4:
case 5:
return '[prošli] dddd [u] LT';
}
},
sameElse : 'L'
},
relativeTime : {
future : 'za %s',
past : 'prije %s',
s : 'par sekundi',
ss : translate,
m : translate,
mm : translate,
h : translate,
hh : translate,
d : 'dan',
dd : translate,
M : 'mjesec',
MM : translate,
y : 'godinu',
yy : translate
},
dayOfMonthOrdinalParse: /\d{1,2}\./,
ordinal : '%d.',
week : {
dow : 1, // Monday is the first day of the week.
doy : 7 // The week that contains Jan 1st is the first week of the year.
}
});
return bs;
})));
================================================
FILE: public/admin-panel/assets/libs/moment/locale/ca.js
================================================
//! moment.js locale configuration
;(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined'
&& typeof require === 'function' ? factory(require('../moment')) :
typeof define === 'function' && define.amd ? define(['../moment'], factory) :
factory(global.moment)
}(this, (function (moment) { 'use strict';
var ca = moment.defineLocale('ca', {
months : {
standalone: 'gener_febrer_març_abril_maig_juny_juliol_agost_setembre_octubre_novembre_desembre'.split('_'),
format: 'de gener_de febrer_de març_d\'abril_de maig_de juny_de juliol_d\'agost_de setembre_d\'octubre_de novembre_de desembre'.split('_'),
isFormat: /D[oD]?(\s)+MMMM/
},
monthsShort : 'gen._febr._març_abr._maig_juny_jul._ag._set._oct._nov._des.'.split('_'),
monthsParseExact : true,
weekdays : 'diumenge_dilluns_dimarts_dimecres_dijous_divendres_dissabte'.split('_'),
weekdaysShort : 'dg._dl._dt._dc._dj._dv._ds.'.split('_'),
weekdaysMin : 'dg_dl_dt_dc_dj_dv_ds'.split('_'),
weekdaysParseExact : true,
longDateFormat : {
LT : 'H:mm',
LTS : 'H:mm:ss',
L : 'DD/MM/YYYY',
LL : 'D MMMM [de] YYYY',
ll : 'D MMM YYYY',
LLL : 'D MMMM [de] YYYY [a les] H:mm',
lll : 'D MMM YYYY, H:mm',
LLLL : 'dddd D MMMM [de] YYYY [a les] H:mm',
llll : 'ddd D MMM YYYY, H:mm'
},
calendar : {
sameDay : function () {
return '[avui a ' + ((this.hours() !== 1) ? 'les' : 'la') + '] LT';
},
nextDay : function () {
return '[demà a ' + ((this.hours() !== 1) ? 'les' : 'la') + '] LT';
},
nextWeek : function () {
return 'dddd [a ' + ((this.hours() !== 1) ? 'les' : 'la') + '] LT';
},
lastDay : function () {
return '[ahir a ' + ((this.hours() !== 1) ? 'les' : 'la') + '] LT';
},
lastWeek : function () {
return '[el] dddd [passat a ' + ((this.hours() !== 1) ? 'les' : 'la') + '] LT';
},
sameElse : 'L'
},
relativeTime : {
future : 'd\'aquí %s',
past : 'fa %s',
s : 'uns segons',
ss : '%d segons',
m : 'un minut',
mm : '%d minuts',
h : 'una hora',
hh : '%d hores',
d : 'un dia',
dd : '%d dies',
M : 'un mes',
MM : '%d mesos',
y : 'un any',
yy : '%d anys'
},
dayOfMonthOrdinalParse: /\d{1,2}(r|n|t|è|a)/,
ordinal : function (number, period) {
var output = (number === 1) ? 'r' :
(number === 2) ? 'n' :
(number === 3) ? 'r' :
(number === 4) ? 't' : 'è';
if (period === 'w' || period === 'W') {
output = 'a';
}
return number + output;
},
week : {
dow : 1, // Monday is the first day of the week.
doy : 4 // The week that contains Jan 4th is the first week of the year.
}
});
return ca;
})));
================================================
FILE: public/admin-panel/assets/libs/moment/locale/cs.js
================================================
//! moment.js locale configuration
;(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined'
&& typeof require === 'function' ? factory(require('../moment')) :
typeof define === 'function' && define.amd ? define(['../moment'], factory) :
factory(global.moment)
}(this, (function (moment) { 'use strict';
var months = 'leden_únor_březen_duben_květen_červen_červenec_srpen_září_říjen_listopad_prosinec'.split('_'),
monthsShort = 'led_úno_bře_dub_kvě_čvn_čvc_srp_zář_říj_lis_pro'.split('_');
function plural(n) {
return (n > 1) && (n < 5) && (~~(n / 10) !== 1);
}
function translate(number, withoutSuffix, key, isFuture) {
var result = number + ' ';
switch (key) {
case 's': // a few seconds / in a few seconds / a few seconds ago
return (withoutSuffix || isFuture) ? 'pár sekund' : 'pár sekundami';
case 'ss': // 9 seconds / in 9 seconds / 9 seconds ago
if (withoutSuffix || isFuture) {
return result + (plural(number) ? 'sekundy' : 'sekund');
} else {
return result + 'sekundami';
}
break;
case 'm': // a minute / in a minute / a minute ago
return withoutSuffix ? 'minuta' : (isFuture ? 'minutu' : 'minutou');
case 'mm': // 9 minutes / in 9 minutes / 9 minutes ago
if (withoutSuffix || isFuture) {
return result + (plural(number) ? 'minuty' : 'minut');
} else {
return result + 'minutami';
}
break;
case 'h': // an hour / in an hour / an hour ago
return withoutSuffix ? 'hodina' : (isFuture ? 'hodinu' : 'hodinou');
case 'hh': // 9 hours / in 9 hours / 9 hours ago
if (withoutSuffix || isFuture) {
return result + (plural(number) ? 'hodiny' : 'hodin');
} else {
return result + 'hodinami';
}
break;
case 'd': // a day / in a day / a day ago
return (withoutSuffix || isFuture) ? 'den' : 'dnem';
case 'dd': // 9 days / in 9 days / 9 days ago
if (withoutSuffix || isFuture) {
return result + (plural(number) ? 'dny' : 'dní');
} else {
return result + 'dny';
}
break;
case 'M': // a month / in a month / a month ago
return (withoutSuffix || isFuture) ? 'měsíc' : 'měsícem';
case 'MM': // 9 months / in 9 months / 9 months ago
if (withoutSuffix || isFuture) {
return result + (plural(number) ? 'měsíce' : 'měsíců');
} else {
return result + 'měsíci';
}
break;
case 'y': // a year / in a year / a year ago
return (withoutSuffix || isFuture) ? 'rok' : 'rokem';
case 'yy': // 9 years / in 9 years / 9 years ago
if (withoutSuffix || isFuture) {
return result + (plural(number) ? 'roky' : 'let');
} else {
return result + 'lety';
}
break;
}
}
var cs = moment.defineLocale('cs', {
months : months,
monthsShort : monthsShort,
monthsParse : (function (months, monthsShort) {
var i, _monthsParse = [];
for (i = 0; i < 12; i++) {
// use custom parser to solve problem with July (červenec)
_monthsParse[i] = new RegExp('^' + months[i] + '$|^' + monthsShort[i] + '$', 'i');
}
return _monthsParse;
}(months, monthsShort)),
shortMonthsParse : (function (monthsShort) {
var i, _shortMonthsParse = [];
for (i = 0; i < 12; i++) {
_shortMonthsParse[i] = new RegExp('^' + monthsShort[i] + '$', 'i');
}
return _shortMonthsParse;
}(monthsShort)),
longMonthsParse : (function (months) {
var i, _longMonthsParse = [];
for (i = 0; i < 12; i++) {
_longMonthsParse[i] = new RegExp('^' + months[i] + '$', 'i');
}
return _longMonthsParse;
}(months)),
weekdays : 'neděle_pondělí_úterý_středa_čtvrtek_pátek_sobota'.split('_'),
weekdaysShort : 'ne_po_út_st_čt_pá_so'.split('_'),
weekdaysMin : 'ne_po_út_st_čt_pá_so'.split('_'),
longDateFormat : {
LT: 'H:mm',
LTS : 'H:mm:ss',
L : 'DD.MM.YYYY',
LL : 'D. MMMM YYYY',
LLL : 'D. MMMM YYYY H:mm',
LLLL : 'dddd D. MMMM YYYY H:mm',
l : 'D. M. YYYY'
},
calendar : {
sameDay: '[dnes v] LT',
nextDay: '[zítra v] LT',
nextWeek: function () {
switch (this.day()) {
case 0:
return '[v neděli v] LT';
case 1:
case 2:
return '[v] dddd [v] LT';
case 3:
return '[ve středu v] LT';
case 4:
return '[ve čtvrtek v] LT';
case 5:
return '[v pátek v] LT';
case 6:
return '[v sobotu v] LT';
}
},
lastDay: '[včera v] LT',
lastWeek: function () {
switch (this.day()) {
case 0:
return '[minulou neděli v] LT';
case 1:
case 2:
return '[minulé] dddd [v] LT';
case 3:
return '[minulou středu v] LT';
case 4:
case 5:
return '[minulý] dddd [v] LT';
case 6:
return '[minulou sobotu v] LT';
}
},
sameElse: 'L'
},
relativeTime : {
future : 'za %s',
past : 'před %s',
s : translate,
ss : translate,
m : translate,
mm : translate,
h : translate,
hh : translate,
d : translate,
dd : translate,
M : translate,
MM : translate,
y : translate,
yy : translate
},
dayOfMonthOrdinalParse : /\d{1,2}\./,
ordinal : '%d.',
week : {
dow : 1, // Monday is the first day of the week.
doy : 4 // The week that contains Jan 4th is the first week of the year.
}
});
return cs;
})));
================================================
FILE: public/admin-panel/assets/libs/moment/locale/cv.js
================================================
//! moment.js locale configuration
;(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined'
&& typeof require === 'function' ? factory(require('../moment')) :
typeof define === 'function' && define.amd ? define(['../moment'], factory) :
factory(global.moment)
}(this, (function (moment) { 'use strict';
var cv = moment.defineLocale('cv', {
months : 'кӑрлач_нарӑс_пуш_ака_май_ҫӗртме_утӑ_ҫурла_авӑн_юпа_чӳк_раштав'.split('_'),
monthsShort : 'кӑр_нар_пуш_ака_май_ҫӗр_утӑ_ҫур_авн_юпа_чӳк_раш'.split('_'),
weekdays : 'вырсарникун_тунтикун_ытларикун_юнкун_кӗҫнерникун_эрнекун_шӑматкун'.split('_'),
weekdaysShort : 'выр_тун_ытл_юн_кӗҫ_эрн_шӑм'.split('_'),
weekdaysMin : 'вр_тн_ыт_юн_кҫ_эр_шм'.split('_'),
longDateFormat : {
LT : 'HH:mm',
LTS : 'HH:mm:ss',
L : 'DD-MM-YYYY',
LL : 'YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ]',
LLL : 'YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm',
LLLL : 'dddd, YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm'
},
calendar : {
sameDay: '[Паян] LT [сехетре]',
nextDay: '[Ыран] LT [сехетре]',
lastDay: '[Ӗнер] LT [сехетре]',
nextWeek: '[Ҫитес] dddd LT [сехетре]',
lastWeek: '[Иртнӗ] dddd LT [сехетре]',
sameElse: 'L'
},
relativeTime : {
future : function (output) {
var affix = /сехет$/i.exec(output) ? 'рен' : /ҫул$/i.exec(output) ? 'тан' : 'ран';
return output + affix;
},
past : '%s каялла',
s : 'пӗр-ик ҫеккунт',
ss : '%d ҫеккунт',
m : 'пӗр минут',
mm : '%d минут',
h : 'пӗр сехет',
hh : '%d сехет',
d : 'пӗр кун',
dd : '%d кун',
M : 'пӗр уйӑх',
MM : '%d уйӑх',
y : 'пӗр ҫул',
yy : '%d ҫул'
},
dayOfMonthOrdinalParse: /\d{1,2}-мӗш/,
ordinal : '%d-мӗш',
week : {
dow : 1, // Monday is the first day of the week.
doy : 7 // The week that contains Jan 1st is the first week of the year.
}
});
return cv;
})));
================================================
FILE: public/admin-panel/assets/libs/moment/locale/cy.js
================================================
//! moment.js locale configuration
;(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined'
&& typeof require === 'function' ? factory(require('../moment')) :
typeof define === 'function' && define.amd ? define(['../moment'], factory) :
factory(global.moment)
}(this, (function (moment) { 'use strict';
var cy = moment.defineLocale('cy', {
months: 'Ionawr_Chwefror_Mawrth_Ebrill_Mai_Mehefin_Gorffennaf_Awst_Medi_Hydref_Tachwedd_Rhagfyr'.split('_'),
monthsShort: 'Ion_Chwe_Maw_Ebr_Mai_Meh_Gor_Aws_Med_Hyd_Tach_Rhag'.split('_'),
weekdays: 'Dydd Sul_Dydd Llun_Dydd Mawrth_Dydd Mercher_Dydd Iau_Dydd Gwener_Dydd Sadwrn'.split('_'),
weekdaysShort: 'Sul_Llun_Maw_Mer_Iau_Gwe_Sad'.split('_'),
weekdaysMin: 'Su_Ll_Ma_Me_Ia_Gw_Sa'.split('_'),
weekdaysParseExact : true,
// time formats are the same as en-gb
longDateFormat: {
LT: 'HH:mm',
LTS : 'HH:mm:ss',
L: 'DD/MM/YYYY',
LL: 'D MMMM YYYY',
LLL: 'D MMMM YYYY HH:mm',
LLLL: 'dddd, D MMMM YYYY HH:mm'
},
calendar: {
sameDay: '[Heddiw am] LT',
nextDay: '[Yfory am] LT',
nextWeek: 'dddd [am] LT',
lastDay: '[Ddoe am] LT',
lastWeek: 'dddd [diwethaf am] LT',
sameElse: 'L'
},
relativeTime: {
future: 'mewn %s',
past: '%s yn ôl',
s: 'ychydig eiliadau',
ss: '%d eiliad',
m: 'munud',
mm: '%d munud',
h: 'awr',
hh: '%d awr',
d: 'diwrnod',
dd: '%d diwrnod',
M: 'mis',
MM: '%d mis',
y: 'blwyddyn',
yy: '%d flynedd'
},
dayOfMonthOrdinalParse: /\d{1,2}(fed|ain|af|il|ydd|ed|eg)/,
// traditional ordinal numbers above 31 are not commonly used in colloquial Welsh
ordinal: function (number) {
var b = number,
output = '',
lookup = [
'', 'af', 'il', 'ydd', 'ydd', 'ed', 'ed', 'ed', 'fed', 'fed', 'fed', // 1af to 10fed
'eg', 'fed', 'eg', 'eg', 'fed', 'eg', 'eg', 'fed', 'eg', 'fed' // 11eg to 20fed
];
if (b > 20) {
if (b === 40 || b === 50 || b === 60 || b === 80 || b === 100) {
output = 'fed'; // not 30ain, 70ain or 90ain
} else {
output = 'ain';
}
} else if (b > 0) {
output = lookup[b];
}
return number + output;
},
week : {
dow : 1, // Monday is the first day of the week.
doy : 4 // The week that contains Jan 4th is the first week of the year.
}
});
return cy;
})));
================================================
FILE: public/admin-panel/assets/libs/moment/locale/da.js
================================================
//! moment.js locale configuration
;(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined'
&& typeof require === 'function' ? factory(require('../moment')) :
typeof define === 'function' && define.amd ? define(['../moment'], factory) :
factory(global.moment)
}(this, (function (moment) { 'use strict';
var da = moment.defineLocale('da', {
months : 'januar_februar_marts_april_maj_juni_juli_august_september_oktober_november_december'.split('_'),
monthsShort : 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'),
weekdays : 'søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag'.split('_'),
weekdaysShort : 'søn_man_tir_ons_tor_fre_lør'.split('_'),
weekdaysMin : 'sø_ma_ti_on_to_fr_lø'.split('_'),
longDateFormat : {
LT : 'HH:mm',
LTS : 'HH:mm:ss',
L : 'DD.MM.YYYY',
LL : 'D. MMMM YYYY',
LLL : 'D. MMMM YYYY HH:mm',
LLLL : 'dddd [d.] D. MMMM YYYY [kl.] HH:mm'
},
calendar : {
sameDay : '[i dag kl.] LT',
nextDay : '[i morgen kl.] LT',
nextWeek : 'på dddd [kl.] LT',
lastDay : '[i går kl.] LT',
lastWeek : '[i] dddd[s kl.] LT',
sameElse : 'L'
},
relativeTime : {
future : 'om %s',
past : '%s siden',
s : 'få sekunder',
ss : '%d sekunder',
m : 'et minut',
mm : '%d minutter',
h : 'en time',
hh : '%d timer',
d : 'en dag',
dd : '%d dage',
M : 'en måned',
MM : '%d måneder',
y : 'et år',
yy : '%d år'
},
dayOfMonthOrdinalParse: /\d{1,2}\./,
ordinal : '%d.',
week : {
dow : 1, // Monday is the first day of the week.
doy : 4 // The week that contains Jan 4th is the first week of the year.
}
});
return da;
})));
================================================
FILE: public/admin-panel/assets/libs/moment/locale/de-at.js
================================================
//! moment.js locale configuration
;(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined'
&& typeof require === 'function' ? factory(require('../moment')) :
typeof define === 'function' && define.amd ? define(['../moment'], factory) :
factory(global.moment)
}(this, (function (moment) { 'use strict';
function processRelativeTime(number, withoutSuffix, key, isFuture) {
var format = {
'm': ['eine Minute', 'einer Minute'],
'h': ['eine Stunde', 'einer Stunde'],
'd': ['ein Tag', 'einem Tag'],
'dd': [number + ' Tage', number + ' Tagen'],
'M': ['ein Monat', 'einem Monat'],
'MM': [number + ' Monate', number + ' Monaten'],
'y': ['ein Jahr', 'einem Jahr'],
'yy': [number + ' Jahre', number + ' Jahren']
};
return withoutSuffix ? format[key][0] : format[key][1];
}
var deAt = moment.defineLocale('de-at', {
months : 'Jänner_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split('_'),
monthsShort : 'Jän._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'),
monthsParseExact : true,
weekdays : 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split('_'),
weekdaysShort : 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'),
weekdaysMin : 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),
weekdaysParseExact : true,
longDateFormat : {
LT: 'HH:mm',
LTS: 'HH:mm:ss',
L : 'DD.MM.YYYY',
LL : 'D. MMMM YYYY',
LLL : 'D. MMMM YYYY HH:mm',
LLLL : 'dddd, D. MMMM YYYY HH:mm'
},
calendar : {
sameDay: '[heute um] LT [Uhr]',
sameElse: 'L',
nextDay: '[morgen um] LT [Uhr]',
nextWeek: 'dddd [um] LT [Uhr]',
lastDay: '[gestern um] LT [Uhr]',
lastWeek: '[letzten] dddd [um] LT [Uhr]'
},
relativeTime : {
future : 'in %s',
past : 'vor %s',
s : 'ein paar Sekunden',
ss : '%d Sekunden',
m : processRelativeTime,
mm : '%d Minuten',
h : processRelativeTime,
hh : '%d Stunden',
d : processRelativeTime,
dd : processRelativeTime,
M : processRelativeTime,
MM : processRelativeTime,
y : processRelativeTime,
yy : processRelativeTime
},
dayOfMonthOrdinalParse: /\d{1,2}\./,
ordinal : '%d.',
week : {
dow : 1, // Monday is the first day of the week.
doy : 4 // The week that contains Jan 4th is the first week of the year.
}
});
return deAt;
})));
================================================
FILE: public/admin-panel/assets/libs/moment/locale/de-ch.js
================================================
//! moment.js locale configuration
;(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined'
&& typeof require === 'function' ? factory(require('../moment')) :
typeof define === 'function' && define.amd ? define(['../moment'], factory) :
factory(global.moment)
}(this, (function (moment) { 'use strict';
function processRelativeTime(number, withoutSuffix, key, isFuture) {
var format = {
'm': ['eine Minute', 'einer Minute'],
'h': ['eine Stunde', 'einer Stunde'],
'd': ['ein Tag', 'einem Tag'],
'dd': [number + ' Tage', number + ' Tagen'],
'M': ['ein Monat', 'einem Monat'],
'MM': [number + ' Monate', number + ' Monaten'],
'y': ['ein Jahr', 'einem Jahr'],
'yy': [number + ' Jahre', number + ' Jahren']
};
return withoutSuffix ? format[key][0] : format[key][1];
}
var deCh = moment.defineLocale('de-ch', {
months : 'Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split('_'),
monthsShort : 'Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'),
monthsParseExact : true,
weekdays : 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split('_'),
weekdaysShort : 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),
weekdaysMin : 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),
weekdaysParseExact : true,
longDateFormat : {
LT: 'HH:mm',
LTS: 'HH:mm:ss',
L : 'DD.MM.YYYY',
LL : 'D. MMMM YYYY',
LLL : 'D. MMMM YYYY HH:mm',
LLLL : 'dddd, D. MMMM YYYY HH:mm'
},
calendar : {
sameDay: '[heute um] LT [Uhr]',
sameElse: 'L',
nextDay: '[morgen um] LT [Uhr]',
nextWeek: 'dddd [um] LT [Uhr]',
lastDay: '[gestern um] LT [Uhr]',
lastWeek: '[letzten] dddd [um] LT [Uhr]'
},
relativeTime : {
future : 'in %s',
past : 'vor %s',
s : 'ein paar Sekunden',
ss : '%d Sekunden',
m : processRelativeTime,
mm : '%d Minuten',
h : processRelativeTime,
hh : '%d Stunden',
d : processRelativeTime,
dd : processRelativeTime,
M : processRelativeTime,
MM : processRelativeTime,
y : processRelativeTime,
yy : processRelativeTime
},
dayOfMonthOrdinalParse: /\d{1,2}\./,
ordinal : '%d.',
week : {
dow : 1, // Monday is the first day of the week.
doy : 4 // The week that contains Jan 4th is the first week of the year.
}
});
return deCh;
})));
================================================
FILE: public/admin-panel/assets/libs/moment/locale/de.js
================================================
//! moment.js locale configuration
;(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined'
&& typeof require === 'function' ? factory(require('../moment')) :
typeof define === 'function' && define.amd ? define(['../moment'], factory) :
factory(global.moment)
}(this, (function (moment) { 'use strict';
function processRelativeTime(number, withoutSuffix, key, isFuture) {
var format = {
'm': ['eine Minute', 'einer Minute'],
'h': ['eine Stunde', 'einer Stunde'],
'd': ['ein Tag', 'einem Tag'],
'dd': [number + ' Tage', number + ' Tagen'],
'M': ['ein Monat', 'einem Monat'],
'MM': [number + ' Monate', number + ' Monaten'],
'y': ['ein Jahr', 'einem Jahr'],
'yy': [number + ' Jahre', number + ' Jahren']
};
return withoutSuffix ? format[key][0] : format[key][1];
}
var de = moment.defineLocale('de', {
months : 'Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split('_'),
monthsShort : 'Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'),
monthsParseExact : true,
weekdays : 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split('_'),
weekdaysShort : 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'),
weekdaysMin : 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),
weekdaysParseExact : true,
longDateFormat : {
LT: 'HH:mm',
LTS: 'HH:mm:ss',
L : 'DD.MM.YYYY',
LL : 'D. MMMM YYYY',
LLL : 'D. MMMM YYYY HH:mm',
LLLL : 'dddd, D. MMMM YYYY HH:mm'
},
calendar : {
sameDay: '[heute um] LT [Uhr]',
sameElse: 'L',
nextDay: '[morgen um] LT [Uhr]',
nextWeek: 'dddd [um] LT [Uhr]',
lastDay: '[gestern um] LT [Uhr]',
lastWeek: '[letzten] dddd [um] LT [Uhr]'
},
relativeTime : {
future : 'in %s',
past : 'vor %s',
s : 'ein paar Sekunden',
ss : '%d Sekunden',
m : processRelativeTime,
mm : '%d Minuten',
h : processRelativeTime,
hh : '%d Stunden',
d : processRelativeTime,
dd : processRelativeTime,
M : processRelativeTime,
MM : processRelativeTime,
y : processRelativeTime,
yy : processRelativeTime
},
dayOfMonthOrdinalParse: /\d{1,2}\./,
ordinal : '%d.',
week : {
dow : 1, // Monday is the first day of the week.
doy : 4 // The week that contains Jan 4th is the first week of the year.
}
});
return de;
})));
================================================
FILE: public/admin-panel/assets/libs/moment/locale/dv.js
================================================
//! moment.js locale configuration
;(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined'
&& typeof require === 'function' ? factory(require('../moment')) :
typeof define === 'function' && define.amd ? define(['../moment'], factory) :
factory(global.moment)
}(this, (function (moment) { 'use strict';
var months = [
'ޖެނުއަރީ',
'ފެބްރުއަރީ',
'މާރިޗު',
'އޭޕްރީލު',
'މޭ',
'ޖޫން',
'ޖުލައި',
'އޯގަސްޓު',
'ސެޕްޓެމްބަރު',
'އޮކްޓޯބަރު',
'ނޮވެމްބަރު',
'ޑިސެމްބަރު'
], weekdays = [
'އާދިއްތަ',
'ހޯމަ',
'އަންގާރަ',
'ބުދަ',
'ބުރާސްފަތި',
'ހުކުރު',
'ހޮނިހިރު'
];
var dv = moment.defineLocale('dv', {
months : months,
monthsShort : months,
weekdays : weekdays,
weekdaysShort : weekdays,
weekdaysMin : 'އާދި_ހޯމަ_އަން_ބުދަ_ބުރާ_ހުކު_ހޮނި'.split('_'),
longDateFormat : {
LT : 'HH:mm',
LTS : 'HH:mm:ss',
L : 'D/M/YYYY',
LL : 'D MMMM YYYY',
LLL : 'D MMMM YYYY HH:mm',
LLLL : 'dddd D MMMM YYYY HH:mm'
},
meridiemParse: /މކ|މފ/,
isPM : function (input) {
return 'މފ' === input;
},
meridiem : function (hour, minute, isLower) {
if (hour < 12) {
return 'މކ';
} else {
return 'މފ';
}
},
calendar : {
sameDay : '[މިއަދު] LT',
nextDay : '[މާދަމާ] LT',
nextWeek : 'dddd LT',
lastDay : '[އިއްޔެ] LT',
lastWeek : '[ފާއިތުވި] dddd LT',
sameElse : 'L'
},
relativeTime : {
future : 'ތެރޭގައި %s',
past : 'ކުރިން %s',
s : 'ސިކުންތުކޮޅެއް',
ss : 'd% ސިކުންތު',
m : 'މިނިޓެއް',
mm : 'މިނިޓު %d',
h : 'ގަޑިއިރެއް',
hh : 'ގަޑިއިރު %d',
d : 'ދުވަހެއް',
dd : 'ދުވަސް %d',
M : 'މަހެއް',
MM : 'މަސް %d',
y : 'އަހަރެއް',
yy : 'އަހަރު %d'
},
preparse: function (string) {
return string.replace(/،/g, ',');
},
postformat: function (string) {
return string.replace(/,/g, '،');
},
week : {
dow : 7, // Sunday is the first day of the week.
doy : 12 // The week that contains Jan 1st is the first week of the year.
}
});
return dv;
})));
================================================
FILE: public/admin-panel/assets/libs/moment/locale/el.js
================================================
//! moment.js locale configuration
;(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined'
&& typeof require === 'function' ? factory(require('../moment')) :
typeof define === 'function' && define.amd ? define(['../moment'], factory) :
factory(global.moment)
}(this, (function (moment) { 'use strict';
function isFunction(input) {
return input instanceof Function || Object.prototype.toString.call(input) === '[object Function]';
}
var el = moment.defineLocale('el', {
monthsNominativeEl : 'Ιανουάριος_Φεβρουάριος_Μάρτιος_Απρίλιος_Μάιος_Ιούνιος_Ιούλιος_Αύγουστος_Σεπτέμβριος_Οκτώβριος_Νοέμβριος_Δεκέμβριος'.split('_'),
monthsGenitiveEl : 'Ιανουαρίου_Φεβρουαρίου_Μαρτίου_Απριλίου_Μαΐου_Ιουνίου_Ιουλίου_Αυγούστου_Σεπτεμβρίου_Οκτωβρίου_Νοεμβρίου_Δεκεμβρίου'.split('_'),
months : function (momentToFormat, format) {
if (!momentToFormat) {
return this._monthsNominativeEl;
} else if (typeof format === 'string' && /D/.test(format.substring(0, format.indexOf('MMMM')))) { // if there is a day number before 'MMMM'
return this._monthsGenitiveEl[momentToFormat.month()];
} else {
return this._monthsNominativeEl[momentToFormat.month()];
}
},
monthsShort : 'Ιαν_Φεβ_Μαρ_Απρ_Μαϊ_Ιουν_Ιουλ_Αυγ_Σεπ_Οκτ_Νοε_Δεκ'.split('_'),
weekdays : 'Κυριακή_Δευτέρα_Τρίτη_Τετάρτη_Πέμπτη_Παρασκευή_Σάββατο'.split('_'),
weekdaysShort : 'Κυρ_Δευ_Τρι_Τετ_Πεμ_Παρ_Σαβ'.split('_'),
weekdaysMin : 'Κυ_Δε_Τρ_Τε_Πε_Πα_Σα'.split('_'),
meridiem : function (hours, minutes, isLower) {
if (hours > 11) {
return isLower ? 'μμ' : 'ΜΜ';
} else {
return isLower ? 'πμ' : 'ΠΜ';
}
},
isPM : function (input) {
return ((input + '').toLowerCase()[0] === 'μ');
},
meridiemParse : /[ΠΜ]\.?Μ?\.?/i,
longDateFormat : {
LT : 'h:mm A',
LTS : 'h:mm:ss A',
L : 'DD/MM/YYYY',
LL : 'D MMMM YYYY',
LLL : 'D MMMM YYYY h:mm A',
LLLL : 'dddd, D MMMM YYYY h:mm A'
},
calendarEl : {
sameDay : '[Σήμερα {}] LT',
nextDay : '[Αύριο {}] LT',
nextWeek : 'dddd [{}] LT',
lastDay : '[Χθες {}] LT',
lastWeek : function () {
switch (this.day()) {
case 6:
return '[το προηγούμενο] dddd [{}] LT';
default:
return '[την προηγούμενη] dddd [{}] LT';
}
},
sameElse : 'L'
},
calendar : function (key, mom) {
var output = this._calendarEl[key],
hours = mom && mom.hours();
if (isFunction(output)) {
output = output.apply(mom);
}
return output.replace('{}', (hours % 12 === 1 ? 'στη' : 'στις'));
},
relativeTime : {
future : 'σε %s',
past : '%s πριν',
s : 'λίγα δευτερόλεπτα',
ss : '%d δευτερόλεπτα',
m : 'ένα λεπτό',
mm : '%d λεπτά',
h : 'μία ώρα',
hh : '%d ώρες',
d : 'μία μέρα',
dd : '%d μέρες',
M : 'ένας μήνας',
MM : '%d μήνες',
y : 'ένας χρόνος',
yy : '%d χρόνια'
},
dayOfMonthOrdinalParse: /\d{1,2}η/,
ordinal: '%dη',
week : {
dow : 1, // Monday is the first day of the week.
doy : 4 // The week that contains Jan 4st is the first week of the year.
}
});
return el;
})));
================================================
FILE: public/admin-panel/assets/libs/moment/locale/en-au.js
================================================
//! moment.js locale configuration
;(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined'
&& typeof require === 'function' ? factory(require('../moment')) :
typeof define === 'function' && define.amd ? define(['../moment'], factory) :
factory(global.moment)
}(this, (function (moment) { 'use strict';
var enAu = moment.defineLocale('en-au', {
months : 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),
monthsShort : 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),
weekdays : 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),
weekdaysShort : 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),
weekdaysMin : 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),
longDateFormat : {
LT : 'h:mm A',
LTS : 'h:mm:ss A',
L : 'DD/MM/YYYY',
LL : 'D MMMM YYYY',
LLL : 'D MMMM YYYY h:mm A',
LLLL : 'dddd, D MMMM YYYY h:mm A'
},
calendar : {
sameDay : '[Today at] LT',
nextDay : '[Tomorrow at] LT',
nextWeek : 'dddd [at] LT',
lastDay : '[Yesterday at] LT',
lastWeek : '[Last] dddd [at] LT',
sameElse : 'L'
},
relativeTime : {
future : 'in %s',
past : '%s ago',
s : 'a few seconds',
ss : '%d seconds',
m : 'a minute',
mm : '%d minutes',
h : 'an hour',
hh : '%d hours',
d : 'a day',
dd : '%d days',
M : 'a month',
MM : '%d months',
y : 'a year',
yy : '%d years'
},
dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/,
ordinal : function (number) {
var b = number % 10,
output = (~~(number % 100 / 10) === 1) ? 'th' :
(b === 1) ? 'st' :
(b === 2) ? 'nd' :
(b === 3) ? 'rd' : 'th';
return number + output;
},
week : {
dow : 1, // Monday is the first day of the week.
doy : 4 // The week that contains Jan 4th is the first week of the year.
}
});
return enAu;
})));
================================================
FILE: public/admin-panel/assets/libs/moment/locale/en-ca.js
================================================
//! moment.js locale configuration
;(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined'
&& typeof require === 'function' ? factory(require('../moment')) :
typeof define === 'function' && define.amd ? define(['../moment'], factory) :
factory(global.moment)
}(this, (function (moment) { 'use strict';
var enCa = moment.defineLocale('en-ca', {
months : 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),
monthsShort : 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),
weekdays : 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),
weekdaysShort : 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),
weekdaysMin : 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),
longDateFormat : {
LT : 'h:mm A',
LTS : 'h:mm:ss A',
L : 'YYYY-MM-DD',
LL : 'MMMM D, YYYY',
LLL : 'MMMM D, YYYY h:mm A',
LLLL : 'dddd, MMMM D, YYYY h:mm A'
},
calendar : {
sameDay : '[Today at] LT',
nextDay : '[Tomorrow at] LT',
nextWeek : 'dddd [at] LT',
lastDay : '[Yesterday at] LT',
lastWeek : '[Last] dddd [at] LT',
sameElse : 'L'
},
relativeTime : {
future : 'in %s',
past : '%s ago',
s : 'a few seconds',
ss : '%d seconds',
m : 'a minute',
mm : '%d minutes',
h : 'an hour',
hh : '%d hours',
d : 'a day',
dd : '%d days',
M : 'a month',
MM : '%d months',
y : 'a year',
yy : '%d years'
},
dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/,
ordinal : function (number) {
var b = number % 10,
output = (~~(number % 100 / 10) === 1) ? 'th' :
(b === 1) ? 'st' :
(b === 2) ? 'nd' :
(b === 3) ? 'rd' : 'th';
return number + output;
}
});
return enCa;
})));
================================================
FILE: public/admin-panel/assets/libs/moment/locale/en-gb.js
================================================
//! moment.js locale configuration
;(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined'
&& typeof require === 'function' ? factory(require('../moment')) :
typeof define === 'function' && define.amd ? define(['../moment'], factory) :
factory(global.moment)
}(this, (function (moment) { 'use strict';
var enGb = moment.defineLocale('en-gb', {
months : 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),
monthsShort : 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),
weekdays : 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),
weekdaysShort : 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),
weekdaysMin : 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),
longDateFormat : {
LT : 'HH:mm',
LTS : 'HH:mm:ss',
L : 'DD/MM/YYYY',
LL : 'D MMMM YYYY',
LLL : 'D MMMM YYYY HH:mm',
LLLL : 'dddd, D MMMM YYYY HH:mm'
},
calendar : {
sameDay : '[Today at] LT',
nextDay : '[Tomorrow at] LT',
nextWeek : 'dddd [at] LT',
lastDay : '[Yesterday at] LT',
lastWeek : '[Last] dddd [at] LT',
sameElse : 'L'
},
relativeTime : {
future : 'in %s',
past : '%s ago',
s : 'a few seconds',
ss : '%d seconds',
m : 'a minute',
mm : '%d minutes',
h : 'an hour',
hh : '%d hours',
d : 'a day',
dd : '%d days',
M : 'a month',
MM : '%d months',
y : 'a year',
yy : '%d years'
},
dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/,
ordinal : function (number) {
var b = number % 10,
output = (~~(number % 100 / 10) === 1) ? 'th' :
(b === 1) ? 'st' :
(b === 2) ? 'nd' :
(b === 3) ? 'rd' : 'th';
return number + output;
},
week : {
dow : 1, // Monday is the first day of the week.
doy : 4 // The week that contains Jan 4th is the first week of the year.
}
});
return enGb;
})));
================================================
FILE: public/admin-panel/assets/libs/moment/locale/en-ie.js
================================================
//! moment.js locale configuration
;(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined'
&& typeof require === 'function' ? factory(require('../moment')) :
typeof define === 'function' && define.amd ? define(['../moment'], factory) :
factory(global.moment)
}(this, (function (moment) { 'use strict';
var enIe = moment.defineLocale('en-ie', {
months : 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),
monthsShort : 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),
weekdays : 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),
weekdaysShort : 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),
weekdaysMin : 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),
longDateFormat : {
LT : 'HH:mm',
LTS : 'HH:mm:ss',
L : 'DD-MM-YYYY',
LL : 'D MMMM YYYY',
LLL : 'D MMMM YYYY HH:mm',
LLLL : 'dddd D MMMM YYYY HH:mm'
},
calendar : {
sameDay : '[Today at] LT',
nextDay : '[Tomorrow at] LT',
nextWeek : 'dddd [at] LT',
lastDay : '[Yesterday at] LT',
lastWeek : '[Last] dddd [at] LT',
sameElse : 'L'
},
relativeTime : {
future : 'in %s',
past : '%s ago',
s : 'a few seconds',
ss : '%d seconds',
m : 'a minute',
mm : '%d minutes',
h : 'an hour',
hh : '%d hours',
d : 'a day',
dd : '%d days',
M : 'a month',
MM : '%d months',
y : 'a year',
yy : '%d years'
},
dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/,
ordinal : function (number) {
var b = number % 10,
output = (~~(number % 100 / 10) === 1) ? 'th' :
(b === 1) ? 'st' :
(b === 2) ? 'nd' :
(b === 3) ? 'rd' : 'th';
return number + output;
},
week : {
dow : 1, // Monday is the first day of the week.
doy : 4 // The week that contains Jan 4th is the first week of the year.
}
});
return enIe;
})));
================================================
FILE: public/admin-panel/assets/libs/moment/locale/en-il.js
================================================
//! moment.js locale configuration
;(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined'
&& typeof require === 'function' ? factory(require('../moment')) :
typeof define === 'function' && define.amd ? define(['../moment'], factory) :
factory(global.moment)
}(this, (function (moment) { 'use strict';
var enIl = moment.defineLocale('en-il', {
months : 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),
monthsShort : 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),
weekdays : 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),
weekdaysShort : 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),
weekdaysMin : 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),
longDateFormat : {
LT : 'HH:mm',
LTS : 'HH:mm:ss',
L : 'DD/MM/YYYY',
LL : 'D MMMM YYYY',
LLL : 'D MMMM YYYY HH:mm',
LLLL : 'dddd, D MMMM YYYY HH:mm'
},
calendar : {
sameDay : '[Today at] LT',
nextDay : '[Tomorrow at] LT',
nextWeek : 'dddd [at] LT',
lastDay : '[Yesterday at] LT',
lastWeek : '[Last] dddd [at] LT',
sameElse : 'L'
},
relativeTime : {
future : 'in %s',
past : '%s ago',
s : 'a few seconds',
m : 'a minute',
mm : '%d minutes',
h : 'an hour',
hh : '%d hours',
d : 'a day',
dd : '%d days',
M : 'a month',
MM : '%d months',
y : 'a year',
yy : '%d years'
},
dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/,
ordinal : function (number) {
var b = number % 10,
output = (~~(number % 100 / 10) === 1) ? 'th' :
(b === 1) ? 'st' :
(b === 2) ? 'nd' :
(b === 3) ? 'rd' : 'th';
return number + output;
}
});
return enIl;
})));
================================================
FILE: public/admin-panel/assets/libs/moment/locale/en-nz.js
================================================
//! moment.js locale configuration
;(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined'
&& typeof require === 'function' ? factory(require('../moment')) :
typeof define === 'function' && define.amd ? define(['../moment'], factory) :
factory(global.moment)
}(this, (function (moment) { 'use strict';
var enNz = moment.defineLocale('en-nz', {
months : 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),
monthsShort : 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),
weekdays : 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),
weekdaysShort : 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),
weekdaysMin : 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),
longDateFormat : {
LT : 'h:mm A',
LTS : 'h:mm:ss A',
L : 'DD/MM/YYYY',
LL : 'D MMMM YYYY',
LLL : 'D MMMM YYYY h:mm A',
LLLL : 'dddd, D MMMM YYYY h:mm A'
},
calendar : {
sameDay : '[Today at] LT',
nextDay : '[Tomorrow at] LT',
nextWeek : 'dddd [at] LT',
lastDay : '[Yesterday at] LT',
lastWeek : '[Last] dddd [at] LT',
sameElse : 'L'
},
relativeTime : {
future : 'in %s',
past : '%s ago',
s : 'a few seconds',
ss : '%d seconds',
m : 'a minute',
mm : '%d minutes',
h : 'an hour',
hh : '%d hours',
d : 'a day',
dd : '%d days',
M : 'a month',
MM : '%d months',
y : 'a year',
yy : '%d years'
},
dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/,
ordinal : function (number) {
var b = number % 10,
output = (~~(number % 100 / 10) === 1) ? 'th' :
(b === 1) ? 'st' :
(b === 2) ? 'nd' :
(b === 3) ? 'rd' : 'th';
return number + output;
},
week : {
dow : 1, // Monday is the first day of the week.
doy : 4 // The week that contains Jan 4th is the first week of the year.
}
});
return enNz;
})));
================================================
FILE: public/admin-panel/assets/libs/moment/locale/eo.js
================================================
//! moment.js locale configuration
;(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined'
&& typeof require === 'function' ? factory(require('../moment')) :
typeof define === 'function' && define.amd ? define(['../moment'], factory) :
factory(global.moment)
}(this, (function (moment) { 'use strict';
var eo = moment.defineLocale('eo', {
months : 'januaro_februaro_marto_aprilo_majo_junio_julio_aŭgusto_septembro_oktobro_novembro_decembro'.split('_'),
monthsShort : 'jan_feb_mar_apr_maj_jun_jul_aŭg_sep_okt_nov_dec'.split('_'),
weekdays : 'dimanĉo_lundo_mardo_merkredo_ĵaŭdo_vendredo_sabato'.split('_'),
weekdaysShort : 'dim_lun_mard_merk_ĵaŭ_ven_sab'.split('_'),
weekdaysMin : 'di_lu_ma_me_ĵa_ve_sa'.split('_'),
longDateFormat : {
LT : 'HH:mm',
LTS : 'HH:mm:ss',
L : 'YYYY-MM-DD',
LL : 'D[-a de] MMMM, YYYY',
LLL : 'D[-a de] MMMM, YYYY HH:mm',
LLLL : 'dddd, [la] D[-a de] MMMM, YYYY HH:mm'
},
meridiemParse: /[ap]\.t\.m/i,
isPM: function (input) {
return input.charAt(0).toLowerCase() === 'p';
},
meridiem : function (hours, minutes, isLower) {
if (hours > 11) {
return isLower ? 'p.t.m.' : 'P.T.M.';
} else {
return isLower ? 'a.t.m.' : 'A.T.M.';
}
},
calendar : {
sameDay : '[Hodiaŭ je] LT',
nextDay : '[Morgaŭ je] LT',
nextWeek : 'dddd [je] LT',
lastDay : '[Hieraŭ je] LT',
lastWeek : '[pasinta] dddd [je] LT',
sameElse : 'L'
},
relativeTime : {
future : 'post %s',
past : 'antaŭ %s',
s : 'sekundoj',
ss : '%d sekundoj',
m : 'minuto',
mm : '%d minutoj',
h : 'horo',
hh : '%d horoj',
d : 'tago',//ne 'diurno', ĉar estas uzita por proksimumo
dd : '%d tagoj',
M : 'monato',
MM : '%d monatoj',
y : 'jaro',
yy : '%d jaroj'
},
dayOfMonthOrdinalParse: /\d{1,2}a/,
ordinal : '%da',
week : {
dow : 1, // Monday is the first day of the week.
doy : 7 // The week that contains Jan 1st is the first week of the year.
}
});
return eo;
})));
================================================
FILE: public/admin-panel/assets/libs/moment/locale/es-do.js
================================================
//! moment.js locale configuration
;(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined'
&& typeof require === 'function' ? factory(require('../moment')) :
typeof define === 'function' && define.amd ? define(['../moment'], factory) :
factory(global.moment)
}(this, (function (moment) { 'use strict';
var monthsShortDot = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split('_'),
monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_');
var monthsParse = [/^ene/i, /^feb/i, /^mar/i, /^abr/i, /^may/i, /^jun/i, /^jul/i, /^ago/i, /^sep/i, /^oct/i, /^nov/i, /^dic/i];
var monthsRegex = /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i;
var esDo = moment.defineLocale('es-do', {
months : 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split('_'),
monthsShort : function (m, format) {
if (!m) {
return monthsShortDot;
} else if (/-MMM-/.test(format)) {
return monthsShort[m.month()];
} else {
return monthsShortDot[m.month()];
}
},
monthsRegex: monthsRegex,
monthsShortRegex: monthsRegex,
monthsStrictRegex: /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,
monthsShortStrictRegex: /^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i,
monthsParse: monthsParse,
longMonthsParse: monthsParse,
shortMonthsParse: monthsParse,
weekdays : 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),
weekdaysShort : 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),
weekdaysMin : 'do_lu_ma_mi_ju_vi_sá'.split('_'),
weekdaysParseExact : true,
longDateFormat : {
LT : 'h:mm A',
LTS : 'h:mm:ss A',
L : 'DD/MM/YYYY',
LL : 'D [de] MMMM [de] YYYY',
LLL : 'D [de] MMMM [de] YYYY h:mm A',
LLLL : 'dddd, D [de] MMMM [de] YYYY h:mm A'
},
calendar : {
sameDay : function () {
return '[hoy a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';
},
nextDay : function () {
return '[mañana a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';
},
nextWeek : function () {
return 'dddd [a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';
},
lastDay : function () {
return '[ayer a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';
},
lastWeek : function () {
return '[el] dddd [pasado a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';
},
sameElse : 'L'
},
relativeTime : {
future : 'en %s',
past : 'hace %s',
s : 'unos segundos',
ss : '%d segundos',
m : 'un minuto',
mm : '%d minutos',
h : 'una hora',
hh : '%d horas',
d : 'un día',
dd : '%d días',
M : 'un mes',
MM : '%d meses',
y : 'un año',
yy : '%d años'
},
dayOfMonthOrdinalParse : /\d{1,2}º/,
ordinal : '%dº',
week : {
dow : 1, // Monday is the first day of the week.
doy : 4 // The week that contains Jan 4th is the first week of the year.
}
});
return esDo;
})));
================================================
FILE: public/admin-panel/assets/libs/moment/locale/es-us.js
================================================
//! moment.js locale configuration
;(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined'
&& typeof require === 'function' ? factory(require('../moment')) :
typeof define === 'function' && define.amd ? define(['../moment'], factory) :
factory(global.moment)
}(this, (function (moment) { 'use strict';
var monthsShortDot = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split('_'),
monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_');
var esUs = moment.defineLocale('es-us', {
months : 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split('_'),
monthsShort : function (m, format) {
if (!m) {
return monthsShortDot;
} else if (/-MMM-/.test(format)) {
return monthsShort[m.month()];
} else {
return monthsShortDot[m.month()];
}
},
monthsParseExact : true,
weekdays : 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),
weekdaysShort : 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),
weekdaysMin : 'do_lu_ma_mi_ju_vi_sá'.split('_'),
weekdaysParseExact : true,
longDateFormat : {
LT : 'h:mm A',
LTS : 'h:mm:ss A',
L : 'MM/DD/YYYY',
LL : 'MMMM [de] D [de] YYYY',
LLL : 'MMMM [de] D [de] YYYY h:mm A',
LLLL : 'dddd, MMMM [de] D [de] YYYY h:mm A'
},
calendar : {
sameDay : function () {
return '[hoy a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';
},
nextDay : function () {
return '[mañana a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';
},
nextWeek : function () {
return 'dddd [a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';
},
lastDay : function () {
return '[ayer a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';
},
lastWeek : function () {
return '[el] dddd [pasado a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';
},
sameElse : 'L'
},
relativeTime : {
future : 'en %s',
past : 'hace %s',
s : 'unos segundos',
ss : '%d segundos',
m : 'un minuto',
mm : '%d minutos',
h : 'una hora',
hh : '%d horas',
d : 'un día',
dd : '%d días',
M : 'un mes',
MM : '%d meses',
y : 'un año',
yy : '%d años'
},
dayOfMonthOrdinalParse : /\d{1,2}º/,
ordinal : '%dº',
week : {
dow : 0, // Sunday is the first day of the week.
doy : 6 // The week that contains Jan 1st is the first week of the year.
}
});
return esUs;
})));
================================================
FILE: public/admin-panel/assets/libs/moment/locale/es.js
================================================
//! moment.js locale configuration
;(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined'
&& typeof require === 'function' ? factory(require('../moment')) :
typeof define === 'function' && define.amd ? define(['../moment'], factory) :
factory(global.moment)
}(this, (function (moment) { 'use strict';
var monthsShortDot = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split('_'),
monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_');
var monthsParse = [/^ene/i, /^feb/i, /^mar/i, /^abr/i, /^may/i, /^jun/i, /^jul/i, /^ago/i, /^sep/i, /^oct/i, /^nov/i, /^dic/i];
var monthsRegex = /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i;
var es = moment.defineLocale('es', {
months : 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split('_'),
monthsShort : function (m, format) {
if (!m) {
return monthsShortDot;
} else if (/-MMM-/.test(format)) {
return monthsShort[m.month()];
} else {
return monthsShortDot[m.month()];
}
},
monthsRegex : monthsRegex,
monthsShortRegex : monthsRegex,
monthsStrictRegex : /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,
monthsShortStrictRegex : /^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i,
monthsParse : monthsParse,
longMonthsParse : monthsParse,
shortMonthsParse : monthsParse,
weekdays : 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),
weekdaysShort : 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),
weekdaysMin : 'do_lu_ma_mi_ju_vi_sá'.split('_'),
weekdaysParseExact : true,
longDateFormat : {
LT : 'H:mm',
LTS : 'H:mm:ss',
L : 'DD/MM/YYYY',
LL : 'D [de] MMMM [de] YYYY',
LLL : 'D [de] MMMM [de] YYYY H:mm',
LLLL : 'dddd, D [de] MMMM [de] YYYY H:mm'
},
calendar : {
sameDay : function () {
return '[hoy a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';
},
nextDay : function () {
return '[mañana a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';
},
nextWeek : function () {
return 'dddd [a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';
},
lastDay : function () {
return '[ayer a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';
},
lastWeek : function () {
return '[el] dddd [pasado a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';
},
sameElse : 'L'
},
relativeTime : {
future : 'en %s',
past : 'hace %s',
s : 'unos segundos',
ss : '%d segundos',
m : 'un minuto',
mm : '%d minutos',
h : 'una hora',
hh : '%d horas',
d : 'un día',
dd : '%d días',
M : 'un mes',
MM : '%d meses',
y : 'un año',
yy : '%d años'
},
dayOfMonthOrdinalParse : /\d{1,2}º/,
ordinal : '%dº',
week : {
dow : 1, // Monday is the first day of the week.
doy : 4 // The week that contains Jan 4th is the first week of the year.
}
});
return es;
})));
================================================
FILE: public/admin-panel/assets/libs/moment/locale/et.js
================================================
//! moment.js locale configuration
;(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined'
&& typeof require === 'function' ? factory(require('../moment')) :
typeof define === 'function' && define.amd ? define(['../moment'], factory) :
factory(global.moment)
}(this, (function (moment) { 'use strict';
function processRelativeTime(number, withoutSuffix, key, isFuture) {
var format = {
's' : ['mõne sekundi', 'mõni sekund', 'paar sekundit'],
'ss': [number + 'sekundi', number + 'sekundit'],
'm' : ['ühe minuti', 'üks minut'],
'mm': [number + ' minuti', number + ' minutit'],
'h' : ['ühe tunni', 'tund aega', 'üks tund'],
'hh': [number + ' tunni', number + ' tundi'],
'd' : ['ühe päeva', 'üks päev'],
'M' : ['kuu aja', 'kuu aega', 'üks kuu'],
'MM': [number + ' kuu', number + ' kuud'],
'y' : ['ühe aasta', 'aasta', 'üks aasta'],
'yy': [number + ' aasta', number + ' aastat']
};
if (withoutSuffix) {
return format[key][2] ? format[key][2] : format[key][1];
}
return isFuture ? format[key][0] : format[key][1];
}
var et = moment.defineLocale('et', {
months : 'jaanuar_veebruar_märts_aprill_mai_juuni_juuli_august_september_oktoober_november_detsember'.split('_'),
monthsShort : 'jaan_veebr_märts_apr_mai_juuni_juuli_aug_sept_okt_nov_dets'.split('_'),
weekdays : 'pühapäev_esmaspäev_teisipäev_kolmapäev_neljapäev_reede_laupäev'.split('_'),
weekdaysShort : 'P_E_T_K_N_R_L'.split('_'),
weekdaysMin : 'P_E_T_K_N_R_L'.split('_'),
longDateFormat : {
LT : 'H:mm',
LTS : 'H:mm:ss',
L : 'DD.MM.YYYY',
LL : 'D. MMMM YYYY',
LLL : 'D. MMMM YYYY H:mm',
LLLL : 'dddd, D. MMMM YYYY H:mm'
},
calendar : {
sameDay : '[Täna,] LT',
nextDay : '[Homme,] LT',
nextWeek : '[Järgmine] dddd LT',
lastDay : '[Eile,] LT',
lastWeek : '[Eelmine] dddd LT',
sameElse : 'L'
},
relativeTime : {
future : '%s pärast',
past : '%s tagasi',
s : processRelativeTime,
ss : processRelativeTime,
m : processRelativeTime,
mm : processRelativeTime,
h : processRelativeTime,
hh : processRelativeTime,
d : processRelativeTime,
dd : '%d päeva',
M : processRelativeTime,
MM : processRelativeTime,
y : processRelativeTime,
yy : processRelativeTime
},
dayOfMonthOrdinalParse: /\d{1,2}\./,
ordinal : '%d.',
week : {
dow : 1, // Monday is the first day of the week.
doy : 4 // The week that contains Jan 4th is the first week of the year.
}
});
return et;
})));
================================================
FILE: public/admin-panel/assets/libs/moment/locale/eu.js
================================================
//! moment.js locale configuration
;(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined'
&& typeof require === 'function' ? factory(require('../moment')) :
typeof define === 'function' && define.amd ? define(['../moment'], factory) :
factory(global.moment)
}(this, (function (moment) { 'use strict';
var eu = moment.defineLocale('eu', {
months : 'urtarrila_otsaila_martxoa_apirila_maiatza_ekaina_uztaila_abuztua_iraila_urria_azaroa_abendua'.split('_'),
monthsShort : 'urt._ots._mar._api._mai._eka._uzt._abu._ira._urr._aza._abe.'.split('_'),
monthsParseExact : true,
weekdays : 'igandea_astelehena_asteartea_asteazkena_osteguna_ostirala_larunbata'.split('_'),
weekdaysShort : 'ig._al._ar._az._og._ol._lr.'.split('_'),
weekdaysMin : 'ig_al_ar_az_og_ol_lr'.split('_'),
weekdaysParseExact : true,
longDateFormat : {
LT : 'HH:mm',
LTS : 'HH:mm:ss',
L : 'YYYY-MM-DD',
LL : 'YYYY[ko] MMMM[ren] D[a]',
LLL : 'YYYY[ko] MMMM[ren] D[a] HH:mm',
LLLL : 'dddd, YYYY[ko] MMMM[ren] D[a] HH:mm',
l : 'YYYY-M-D',
ll : 'YYYY[ko] MMM D[a]',
lll : 'YYYY[ko] MMM D[a] HH:mm',
llll : 'ddd, YYYY[ko] MMM D[a] HH:mm'
},
calendar : {
sameDay : '[gaur] LT[etan]',
nextDay : '[bihar] LT[etan]',
nextWeek : 'dddd LT[etan]',
lastDay : '[atzo] LT[etan]',
lastWeek : '[aurreko] dddd LT[etan]',
sameElse : 'L'
},
relativeTime : {
future : '%s barru',
past : 'duela %s',
s : 'segundo batzuk',
ss : '%d segundo',
m : 'minutu bat',
mm : '%d minutu',
h : 'ordu bat',
hh : '%d ordu',
d : 'egun bat',
dd : '%d egun',
M : 'hilabete bat',
MM : '%d hilabete',
y : 'urte bat',
yy : '%d urte'
},
dayOfMonthOrdinalParse: /\d{1,2}\./,
ordinal : '%d.',
week : {
dow : 1, // Monday is the first day of the week.
doy : 7 // The week that contains Jan 1st is the first week of the year.
}
});
return eu;
})));
================================================
FILE: public/admin-panel/assets/libs/moment/locale/fa.js
================================================
//! moment.js locale configuration
;(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined'
&& typeof require === 'function' ? factory(require('../moment')) :
typeof define === 'function' && define.amd ? define(['../moment'], factory) :
factory(global.moment)
}(this, (function (moment) { 'use strict';
var symbolMap = {
'1': '۱',
'2': '۲',
'3': '۳',
'4': '۴',
'5': '۵',
'6': '۶',
'7': '۷',
'8': '۸',
'9': '۹',
'0': '۰'
}, numberMap = {
'۱': '1',
'۲': '2',
'۳': '3',
'۴': '4',
'۵': '5',
'۶': '6',
'۷': '7',
'۸': '8',
'۹': '9',
'۰': '0'
};
var fa = moment.defineLocale('fa', {
months : 'ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر'.split('_'),
monthsShort : 'ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر'.split('_'),
weekdays : 'یک\u200cشنبه_دوشنبه_سه\u200cشنبه_چهارشنبه_پنج\u200cشنبه_جمعه_شنبه'.split('_'),
weekdaysShort : 'یک\u200cشنبه_دوشنبه_سه\u200cشنبه_چهارشنبه_پنج\u200cشنبه_جمعه_شنبه'.split('_'),
weekdaysMin : 'ی_د_س_چ_پ_ج_ش'.split('_'),
weekdaysParseExact : true,
longDateFormat : {
LT : 'HH:mm',
LTS : 'HH:mm:ss',
L : 'DD/MM/YYYY',
LL : 'D MMMM YYYY',
LLL : 'D MMMM YYYY HH:mm',
LLLL : 'dddd, D MMMM YYYY HH:mm'
},
meridiemParse: /قبل از ظهر|بعد از ظهر/,
isPM: function (input) {
return /بعد از ظهر/.test(input);
},
meridiem : function (hour, minute, isLower) {
if (hour < 12) {
return 'قبل از ظهر';
} else {
return 'بعد از ظهر';
}
},
calendar : {
sameDay : '[امروز ساعت] LT',
nextDay : '[فردا ساعت] LT',
nextWeek : 'dddd [ساعت] LT',
lastDay : '[دیروز ساعت] LT',
lastWeek : 'dddd [پیش] [ساعت] LT',
sameElse : 'L'
},
relativeTime : {
future : 'در %s',
past : '%s پیش',
s : 'چند ثانیه',
ss : 'ثانیه d%',
m : 'یک دقیقه',
mm : '%d دقیقه',
h : 'یک ساعت',
hh : '%d ساعت',
d : 'یک روز',
dd : '%d روز',
M : 'یک ماه',
MM : '%d ماه',
y : 'یک سال',
yy : '%d سال'
},
preparse: function (string) {
return string.replace(/[۰-۹]/g, function (match) {
return numberMap[match];
}).replace(/،/g, ',');
},
postformat: function (string) {
return string.replace(/\d/g, function (match) {
return symbolMap[match];
}).replace(/,/g, '،');
},
dayOfMonthOrdinalParse: /\d{1,2}م/,
ordinal : '%dم',
week : {
dow : 6, // Saturday is the first day of the week.
doy : 12 // The week that contains Jan 1st is the first week of the year.
}
});
return fa;
})));
================================================
FILE: public/admin-panel/assets/libs/moment/locale/fi.js
================================================
//! moment.js locale configuration
;(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined'
&& typeof require === 'function' ? factory(require('../moment')) :
typeof define === 'function' && define.amd ? define(['../moment'], factory) :
factory(global.moment)
}(this, (function (moment) { 'use strict';
var numbersPast = 'nolla yksi kaksi kolme neljä viisi kuusi seitsemän kahdeksan yhdeksän'.split(' '),
numbersFuture = [
'nolla', 'yhden', 'kahden', 'kolmen', 'neljän', 'viiden', 'kuuden',
numbersPast[7], numbersPast[8], numbersPast[9]
];
function translate(number, withoutSuffix, key, isFuture) {
var result = '';
switch (key) {
case 's':
return isFuture ? 'muutaman sekunnin' : 'muutama sekunti';
case 'ss':
return isFuture ? 'sekunnin' : 'sekuntia';
case 'm':
return isFuture ? 'minuutin' : 'minuutti';
case 'mm':
result = isFuture ? 'minuutin' : 'minuuttia';
break;
case 'h':
return isFuture ? 'tunnin' : 'tunti';
case 'hh':
result = isFuture ? 'tunnin' : 'tuntia';
break;
case 'd':
return isFuture ? 'päivän' : 'päivä';
case 'dd':
result = isFuture ? 'päivän' : 'päivää';
break;
case 'M':
return isFuture ? 'kuukauden' : 'kuukausi';
case 'MM':
result = isFuture ? 'kuukauden' : 'kuukautta';
break;
case 'y':
return isFuture ? 'vuoden' : 'vuosi';
case 'yy':
result = isFuture ? 'vuoden' : 'vuotta';
break;
}
result = verbalNumber(number, isFuture) + ' ' + result;
return result;
}
function verbalNumber(number, isFuture) {
return number < 10 ? (isFuture ? numbersFuture[number] : numbersPast[number]) : number;
}
var fi = moment.defineLocale('fi', {
months : 'tammikuu_helmikuu_maaliskuu_huhtikuu_toukokuu_kesäkuu_heinäkuu_elokuu_syyskuu_lokakuu_marraskuu_joulukuu'.split('_'),
monthsShort : 'tammi_helmi_maalis_huhti_touko_kesä_heinä_elo_syys_loka_marras_joulu'.split('_'),
weekdays : 'sunnuntai_maanantai_tiistai_keskiviikko_torstai_perjantai_lauantai'.split('_'),
weekdaysShort : 'su_ma_ti_ke_to_pe_la'.split('_'),
weekdaysMin : 'su_ma_ti_ke_to_pe_la'.split('_'),
longDateFormat : {
LT : 'HH.mm',
LTS : 'HH.mm.ss',
L : 'DD.MM.YYYY',
LL : 'Do MMMM[ta] YYYY',
LLL : 'Do MMMM[ta] YYYY, [klo] HH.mm',
LLLL : 'dddd, Do MMMM[ta] YYYY, [klo] HH.mm',
l : 'D.M.YYYY',
ll : 'Do MMM YYYY',
lll : 'Do MMM YYYY, [klo] HH.mm',
llll : 'ddd, Do MMM YYYY, [klo] HH.mm'
},
calendar : {
sameDay : '[tänään] [klo] LT',
nextDay : '[huomenna] [klo] LT',
nextWeek : 'dddd [klo] LT',
lastDay : '[eilen] [klo] LT',
lastWeek : '[viime] dddd[na] [klo] LT',
sameElse : 'L'
},
relativeTime : {
future : '%s päästä',
past : '%s sitten',
s : translate,
ss : translate,
m : translate,
mm : translate,
h : translate,
hh : translate,
d : translate,
dd : translate,
M : translate,
MM : translate,
y : translate,
yy : translate
},
dayOfMonthOrdinalParse: /\d{1,2}\./,
ordinal : '%d.',
week : {
dow : 1, // Monday is the first day of the week.
doy : 4 // The week that contains Jan 4th is the first week of the year.
}
});
return fi;
})));
================================================
FILE: public/admin-panel/assets/libs/moment/locale/fo.js
================================================
//! moment.js locale configuration
;(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined'
&& typeof require === 'function' ? factory(require('../moment')) :
typeof define === 'function' && define.amd ? define(['../moment'], factory) :
factory(global.moment)
}(this, (function (moment) { 'use strict';
var fo = moment.defineLocale('fo', {
months : 'januar_februar_mars_apríl_mai_juni_juli_august_september_oktober_november_desember'.split('_'),
monthsShort : 'jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_'),
weekdays : 'sunnudagur_mánadagur_týsdagur_mikudagur_hósdagur_fríggjadagur_leygardagur'.split('_'),
weekdaysShort : 'sun_mán_týs_mik_hós_frí_ley'.split('_'),
weekdaysMin : 'su_má_tý_mi_hó_fr_le'.split('_'),
longDateFormat : {
LT : 'HH:mm',
LTS : 'HH:mm:ss',
L : 'DD/MM/YYYY',
LL : 'D MMMM YYYY',
LLL : 'D MMMM YYYY HH:mm',
LLLL : 'dddd D. MMMM, YYYY HH:mm'
},
calendar : {
sameDay : '[Í dag kl.] LT',
nextDay : '[Í morgin kl.] LT',
nextWeek : 'dddd [kl.] LT',
lastDay : '[Í gjár kl.] LT',
lastWeek : '[síðstu] dddd [kl] LT',
sameElse : 'L'
},
relativeTime : {
future : 'um %s',
past : '%s síðani',
s : 'fá sekund',
ss : '%d sekundir',
m : 'ein minutt',
mm : '%d minuttir',
h : 'ein tími',
hh : '%d tímar',
d : 'ein dagur',
dd : '%d dagar',
M : 'ein mánaði',
MM : '%d mánaðir',
y : 'eitt ár',
yy : '%d ár'
},
dayOfMonthOrdinalParse: /\d{1,2}\./,
ordinal : '%d.',
week : {
dow : 1, // Monday is the first day of the week.
doy : 4 // The week that contains Jan 4th is the first week of the year.
}
});
return fo;
})));
================================================
FILE: public/admin-panel/assets/libs/moment/locale/fr-ca.js
================================================
//! moment.js locale configuration
;(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined'
&& typeof require === 'function' ? factory(require('../moment')) :
typeof define === 'function' && define.amd ? define(['../moment'], factory) :
factory(global.moment)
}(this, (function (moment) { 'use strict';
var frCa = moment.defineLocale('fr-ca', {
months : 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split('_'),
monthsShort : 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split('_'),
monthsParseExact : true,
weekdays : 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),
weekdaysShort : 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),
weekdaysMin : 'di_lu_ma_me_je_ve_sa'.split('_'),
weekdaysParseExact : true,
longDateFormat : {
LT : 'HH:mm',
LTS : 'HH:mm:ss',
L : 'YYYY-MM-DD',
LL : 'D MMMM YYYY',
LLL : 'D MMMM YYYY HH:mm',
LLLL : 'dddd D MMMM YYYY HH:mm'
},
calendar : {
sameDay : '[Aujourd’hui à] LT',
nextDay : '[Demain à] LT',
nextWeek : 'dddd [à] LT',
lastDay : '[Hier à] LT',
lastWeek : 'dddd [dernier à] LT',
sameElse : 'L'
},
relativeTime : {
future : 'dans %s',
past : 'il y a %s',
s : 'quelques secondes',
ss : '%d secondes',
m : 'une minute',
mm : '%d minutes',
h : 'une heure',
hh : '%d heures',
d : 'un jour',
dd : '%d jours',
M : 'un mois',
MM : '%d mois',
y : 'un an',
yy : '%d ans'
},
dayOfMonthOrdinalParse: /\d{1,2}(er|e)/,
ordinal : function (number, period) {
switch (period) {
// Words with masculine grammatical gender: mois, trimestre, jour
default:
case 'M':
case 'Q':
case 'D':
case 'DDD':
case 'd':
return number + (number === 1 ? 'er' : 'e');
// Words with feminine grammatical gender: semaine
case 'w':
case 'W':
return number + (number === 1 ? 're' : 'e');
}
}
});
return frCa;
})));
================================================
FILE: public/admin-panel/assets/libs/moment/locale/fr-ch.js
================================================
//! moment.js locale configuration
;(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined'
&& typeof require === 'function' ? factory(require('../moment')) :
typeof define === 'function' && define.amd ? define(['../moment'], factory) :
factory(global.moment)
}(this, (function (moment) { 'use strict';
var frCh = moment.defineLocale('fr-ch', {
months : 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split('_'),
monthsShort : 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split('_'),
monthsParseExact : true,
weekdays : 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),
weekdaysShort : 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),
weekdaysMin : 'di_lu_ma_me_je_ve_sa'.split('_'),
weekdaysParseExact : true,
longDateFormat : {
LT : 'HH:mm',
LTS : 'HH:mm:ss',
L : 'DD.MM.YYYY',
LL : 'D MMMM YYYY',
LLL : 'D MMMM YYYY HH:mm',
LLLL : 'dddd D MMMM YYYY HH:mm'
},
calendar : {
sameDay : '[Aujourd’hui à] LT',
nextDay : '[Demain à] LT',
nextWeek : 'dddd [à] LT',
lastDay : '[Hier à] LT',
lastWeek : 'dddd [dernier à] LT',
sameElse : 'L'
},
relativeTime : {
future : 'dans %s',
past : 'il y a %s',
s : 'quelques secondes',
ss : '%d secondes',
m : 'une minute',
mm : '%d minutes',
h : 'une heure',
hh : '%d heures',
d : 'un jour',
dd : '%d jours',
M : 'un mois',
MM : '%d mois',
y : 'un an',
yy : '%d ans'
},
dayOfMonthOrdinalParse: /\d{1,2}(er|e)/,
ordinal : function (number, period) {
switch (period) {
// Words with masculine grammatical gender: mois, trimestre, jour
default:
case 'M':
case 'Q':
case 'D':
case 'DDD':
case 'd':
return number + (number === 1 ? 'er' : 'e');
// Words with feminine grammatical gender: semaine
case 'w':
case 'W':
return number + (number === 1 ? 're' : 'e');
}
},
week : {
dow : 1, // Monday is the first day of the week.
doy : 4 // The week that contains Jan 4th is the first week of the year.
}
});
return frCh;
})));
================================================
FILE: public/admin-panel/assets/libs/moment/locale/fr.js
================================================
//! moment.js locale configuration
;(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined'
&& typeof require === 'function' ? factory(require('../moment')) :
typeof define === 'function' && define.amd ? define(['../moment'], factory) :
factory(global.moment)
}(this, (function (moment) { 'use strict';
var fr = moment.defineLocale('fr', {
months : 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split('_'),
monthsShort : 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split('_'),
monthsParseExact : true,
weekdays : 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),
weekdaysShort : 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),
weekdaysMin : 'di_lu_ma_me_je_ve_sa'.split('_'),
weekdaysParseExact : true,
longDateFormat : {
LT : 'HH:mm',
LTS : 'HH:mm:ss',
L : 'DD/MM/YYYY',
LL : 'D MMMM YYYY',
LLL : 'D MMMM YYYY HH:mm',
LLLL : 'dddd D MMMM YYYY HH:mm'
},
calendar : {
sameDay : '[Aujourd’hui à] LT',
nextDay : '[Demain à] LT',
nextWeek : 'dddd [à] LT',
lastDay : '[Hier à] LT',
lastWeek : 'dddd [dernier à] LT',
sameElse : 'L'
},
relativeTime : {
future : 'dans %s',
past : 'il y a %s',
s : 'quelques secondes',
ss : '%d secondes',
m : 'une minute',
mm : '%d minutes',
h : 'une heure',
hh : '%d heures',
d : 'un jour',
dd : '%d jours',
M : 'un mois',
MM : '%d mois',
y : 'un an',
yy : '%d ans'
},
dayOfMonthOrdinalParse: /\d{1,2}(er|)/,
ordinal : function (number, period) {
switch (period) {
// TODO: Return 'e' when day of month > 1. Move this case inside
// block for masculine words below.
// See https://github.com/moment/moment/issues/3375
case 'D':
return number + (number === 1 ? 'er' : '');
// Words with masculine grammatical gender: mois, trimestre, jour
default:
case 'M':
case 'Q':
case 'DDD':
case 'd':
return number + (number === 1 ? 'er' : 'e');
// Words with feminine grammatical gender: semaine
case 'w':
case 'W':
return number + (number === 1 ? 're' : 'e');
}
},
week : {
dow : 1, // Monday is the first day of the week.
doy : 4 // The week that contains Jan 4th is the first week of the year.
}
});
return fr;
})));
================================================
FILE: public/admin-panel/assets/libs/moment/locale/fy.js
================================================
//! moment.js locale configuration
;(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined'
&& typeof require === 'function' ? factory(require('../moment')) :
typeof define === 'function' && define.amd ? define(['../moment'], factory) :
factory(global.moment)
}(this, (function (moment) { 'use strict';
var monthsShortWithDots = 'jan._feb._mrt._apr._mai_jun._jul._aug._sep._okt._nov._des.'.split('_'),
monthsShortWithoutDots = 'jan_feb_mrt_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_');
var fy = moment.defineLocale('fy', {
months : 'jannewaris_febrewaris_maart_april_maaie_juny_july_augustus_septimber_oktober_novimber_desimber'.split('_'),
monthsShort : function (m, format) {
if (!m) {
return monthsShortWithDots;
} else if (/-MMM-/.test(format)) {
return monthsShortWithoutDots[m.month()];
} else {
return monthsShortWithDots[m.month()];
}
},
monthsParseExact : true,
weekdays : 'snein_moandei_tiisdei_woansdei_tongersdei_freed_sneon'.split('_'),
weekdaysShort : 'si._mo._ti._wo._to._fr._so.'.split('_'),
weekdaysMin : 'Si_Mo_Ti_Wo_To_Fr_So'.split('_'),
weekdaysParseExact : true,
longDateFormat : {
LT : 'HH:mm',
LTS : 'HH:mm:ss',
L : 'DD-MM-YYYY',
LL : 'D MMMM YYYY',
LLL : 'D MMMM YYYY HH:mm',
LLLL : 'dddd D MMMM YYYY HH:mm'
},
calendar : {
sameDay: '[hjoed om] LT',
nextDay: '[moarn om] LT',
nextWeek: 'dddd [om] LT',
lastDay: '[juster om] LT',
lastWeek: '[ôfrûne] dddd [om] LT',
sameElse: 'L'
},
relativeTime : {
future : 'oer %s',
past : '%s lyn',
s : 'in pear sekonden',
ss : '%d sekonden',
m : 'ien minút',
mm : '%d minuten',
h : 'ien oere',
hh : '%d oeren',
d : 'ien dei',
dd : '%d dagen',
M : 'ien moanne',
MM : '%d moannen',
y : 'ien jier',
yy : '%d jierren'
},
dayOfMonthOrdinalParse: /\d{1,2}(ste|de)/,
ordinal : function (number) {
return number + ((number === 1 || number === 8 || number >= 20) ? 'ste' : 'de');
},
week : {
dow : 1, // Monday is the first day of the week.
doy : 4 // The week that contains Jan 4th is the first week of the year.
}
});
return fy;
})));
================================================
FILE: public/admin-panel/assets/libs/moment/locale/gd.js
================================================
//! moment.js locale configuration
;(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined'
&& typeof require === 'function' ? factory(require('../moment')) :
typeof define === 'function' && define.amd ? define(['../moment'], factory) :
factory(global.moment)
}(this, (function (moment) { 'use strict';
var months = [
'Am Faoilleach', 'An Gearran', 'Am Màrt', 'An Giblean', 'An Cèitean', 'An t-Ògmhios', 'An t-Iuchar', 'An Lùnastal', 'An t-Sultain', 'An Dàmhair', 'An t-Samhain', 'An Dùbhlachd'
];
var monthsShort = ['Faoi', 'Gear', 'Màrt', 'Gibl', 'Cèit', 'Ògmh', 'Iuch', 'Lùn', 'Sult', 'Dàmh', 'Samh', 'Dùbh'];
var weekdays = ['Didòmhnaich', 'Diluain', 'Dimàirt', 'Diciadain', 'Diardaoin', 'Dihaoine', 'Disathairne'];
var weekdaysShort = ['Did', 'Dil', 'Dim', 'Dic', 'Dia', 'Dih', 'Dis'];
var weekdaysMin = ['Dò', 'Lu', 'Mà', 'Ci', 'Ar', 'Ha', 'Sa'];
var gd = moment.defineLocale('gd', {
months : months,
monthsShort : monthsShort,
monthsParseExact : true,
weekdays : weekdays,
weekdaysShort : weekdaysShort,
weekdaysMin : weekdaysMin,
longDateFormat : {
LT : 'HH:mm',
LTS : 'HH:mm:ss',
L : 'DD/MM/YYYY',
LL : 'D MMMM YYYY',
LLL : 'D MMMM YYYY HH:mm',
LLLL : 'dddd, D MMMM YYYY HH:mm'
},
calendar : {
sameDay : '[An-diugh aig] LT',
nextDay : '[A-màireach aig] LT',
nextWeek : 'dddd [aig] LT',
lastDay : '[An-dè aig] LT',
lastWeek : 'dddd [seo chaidh] [aig] LT',
sameElse : 'L'
},
relativeTime : {
future : 'ann an %s',
past : 'bho chionn %s',
s : 'beagan diogan',
ss : '%d diogan',
m : 'mionaid',
mm : '%d mionaidean',
h : 'uair',
hh : '%d uairean',
d : 'latha',
dd : '%d latha',
M : 'mìos',
MM : '%d mìosan',
y : 'bliadhna',
yy : '%d bliadhna'
},
dayOfMonthOrdinalParse : /\d{1,2}(d|na|mh)/,
ordinal : function (number) {
var output = number === 1 ? 'd' : number % 10 === 2 ? 'na' : 'mh';
return number + output;
},
week : {
dow : 1, // Monday is the first day of the week.
doy : 4 // The week that contains Jan 4th is the first week of the year.
}
});
return gd;
})));
================================================
FILE: public/admin-panel/assets/libs/moment/locale/gl.js
================================================
//! moment.js locale configuration
;(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined'
&& typeof require === 'function' ? factory(require('../moment')) :
typeof define === 'function' && define.amd ? define(['../moment'], factory) :
factory(global.moment)
}(this, (function (moment) { 'use strict';
var gl = moment.defineLocale('gl', {
months : 'xaneiro_febreiro_marzo_abril_maio_xuño_xullo_agosto_setembro_outubro_novembro_decembro'.split('_'),
monthsShort : 'xan._feb._mar._abr._mai._xuñ._xul._ago._set._out._nov._dec.'.split('_'),
monthsParseExact: true,
weekdays : 'domingo_luns_martes_mércores_xoves_venres_sábado'.split('_'),
weekdaysShort : 'dom._lun._mar._mér._xov._ven._sáb.'.split('_'),
weekdaysMin : 'do_lu_ma_mé_xo_ve_sá'.split('_'),
weekdaysParseExact : true,
longDateFormat : {
LT : 'H:mm',
LTS : 'H:mm:ss',
L : 'DD/MM/YYYY',
LL : 'D [de] MMMM [de] YYYY',
LLL : 'D [de] MMMM [de] YYYY H:mm',
LLLL : 'dddd, D [de] MMMM [de] YYYY H:mm'
},
calendar : {
sameDay : function () {
return '[hoxe ' + ((this.hours() !== 1) ? 'ás' : 'á') + '] LT';
},
nextDay : function () {
return '[mañá ' + ((this.hours() !== 1) ? 'ás' : 'á') + '] LT';
},
nextWeek : function () {
return 'dddd [' + ((this.hours() !== 1) ? 'ás' : 'a') + '] LT';
},
lastDay : function () {
return '[onte ' + ((this.hours() !== 1) ? 'á' : 'a') + '] LT';
},
lastWeek : function () {
return '[o] dddd [pasado ' + ((this.hours() !== 1) ? 'ás' : 'a') + '] LT';
},
sameElse : 'L'
},
relativeTime : {
future : function (str) {
if (str.indexOf('un') === 0) {
return 'n' + str;
}
return 'en ' + str;
},
past : 'hai %s',
s : 'uns segundos',
ss : '%d segundos',
m : 'un minuto',
mm : '%d minutos',
h : 'unha hora',
hh : '%d horas',
d : 'un día',
dd : '%d días',
M : 'un mes',
MM : '%d meses',
y : 'un ano',
yy : '%d anos'
},
dayOfMonthOrdinalParse : /\d{1,2}º/,
ordinal : '%dº',
week : {
dow : 1, // Monday is the first day of the week.
doy : 4 // The week that contains Jan 4th is the first week of the year.
}
});
return gl;
})));
================================================
FILE: public/admin-panel/assets/libs/moment/locale/gom-latn.js
================================================
//! moment.js locale configuration
;(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined'
&& typeof require === 'function' ? factory(require('../moment')) :
typeof define === 'function' && define.amd ? define(['../moment'], factory) :
factory(global.moment)
}(this, (function (moment) { 'use strict';
function processRelativeTime(number, withoutSuffix, key, isFuture) {
var format = {
's': ['thodde secondanim', 'thodde second'],
'ss': [number + ' secondanim', number + ' second'],
'm': ['eka mintan', 'ek minute'],
'mm': [number + ' mintanim', number + ' mintam'],
'h': ['eka horan', 'ek hor'],
'hh': [number + ' horanim', number + ' horam'],
'd': ['eka disan', 'ek dis'],
'dd': [number + ' disanim', number + ' dis'],
'M': ['eka mhoinean', 'ek mhoino'],
'MM': [number + ' mhoineanim', number + ' mhoine'],
'y': ['eka vorsan', 'ek voros'],
'yy': [number + ' vorsanim', number + ' vorsam']
};
return withoutSuffix ? format[key][0] : format[key][1];
}
var gomLatn = moment.defineLocale('gom-latn', {
months : 'Janer_Febrer_Mars_Abril_Mai_Jun_Julai_Agost_Setembr_Otubr_Novembr_Dezembr'.split('_'),
monthsShort : 'Jan._Feb._Mars_Abr._Mai_Jun_Jul._Ago._Set._Otu._Nov._Dez.'.split('_'),
monthsParseExact : true,
weekdays : 'Aitar_Somar_Mongllar_Budvar_Brestar_Sukrar_Son\'var'.split('_'),
weekdaysShort : 'Ait._Som._Mon._Bud._Bre._Suk._Son.'.split('_'),
weekdaysMin : 'Ai_Sm_Mo_Bu_Br_Su_Sn'.split('_'),
weekdaysParseExact : true,
longDateFormat : {
LT : 'A h:mm [vazta]',
LTS : 'A h:mm:ss [vazta]',
L : 'DD-MM-YYYY',
LL : 'D MMMM YYYY',
LLL : 'D MMMM YYYY A h:mm [vazta]',
LLLL : 'dddd, MMMM[achea] Do, YYYY, A h:mm [vazta]',
llll: 'ddd, D MMM YYYY, A h:mm [vazta]'
},
calendar : {
sameDay: '[Aiz] LT',
nextDay: '[Faleam] LT',
nextWeek: '[Ieta to] dddd[,] LT',
lastDay: '[Kal] LT',
lastWeek: '[Fatlo] dddd[,] LT',
sameElse: 'L'
},
relativeTime : {
future : '%s',
past : '%s adim',
s : processRelativeTime,
ss : processRelativeTime,
m : processRelativeTime,
mm : processRelativeTime,
h : processRelativeTime,
hh : processRelativeTime,
d : processRelativeTime,
dd : processRelativeTime,
M : processRelativeTime,
MM : processRelativeTime,
y : processRelativeTime,
yy : processRelativeTime
},
dayOfMonthOrdinalParse : /\d{1,2}(er)/,
ordinal : function (number, period) {
switch (period) {
// the ordinal 'er' only applies to day of the month
case 'D':
return number + 'er';
default:
case 'M':
case 'Q':
case 'DDD':
case 'd':
case 'w':
case 'W':
return number;
}
},
week : {
dow : 1, // Monday is the first day of the week.
doy : 4 // The week that contains Jan 4th is the first week of the year.
},
meridiemParse: /rati|sokalli|donparam|sanje/,
meridiemHour : function (hour, meridiem) {
if (hour === 12) {
hour = 0;
}
if (meridiem === 'rati') {
return hour < 4 ? hour : hour + 12;
} else if (meridiem === 'sokalli') {
return hour;
} else if (meridiem === 'donparam') {
return hour > 12 ? hour : hour + 12;
} else if (meridiem === 'sanje') {
return hour + 12;
}
},
meridiem : function (hour, minute, isLower) {
if (hour < 4) {
return 'rati';
} else if (hour < 12) {
return 'sokalli';
} else if (hour < 16) {
return 'donparam';
} else if (hour < 20) {
return 'sanje';
} else {
return 'rati';
}
}
});
return gomLatn;
})));
================================================
FILE: public/admin-panel/assets/libs/moment/locale/gu.js
================================================
//! moment.js locale configuration
;(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined'
&& typeof require === 'function' ? factory(require('../moment')) :
typeof define === 'function' && define.amd ? define(['../moment'], factory) :
factory(global.moment)
}(this, (function (moment) { 'use strict';
var symbolMap = {
'1': '૧',
'2': '૨',
'3': '૩',
'4': '૪',
'5': '૫',
'6': '૬',
'7': '૭',
'8': '૮',
'9': '૯',
'0': '૦'
},
numberMap = {
'૧': '1',
'૨': '2',
'૩': '3',
'૪': '4',
'૫': '5',
'૬': '6',
'૭': '7',
'૮': '8',
'૯': '9',
'૦': '0'
};
var gu = moment.defineLocale('gu', {
months: 'જાન્યુઆરી_ફેબ્રુઆરી_માર્ચ_એપ્રિલ_મે_જૂન_જુલાઈ_ઑગસ્ટ_સપ્ટેમ્બર_ઑક્ટ્બર_નવેમ્બર_ડિસેમ્બર'.split('_'),
monthsShort: 'જાન્યુ._ફેબ્રુ._માર્ચ_એપ્રિ._મે_જૂન_જુલા._ઑગ._સપ્ટે._ઑક્ટ્._નવે._ડિસે.'.split('_'),
monthsParseExact: true,
weekdays: 'રવિવાર_સોમવાર_મંગળવાર_બુધ્વાર_ગુરુવાર_શુક્રવાર_શનિવાર'.split('_'),
weekdaysShort: 'રવિ_સોમ_મંગળ_બુધ્_ગુરુ_શુક્ર_શનિ'.split('_'),
weekdaysMin: 'ર_સો_મં_બુ_ગુ_શુ_શ'.split('_'),
longDateFormat: {
LT: 'A h:mm વાગ્યે',
LTS: 'A h:mm:ss વાગ્યે',
L: 'DD/MM/YYYY',
LL: 'D MMMM YYYY',
LLL: 'D MMMM YYYY, A h:mm વાગ્યે',
LLLL: 'dddd, D MMMM YYYY, A h:mm વાગ્યે'
},
calendar: {
sameDay: '[આજ] LT',
nextDay: '[કાલે] LT',
nextWeek: 'dddd, LT',
lastDay: '[ગઇકાલે] LT',
lastWeek: '[પાછલા] dddd, LT',
sameElse: 'L'
},
relativeTime: {
future: '%s મા',
past: '%s પેહલા',
s: 'અમુક પળો',
ss: '%d સેકંડ',
m: 'એક મિનિટ',
mm: '%d મિનિટ',
h: 'એક કલાક',
hh: '%d કલાક',
d: 'એક દિવસ',
dd: '%d દિવસ',
M: 'એક મહિનો',
MM: '%d મહિનો',
y: 'એક વર્ષ',
yy: '%d વર્ષ'
},
preparse: function (string) {
return string.replace(/[૧૨૩૪૫૬૭૮૯૦]/g, function (match) {
return numberMap[match];
});
},
postformat: function (string) {
return string.replace(/\d/g, function (match) {
return symbolMap[match];
});
},
// Gujarati notation for meridiems are quite fuzzy in practice. While there exists
// a rigid notion of a 'Pahar' it is not used as rigidly in modern Gujarati.
meridiemParse: /રાત|બપોર|સવાર|સાંજ/,
meridiemHour: function (hour, meridiem) {
if (hour === 12) {
hour = 0;
}
if (meridiem === 'રાત') {
return hour < 4 ? hour : hour + 12;
} else if (meridiem === 'સવાર') {
return hour;
} else if (meridiem === 'બપોર') {
return hour >= 10 ? hour : hour + 12;
} else if (meridiem === 'સાંજ') {
return hour + 12;
}
},
meridiem: function (hour, minute, isLower) {
if (hour < 4) {
return 'રાત';
} else if (hour < 10) {
return 'સવાર';
} else if (hour < 17) {
return 'બપોર';
} else if (hour < 20) {
return 'સાંજ';
} else {
return 'રાત';
}
},
week: {
dow: 0, // Sunday is the first day of the week.
doy: 6 // The week that contains Jan 1st is the first week of the year.
}
});
return gu;
})));
================================================
FILE: public/admin-panel/assets/libs/moment/locale/he.js
================================================
//! moment.js locale configuration
;(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined'
&& typeof require === 'function' ? factory(require('../moment')) :
typeof define === 'function' && define.amd ? define(['../moment'], factory) :
factory(global.moment)
}(this, (function (moment) { 'use strict';
var he = moment.defineLocale('he', {
months : 'ינואר_פברואר_מרץ_אפריל_מאי_יוני_יולי_אוגוסט_ספטמבר_אוקטובר_נובמבר_דצמבר'.split('_'),
monthsShort : 'ינו׳_פבר׳_מרץ_אפר׳_מאי_יוני_יולי_אוג׳_ספט׳_אוק׳_נוב׳_דצמ׳'.split('_'),
weekdays : 'ראשון_שני_שלישי_רביעי_חמישי_שישי_שבת'.split('_'),
weekdaysShort : 'א׳_ב׳_ג׳_ד׳_ה׳_ו׳_ש׳'.split('_'),
weekdaysMin : 'א_ב_ג_ד_ה_ו_ש'.split('_'),
longDateFormat : {
LT : 'HH:mm',
LTS : 'HH:mm:ss',
L : 'DD/MM/YYYY',
LL : 'D [ב]MMMM YYYY',
LLL : 'D [ב]MMMM YYYY HH:mm',
LLLL : 'dddd, D [ב]MMMM YYYY HH:mm',
l : 'D/M/YYYY',
ll : 'D MMM YYYY',
lll : 'D MMM YYYY HH:mm',
llll : 'ddd, D MMM YYYY HH:mm'
},
calendar : {
sameDay : '[היום ב־]LT',
nextDay : '[מחר ב־]LT',
nextWeek : 'dddd [בשעה] LT',
lastDay : '[אתמול ב־]LT',
lastWeek : '[ביום] dddd [האחרון בשעה] LT',
sameElse : 'L'
},
relativeTime : {
future : 'בעוד %s',
past : 'לפני %s',
s : 'מספר שניות',
ss : '%d שניות',
m : 'דקה',
mm : '%d דקות',
h : 'שעה',
hh : function (number) {
if (number === 2) {
return 'שעתיים';
}
return number + ' שעות';
},
d : 'יום',
dd : function (number) {
if (number === 2) {
return 'יומיים';
}
return number + ' ימים';
},
M : 'חודש',
MM : function (number) {
if (number === 2) {
return 'חודשיים';
}
return number + ' חודשים';
},
y : 'שנה',
yy : function (number) {
if (number === 2) {
return 'שנתיים';
} else if (number % 10 === 0 && number !== 10) {
return number + ' שנה';
}
return number + ' שנים';
}
},
meridiemParse: /אחה"צ|לפנה"צ|אחרי הצהריים|לפני הצהריים|לפנות בוקר|בבוקר|בערב/i,
isPM : function (input) {
return /^(אחה"צ|אחרי הצהריים|בערב)$/.test(input);
},
meridiem : function (hour, minute, isLower) {
if (hour < 5) {
return 'לפנות בוקר';
} else if (hour < 10) {
return 'בבוקר';
} else if (hour < 12) {
return isLower ? 'לפנה"צ' : 'לפני הצהריים';
} else if (hour < 18) {
return isLower ? 'אחה"צ' : 'אחרי הצהריים';
} else {
return 'בערב';
}
}
});
return he;
})));
================================================
FILE: public/admin-panel/assets/libs/moment/locale/hi.js
================================================
//! moment.js locale configuration
;(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined'
&& typeof require === 'function' ? factory(require('../moment')) :
typeof define === 'function' && define.amd ? define(['../moment'], factory) :
factory(global.moment)
}(this, (function (moment) { 'use strict';
var symbolMap = {
'1': '१',
'2': '२',
'3': '३',
'4': '४',
'5': '५',
'6': '६',
'7': '७',
'8': '८',
'9': '९',
'0': '०'
},
numberMap = {
'१': '1',
'२': '2',
'३': '3',
'४': '4',
'५': '5',
'६': '6',
'७': '7',
'८': '8',
'९': '9',
'०': '0'
};
var hi = moment.defineLocale('hi', {
months : 'जनवरी_फ़रवरी_मार्च_अप्रैल_मई_जून_जुलाई_अगस्त_सितम्बर_अक्टूबर_नवम्बर_दिसम्बर'.split('_'),
monthsShort : 'जन._फ़र._मार्च_अप्रै._मई_जून_जुल._अग._सित._अक्टू._नव._दिस.'.split('_'),
monthsParseExact: true,
weekdays : 'रविवार_सोमवार_मंगलवार_बुधवार_गुरूवार_शुक्रवार_शनिवार'.split('_'),
weekdaysShort : 'रवि_सोम_मंगल_बुध_गुरू_शुक्र_शनि'.split('_'),
weekdaysMin : 'र_सो_मं_बु_गु_शु_श'.split('_'),
longDateFormat : {
LT : 'A h:mm बजे',
LTS : 'A h:mm:ss बजे',
L : 'DD/MM/YYYY',
LL : 'D MMMM YYYY',
LLL : 'D MMMM YYYY, A h:mm बजे',
LLLL : 'dddd, D MMMM YYYY, A h:mm बजे'
},
calendar : {
sameDay : '[आज] LT',
nextDay : '[कल] LT',
nextWeek : 'dddd, LT',
lastDay : '[कल] LT',
lastWeek : '[पिछले] dddd, LT',
sameElse : 'L'
},
relativeTime : {
future : '%s में',
past : '%s पहले',
s : 'कुछ ही क्षण',
ss : '%d सेकंड',
m : 'एक मिनट',
mm : '%d मिनट',
h : 'एक घंटा',
hh : '%d घंटे',
d : 'एक दिन',
dd : '%d दिन',
M : 'एक महीने',
MM : '%d महीने',
y : 'एक वर्ष',
yy : '%d वर्ष'
},
preparse: function (string) {
return string.replace(/[१२३४५६७८९०]/g, function (match) {
return numberMap[match];
});
},
postformat: function (string) {
return string.replace(/\d/g, function (match) {
return symbolMap[match];
});
},
// Hindi notation for meridiems are quite fuzzy in practice. While there exists
// a rigid notion of a 'Pahar' it is not used as rigidly in modern Hindi.
meridiemParse: /रात|सुबह|दोपहर|शाम/,
meridiemHour : function (hour, meridiem) {
if (hour === 12) {
hour = 0;
}
if (meridiem === 'रात') {
return hour < 4 ? hour : hour + 12;
} else if (meridiem === 'सुबह') {
return hour;
} else if (meridiem === 'दोपहर') {
return hour >= 10 ? hour : hour + 12;
} else if (meridiem === 'शाम') {
return hour + 12;
}
},
meridiem : function (hour, minute, isLower) {
if (hour < 4) {
return 'रात';
} else if (hour < 10) {
return 'सुबह';
} else if (hour < 17) {
return 'दोपहर';
} else if (hour < 20) {
return 'शाम';
} else {
return 'रात';
}
},
week : {
dow : 0, // Sunday is the first day of the week.
doy : 6 // The week that contains Jan 1st is the first week of the year.
}
});
return hi;
})));
================================================
FILE: public/admin-panel/assets/libs/moment/locale/hr.js
================================================
//! moment.js locale configuration
;(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined'
&& typeof require === 'function' ? factory(require('../moment')) :
typeof define === 'function' && define.amd ? define(['../moment'], factory) :
factory(global.moment)
}(this, (function (moment) { 'use strict';
function translate(number, withoutSuffix, key) {
var result = number + ' ';
switch (key) {
case 'ss':
if (number === 1) {
result += 'sekunda';
} else if (number === 2 || number === 3 || number === 4) {
result += 'sekunde';
} else {
result += 'sekundi';
}
return result;
case 'm':
return withoutSuffix ? 'jedna minuta' : 'jedne minute';
case 'mm':
if (number === 1) {
result += 'minuta';
} else if (number === 2 || number === 3 || number === 4) {
result += 'minute';
} else {
result += 'minuta';
}
return result;
case 'h':
return withoutSuffix ? 'jedan sat' : 'jednog sata';
case 'hh':
if (number === 1) {
result += 'sat';
} else if (number === 2 || number === 3 || number === 4) {
result += 'sata';
} else {
result += 'sati';
}
return result;
case 'dd':
if (number === 1) {
result += 'dan';
} else {
result += 'dana';
}
return result;
case 'MM':
if (number === 1) {
result += 'mjesec';
} else if (number === 2 || number === 3 || number === 4) {
result += 'mjeseca';
} else {
result += 'mjeseci';
}
return result;
case 'yy':
if (number === 1) {
result += 'godina';
} else if (number === 2 || number === 3 || number === 4) {
result += 'godine';
} else {
result += 'godina';
}
return result;
}
}
var hr = moment.defineLocale('hr', {
months : {
format: 'siječnja_veljače_ožujka_travnja_svibnja_lipnja_srpnja_kolovoza_rujna_listopada_studenoga_prosinca'.split('_'),
standalone: 'siječanj_veljača_ožujak_travanj_svibanj_lipanj_srpanj_kolovoz_rujan_listopad_studeni_prosinac'.split('_')
},
monthsShort : 'sij._velj._ožu._tra._svi._lip._srp._kol._ruj._lis._stu._pro.'.split('_'),
monthsParseExact: true,
weekdays : 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split('_'),
weekdaysShort : 'ned._pon._uto._sri._čet._pet._sub.'.split('_'),
weekdaysMin : 'ne_po_ut_sr_če_pe_su'.split('_'),
weekdaysParseExact : true,
longDateFormat : {
LT : 'H:mm',
LTS : 'H:mm:ss',
L : 'DD.MM.YYYY',
LL : 'D. MMMM YYYY',
LLL : 'D. MMMM YYYY H:mm',
LLLL : 'dddd, D. MMMM YYYY H:mm'
},
calendar : {
sameDay : '[danas u] LT',
nextDay : '[sutra u] LT',
nextWeek : function () {
switch (this.day()) {
case 0:
return '[u] [nedjelju] [u] LT';
case 3:
return '[u] [srijedu] [u] LT';
case 6:
return '[u] [subotu] [u] LT';
case 1:
case 2:
case 4:
case 5:
return '[u] dddd [u] LT';
}
},
lastDay : '[jučer u] LT',
lastWeek : function () {
switch (this.day()) {
case 0:
case 3:
return '[prošlu] dddd [u] LT';
case 6:
return '[prošle] [subote] [u] LT';
case 1:
case 2:
case 4:
case 5:
return '[prošli] dddd [u] LT';
}
},
sameElse : 'L'
},
relativeTime : {
future : 'za %s',
past : 'prije %s',
s : 'par sekundi',
ss : translate,
m : translate,
mm : translate,
h : translate,
hh : translate,
d : 'dan',
dd : translate,
M : 'mjesec',
MM : translate,
y : 'godinu',
yy : translate
},
dayOfMonthOrdinalParse: /\d{1,2}\./,
ordinal : '%d.',
week : {
dow : 1, // Monday is the first day of the week.
doy : 7 // The week that contains Jan 1st is the first week of the year.
}
});
return hr;
})));
================================================
FILE: public/admin-panel/assets/libs/moment/locale/hu.js
================================================
//! moment.js locale configuration
;(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined'
&& typeof require === 'function' ? factory(require('../moment')) :
typeof define === 'function' && define.amd ? define(['../moment'], factory) :
factory(global.moment)
}(this, (function (moment) { 'use strict';
var weekEndings = 'vasárnap hétfőn kedden szerdán csütörtökön pénteken szombaton'.split(' ');
function translate(number, withoutSuffix, key, isFuture) {
var num = number;
switch (key) {
case 's':
return (isFuture || withoutSuffix) ? 'néhány másodperc' : 'néhány másodperce';
case 'ss':
return num + (isFuture || withoutSuffix) ? ' másodperc' : ' másodperce';
case 'm':
return 'egy' + (isFuture || withoutSuffix ? ' perc' : ' perce');
case 'mm':
return num + (isFuture || withoutSuffix ? ' perc' : ' perce');
case 'h':
return 'egy' + (isFuture || withoutSuffix ? ' óra' : ' órája');
case 'hh':
return num + (isFuture || withoutSuffix ? ' óra' : ' órája');
case 'd':
return 'egy' + (isFuture || withoutSuffix ? ' nap' : ' napja');
case 'dd':
return num + (isFuture || withoutSuffix ? ' nap' : ' napja');
case 'M':
return 'egy' + (isFuture || withoutSuffix ? ' hónap' : ' hónapja');
case 'MM':
return num + (isFuture || withoutSuffix ? ' hónap' : ' hónapja');
case 'y':
return 'egy' + (isFuture || withoutSuffix ? ' év' : ' éve');
case 'yy':
return num + (isFuture || withoutSuffix ? ' év' : ' éve');
}
return '';
}
function week(isFuture) {
return (isFuture ? '' : '[múlt] ') + '[' + weekEndings[this.day()] + '] LT[-kor]';
}
var hu = moment.defineLocale('hu', {
months : 'január_február_március_április_május_június_július_augusztus_szeptember_október_november_december'.split('_'),
monthsShort : 'jan_feb_márc_ápr_máj_jún_júl_aug_szept_okt_nov_dec'.split('_'),
weekdays : 'vasárnap_hétfő_kedd_szerda_csütörtök_péntek_szombat'.split('_'),
weekdaysShort : 'vas_hét_kedd_sze_csüt_pén_szo'.split('_'),
weekdaysMin : 'v_h_k_sze_cs_p_szo'.split('_'),
longDateFormat : {
LT : 'H:mm',
LTS : 'H:mm:ss',
L : 'YYYY.MM.DD.',
LL : 'YYYY. MMMM D.',
LLL : 'YYYY. MMMM D. H:mm',
LLLL : 'YYYY. MMMM D., dddd H:mm'
},
meridiemParse: /de|du/i,
isPM: function (input) {
return input.charAt(1).toLowerCase() === 'u';
},
meridiem : function (hours, minutes, isLower) {
if (hours < 12) {
return isLower === true ? 'de' : 'DE';
} else {
return isLower === true ? 'du' : 'DU';
}
},
calendar : {
sameDay : '[ma] LT[-kor]',
nextDay : '[holnap] LT[-kor]',
nextWeek : function () {
return week.call(this, true);
},
lastDay : '[tegnap] LT[-kor]',
lastWeek : function () {
return week.call(this, false);
},
sameElse : 'L'
},
relativeTime : {
future : '%s múlva',
past : '%s',
s : translate,
ss : translate,
m : translate,
mm : translate,
h : translate,
hh : translate,
d : translate,
dd : translate,
M : translate,
MM : translate,
y : translate,
yy : translate
},
dayOfMonthOrdinalParse: /\d{1,2}\./,
ordinal : '%d.',
week : {
dow : 1, // Monday is the first day of the week.
doy : 4 // The week that contains Jan 4th is the first week of the year.
}
});
return hu;
})));
================================================
FILE: public/admin-panel/assets/libs/moment/locale/hy-am.js
================================================
//! moment.js locale configuration
;(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined'
&& typeof require === 'function' ? factory(require('../moment')) :
typeof define === 'function' && define.amd ? define(['../moment'], factory) :
factory(global.moment)
}(this, (function (moment) { 'use strict';
var hyAm = moment.defineLocale('hy-am', {
months : {
format: 'հունվարի_փետրվարի_մարտի_ապրիլի_մայիսի_հունիսի_հուլիսի_օգոստոսի_սեպտեմբերի_հոկտեմբերի_նոյեմբերի_դեկտեմբերի'.split('_'),
standalone: 'հունվար_փետրվար_մարտ_ապրիլ_մայիս_հունիս_հուլիս_օգոստոս_սեպտեմբեր_հոկտեմբեր_նոյեմբեր_դեկտեմբեր'.split('_')
},
monthsShort : 'հնվ_փտր_մրտ_ապր_մյս_հնս_հլս_օգս_սպտ_հկտ_նմբ_դկտ'.split('_'),
weekdays : 'կիրակի_երկուշաբթի_երեքշաբթի_չորեքշաբթի_հինգշաբթի_ուրբաթ_շաբաթ'.split('_'),
weekdaysShort : 'կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ'.split('_'),
weekdaysMin : 'կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ'.split('_'),
longDateFormat : {
LT : 'HH:mm',
LTS : 'HH:mm:ss',
L : 'DD.MM.YYYY',
LL : 'D MMMM YYYY թ.',
LLL : 'D MMMM YYYY թ., HH:mm',
LLLL : 'dddd, D MMMM YYYY թ., HH:mm'
},
calendar : {
sameDay: '[այսօր] LT',
nextDay: '[վաղը] LT',
lastDay: '[երեկ] LT',
nextWeek: function () {
return 'dddd [օրը ժամը] LT';
},
lastWeek: function () {
return '[անցած] dddd [օրը ժամը] LT';
},
sameElse: 'L'
},
relativeTime : {
future : '%s հետո',
past : '%s առաջ',
s : 'մի քանի վայրկյան',
ss : '%d վայրկյան',
m : 'րոպե',
mm : '%d րոպե',
h : 'ժամ',
hh : '%d ժամ',
d : 'օր',
dd : '%d օր',
M : 'ամիս',
MM : '%d ամիս',
y : 'տարի',
yy : '%d տարի'
},
meridiemParse: /գիշերվա|առավոտվա|ցերեկվա|երեկոյան/,
isPM: function (input) {
return /^(ցերեկվա|երեկոյան)$/.test(input);
},
meridiem : function (hour) {
if (hour < 4) {
return 'գիշերվա';
} else if (hour < 12) {
return 'առավոտվա';
} else if (hour < 17) {
return 'ցերեկվա';
} else {
return 'երեկոյան';
}
},
dayOfMonthOrdinalParse: /\d{1,2}|\d{1,2}-(ին|րդ)/,
ordinal: function (number, period) {
switch (period) {
case 'DDD':
case 'w':
case 'W':
case 'DDDo':
if (number === 1) {
return number + '-ին';
}
return number + '-րդ';
default:
return number;
}
},
week : {
dow : 1, // Monday is the first day of the week.
doy : 7 // The week that contains Jan 1st is the first week of the year.
}
});
return hyAm;
})));
================================================
FILE: public/admin-panel/assets/libs/moment/locale/id.js
================================================
//! moment.js locale configuration
;(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined'
&& typeof require === 'function' ? factory(require('../moment')) :
typeof define === 'function' && define.amd ? define(['../moment'], factory) :
factory(global.moment)
}(this, (function (moment) { 'use strict';
var id = moment.defineLocale('id', {
months : 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_November_Desember'.split('_'),
monthsShort : 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Agt_Sep_Okt_Nov_Des'.split('_'),
weekdays : 'Minggu_Senin_Selasa_Rabu_Kamis_Jumat_Sabtu'.split('_'),
weekdaysShort : 'Min_Sen_Sel_Rab_Kam_Jum_Sab'.split('_'),
weekdaysMin : 'Mg_Sn_Sl_Rb_Km_Jm_Sb'.split('_'),
longDateFormat : {
LT : 'HH.mm',
LTS : 'HH.mm.ss',
L : 'DD/MM/YYYY',
LL : 'D MMMM YYYY',
LLL : 'D MMMM YYYY [pukul] HH.mm',
LLLL : 'dddd, D MMMM YYYY [pukul] HH.mm'
},
meridiemParse: /pagi|siang|sore|malam/,
meridiemHour : function (hour, meridiem) {
if (hour === 12) {
hour = 0;
}
if (meridiem === 'pagi') {
return hour;
} else if (meridiem === 'siang') {
return hour >= 11 ? hour : hour + 12;
} else if (meridiem === 'sore' || meridiem === 'malam') {
return hour + 12;
}
},
meridiem : function (hours, minutes, isLower) {
if (hours < 11) {
return 'pagi';
} else if (hours < 15) {
return 'siang';
} else if (hours < 19) {
return 'sore';
} else {
return 'malam';
}
},
calendar : {
sameDay : '[Hari ini pukul] LT',
nextDay : '[Besok pukul] LT',
nextWeek : 'dddd [pukul] LT',
lastDay : '[Kemarin pukul] LT',
lastWeek : 'dddd [lalu pukul] LT',
sameElse : 'L'
},
relativeTime : {
future : 'dalam %s',
past : '%s yang lalu',
s : 'beberapa detik',
ss : '%d detik',
m : 'semenit',
mm : '%d menit',
h : 'sejam',
hh : '%d jam',
d : 'sehari',
dd : '%d hari',
M : 'sebulan',
MM : '%d bulan',
y : 'setahun',
yy : '%d tahun'
},
week : {
dow : 1, // Monday is the first day of the week.
doy : 7 // The week that contains Jan 1st is the first week of the year.
}
});
return id;
})));
================================================
FILE: public/admin-panel/assets/libs/moment/locale/is.js
================================================
//! moment.js locale configuration
;(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined'
&& typeof require === 'function' ? factory(require('../moment')) :
typeof define === 'function' && define.amd ? define(['../moment'], factory) :
factory(global.moment)
}(this, (function (moment) { 'use strict';
function plural(n) {
if (n % 100 === 11) {
return true;
} else if (n % 10 === 1) {
return false;
}
return true;
}
function translate(number, withoutSuffix, key, isFuture) {
var result = number + ' ';
switch (key) {
case 's':
return withoutSuffix || isFuture ? 'nokkrar sekúndur' : 'nokkrum sekúndum';
case 'ss':
if (plural(number)) {
return result + (withoutSuffix || isFuture ? 'sekúndur' : 'sekúndum');
}
return result + 'sekúnda';
case 'm':
return withoutSuffix ? 'mínúta' : 'mínútu';
case 'mm':
if (plural(number)) {
return result + (withoutSuffix || isFuture ? 'mínútur' : 'mínútum');
} else if (withoutSuffix) {
return result + 'mínúta';
}
return result + 'mínútu';
case 'hh':
if (plural(number)) {
return result + (withoutSuffix || isFuture ? 'klukkustundir' : 'klukkustundum');
}
return result + 'klukkustund';
case 'd':
if (withoutSuffix) {
return 'dagur';
}
return isFuture ? 'dag' : 'degi';
case 'dd':
if (plural(number)) {
if (withoutSuffix) {
return result + 'dagar';
}
return result + (isFuture ? 'daga' : 'dögum');
} else if (withoutSuffix) {
return result + 'dagur';
}
return result + (isFuture ? 'dag' : 'degi');
case 'M':
if (withoutSuffix) {
return 'mánuður';
}
return isFuture ? 'mánuð' : 'mánuði';
case 'MM':
if (plural(number)) {
if (withoutSuffix) {
return result + 'mánuðir';
}
return result + (isFuture ? 'mánuði' : 'mánuðum');
} else if (withoutSuffix) {
return result + 'mánuður';
}
return result + (isFuture ? 'mánuð' : 'mánuði');
case 'y':
return withoutSuffix || isFuture ? 'ár' : 'ári';
case 'yy':
if (plural(number)) {
return result + (withoutSuffix || isFuture ? 'ár' : 'árum');
}
return result + (withoutSuffix || isFuture ? 'ár' : 'ári');
}
}
var is = moment.defineLocale('is', {
months : 'janúar_febrúar_mars_apríl_maí_júní_júlí_ágúst_september_október_nóvember_desember'.split('_'),
monthsShort : 'jan_feb_mar_apr_maí_jún_júl_ágú_sep_okt_nóv_des'.split('_'),
weekdays : 'sunnudagur_mánudagur_þriðjudagur_miðvikudagur_fimmtudagur_föstudagur_laugardagur'.split('_'),
weekdaysShort : 'sun_mán_þri_mið_fim_fös_lau'.split('_'),
weekdaysMin : 'Su_Má_Þr_Mi_Fi_Fö_La'.split('_'),
longDateFormat : {
LT : 'H:mm',
LTS : 'H:mm:ss',
L : 'DD.MM.YYYY',
LL : 'D. MMMM YYYY',
LLL : 'D. MMMM YYYY [kl.] H:mm',
LLLL : 'dddd, D. MMMM YYYY [kl.] H:mm'
},
calendar : {
sameDay : '[í dag kl.] LT',
nextDay : '[á morgun kl.] LT',
nextWeek : 'dddd [kl.] LT',
lastDay : '[í gær kl.] LT',
lastWeek : '[síðasta] dddd [kl.] LT',
sameElse : 'L'
},
relativeTime : {
future : 'eftir %s',
past : 'fyrir %s síðan',
s : translate,
ss : translate,
m : translate,
mm : translate,
h : 'klukkustund',
hh : translate,
d : translate,
dd : translate,
M : translate,
MM : translate,
y : translate,
yy : translate
},
dayOfMonthOrdinalParse: /\d{1,2}\./,
ordinal : '%d.',
week : {
dow : 1, // Monday is the first day of the week.
doy : 4 // The week that contains Jan 4th is the first week of the year.
}
});
return is;
})));
================================================
FILE: public/admin-panel/assets/libs/moment/locale/it.js
================================================
//! moment.js locale configuration
;(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined'
&& typeof require === 'function' ? factory(require('../moment')) :
typeof define === 'function' && define.amd ? define(['../moment'], factory) :
factory(global.moment)
}(this, (function (moment) { 'use strict';
var it = moment.defineLocale('it', {
months : 'gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre'.split('_'),
monthsShort : 'gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic'.split('_'),
weekdays : 'domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato'.split('_'),
weekdaysShort : 'dom_lun_mar_mer_gio_ven_sab'.split('_'),
weekdaysMin : 'do_lu_ma_me_gi_ve_sa'.split('_'),
longDateFormat : {
LT : 'HH:mm',
LTS : 'HH:mm:ss',
L : 'DD/MM/YYYY',
LL : 'D MMMM YYYY',
LLL : 'D MMMM YYYY HH:mm',
LLLL : 'dddd D MMMM YYYY HH:mm'
},
calendar : {
sameDay: '[Oggi alle] LT',
nextDay: '[Domani alle] LT',
nextWeek: 'dddd [alle] LT',
lastDay: '[Ieri alle] LT',
lastWeek: function () {
switch (this.day()) {
case 0:
return '[la scorsa] dddd [alle] LT';
default:
return '[lo scorso] dddd [alle] LT';
}
},
sameElse: 'L'
},
relativeTime : {
future : function (s) {
return ((/^[0-9].+$/).test(s) ? 'tra' : 'in') + ' ' + s;
},
past : '%s fa',
s : 'alcuni secondi',
ss : '%d secondi',
m : 'un minuto',
mm : '%d minuti',
h : 'un\'ora',
hh : '%d ore',
d : 'un giorno',
dd : '%d giorni',
M : 'un mese',
MM : '%d mesi',
y : 'un anno',
yy : '%d anni'
},
dayOfMonthOrdinalParse : /\d{1,2}º/,
ordinal: '%dº',
week : {
dow : 1, // Monday is the first day of the week.
doy : 4 // The week that contains Jan 4th is the first week of the year.
}
});
return it;
})));
================================================
FILE: public/admin-panel/assets/libs/moment/locale/ja.js
================================================
//! moment.js locale configuration
;(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined'
&& typeof require === 'function' ? factory(require('../moment')) :
typeof define === 'function' && define.amd ? define(['../moment'], factory) :
factory(global.moment)
}(this, (function (moment) { 'use strict';
var ja = moment.defineLocale('ja', {
months : '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),
monthsShort : '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),
weekdays : '日曜日_月曜日_火曜日_水曜日_木曜日_金曜日_土曜日'.split('_'),
weekdaysShort : '日_月_火_水_木_金_土'.split('_'),
weekdaysMin : '日_月_火_水_木_金_土'.split('_'),
longDateFormat : {
LT : 'HH:mm',
LTS : 'HH:mm:ss',
L : 'YYYY/MM/DD',
LL : 'YYYY年M月D日',
LLL : 'YYYY年M月D日 HH:mm',
LLLL : 'YYYY年M月D日 dddd HH:mm',
l : 'YYYY/MM/DD',
ll : 'YYYY年M月D日',
lll : 'YYYY年M月D日 HH:mm',
llll : 'YYYY年M月D日(ddd) HH:mm'
},
meridiemParse: /午前|午後/i,
isPM : function (input) {
return input === '午後';
},
meridiem : function (hour, minute, isLower) {
if (hour < 12) {
return '午前';
} else {
return '午後';
}
},
calendar : {
sameDay : '[今日] LT',
nextDay : '[明日] LT',
nextWeek : function (now) {
if (now.week() < this.week()) {
return '[来週]dddd LT';
} else {
return 'dddd LT';
}
},
lastDay : '[昨日] LT',
lastWeek : function (now) {
if (this.week() < now.week()) {
return '[先週]dddd LT';
} else {
return 'dddd LT';
}
},
sameElse : 'L'
},
dayOfMonthOrdinalParse : /\d{1,2}日/,
ordinal : function (number, period) {
switch (period) {
case 'd':
case 'D':
case 'DDD':
return number + '日';
default:
return number;
}
},
relativeTime : {
future : '%s後',
past : '%s前',
s : '数秒',
ss : '%d秒',
m : '1分',
mm : '%d分',
h : '1時間',
hh : '%d時間',
d : '1日',
dd : '%d日',
M : '1ヶ月',
MM : '%dヶ月',
y : '1年',
yy : '%d年'
}
});
return ja;
})));
================================================
FILE: public/admin-panel/assets/libs/moment/locale/jv.js
================================================
//! moment.js locale configuration
;(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined'
&& typeof require === 'function' ? factory(require('../moment')) :
typeof define === 'function' && define.amd ? define(['../moment'], factory) :
factory(global.moment)
}(this, (function (moment) { 'use strict';
var jv = moment.defineLocale('jv', {
months : 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_Nopember_Desember'.split('_'),
monthsShort : 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Ags_Sep_Okt_Nop_Des'.split('_'),
weekdays : 'Minggu_Senen_Seloso_Rebu_Kemis_Jemuwah_Septu'.split('_'),
weekdaysShort : 'Min_Sen_Sel_Reb_Kem_Jem_Sep'.split('_'),
weekdaysMin : 'Mg_Sn_Sl_Rb_Km_Jm_Sp'.split('_'),
longDateFormat : {
LT : 'HH.mm',
LTS : 'HH.mm.ss',
L : 'DD/MM/YYYY',
LL : 'D MMMM YYYY',
LLL : 'D MMMM YYYY [pukul] HH.mm',
LLLL : 'dddd, D MMMM YYYY [pukul] HH.mm'
},
meridiemParse: /enjing|siyang|sonten|ndalu/,
meridiemHour : function (hour, meridiem) {
if (hour === 12) {
hour = 0;
}
if (meridiem === 'enjing') {
return hour;
} else if (meridiem === 'siyang') {
return hour >= 11 ? hour : hour + 12;
} else if (meridiem === 'sonten' || meridiem === 'ndalu') {
return hour + 12;
}
},
meridiem : function (hours, minutes, isLower) {
if (hours < 11) {
return 'enjing';
} else if (hours < 15) {
return 'siyang';
} else if (hours < 19) {
return 'sonten';
} else {
return 'ndalu';
}
},
calendar : {
sameDay : '[Dinten puniko pukul] LT',
nextDay : '[Mbenjang pukul] LT',
nextWeek : 'dddd [pukul] LT',
lastDay : '[Kala wingi pukul] LT',
lastWeek : 'dddd [kepengker pukul] LT',
sameElse : 'L'
},
relativeTime : {
future : 'wonten ing %s',
past : '%s ingkang kepengker',
s : 'sawetawis detik',
ss : '%d detik',
m : 'setunggal menit',
mm : '%d menit',
h : 'setunggal jam',
hh : '%d jam',
d : 'sedinten',
dd : '%d dinten',
M : 'sewulan',
MM : '%d wulan',
y : 'setaun',
yy : '%d taun'
},
week : {
dow : 1, // Monday is the first day of the week.
doy : 7 // The week that contains Jan 1st is the first week of the year.
}
});
return jv;
})));
================================================
FILE: public/admin-panel/assets/libs/moment/locale/ka.js
================================================
//! moment.js locale configuration
;(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined'
&& typeof require === 'function' ? factory(require('../moment')) :
typeof define === 'function' && define.amd ? define(['../moment'], factory) :
factory(global.moment)
}(this, (function (moment) { 'use strict';
var ka = moment.defineLocale('ka', {
months : {
standalone: 'იანვარი_თებერვალი_მარტი_აპრილი_მაისი_ივნისი_ივლისი_აგვისტო_სექტემბერი_ოქტომბერი_ნოემბერი_დეკემბერი'.split('_'),
format: 'იანვარს_თებერვალს_მარტს_აპრილის_მაისს_ივნისს_ივლისს_აგვისტს_სექტემბერს_ოქტომბერს_ნოემბერს_დეკემბერს'.split('_')
},
monthsShort : 'იან_თებ_მარ_აპრ_მაი_ივნ_ივლ_აგვ_სექ_ოქტ_ნოე_დეკ'.split('_'),
weekdays : {
standalone: 'კვირა_ორშაბათი_სამშაბათი_ოთხშაბათი_ხუთშაბათი_პარასკევი_შაბათი'.split('_'),
format: 'კვირას_ორშაბათს_სამშაბათს_ოთხშაბათს_ხუთშაბათს_პარასკევს_შაბათს'.split('_'),
isFormat: /(წინა|შემდეგ)/
},
weekdaysShort : 'კვი_ორშ_სამ_ოთხ_ხუთ_პარ_შაბ'.split('_'),
weekdaysMin : 'კვ_ორ_სა_ოთ_ხუ_პა_შა'.split('_'),
longDateFormat : {
LT : 'h:mm A',
LTS : 'h:mm:ss A',
L : 'DD/MM/YYYY',
LL : 'D MMMM YYYY',
LLL : 'D MMMM YYYY h:mm A',
LLLL : 'dddd, D MMMM YYYY h:mm A'
},
calendar : {
sameDay : '[დღეს] LT[-ზე]',
nextDay : '[ხვალ] LT[-ზე]',
lastDay : '[გუშინ] LT[-ზე]',
nextWeek : '[შემდეგ] dddd LT[-ზე]',
lastWeek : '[წინა] dddd LT-ზე',
sameElse : 'L'
},
relativeTime : {
future : function (s) {
return (/(წამი|წუთი|საათი|წელი)/).test(s) ?
s.replace(/ი$/, 'ში') :
s + 'ში';
},
past : function (s) {
if ((/(წამი|წუთი|საათი|დღე|თვე)/).test(s)) {
return s.replace(/(ი|ე)$/, 'ის წინ');
}
if ((/წელი/).test(s)) {
return s.replace(/წელი$/, 'წლის წინ');
}
},
s : 'რამდენიმე წამი',
ss : '%d წამი',
m : 'წუთი',
mm : '%d წუთი',
h : 'საათი',
hh : '%d საათი',
d : 'დღე',
dd : '%d დღე',
M : 'თვე',
MM : '%d თვე',
y : 'წელი',
yy : '%d წელი'
},
dayOfMonthOrdinalParse: /0|1-ლი|მე-\d{1,2}|\d{1,2}-ე/,
ordinal : function (number) {
if (number === 0) {
return number;
}
if (number === 1) {
return number + '-ლი';
}
if ((number < 20) || (number <= 100 && (number % 20 === 0)) || (number % 100 === 0)) {
return 'მე-' + number;
}
return number + '-ე';
},
week : {
dow : 1,
doy : 7
}
});
return ka;
})));
================================================
FILE: public/admin-panel/assets/libs/moment/locale/kk.js
================================================
//! moment.js locale configuration
;(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined'
&& typeof require === 'function' ? factory(require('../moment')) :
typeof define === 'function' && define.amd ? define(['../moment'], factory) :
factory(global.moment)
}(this, (function (moment) { 'use strict';
var suffixes = {
0: '-ші',
1: '-ші',
2: '-ші',
3: '-ші',
4: '-ші',
5: '-ші',
6: '-шы',
7: '-ші',
8: '-ші',
9: '-шы',
10: '-шы',
20: '-шы',
30: '-шы',
40: '-шы',
50: '-ші',
60: '-шы',
70: '-ші',
80: '-ші',
90: '-шы',
100: '-ші'
};
var kk = moment.defineLocale('kk', {
months : 'қаңтар_ақпан_наурыз_сәуір_мамыр_маусым_шілде_тамыз_қыркүйек_қазан_қараша_желтоқсан'.split('_'),
monthsShort : 'қаң_ақп_нау_сәу_мам_мау_шіл_там_қыр_қаз_қар_жел'.split('_'),
weekdays : 'жексенбі_дүйсенбі_сейсенбі_сәрсенбі_бейсенбі_жұма_сенбі'.split('_'),
weekdaysShort : 'жек_дүй_сей_сәр_бей_жұм_сен'.split('_'),
weekdaysMin : 'жк_дй_сй_ср_бй_жм_сн'.split('_'),
longDateFormat : {
LT : 'HH:mm',
LTS : 'HH:mm:ss',
L : 'DD.MM.YYYY',
LL : 'D MMMM YYYY',
LLL : 'D MMMM YYYY HH:mm',
LLLL : 'dddd, D MMMM YYYY HH:mm'
},
calendar : {
sameDay : '[Бүгін сағат] LT',
nextDay : '[Ертең сағат] LT',
nextWeek : 'dddd [сағат] LT',
lastDay : '[Кеше сағат] LT',
lastWeek : '[Өткен аптаның] dddd [сағат] LT',
sameElse : 'L'
},
relativeTime : {
future : '%s ішінде',
past : '%s бұрын',
s : 'бірнеше секунд',
ss : '%d секунд',
m : 'бір минут',
mm : '%d минут',
h : 'бір сағат',
hh : '%d сағат',
d : 'бір күн',
dd : '%d күн',
M : 'бір ай',
MM : '%d ай',
y : 'бір жыл',
yy : '%d жыл'
},
dayOfMonthOrdinalParse: /\d{1,2}-(ші|шы)/,
ordinal : function (number) {
var a = number % 10,
b = number >= 100 ? 100 : null;
return number + (suffixes[number] || suffixes[a] || suffixes[b]);
},
week : {
dow : 1, // Monday is the first day of the week.
doy : 7 // The week that contains Jan 1st is the first week of the year.
}
});
return kk;
})));
================================================
FILE: public/admin-panel/assets/libs/moment/locale/km.js
================================================
//! moment.js locale configuration
;(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined'
&& typeof require === 'function' ? factory(require('../moment')) :
typeof define === 'function' && define.amd ? define(['../moment'], factory) :
factory(global.moment)
}(this, (function (moment) { 'use strict';
var symbolMap = {
'1': '១',
'2': '២',
'3': '៣',
'4': '៤',
'5': '៥',
'6': '៦',
'7': '៧',
'8': '៨',
'9': '៩',
'0': '០'
}, numberMap = {
'១': '1',
'២': '2',
'៣': '3',
'៤': '4',
'៥': '5',
'៦': '6',
'៧': '7',
'៨': '8',
'៩': '9',
'០': '0'
};
var km = moment.defineLocale('km', {
months: 'មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ'.split(
'_'
),
monthsShort: 'មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ'.split(
'_'
),
weekdays: 'អាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍'.split('_'),
weekdaysShort: 'អា_ច_អ_ព_ព្រ_សុ_ស'.split('_'),
weekdaysMin: 'អា_ច_អ_ព_ព្រ_សុ_ស'.split('_'),
weekdaysParseExact: true,
longDateFormat: {
LT: 'HH:mm',
LTS: 'HH:mm:ss',
L: 'DD/MM/YYYY',
LL: 'D MMMM YYYY',
LLL: 'D MMMM YYYY HH:mm',
LLLL: 'dddd, D MMMM YYYY HH:mm'
},
meridiemParse: /ព្រឹក|ល្ងាច/,
isPM: function (input) {
return input === 'ល្ងាច';
},
meridiem: function (hour, minute, isLower) {
if (hour < 12) {
return 'ព្រឹក';
} else {
return 'ល្ងាច';
}
},
calendar: {
sameDay: '[ថ្ងៃនេះ ម៉ោង] LT',
nextDay: '[ស្អែក ម៉ោង] LT',
nextWeek: 'dddd [ម៉ោង] LT',
lastDay: '[ម្សិលមិញ ម៉ោង] LT',
lastWeek: 'dddd [សប្តាហ៍មុន] [ម៉ោង] LT',
sameElse: 'L'
},
relativeTime: {
future: '%sទៀត',
past: '%sមុន',
s: 'ប៉ុន្មានវិនាទី',
ss: '%d វិនាទី',
m: 'មួយនាទី',
mm: '%d នាទី',
h: 'មួយម៉ោង',
hh: '%d ម៉ោង',
d: 'មួយថ្ងៃ',
dd: '%d ថ្ងៃ',
M: 'មួយខែ',
MM: '%d ខែ',
y: 'មួយឆ្នាំ',
yy: '%d ឆ្នាំ'
},
dayOfMonthOrdinalParse : /ទី\d{1,2}/,
ordinal : 'ទី%d',
preparse: function (string) {
return string.replace(/[១២៣៤៥៦៧៨៩០]/g, function (match) {
return numberMap[match];
});
},
postformat: function (string) {
return string.replace(/\d/g, function (match) {
return symbolMap[match];
});
},
week: {
dow: 1, // Monday is the first day of the week.
doy: 4 // The week that contains Jan 4th is the first week of the year.
}
});
return km;
})));
================================================
FILE: public/admin-panel/assets/libs/moment/locale/kn.js
================================================
//! moment.js locale configuration
;(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined'
&& typeof require === 'function' ? factory(require('../moment')) :
typeof define === 'function' && define.amd ? define(['../moment'], factory) :
factory(global.moment)
}(this, (function (moment) { 'use strict';
var symbolMap = {
'1': '೧',
'2': '೨',
'3': '೩',
'4': '೪',
'5': '೫',
'6': '೬',
'7': '೭',
'8': '೮',
'9': '೯',
'0': '೦'
},
numberMap = {
'೧': '1',
'೨': '2',
'೩': '3',
'೪': '4',
'೫': '5',
'೬': '6',
'೭': '7',
'೮': '8',
'೯': '9',
'೦': '0'
};
var kn = moment.defineLocale('kn', {
months : 'ಜನವರಿ_ಫೆಬ್ರವರಿ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂಬರ್_ಅಕ್ಟೋಬರ್_ನವೆಂಬರ್_ಡಿಸೆಂಬರ್'.split('_'),
monthsShort : 'ಜನ_ಫೆಬ್ರ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂ_ಅಕ್ಟೋ_ನವೆಂ_ಡಿಸೆಂ'.split('_'),
monthsParseExact: true,
weekdays : 'ಭಾನುವಾರ_ಸೋಮವಾರ_ಮಂಗಳವಾರ_ಬುಧವಾರ_ಗುರುವಾರ_ಶುಕ್ರವಾರ_ಶನಿವಾರ'.split('_'),
weekdaysShort : 'ಭಾನು_ಸೋಮ_ಮಂಗಳ_ಬುಧ_ಗುರು_ಶುಕ್ರ_ಶನಿ'.split('_'),
weekdaysMin : 'ಭಾ_ಸೋ_ಮಂ_ಬು_ಗು_ಶು_ಶ'.split('_'),
longDateFormat : {
LT : 'A h:mm',
LTS : 'A h:mm:ss',
L : 'DD/MM/YYYY',
LL : 'D MMMM YYYY',
LLL : 'D MMMM YYYY, A h:mm',
LLLL : 'dddd, D MMMM YYYY, A h:mm'
},
calendar : {
sameDay : '[ಇಂದು] LT',
nextDay : '[ನಾಳೆ] LT',
nextWeek : 'dddd, LT',
lastDay : '[ನಿನ್ನೆ] LT',
lastWeek : '[ಕೊನೆಯ] dddd, LT',
sameElse : 'L'
},
relativeTime : {
future : '%s ನಂತರ',
past : '%s ಹಿಂದೆ',
s : 'ಕೆಲವು ಕ್ಷಣಗಳು',
ss : '%d ಸೆಕೆಂಡುಗಳು',
m : 'ಒಂದು ನಿಮಿಷ',
mm : '%d ನಿಮಿಷ',
h : 'ಒಂದು ಗಂಟೆ',
hh : '%d ಗಂಟೆ',
d : 'ಒಂದು ದಿನ',
dd : '%d ದಿನ',
M : 'ಒಂದು ತಿಂಗಳು',
MM : '%d ತಿಂಗಳು',
y : 'ಒಂದು ವರ್ಷ',
yy : '%d ವರ್ಷ'
},
preparse: function (string) {
return string.replace(/[೧೨೩೪೫೬೭೮೯೦]/g, function (match) {
return numberMap[match];
});
},
postformat: function (string) {
return string.replace(/\d/g, function (match) {
return symbolMap[match];
});
},
meridiemParse: /ರಾತ್ರಿ|ಬೆಳಿಗ್ಗೆ|ಮಧ್ಯಾಹ್ನ|ಸಂಜೆ/,
meridiemHour : function (hour, meridiem) {
if (hour === 12) {
hour = 0;
}
if (meridiem === 'ರಾತ್ರಿ') {
return hour < 4 ? hour : hour + 12;
} else if (meridiem === 'ಬೆಳಿಗ್ಗೆ') {
return hour;
} else if (meridiem === 'ಮಧ್ಯಾಹ್ನ') {
return hour >= 10 ? hour : hour + 12;
} else if (meridiem === 'ಸಂಜೆ') {
return hour + 12;
}
},
meridiem : function (hour, minute, isLower) {
if (hour < 4) {
return 'ರಾತ್ರಿ';
} else if (hour < 10) {
return 'ಬೆಳಿಗ್ಗೆ';
} else if (hour < 17) {
return 'ಮಧ್ಯಾಹ್ನ';
} else if (hour < 20) {
return 'ಸಂಜೆ';
} else {
return 'ರಾತ್ರಿ';
}
},
dayOfMonthOrdinalParse: /\d{1,2}(ನೇ)/,
ordinal : function (number) {
return number + 'ನೇ';
},
week : {
dow : 0, // Sunday is the first day of the week.
doy : 6 // The week that contains Jan 1st is the first week of the year.
}
});
return kn;
})));
================================================
FILE: public/admin-panel/assets/libs/moment/locale/ko.js
================================================
//! moment.js locale configuration
;(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined'
&& typeof require === 'function' ? factory(require('../moment')) :
typeof define === 'function' && define.amd ? define(['../moment'], factory) :
factory(global.moment)
}(this, (function (moment) { 'use strict';
var ko = moment.defineLocale('ko', {
months : '1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월'.split('_'),
monthsShort : '1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월'.split('_'),
weekdays : '일요일_월요일_화요일_수요일_목요일_금요일_토요일'.split('_'),
weekdaysShort : '일_월_화_수_목_금_토'.split('_'),
weekdaysMin : '일_월_화_수_목_금_토'.split('_'),
longDateFormat : {
LT : 'A h:mm',
LTS : 'A h:mm:ss',
L : 'YYYY.MM.DD.',
LL : 'YYYY년 MMMM D일',
LLL : 'YYYY년 MMMM D일 A h:mm',
LLLL : 'YYYY년 MMMM D일 dddd A h:mm',
l : 'YYYY.MM.DD.',
ll : 'YYYY년 MMMM D일',
lll : 'YYYY년 MMMM D일 A h:mm',
llll : 'YYYY년 MMMM D일 dddd A h:mm'
},
calendar : {
sameDay : '오늘 LT',
nextDay : '내일 LT',
nextWeek : 'dddd LT',
lastDay : '어제 LT',
lastWeek : '지난주 dddd LT',
sameElse : 'L'
},
relativeTime : {
future : '%s 후',
past : '%s 전',
s : '몇 초',
ss : '%d초',
m : '1분',
mm : '%d분',
h : '한 시간',
hh : '%d시간',
d : '하루',
dd : '%d일',
M : '한 달',
MM : '%d달',
y : '일 년',
yy : '%d년'
},
dayOfMonthOrdinalParse : /\d{1,2}(일|월|주)/,
ordinal : function (number, period) {
switch (period) {
case 'd':
case 'D':
case 'DDD':
return number + '일';
case 'M':
return number + '월';
case 'w':
case 'W':
return number + '주';
default:
return number;
}
},
meridiemParse : /오전|오후/,
isPM : function (token) {
return token === '오후';
},
meridiem : function (hour, minute, isUpper) {
return hour < 12 ? '오전' : '오후';
}
});
return ko;
})));
================================================
FILE: public/admin-panel/assets/libs/moment/locale/ky.js
================================================
//! moment.js locale configuration
;(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined'
&& typeof require === 'function' ? factory(require('../moment')) :
typeof define === 'function' && define.amd ? define(['../moment'], factory) :
factory(global.moment)
}(this, (function (moment) { 'use strict';
var suffixes = {
0: '-чү',
1: '-чи',
2: '-чи',
3: '-чү',
4: '-чү',
5: '-чи',
6: '-чы',
7: '-чи',
8: '-чи',
9: '-чу',
10: '-чу',
20: '-чы',
30: '-чу',
40: '-чы',
50: '-чү',
60: '-чы',
70: '-чи',
80: '-чи',
90: '-чу',
100: '-чү'
};
var ky = moment.defineLocale('ky', {
months : 'январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь'.split('_'),
monthsShort : 'янв_фев_март_апр_май_июнь_июль_авг_сен_окт_ноя_дек'.split('_'),
weekdays : 'Жекшемби_Дүйшөмбү_Шейшемби_Шаршемби_Бейшемби_Жума_Ишемби'.split('_'),
weekdaysShort : 'Жек_Дүй_Шей_Шар_Бей_Жум_Ише'.split('_'),
weekdaysMin : 'Жк_Дй_Шй_Шр_Бй_Жм_Иш'.split('_'),
longDateFormat : {
LT : 'HH:mm',
LTS : 'HH:mm:ss',
L : 'DD.MM.YYYY',
LL : 'D MMMM YYYY',
LLL : 'D MMMM YYYY HH:mm',
LLLL : 'dddd, D MMMM YYYY HH:mm'
},
calendar : {
sameDay : '[Бүгүн саат] LT',
nextDay : '[Эртең саат] LT',
nextWeek : 'dddd [саат] LT',
lastDay : '[Кече саат] LT',
lastWeek : '[Өткен аптанын] dddd [күнү] [саат] LT',
sameElse : 'L'
},
relativeTime : {
future : '%s ичинде',
past : '%s мурун',
s : 'бирнече секунд',
ss : '%d секунд',
m : 'бир мүнөт',
mm : '%d мүнөт',
h : 'бир саат',
hh : '%d саат',
d : 'бир күн',
dd : '%d күн',
M : 'бир ай',
MM : '%d ай',
y : 'бир жыл',
yy : '%d жыл'
},
dayOfMonthOrdinalParse: /\d{1,2}-(чи|чы|чү|чу)/,
ordinal : function (number) {
var a = number % 10,
b = number >= 100 ? 100 : null;
return number + (suffixes[number] || suffixes[a] || suffixes[b]);
},
week : {
dow : 1, // Monday is the first day of the week.
doy : 7 // The week that contains Jan 1st is the first week of the year.
}
});
return ky;
})));
================================================
FILE: public/admin-panel/assets/libs/moment/locale/lb.js
================================================
//! moment.js locale configuration
;(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined'
&& typeof require === 'function' ? factory(require('../moment')) :
typeof define === 'function' && define.amd ? define(['../moment'], factory) :
factory(global.moment)
}(this, (function (moment) { 'use strict';
function processRelativeTime(number, withoutSuffix, key, isFuture) {
var format = {
'm': ['eng Minutt', 'enger Minutt'],
'h': ['eng Stonn', 'enger Stonn'],
'd': ['een Dag', 'engem Dag'],
'M': ['ee Mount', 'engem Mount'],
'y': ['ee Joer', 'engem Joer']
};
return withoutSuffix ? format[key][0] : format[key][1];
}
function processFutureTime(string) {
var number = string.substr(0, string.indexOf(' '));
if (eifelerRegelAppliesToNumber(number)) {
return 'a ' + string;
}
return 'an ' + string;
}
function processPastTime(string) {
var number = string.substr(0, string.indexOf(' '));
if (eifelerRegelAppliesToNumber(number)) {
return 'viru ' + string;
}
return 'virun ' + string;
}
/**
* Returns true if the word before the given number loses the '-n' ending.
* e.g. 'an 10 Deeg' but 'a 5 Deeg'
*
* @param number {integer}
* @returns {boolean}
*/
function eifelerRegelAppliesToNumber(number) {
number = parseInt(number, 10);
if (isNaN(number)) {
return false;
}
if (number < 0) {
// Negative Number --> always true
return true;
} else if (number < 10) {
// Only 1 digit
if (4 <= number && number <= 7) {
return true;
}
return false;
} else if (number < 100) {
// 2 digits
var lastDigit = number % 10, firstDigit = number / 10;
if (lastDigit === 0) {
return eifelerRegelAppliesToNumber(firstDigit);
}
return eifelerRegelAppliesToNumber(lastDigit);
} else if (number < 10000) {
// 3 or 4 digits --> recursively check first digit
while (number >= 10) {
number = number / 10;
}
return eifelerRegelAppliesToNumber(number);
} else {
// Anything larger than 4 digits: recursively check first n-3 digits
number = number / 1000;
return eifelerRegelAppliesToNumber(number);
}
}
var lb = moment.defineLocale('lb', {
months: 'Januar_Februar_Mäerz_Abrëll_Mee_Juni_Juli_August_September_Oktober_November_Dezember'.split('_'),
monthsShort: 'Jan._Febr._Mrz._Abr._Mee_Jun._Jul._Aug._Sept._Okt._Nov._Dez.'.split('_'),
monthsParseExact : true,
weekdays: 'Sonndeg_Méindeg_Dënschdeg_Mëttwoch_Donneschdeg_Freideg_Samschdeg'.split('_'),
weekdaysShort: 'So._Mé._Dë._Më._Do._Fr._Sa.'.split('_'),
weekdaysMin: 'So_Mé_Dë_Më_Do_Fr_Sa'.split('_'),
weekdaysParseExact : true,
longDateFormat: {
LT: 'H:mm [Auer]',
LTS: 'H:mm:ss [Auer]',
L: 'DD.MM.YYYY',
LL: 'D. MMMM YYYY',
LLL: 'D. MMMM YYYY H:mm [Auer]',
LLLL: 'dddd, D. MMMM YYYY H:mm [Auer]'
},
calendar: {
sameDay: '[Haut um] LT',
sameElse: 'L',
nextDay: '[Muer um] LT',
nextWeek: 'dddd [um] LT',
lastDay: '[Gëschter um] LT',
lastWeek: function () {
// Different date string for 'Dënschdeg' (Tuesday) and 'Donneschdeg' (Thursday) due to phonological rule
switch (this.day()) {
case 2:
case 4:
return '[Leschten] dddd [um] LT';
default:
return '[Leschte] dddd [um] LT';
}
}
},
relativeTime : {
future : processFutureTime,
past : processPastTime,
s : 'e puer Sekonnen',
ss : '%d Sekonnen',
m : processRelativeTime,
mm : '%d Minutten',
h : processRelativeTime,
hh : '%d Stonnen',
d : processRelativeTime,
dd : '%d Deeg',
M : processRelativeTime,
MM : '%d Méint',
y : processRelativeTime,
yy : '%d Joer'
},
dayOfMonthOrdinalParse: /\d{1,2}\./,
ordinal: '%d.',
week: {
dow: 1, // Monday is the first day of the week.
doy: 4 // The week that contains Jan 4th is the first week of the year.
}
});
return lb;
})));
================================================
FILE: public/admin-panel/assets/libs/moment/locale/lo.js
================================================
//! moment.js locale configuration
;(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined'
&& typeof require === 'function' ? factory(require('../moment')) :
typeof define === 'function' && define.amd ? define(['../moment'], factory) :
factory(global.moment)
}(this, (function (moment) { 'use strict';
var lo = moment.defineLocale('lo', {
months : 'ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ'.split('_'),
monthsShort : 'ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ'.split('_'),
weekdays : 'ອາທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ'.split('_'),
weekdaysShort : 'ທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ'.split('_'),
weekdaysMin : 'ທ_ຈ_ອຄ_ພ_ພຫ_ສກ_ສ'.split('_'),
weekdaysParseExact : true,
longDateFormat : {
LT : 'HH:mm',
LTS : 'HH:mm:ss',
L : 'DD/MM/YYYY',
LL : 'D MMMM YYYY',
LLL : 'D MMMM YYYY HH:mm',
LLLL : 'ວັນdddd D MMMM YYYY HH:mm'
},
meridiemParse: /ຕອນເຊົ້າ|ຕອນແລງ/,
isPM: function (input) {
return input === 'ຕອນແລງ';
},
meridiem : function (hour, minute, isLower) {
if (hour < 12) {
return 'ຕອນເຊົ້າ';
} else {
return 'ຕອນແລງ';
}
},
calendar : {
sameDay : '[ມື້ນີ້ເວລາ] LT',
nextDay : '[ມື້ອື່ນເວລາ] LT',
nextWeek : '[ວັນ]dddd[ໜ້າເວລາ] LT',
lastDay : '[ມື້ວານນີ້ເວລາ] LT',
lastWeek : '[ວັນ]dddd[ແລ້ວນີ້ເວລາ] LT',
sameElse : 'L'
},
relativeTime : {
future : 'ອີກ %s',
past : '%sຜ່ານມາ',
s : 'ບໍ່ເທົ່າໃດວິນາທີ',
ss : '%d ວິນາທີ' ,
m : '1 ນາທີ',
mm : '%d ນາທີ',
h : '1 ຊົ່ວໂມງ',
hh : '%d ຊົ່ວໂມງ',
d : '1 ມື້',
dd : '%d ມື້',
M : '1 ເດືອນ',
MM : '%d ເດືອນ',
y : '1 ປີ',
yy : '%d ປີ'
},
dayOfMonthOrdinalParse: /(ທີ່)\d{1,2}/,
ordinal : function (number) {
return 'ທີ່' + number;
}
});
return lo;
})));
================================================
FILE: public/admin-panel/assets/libs/moment/locale/lt.js
================================================
//! moment.js locale configuration
;(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined'
&& typeof require === 'function' ? factory(require('../moment')) :
typeof define === 'function' && define.amd ? define(['../moment'], factory) :
factory(global.moment)
}(this, (function (moment) { 'use strict';
var units = {
'ss' : 'sekundė_sekundžių_sekundes',
'm' : 'minutė_minutės_minutę',
'mm': 'minutės_minučių_minutes',
'h' : 'valanda_valandos_valandą',
'hh': 'valandos_valandų_valandas',
'd' : 'diena_dienos_dieną',
'dd': 'dienos_dienų_dienas',
'M' : 'mėnuo_mėnesio_mėnesį',
'MM': 'mėnesiai_mėnesių_mėnesius',
'y' : 'metai_metų_metus',
'yy': 'metai_metų_metus'
};
function translateSeconds(number, withoutSuffix, key, isFuture) {
if (withoutSuffix) {
return 'kelios sekundės';
} else {
return isFuture ? 'kelių sekundžių' : 'kelias sekundes';
}
}
function translateSingular(number, withoutSuffix, key, isFuture) {
return withoutSuffix ? forms(key)[0] : (isFuture ? forms(key)[1] : forms(key)[2]);
}
function special(number) {
return number % 10 === 0 || (number > 10 && number < 20);
}
function forms(key) {
return units[key].split('_');
}
function translate(number, withoutSuffix, key, isFuture) {
var result = number + ' ';
if (number === 1) {
return result + translateSingular(number, withoutSuffix, key[0], isFuture);
} else if (withoutSuffix) {
return result + (special(number) ? forms(key)[1] : forms(key)[0]);
} else {
if (isFuture) {
return result + forms(key)[1];
} else {
return result + (special(number) ? forms(key)[1] : forms(key)[2]);
}
}
}
var lt = moment.defineLocale('lt', {
months : {
format: 'sausio_vasario_kovo_balandžio_gegužės_birželio_liepos_rugpjūčio_rugsėjo_spalio_lapkričio_gruodžio'.split('_'),
standalone: 'sausis_vasaris_kovas_balandis_gegužė_birželis_liepa_rugpjūtis_rugsėjis_spalis_lapkritis_gruodis'.split('_'),
isFormat: /D[oD]?(\[[^\[\]]*\]|\s)+MMMM?|MMMM?(\[[^\[\]]*\]|\s)+D[oD]?/
},
monthsShort : 'sau_vas_kov_bal_geg_bir_lie_rgp_rgs_spa_lap_grd'.split('_'),
weekdays : {
format: 'sekmadienį_pirmadienį_antradienį_trečiadienį_ketvirtadienį_penktadienį_šeštadienį'.split('_'),
standalone: 'sekmadienis_pirmadienis_antradienis_trečiadienis_ketvirtadienis_penktadienis_šeštadienis'.split('_'),
isFormat: /dddd HH:mm/
},
weekdaysShort : 'Sek_Pir_Ant_Tre_Ket_Pen_Šeš'.split('_'),
weekdaysMin : 'S_P_A_T_K_Pn_Š'.split('_'),
weekdaysParseExact : true,
longDateFormat : {
LT : 'HH:mm',
LTS : 'HH:mm:ss',
L : 'YYYY-MM-DD',
LL : 'YYYY [m.] MMMM D [d.]',
LLL : 'YYYY [m.] MMMM D [d.], HH:mm [val.]',
LLLL : 'YYYY [m.] MMMM D [d.], dddd, HH:mm [val.]',
l : 'YYYY-MM-DD',
ll : 'YYYY [m.] MMMM D [d.]',
lll : 'YYYY [m.] MMMM D [d.], HH:mm [val.]',
llll : 'YYYY [m.] MMMM D [d.], ddd, HH:mm [val.]'
},
calendar : {
sameDay : '[Šiandien] LT',
nextDay : '[Rytoj] LT',
nextWeek : 'dddd LT',
lastDay : '[Vakar] LT',
lastWeek : '[Praėjusį] dddd LT',
sameElse : 'L'
},
relativeTime : {
future : 'po %s',
past : 'prieš %s',
s : translateSeconds,
ss : translate,
m : translateSingular,
mm : translate,
h : translateSingular,
hh : translate,
d : translateSingular,
dd : translate,
M : translateSingular,
MM : translate,
y : translateSingular,
yy : translate
},
dayOfMonthOrdinalParse: /\d{1,2}-oji/,
ordinal : function (number) {
return number + '-oji';
},
week : {
dow : 1, // Monday is the first day of the week.
doy : 4 // The week that contains Jan 4th is the first week of the year.
}
});
return lt;
})));
================================================
FILE: public/admin-panel/assets/libs/moment/locale/lv.js
================================================
//! moment.js locale configuration
;(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined'
&& typeof require === 'function' ? factory(require('../moment')) :
typeof define === 'function' && define.amd ? define(['../moment'], factory) :
factory(global.moment)
}(this, (function (moment) { 'use strict';
var units = {
'ss': 'sekundes_sekundēm_sekunde_sekundes'.split('_'),
'm': 'minūtes_minūtēm_minūte_minūtes'.split('_'),
'mm': 'minūtes_minūtēm_minūte_minūtes'.split('_'),
'h': 'stundas_stundām_stunda_stundas'.split('_'),
'hh': 'stundas_stundām_stunda_stundas'.split('_'),
'd': 'dienas_dienām_diena_dienas'.split('_'),
'dd': 'dienas_dienām_diena_dienas'.split('_'),
'M': 'mēneša_mēnešiem_mēnesis_mēneši'.split('_'),
'MM': 'mēneša_mēnešiem_mēnesis_mēneši'.split('_'),
'y': 'gada_gadiem_gads_gadi'.split('_'),
'yy': 'gada_gadiem_gads_gadi'.split('_')
};
/**
* @param withoutSuffix boolean true = a length of time; false = before/after a period of time.
*/
function format(forms, number, withoutSuffix) {
if (withoutSuffix) {
// E.g. "21 minūte", "3 minūtes".
return number % 10 === 1 && number % 100 !== 11 ? forms[2] : forms[3];
} else {
// E.g. "21 minūtes" as in "pēc 21 minūtes".
// E.g. "3 minūtēm" as in "pēc 3 minūtēm".
return number % 10 === 1 && number % 100 !== 11 ? forms[0] : forms[1];
}
}
function relativeTimeWithPlural(number, withoutSuffix, key) {
return number + ' ' + format(units[key], number, withoutSuffix);
}
function relativeTimeWithSingular(number, withoutSuffix, key) {
return format(units[key], number, withoutSuffix);
}
function relativeSeconds(number, withoutSuffix) {
return withoutSuffix ? 'dažas sekundes' : 'dažām sekundēm';
}
var lv = moment.defineLocale('lv', {
months : 'janvāris_februāris_marts_aprīlis_maijs_jūnijs_jūlijs_augusts_septembris_oktobris_novembris_decembris'.split('_'),
monthsShort : 'jan_feb_mar_apr_mai_jūn_jūl_aug_sep_okt_nov_dec'.split('_'),
weekdays : 'svētdiena_pirmdiena_otrdiena_trešdiena_ceturtdiena_piektdiena_sestdiena'.split('_'),
weekdaysShort : 'Sv_P_O_T_C_Pk_S'.split('_'),
weekdaysMin : 'Sv_P_O_T_C_Pk_S'.split('_'),
weekdaysParseExact : true,
longDateFormat : {
LT : 'HH:mm',
LTS : 'HH:mm:ss',
L : 'DD.MM.YYYY.',
LL : 'YYYY. [gada] D. MMMM',
LLL : 'YYYY. [gada] D. MMMM, HH:mm',
LLLL : 'YYYY. [gada] D. MMMM, dddd, HH:mm'
},
calendar : {
sameDay : '[Šodien pulksten] LT',
nextDay : '[Rīt pulksten] LT',
nextWeek : 'dddd [pulksten] LT',
lastDay : '[Vakar pulksten] LT',
lastWeek : '[Pagājušā] dddd [pulksten] LT',
sameElse : 'L'
},
relativeTime : {
future : 'pēc %s',
past : 'pirms %s',
s : relativeSeconds,
ss : relativeTimeWithPlural,
m : relativeTimeWithSingular,
mm : relativeTimeWithPlural,
h : relativeTimeWithSingular,
hh : relativeTimeWithPlural,
d : relativeTimeWithSingular,
dd : relativeTimeWithPlural,
M : relativeTimeWithSingular,
MM : relativeTimeWithPlural,
y : relativeTimeWithSingular,
yy : relativeTimeWithPlural
},
dayOfMonthOrdinalParse: /\d{1,2}\./,
ordinal : '%d.',
week : {
dow : 1, // Monday is the first day of the week.
doy : 4 // The week that contains Jan 4th is the first week of the year.
}
});
return lv;
})));
================================================
FILE: public/admin-panel/assets/libs/moment/locale/me.js
================================================
//! moment.js locale configuration
;(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined'
&& typeof require === 'function' ? factory(require('../moment')) :
typeof define === 'function' && define.amd ? define(['../moment'], factory) :
factory(global.moment)
}(this, (function (moment) { 'use strict';
var translator = {
words: { //Different grammatical cases
ss: ['sekund', 'sekunda', 'sekundi'],
m: ['jedan minut', 'jednog minuta'],
mm: ['minut', 'minuta', 'minuta'],
h: ['jedan sat', 'jednog sata'],
hh: ['sat', 'sata', 'sati'],
dd: ['dan', 'dana', 'dana'],
MM: ['mjesec', 'mjeseca', 'mjeseci'],
yy: ['godina', 'godine', 'godina']
},
correctGrammaticalCase: function (number, wordKey) {
return number === 1 ? wordKey[0] : (number >= 2 && number <= 4 ? wordKey[1] : wordKey[2]);
},
translate: function (number, withoutSuffix, key) {
var wordKey = translator.words[key];
if (key.length === 1) {
return withoutSuffix ? wordKey[0] : wordKey[1];
} else {
return number + ' ' + translator.correctGrammaticalCase(number, wordKey);
}
}
};
var me = moment.defineLocale('me', {
months: 'januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar'.split('_'),
monthsShort: 'jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.'.split('_'),
monthsParseExact : true,
weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split('_'),
weekdaysShort: 'ned._pon._uto._sri._čet._pet._sub.'.split('_'),
weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),
weekdaysParseExact : true,
longDateFormat: {
LT: 'H:mm',
LTS : 'H:mm:ss',
L: 'DD.MM.YYYY',
LL: 'D. MMMM YYYY',
LLL: 'D. MMMM YYYY H:mm',
LLLL: 'dddd, D. MMMM YYYY H:mm'
},
calendar: {
sameDay: '[danas u] LT',
nextDay: '[sjutra u] LT',
nextWeek: function () {
switch (this.day()) {
case 0:
return '[u] [nedjelju] [u] LT';
case 3:
return '[u] [srijedu] [u] LT';
case 6:
return '[u] [subotu] [u] LT';
case 1:
case 2:
case 4:
case 5:
return '[u] dddd [u] LT';
}
},
lastDay : '[juče u] LT',
lastWeek : function () {
var lastWeekDays = [
'[prošle] [nedjelje] [u] LT',
'[prošlog] [ponedjeljka] [u] LT',
'[prošlog] [utorka] [u] LT',
'[prošle] [srijede] [u] LT',
'[prošlog] [četvrtka] [u] LT',
'[prošlog] [petka] [u] LT',
'[prošle] [subote] [u] LT'
];
return lastWeekDays[this.day()];
},
sameElse : 'L'
},
relativeTime : {
future : 'za %s',
past : 'prije %s',
s : 'nekoliko sekundi',
ss : translator.translate,
m : translator.translate,
mm : translator.translate,
h : translator.translate,
hh : translator.translate,
d : 'dan',
dd : translator.translate,
M : 'mjesec',
MM : translator.translate,
y : 'godinu',
yy : translator.translate
},
dayOfMonthOrdinalParse: /\d{1,2}\./,
ordinal : '%d.',
week : {
dow : 1, // Monday is the first day of the week.
doy : 7 // The week that contains Jan 1st is the first week of the year.
}
});
return me;
})));
================================================
FILE: public/admin-panel/assets/libs/moment/locale/mi.js
================================================
//! moment.js locale configuration
;(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined'
&& typeof require === 'function' ? factory(require('../moment')) :
typeof define === 'function' && define.amd ? define(['../moment'], factory) :
factory(global.moment)
}(this, (function (moment) { 'use strict';
var mi = moment.defineLocale('mi', {
months: 'Kohi-tāte_Hui-tanguru_Poutū-te-rangi_Paenga-whāwhā_Haratua_Pipiri_Hōngoingoi_Here-turi-kōkā_Mahuru_Whiringa-ā-nuku_Whiringa-ā-rangi_Hakihea'.split('_'),
monthsShort: 'Kohi_Hui_Pou_Pae_Hara_Pipi_Hōngoi_Here_Mahu_Whi-nu_Whi-ra_Haki'.split('_'),
monthsRegex: /(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i,
monthsStrictRegex: /(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i,
monthsShortRegex: /(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i,
monthsShortStrictRegex: /(?:['a-z\u0101\u014D\u016B]+\-?){1,2}/i,
weekdays: 'Rātapu_Mane_Tūrei_Wenerei_Tāite_Paraire_Hātarei'.split('_'),
weekdaysShort: 'Ta_Ma_Tū_We_Tāi_Pa_Hā'.split('_'),
weekdaysMin: 'Ta_Ma_Tū_We_Tāi_Pa_Hā'.split('_'),
longDateFormat: {
LT: 'HH:mm',
LTS: 'HH:mm:ss',
L: 'DD/MM/YYYY',
LL: 'D MMMM YYYY',
LLL: 'D MMMM YYYY [i] HH:mm',
LLLL: 'dddd, D MMMM YYYY [i] HH:mm'
},
calendar: {
sameDay: '[i teie mahana, i] LT',
nextDay: '[apopo i] LT',
nextWeek: 'dddd [i] LT',
lastDay: '[inanahi i] LT',
lastWeek: 'dddd [whakamutunga i] LT',
sameElse: 'L'
},
relativeTime: {
future: 'i roto i %s',
past: '%s i mua',
s: 'te hēkona ruarua',
ss: '%d hēkona',
m: 'he meneti',
mm: '%d meneti',
h: 'te haora',
hh: '%d haora',
d: 'he ra',
dd: '%d ra',
M: 'he marama',
MM: '%d marama',
y: 'he tau',
yy: '%d tau'
},
dayOfMonthOrdinalParse: /\d{1,2}º/,
ordinal: '%dº',
week : {
dow : 1, // Monday is the first day of the week.
doy : 4 // The week that contains Jan 4th is the first week of the year.
}
});
return mi;
})));
================================================
FILE: public/admin-panel/assets/libs/moment/locale/mk.js
================================================
//! moment.js locale configuration
;(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined'
&& typeof require === 'function' ? factory(require('../moment')) :
typeof define === 'function' && define.amd ? define(['../moment'], factory) :
factory(global.moment)
}(this, (function (moment) { 'use strict';
var mk = moment.defineLocale('mk', {
months : 'јануари_февруари_март_април_мај_јуни_јули_август_септември_октомври_ноември_декември'.split('_'),
monthsShort : 'јан_фев_мар_апр_мај_јун_јул_авг_сеп_окт_ное_дек'.split('_'),
weekdays : 'недела_понеделник_вторник_среда_четврток_петок_сабота'.split('_'),
weekdaysShort : 'нед_пон_вто_сре_чет_пет_саб'.split('_'),
weekdaysMin : 'нe_пo_вт_ср_че_пе_сa'.split('_'),
longDateFormat : {
LT : 'H:mm',
LTS : 'H:mm:ss',
L : 'D.MM.YYYY',
LL : 'D MMMM YYYY',
LLL : 'D MMMM YYYY H:mm',
LLLL : 'dddd, D MMMM YYYY H:mm'
},
calendar : {
sameDay : '[Денес во] LT',
nextDay : '[Утре во] LT',
nextWeek : '[Во] dddd [во] LT',
lastDay : '[Вчера во] LT',
lastWeek : function () {
switch (this.day()) {
case 0:
case 3:
case 6:
return '[Изминатата] dddd [во] LT';
case 1:
case 2:
case 4:
case 5:
return '[Изминатиот] dddd [во] LT';
}
},
sameElse : 'L'
},
relativeTime : {
future : 'после %s',
past : 'пред %s',
s : 'неколку секунди',
ss : '%d секунди',
m : 'минута',
mm : '%d минути',
h : 'час',
hh : '%d часа',
d : 'ден',
dd : '%d дена',
M : 'месец',
MM : '%d месеци',
y : 'година',
yy : '%d години'
},
dayOfMonthOrdinalParse: /\d{1,2}-(ев|ен|ти|ви|ри|ми)/,
ordinal : function (number) {
var lastDigit = number % 10,
last2Digits = number % 100;
if (number === 0) {
return number + '-ев';
} else if (last2Digits === 0) {
return number + '-ен';
} else if (last2Digits > 10 && last2Digits < 20) {
return number + '-ти';
} else if (lastDigit === 1) {
return number + '-ви';
} else if (lastDigit === 2) {
return number + '-ри';
} else if (lastDigit === 7 || lastDigit === 8) {
return number + '-ми';
} else {
return number + '-ти';
}
},
week : {
dow : 1, // Monday is the first day of the week.
doy : 7 // The week that contains Jan 1st is the first week of the year.
}
});
return mk;
})));
================================================
FILE: public/admin-panel/assets/libs/moment/locale/ml.js
================================================
//! moment.js locale configuration
;(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined'
&& typeof require === 'function' ? factory(require('../moment')) :
typeof define === 'function' && define.amd ? define(['../moment'], factory) :
factory(global.moment)
}(this, (function (moment) { 'use strict';
var ml = moment.defineLocale('ml', {
months : 'ജനുവരി_ഫെബ്രുവരി_മാർച്ച്_ഏപ്രിൽ_മേയ്_ജൂൺ_ജൂലൈ_ഓഗസ്റ്റ്_സെപ്റ്റംബർ_ഒക്ടോബർ_നവംബർ_ഡിസംബർ'.split('_'),
monthsShort : 'ജനു._ഫെബ്രു._മാർ._ഏപ്രി._മേയ്_ജൂൺ_ജൂലൈ._ഓഗ._സെപ്റ്റ._ഒക്ടോ._നവം._ഡിസം.'.split('_'),
monthsParseExact : true,
weekdays : 'ഞായറാഴ്ച_തിങ്കളാഴ്ച_ചൊവ്വാഴ്ച_ബുധനാഴ്ച_വ്യാഴാഴ്ച_വെള്ളിയാഴ്ച_ശനിയാഴ്ച'.split('_'),
weekdaysShort : 'ഞായർ_തിങ്കൾ_ചൊവ്വ_ബുധൻ_വ്യാഴം_വെള്ളി_ശനി'.split('_'),
weekdaysMin : 'ഞാ_തി_ചൊ_ബു_വ്യാ_വെ_ശ'.split('_'),
longDateFormat : {
LT : 'A h:mm -നു',
LTS : 'A h:mm:ss -നു',
L : 'DD/MM/YYYY',
LL : 'D MMMM YYYY',
LLL : 'D MMMM YYYY, A h:mm -നു',
LLLL : 'dddd, D MMMM YYYY, A h:mm -നു'
},
calendar : {
sameDay : '[ഇന്ന്] LT',
nextDay : '[നാളെ] LT',
nextWeek : 'dddd, LT',
lastDay : '[ഇന്നലെ] LT',
lastWeek : '[കഴിഞ്ഞ] dddd, LT',
sameElse : 'L'
},
relativeTime : {
future : '%s കഴിഞ്ഞ്',
past : '%s മുൻപ്',
s : 'അൽപ നിമിഷങ്ങൾ',
ss : '%d സെക്കൻഡ്',
m : 'ഒരു മിനിറ്റ്',
mm : '%d മിനിറ്റ്',
h : 'ഒരു മണിക്കൂർ',
hh : '%d മണിക്കൂർ',
d : 'ഒരു ദിവസം',
dd : '%d ദിവസം',
M : 'ഒരു മാസം',
MM : '%d മാസം',
y : 'ഒരു വർഷം',
yy : '%d വർഷം'
},
meridiemParse: /രാത്രി|രാവിലെ|ഉച്ച കഴിഞ്ഞ്|വൈകുന്നേരം|രാത്രി/i,
meridiemHour : function (hour, meridiem) {
if (hour === 12) {
hour = 0;
}
if ((meridiem === 'രാത്രി' && hour >= 4) ||
meridiem === 'ഉച്ച കഴിഞ്ഞ്' ||
meridiem === 'വൈകുന്നേരം') {
return hour + 12;
} else {
return hour;
}
},
meridiem : function (hour, minute, isLower) {
if (hour < 4) {
return 'രാത്രി';
} else if (hour < 12) {
return 'രാവിലെ';
} else if (hour < 17) {
return 'ഉച്ച കഴിഞ്ഞ്';
} else if (hour < 20) {
return 'വൈകുന്നേരം';
} else {
return 'രാത്രി';
}
}
});
return ml;
})));
================================================
FILE: public/admin-panel/assets/libs/moment/locale/mn.js
================================================
//! moment.js locale configuration
;(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined'
&& typeof require === 'function' ? factory(require('../moment')) :
typeof define === 'function' && define.amd ? define(['../moment'], factory) :
factory(global.moment)
}(this, (function (moment) { 'use strict';
function translate(number, withoutSuffix, key, isFuture) {
switch (key) {
case 's':
return withoutSuffix ? 'хэдхэн секунд' : 'хэдхэн секундын';
case 'ss':
return number + (withoutSuffix ? ' секунд' : ' секундын');
case 'm':
case 'mm':
return number + (withoutSuffix ? ' минут' : ' минутын');
case 'h':
case 'hh':
return number + (withoutSuffix ? ' цаг' : ' цагийн');
case 'd':
case 'dd':
return number + (withoutSuffix ? ' өдөр' : ' өдрийн');
case 'M':
case 'MM':
return number + (withoutSuffix ? ' сар' : ' сарын');
case 'y':
case 'yy':
return number + (withoutSuffix ? ' жил' : ' жилийн');
default:
return number;
}
}
var mn = moment.defineLocale('mn', {
months : 'Нэгдүгээр сар_Хоёрдугаар сар_Гуравдугаар сар_Дөрөвдүгээр сар_Тавдугаар сар_Зургадугаар сар_Долдугаар сар_Наймдугаар сар_Есдүгээр сар_Аравдугаар сар_Арван нэгдүгээр сар_Арван хоёрдугаар сар'.split('_'),
monthsShort : '1 сар_2 сар_3 сар_4 сар_5 сар_6 сар_7 сар_8 сар_9 сар_10 сар_11 сар_12 сар'.split('_'),
monthsParseExact : true,
weekdays : 'Ням_Даваа_Мягмар_Лхагва_Пүрэв_Баасан_Бямба'.split('_'),
weekdaysShort : 'Ням_Дав_Мяг_Лха_Пүр_Баа_Бям'.split('_'),
weekdaysMin : 'Ня_Да_Мя_Лх_Пү_Ба_Бя'.split('_'),
weekdaysParseExact : true,
longDateFormat : {
LT : 'HH:mm',
LTS : 'HH:mm:ss',
L : 'YYYY-MM-DD',
LL : 'YYYY оны MMMMын D',
LLL : 'YYYY оны MMMMын D HH:mm',
LLLL : 'dddd, YYYY оны MMMMын D HH:mm'
},
meridiemParse: /ҮӨ|ҮХ/i,
isPM : function (input) {
return input === 'ҮХ';
},
meridiem : function (hour, minute, isLower) {
if (hour < 12) {
return 'ҮӨ';
} else {
return 'ҮХ';
}
},
calendar : {
sameDay : '[Өнөөдөр] LT',
nextDay : '[Маргааш] LT',
nextWeek : '[Ирэх] dddd LT',
lastDay : '[Өчигдөр] LT',
lastWeek : '[Өнгөрсөн] dddd LT',
sameElse : 'L'
},
relativeTime : {
future : '%s дараа',
past : '%s өмнө',
s : translate,
ss : translate,
m : translate,
mm : translate,
h : translate,
hh : translate,
d : translate,
dd : translate,
M : translate,
MM : translate,
y : translate,
yy : translate
},
dayOfMonthOrdinalParse: /\d{1,2} өдөр/,
ordinal : function (number, period) {
switch (period) {
case 'd':
case 'D':
case 'DDD':
return number + ' өдөр';
default:
return number;
}
}
});
return mn;
})));
================================================
FILE: public/admin-panel/assets/libs/moment/locale/mr.js
================================================
//! moment.js locale configuration
;(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined'
&& typeof require === 'function' ? factory(require('../moment')) :
typeof define === 'function' && define.amd ? define(['../moment'], factory) :
factory(global.moment)
}(this, (function (moment) { 'use strict';
var symbolMap = {
'1': '१',
'2': '२',
'3': '३',
'4': '४',
'5': '५',
'6': '६',
'7': '७',
'8': '८',
'9': '९',
'0': '०'
},
numberMap = {
'१': '1',
'२': '2',
'३': '3',
'४': '4',
'५': '5',
'६': '6',
'७': '7',
'८': '8',
'९': '9',
'०': '0'
};
function relativeTimeMr(number, withoutSuffix, string, isFuture)
{
var output = '';
if (withoutSuffix) {
switch (string) {
case 's': output = 'काही सेकंद'; break;
case 'ss': output = '%d सेकंद'; break;
case 'm': output = 'एक मिनिट'; break;
case 'mm': output = '%d मिनिटे'; break;
case 'h': output = 'एक तास'; break;
case 'hh': output = '%d तास'; break;
case 'd': output = 'एक दिवस'; break;
case 'dd': output = '%d दिवस'; break;
case 'M': output = 'एक महिना'; break;
case 'MM': output = '%d महिने'; break;
case 'y': output = 'एक वर्ष'; break;
case 'yy': output = '%d वर्षे'; break;
}
}
else {
switch (string) {
case 's': output = 'काही सेकंदां'; break;
case 'ss': output = '%d सेकंदां'; break;
case 'm': output = 'एका मिनिटा'; break;
case 'mm': output = '%d मिनिटां'; break;
case 'h': output = 'एका तासा'; break;
case 'hh': output = '%d तासां'; break;
case 'd': output = 'एका दिवसा'; break;
case 'dd': output = '%d दिवसां'; break;
case 'M': output = 'एका महिन्या'; break;
case 'MM': output = '%d महिन्यां'; break;
case 'y': output = 'एका वर्षा'; break;
case 'yy': output = '%d वर्षां'; break;
}
}
return output.replace(/%d/i, number);
}
var mr = moment.defineLocale('mr', {
months : 'जानेवारी_फेब्रुवारी_मार्च_एप्रिल_मे_जून_जुलै_ऑगस्ट_सप्टेंबर_ऑक्टोबर_नोव्हेंबर_डिसेंबर'.split('_'),
monthsShort: 'जाने._फेब्रु._मार्च._एप्रि._मे._जून._जुलै._ऑग._सप्टें._ऑक्टो._नोव्हें._डिसें.'.split('_'),
monthsParseExact : true,
weekdays : 'रविवार_सोमवार_मंगळवार_बुधवार_गुरूवार_शुक्रवार_शनिवार'.split('_'),
weekdaysShort : 'रवि_सोम_मंगळ_बुध_गुरू_शुक्र_शनि'.split('_'),
weekdaysMin : 'र_सो_मं_बु_गु_शु_श'.split('_'),
longDateFormat : {
LT : 'A h:mm वाजता',
LTS : 'A h:mm:ss वाजता',
L : 'DD/MM/YYYY',
LL : 'D MMMM YYYY',
LLL : 'D MMMM YYYY, A h:mm वाजता',
LLLL : 'dddd, D MMMM YYYY, A h:mm वाजता'
},
calendar : {
sameDay : '[आज] LT',
nextDay : '[उद्या] LT',
nextWeek : 'dddd, LT',
lastDay : '[काल] LT',
lastWeek: '[मागील] dddd, LT',
sameElse : 'L'
},
relativeTime : {
future: '%sमध्ये',
past: '%sपूर्वी',
s: relativeTimeMr,
ss: relativeTimeMr,
m: relativeTimeMr,
mm: relativeTimeMr,
h: relativeTimeMr,
hh: relativeTimeMr,
d: relativeTimeMr,
dd: relativeTimeMr,
M: relativeTimeMr,
MM: relativeTimeMr,
y: relativeTimeMr,
yy: relativeTimeMr
},
preparse: function (string) {
return string.replace(/[१२३४५६७८९०]/g, function (match) {
return numberMap[match];
});
},
postformat: function (string) {
return string.replace(/\d/g, function (match) {
return symbolMap[match];
});
},
meridiemParse: /रात्री|सकाळी|दुपारी|सायंकाळी/,
meridiemHour : function (hour, meridiem) {
if (hour === 12) {
hour = 0;
}
if (meridiem === 'रात्री') {
return hour < 4 ? hour : hour + 12;
} else if (meridiem === 'सकाळी') {
return hour;
} else if (meridiem === 'दुपारी') {
return hour >= 10 ? hour : hour + 12;
} else if (meridiem === 'सायंकाळी') {
return hour + 12;
}
},
meridiem: function (hour, minute, isLower) {
if (hour < 4) {
return 'रात्री';
} else if (hour < 10) {
return 'सकाळी';
} else if (hour < 17) {
return 'दुपारी';
} else if (hour < 20) {
return 'सायंकाळी';
} else {
return 'रात्री';
}
},
week : {
dow : 0, // Sunday is the first day of the week.
doy : 6 // The week that contains Jan 1st is the first week of the year.
}
});
return mr;
})));
================================================
FILE: public/admin-panel/assets/libs/moment/locale/ms-my.js
================================================
//! moment.js locale configuration
;(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined'
&& typeof require === 'function' ? factory(require('../moment')) :
typeof define === 'function' && define.amd ? define(['../moment'], factory) :
factory(global.moment)
}(this, (function (moment) { 'use strict';
var msMy = moment.defineLocale('ms-my', {
months : 'Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember'.split('_'),
monthsShort : 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis'.split('_'),
weekdays : 'Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu'.split('_'),
weekdaysShort : 'Ahd_Isn_Sel_Rab_Kha_Jum_Sab'.split('_'),
weekdaysMin : 'Ah_Is_Sl_Rb_Km_Jm_Sb'.split('_'),
longDateFormat : {
LT : 'HH.mm',
LTS : 'HH.mm.ss',
L : 'DD/MM/YYYY',
LL : 'D MMMM YYYY',
LLL : 'D MMMM YYYY [pukul] HH.mm',
LLLL : 'dddd, D MMMM YYYY [pukul] HH.mm'
},
meridiemParse: /pagi|tengahari|petang|malam/,
meridiemHour: function (hour, meridiem) {
if (hour === 12) {
hour = 0;
}
if (meridiem === 'pagi') {
return hour;
} else if (meridiem === 'tengahari') {
return hour >= 11 ? hour : hour + 12;
} else if (meridiem === 'petang' || meridiem === 'malam') {
return hour + 12;
}
},
meridiem : function (hours, minutes, isLower) {
if (hours < 11) {
return 'pagi';
} else if (hours < 15) {
return 'tengahari';
} else if (hours < 19) {
return 'petang';
} else {
return 'malam';
}
},
calendar : {
sameDay : '[Hari ini pukul] LT',
nextDay : '[Esok pukul] LT',
nextWeek : 'dddd [pukul] LT',
lastDay : '[Kelmarin pukul] LT',
lastWeek : 'dddd [lepas pukul] LT',
sameElse : 'L'
},
relativeTime : {
future : 'dalam %s',
past : '%s yang lepas',
s : 'beberapa saat',
ss : '%d saat',
m : 'seminit',
mm : '%d minit',
h : 'sejam',
hh : '%d jam',
d : 'sehari',
dd : '%d hari',
M : 'sebulan',
MM : '%d bulan',
y : 'setahun',
yy : '%d tahun'
},
week : {
dow : 1, // Monday is the first day of the week.
doy : 7 // The week that contains Jan 1st is the first week of the year.
}
});
return msMy;
})));
================================================
FILE: public/admin-panel/assets/libs/moment/locale/ms.js
================================================
//! moment.js locale configuration
;(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined'
&& typeof require === 'function' ? factory(require('../moment')) :
typeof define === 'function' && define.amd ? define(['../moment'], factory) :
factory(global.moment)
}(this, (function (moment) { 'use strict';
var ms = moment.defineLocale('ms', {
months : 'Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember'.split('_'),
monthsShort : 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis'.split('_'),
weekdays : 'Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu'.split('_'),
weekdaysShort : 'Ahd_Isn_Sel_Rab_Kha_Jum_Sab'.split('_'),
weekdaysMin : 'Ah_Is_Sl_Rb_Km_Jm_Sb'.split('_'),
longDateFormat : {
LT : 'HH.mm',
LTS : 'HH.mm.ss',
L : 'DD/MM/YYYY',
LL : 'D MMMM YYYY',
LLL : 'D MMMM YYYY [pukul] HH.mm',
LLLL : 'dddd, D MMMM YYYY [pukul] HH.mm'
},
meridiemParse: /pagi|tengahari|petang|malam/,
meridiemHour: function (hour, meridiem) {
if (hour === 12) {
hour = 0;
}
if (meridiem === 'pagi') {
return hour;
} else if (meridiem === 'tengahari') {
return hour >= 11 ? hour : hour + 12;
} else if (meridiem === 'petang' || meridiem === 'malam') {
return hour + 12;
}
},
meridiem : function (hours, minutes, isLower) {
if (hours < 11) {
return 'pagi';
} else if (hours < 15) {
return 'tengahari';
} else if (hours < 19) {
return 'petang';
} else {
return 'malam';
}
},
calendar : {
sameDay : '[Hari ini pukul] LT',
nextDay : '[Esok pukul] LT',
nextWeek : 'dddd [pukul] LT',
lastDay : '[Kelmarin pukul] LT',
lastWeek : 'dddd [lepas pukul] LT',
sameElse : 'L'
},
relativeTime : {
future : 'dalam %s',
past : '%s yang lepas',
s : 'beberapa saat',
ss : '%d saat',
m : 'seminit',
mm : '%d minit',
h : 'sejam',
hh : '%d jam',
d : 'sehari',
dd : '%d hari',
M : 'sebulan',
MM : '%d bulan',
y : 'setahun',
yy : '%d tahun'
},
week : {
dow : 1, // Monday is the first day of the week.
doy : 7 // The week that contains Jan 1st is the first week of the year.
}
});
return ms;
})));
================================================
FILE: public/admin-panel/assets/libs/moment/locale/mt.js
================================================
//! moment.js locale configuration
;(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined'
&& typeof require === 'function' ? factory(require('../moment')) :
typeof define === 'function' && define.amd ? define(['../moment'], factory) :
factory(global.moment)
}(this, (function (moment) { 'use strict';
var mt = moment.defineLocale('mt', {
months : 'Jannar_Frar_Marzu_April_Mejju_Ġunju_Lulju_Awwissu_Settembru_Ottubru_Novembru_Diċembru'.split('_'),
monthsShort : 'Jan_Fra_Mar_Apr_Mej_Ġun_Lul_Aww_Set_Ott_Nov_Diċ'.split('_'),
weekdays : 'Il-Ħadd_It-Tnejn_It-Tlieta_L-Erbgħa_Il-Ħamis_Il-Ġimgħa_Is-Sibt'.split('_'),
weekdaysShort : 'Ħad_Tne_Tli_Erb_Ħam_Ġim_Sib'.split('_'),
weekdaysMin : 'Ħa_Tn_Tl_Er_Ħa_Ġi_Si'.split('_'),
longDateFormat : {
LT : 'HH:mm',
LTS : 'HH:mm:ss',
L : 'DD/MM/YYYY',
LL : 'D MMMM YYYY',
LLL : 'D MMMM YYYY HH:mm',
LLLL : 'dddd, D MMMM YYYY HH:mm'
},
calendar : {
sameDay : '[Illum fil-]LT',
nextDay : '[Għada fil-]LT',
nextWeek : 'dddd [fil-]LT',
lastDay : '[Il-bieraħ fil-]LT',
lastWeek : 'dddd [li għadda] [fil-]LT',
sameElse : 'L'
},
relativeTime : {
future : 'f’ %s',
past : '%s ilu',
s : 'ftit sekondi',
ss : '%d sekondi',
m : 'minuta',
mm : '%d minuti',
h : 'siegħa',
hh : '%d siegħat',
d : 'ġurnata',
dd : '%d ġranet',
M : 'xahar',
MM : '%d xhur',
y : 'sena',
yy : '%d sni'
},
dayOfMonthOrdinalParse : /\d{1,2}º/,
ordinal: '%dº',
week : {
dow : 1, // Monday is the first day of the week.
doy : 4 // The week that contains Jan 4th is the first week of the year.
}
});
return mt;
})));
================================================
FILE: public/admin-panel/assets/libs/moment/locale/my.js
================================================
//! moment.js locale configuration
;(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined'
&& typeof require === 'function' ? factory(require('../moment')) :
typeof define === 'function' && define.amd ? define(['../moment'], factory) :
factory(global.moment)
}(this, (function (moment) { 'use strict';
var symbolMap = {
'1': '၁',
'2': '၂',
'3': '၃',
'4': '၄',
'5': '၅',
'6': '၆',
'7': '၇',
'8': '၈',
'9': '၉',
'0': '၀'
}, numberMap = {
'၁': '1',
'၂': '2',
'၃': '3',
'၄': '4',
'၅': '5',
'၆': '6',
'၇': '7',
'၈': '8',
'၉': '9',
'၀': '0'
};
var my = moment.defineLocale('my', {
months: 'ဇန်နဝါရီ_ဖေဖော်ဝါရီ_မတ်_ဧပြီ_မေ_ဇွန်_ဇူလိုင်_သြဂုတ်_စက်တင်ဘာ_အောက်တိုဘာ_နိုဝင်ဘာ_ဒီဇင်ဘာ'.split('_'),
monthsShort: 'ဇန်_ဖေ_မတ်_ပြီ_မေ_ဇွန်_လိုင်_သြ_စက်_အောက်_နို_ဒီ'.split('_'),
weekdays: 'တနင်္ဂနွေ_တနင်္လာ_အင်္ဂါ_ဗုဒ္ဓဟူး_ကြာသပတေး_သောကြာ_စနေ'.split('_'),
weekdaysShort: 'နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ'.split('_'),
weekdaysMin: 'နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ'.split('_'),
longDateFormat: {
LT: 'HH:mm',
LTS: 'HH:mm:ss',
L: 'DD/MM/YYYY',
LL: 'D MMMM YYYY',
LLL: 'D MMMM YYYY HH:mm',
LLLL: 'dddd D MMMM YYYY HH:mm'
},
calendar: {
sameDay: '[ယနေ.] LT [မှာ]',
nextDay: '[မနက်ဖြန်] LT [မှာ]',
nextWeek: 'dddd LT [မှာ]',
lastDay: '[မနေ.က] LT [မှာ]',
lastWeek: '[ပြီးခဲ့သော] dddd LT [မှာ]',
sameElse: 'L'
},
relativeTime: {
future: 'လာမည့် %s မှာ',
past: 'လွန်ခဲ့သော %s က',
s: 'စက္ကန်.အနည်းငယ်',
ss : '%d စက္ကန့်',
m: 'တစ်မိနစ်',
mm: '%d မိနစ်',
h: 'တစ်နာရီ',
hh: '%d နာရီ',
d: 'တစ်ရက်',
dd: '%d ရက်',
M: 'တစ်လ',
MM: '%d လ',
y: 'တစ်နှစ်',
yy: '%d နှစ်'
},
preparse: function (string) {
return string.replace(/[၁၂၃၄၅၆၇၈၉၀]/g, function (match) {
return numberMap[match];
});
},
postformat: function (string) {
return string.replace(/\d/g, function (match) {
return symbolMap[match];
});
},
week: {
dow: 1, // Monday is the first day of the week.
doy: 4 // The week that contains Jan 1st is the first week of the year.
}
});
return my;
})));
================================================
FILE: public/admin-panel/assets/libs/moment/locale/nb.js
================================================
//! moment.js locale configuration
;(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined'
&& typeof require === 'function' ? factory(require('../moment')) :
typeof define === 'function' && define.amd ? define(['../moment'], factory) :
factory(global.moment)
}(this, (function (moment) { 'use strict';
var nb = moment.defineLocale('nb', {
months : 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split('_'),
monthsShort : 'jan._feb._mars_april_mai_juni_juli_aug._sep._okt._nov._des.'.split('_'),
monthsParseExact : true,
weekdays : 'søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag'.split('_'),
weekdaysShort : 'sø._ma._ti._on._to._fr._lø.'.split('_'),
weekdaysMin : 'sø_ma_ti_on_to_fr_lø'.split('_'),
weekdaysParseExact : true,
longDateFormat : {
LT : 'HH:mm',
LTS : 'HH:mm:ss',
L : 'DD.MM.YYYY',
LL : 'D. MMMM YYYY',
LLL : 'D. MMMM YYYY [kl.] HH:mm',
LLLL : 'dddd D. MMMM YYYY [kl.] HH:mm'
},
calendar : {
sameDay: '[i dag kl.] LT',
nextDay: '[i morgen kl.] LT',
nextWeek: 'dddd [kl.] LT',
lastDay: '[i går kl.] LT',
lastWeek: '[forrige] dddd [kl.] LT',
sameElse: 'L'
},
relativeTime : {
future : 'om %s',
past : '%s siden',
s : 'noen sekunder',
ss : '%d sekunder',
m : 'ett minutt',
mm : '%d minutter',
h : 'en time',
hh : '%d timer',
d : 'en dag',
dd : '%d dager',
M : 'en måned',
MM : '%d måneder',
y : 'ett år',
yy : '%d år'
},
dayOfMonthOrdinalParse: /\d{1,2}\./,
ordinal : '%d.',
week : {
dow : 1, // Monday is the first day of the week.
doy : 4 // The week that contains Jan 4th is the first week of the year.
}
});
return nb;
})));
================================================
FILE: public/admin-panel/assets/libs/moment/locale/ne.js
================================================
//! moment.js locale configuration
;(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined'
&& typeof require === 'function' ? factory(require('../moment')) :
typeof define === 'function' && define.amd ? define(['../moment'], factory) :
factory(global.moment)
}(this, (function (moment) { 'use strict';
var symbolMap = {
'1': '१',
'2': '२',
'3': '३',
'4': '४',
'5': '५',
'6': '६',
'7': '७',
'8': '८',
'9': '९',
'0': '०'
},
numberMap = {
'१': '1',
'२': '2',
'३': '3',
'४': '4',
'५': '5',
'६': '6',
'७': '7',
'८': '8',
'९': '9',
'०': '0'
};
var ne = moment.defineLocale('ne', {
months : 'जनवरी_फेब्रुवरी_मार्च_अप्रिल_मई_जुन_जुलाई_अगष्ट_सेप्टेम्बर_अक्टोबर_नोभेम्बर_डिसेम्बर'.split('_'),
monthsShort : 'जन._फेब्रु._मार्च_अप्रि._मई_जुन_जुलाई._अग._सेप्ट._अक्टो._नोभे._डिसे.'.split('_'),
monthsParseExact : true,
weekdays : 'आइतबार_सोमबार_मङ्गलबार_बुधबार_बिहिबार_शुक्रबार_शनिबार'.split('_'),
weekdaysShort : 'आइत._सोम._मङ्गल._बुध._बिहि._शुक्र._शनि.'.split('_'),
weekdaysMin : 'आ._सो._मं._बु._बि._शु._श.'.split('_'),
weekdaysParseExact : true,
longDateFormat : {
LT : 'Aको h:mm बजे',
LTS : 'Aको h:mm:ss बजे',
L : 'DD/MM/YYYY',
LL : 'D MMMM YYYY',
LLL : 'D MMMM YYYY, Aको h:mm बजे',
LLLL : 'dddd, D MMMM YYYY, Aको h:mm बजे'
},
preparse: function (string) {
return string.replace(/[१२३४५६७८९०]/g, function (match) {
return numberMap[match];
});
},
postformat: function (string) {
return string.replace(/\d/g, function (match) {
return symbolMap[match];
});
},
meridiemParse: /राति|बिहान|दिउँसो|साँझ/,
meridiemHour : function (hour, meridiem) {
if (hour === 12) {
hour = 0;
}
if (meridiem === 'राति') {
return hour < 4 ? hour : hour + 12;
} else if (meridiem === 'बिहान') {
return hour;
} else if (meridiem === 'दिउँसो') {
return hour >= 10 ? hour : hour + 12;
} else if (meridiem === 'साँझ') {
return hour + 12;
}
},
meridiem : function (hour, minute, isLower) {
if (hour < 3) {
return 'राति';
} else if (hour < 12) {
return 'बिहान';
} else if (hour < 16) {
return 'दिउँसो';
} else if (hour < 20) {
return 'साँझ';
} else {
return 'राति';
}
},
calendar : {
sameDay : '[आज] LT',
nextDay : '[भोलि] LT',
nextWeek : '[आउँदो] dddd[,] LT',
lastDay : '[हिजो] LT',
lastWeek : '[गएको] dddd[,] LT',
sameElse : 'L'
},
relativeTime : {
future : '%sमा',
past : '%s अगाडि',
s : 'केही क्षण',
ss : '%d सेकेण्ड',
m : 'एक मिनेट',
mm : '%d मिनेट',
h : 'एक घण्टा',
hh : '%d घण्टा',
d : 'एक दिन',
dd : '%d दिन',
M : 'एक महिना',
MM : '%d महिना',
y : 'एक बर्ष',
yy : '%d बर्ष'
},
week : {
dow : 0, // Sunday is the first day of the week.
doy : 6 // The week that contains Jan 1st is the first week of the year.
}
});
return ne;
})));
================================================
FILE: public/admin-panel/assets/libs/moment/locale/nl-be.js
================================================
//! moment.js locale configuration
;(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined'
&& typeof require === 'function' ? factory(require('../moment')) :
typeof define === 'function' && define.amd ? define(['../moment'], factory) :
factory(global.moment)
}(this, (function (moment) { 'use strict';
var monthsShortWithDots = 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split('_'),
monthsShortWithoutDots = 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split('_');
var monthsParse = [/^jan/i, /^feb/i, /^maart|mrt.?$/i, /^apr/i, /^mei$/i, /^jun[i.]?$/i, /^jul[i.]?$/i, /^aug/i, /^sep/i, /^okt/i, /^nov/i, /^dec/i];
var monthsRegex = /^(januari|februari|maart|april|mei|april|ju[nl]i|augustus|september|oktober|november|december|jan\.?|feb\.?|mrt\.?|apr\.?|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i;
var nlBe = moment.defineLocale('nl-be', {
months : 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split('_'),
monthsShort : function (m, format) {
if (!m) {
return monthsShortWithDots;
} else if (/-MMM-/.test(format)) {
return monthsShortWithoutDots[m.month()];
} else {
return monthsShortWithDots[m.month()];
}
},
monthsRegex: monthsRegex,
monthsShortRegex: monthsRegex,
monthsStrictRegex: /^(januari|februari|maart|mei|ju[nl]i|april|augustus|september|oktober|november|december)/i,
monthsShortStrictRegex: /^(jan\.?|feb\.?|mrt\.?|apr\.?|mei|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i,
monthsParse : monthsParse,
longMonthsParse : monthsParse,
shortMonthsParse : monthsParse,
weekdays : 'zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag'.split('_'),
weekdaysShort : 'zo._ma._di._wo._do._vr._za.'.split('_'),
weekdaysMin : 'zo_ma_di_wo_do_vr_za'.split('_'),
weekdaysParseExact : true,
longDateFormat : {
LT : 'HH:mm',
LTS : 'HH:mm:ss',
L : 'DD/MM/YYYY',
LL : 'D MMMM YYYY',
LLL : 'D MMMM YYYY HH:mm',
LLLL : 'dddd D MMMM YYYY HH:mm'
},
calendar : {
sameDay: '[vandaag om] LT',
nextDay: '[morgen om] LT',
nextWeek: 'dddd [om] LT',
lastDay: '[gisteren om] LT',
lastWeek: '[afgelopen] dddd [om] LT',
sameElse: 'L'
},
relativeTime : {
future : 'over %s',
past : '%s geleden',
s : 'een paar seconden',
ss : '%d seconden',
m : 'één minuut',
mm : '%d minuten',
h : 'één uur',
hh : '%d uur',
d : 'één dag',
dd : '%d dagen',
M : 'één maand',
MM : '%d maanden',
y : 'één jaar',
yy : '%d jaar'
},
dayOfMonthOrdinalParse: /\d{1,2}(ste|de)/,
ordinal : function (number) {
return number + ((number === 1 || number === 8 || number >= 20) ? 'ste' : 'de');
},
week : {
dow : 1, // Monday is the first day of the week.
doy : 4 // The week that contains Jan 4th is the first week of the year.
}
});
return nlBe;
})));
================================================
FILE: public/admin-panel/assets/libs/moment/locale/nl.js
================================================
//! moment.js locale configuration
;(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined'
&& typeof require === 'function' ? factory(require('../moment')) :
typeof define === 'function' && define.amd ? define(['../moment'], factory) :
factory(global.moment)
}(this, (function (moment) { 'use strict';
var monthsShortWithDots = 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split('_'),
monthsShortWithoutDots = 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split('_');
var monthsParse = [/^jan/i, /^feb/i, /^maart|mrt.?$/i, /^apr/i, /^mei$/i, /^jun[i.]?$/i, /^jul[i.]?$/i, /^aug/i, /^sep/i, /^okt/i, /^nov/i, /^dec/i];
var monthsRegex = /^(januari|februari|maart|april|mei|april|ju[nl]i|augustus|september|oktober|november|december|jan\.?|feb\.?|mrt\.?|apr\.?|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i;
var nl = moment.defineLocale('nl', {
months : 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split('_'),
monthsShort : function (m, format) {
if (!m) {
return monthsShortWithDots;
} else if (/-MMM-/.test(format)) {
return monthsShortWithoutDots[m.month()];
} else {
return monthsShortWithDots[m.month()];
}
},
monthsRegex: monthsRegex,
monthsShortRegex: monthsRegex,
monthsStrictRegex: /^(januari|februari|maart|mei|ju[nl]i|april|augustus|september|oktober|november|december)/i,
monthsShortStrictRegex: /^(jan\.?|feb\.?|mrt\.?|apr\.?|mei|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i,
monthsParse : monthsParse,
longMonthsParse : monthsParse,
shortMonthsParse : monthsParse,
weekdays : 'zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag'.split('_'),
weekdaysShort : 'zo._ma._di._wo._do._vr._za.'.split('_'),
weekdaysMin : 'zo_ma_di_wo_do_vr_za'.split('_'),
weekdaysParseExact : true,
longDateFormat : {
LT : 'HH:mm',
LTS : 'HH:mm:ss',
L : 'DD-MM-YYYY',
LL : 'D MMMM YYYY',
LLL : 'D MMMM YYYY HH:mm',
LLLL : 'dddd D MMMM YYYY HH:mm'
},
calendar : {
sameDay: '[vandaag om] LT',
nextDay: '[morgen om] LT',
nextWeek: 'dddd [om] LT',
lastDay: '[gisteren om] LT',
lastWeek: '[afgelopen] dddd [om] LT',
sameElse: 'L'
},
relativeTime : {
future : 'over %s',
past : '%s geleden',
s : 'een paar seconden',
ss : '%d seconden',
m : 'één minuut',
mm : '%d minuten',
h : 'één uur',
hh : '%d uur',
d : 'één dag',
dd : '%d dagen',
M : 'één maand',
MM : '%d maanden',
y : 'één jaar',
yy : '%d jaar'
},
dayOfMonthOrdinalParse: /\d{1,2}(ste|de)/,
ordinal : function (number) {
return number + ((number === 1 || number === 8 || number >= 20) ? 'ste' : 'de');
},
week : {
dow : 1, // Monday is the first day of the week.
doy : 4 // The week that contains Jan 4th is the first week of the year.
}
});
return nl;
})));
================================================
FILE: public/admin-panel/assets/libs/moment/locale/nn.js
================================================
//! moment.js locale configuration
;(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined'
&& typeof require === 'function' ? factory(require('../moment')) :
typeof define === 'function' && define.amd ? define(['../moment'], factory) :
factory(global.moment)
}(this, (function (moment) { 'use strict';
var nn = moment.defineLocale('nn', {
months : 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split('_'),
monthsShort : 'jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_'),
weekdays : 'sundag_måndag_tysdag_onsdag_torsdag_fredag_laurdag'.split('_'),
weekdaysShort : 'sun_mån_tys_ons_tor_fre_lau'.split('_'),
weekdaysMin : 'su_må_ty_on_to_fr_lø'.split('_'),
longDateFormat : {
LT : 'HH:mm',
LTS : 'HH:mm:ss',
L : 'DD.MM.YYYY',
LL : 'D. MMMM YYYY',
LLL : 'D. MMMM YYYY [kl.] H:mm',
LLLL : 'dddd D. MMMM YYYY [kl.] HH:mm'
},
calendar : {
sameDay: '[I dag klokka] LT',
nextDay: '[I morgon klokka] LT',
nextWeek: 'dddd [klokka] LT',
lastDay: '[I går klokka] LT',
lastWeek: '[Føregåande] dddd [klokka] LT',
sameElse: 'L'
},
relativeTime : {
future : 'om %s',
past : '%s sidan',
s : 'nokre sekund',
ss : '%d sekund',
m : 'eit minutt',
mm : '%d minutt',
h : 'ein time',
hh : '%d timar',
d : 'ein dag',
dd : '%d dagar',
M : 'ein månad',
MM : '%d månader',
y : 'eit år',
yy : '%d år'
},
dayOfMonthOrdinalParse: /\d{1,2}\./,
ordinal : '%d.',
week : {
dow : 1, // Monday is the first day of the week.
doy : 4 // The week that contains Jan 4th is the first week of the year.
}
});
return nn;
})));
================================================
FILE: public/admin-panel/assets/libs/moment/locale/pa-in.js
================================================
//! moment.js locale configuration
;(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined'
&& typeof require === 'function' ? factory(require('../moment')) :
typeof define === 'function' && define.amd ? define(['../moment'], factory) :
factory(global.moment)
}(this, (function (moment) { 'use strict';
var symbolMap = {
'1': '੧',
'2': '੨',
'3': '੩',
'4': '੪',
'5': '੫',
'6': '੬',
'7': '੭',
'8': '੮',
'9': '੯',
'0': '੦'
},
numberMap = {
'੧': '1',
'੨': '2',
'੩': '3',
'੪': '4',
'੫': '5',
'੬': '6',
'੭': '7',
'੮': '8',
'੯': '9',
'੦': '0'
};
var paIn = moment.defineLocale('pa-in', {
// There are months name as per Nanakshahi Calender but they are not used as rigidly in modern Punjabi.
months : 'ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ'.split('_'),
monthsShort : 'ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ'.split('_'),
weekdays : 'ਐਤਵਾਰ_ਸੋਮਵਾਰ_ਮੰਗਲਵਾਰ_ਬੁਧਵਾਰ_ਵੀਰਵਾਰ_ਸ਼ੁੱਕਰਵਾਰ_ਸ਼ਨੀਚਰਵਾਰ'.split('_'),
weekdaysShort : 'ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ'.split('_'),
weekdaysMin : 'ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ'.split('_'),
longDateFormat : {
LT : 'A h:mm ਵਜੇ',
LTS : 'A h:mm:ss ਵਜੇ',
L : 'DD/MM/YYYY',
LL : 'D MMMM YYYY',
LLL : 'D MMMM YYYY, A h:mm ਵਜੇ',
LLLL : 'dddd, D MMMM YYYY, A h:mm ਵਜੇ'
},
calendar : {
sameDay : '[ਅਜ] LT',
nextDay : '[ਕਲ] LT',
nextWeek : 'dddd, LT',
lastDay : '[ਕਲ] LT',
lastWeek : '[ਪਿਛਲੇ] dddd, LT',
sameElse : 'L'
},
relativeTime : {
future : '%s ਵਿੱਚ',
past : '%s ਪਿਛਲੇ',
s : 'ਕੁਝ ਸਕਿੰਟ',
ss : '%d ਸਕਿੰਟ',
m : 'ਇਕ ਮਿੰਟ',
mm : '%d ਮਿੰਟ',
h : 'ਇੱਕ ਘੰਟਾ',
hh : '%d ਘੰਟੇ',
d : 'ਇੱਕ ਦਿਨ',
dd : '%d ਦਿਨ',
M : 'ਇੱਕ ਮਹੀਨਾ',
MM : '%d ਮਹੀਨੇ',
y : 'ਇੱਕ ਸਾਲ',
yy : '%d ਸਾਲ'
},
preparse: function (string) {
return string.replace(/[੧੨੩੪੫੬੭੮੯੦]/g, function (match) {
return numberMap[match];
});
},
postformat: function (string) {
return string.replace(/\d/g, function (match) {
return symbolMap[match];
});
},
// Punjabi notation for meridiems are quite fuzzy in practice. While there exists
// a rigid notion of a 'Pahar' it is not used as rigidly in modern Punjabi.
meridiemParse: /ਰਾਤ|ਸਵੇਰ|ਦੁਪਹਿਰ|ਸ਼ਾਮ/,
meridiemHour : function (hour, meridiem) {
if (hour === 12) {
hour = 0;
}
if (meridiem === 'ਰਾਤ') {
return hour < 4 ? hour : hour + 12;
} else if (meridiem === 'ਸਵੇਰ') {
return hour;
} else if (meridiem === 'ਦੁਪਹਿਰ') {
return hour >= 10 ? hour : hour + 12;
} else if (meridiem === 'ਸ਼ਾਮ') {
return hour + 12;
}
},
meridiem : function (hour, minute, isLower) {
if (hour < 4) {
return 'ਰਾਤ';
} else if (hour < 10) {
return 'ਸਵੇਰ';
} else if (hour < 17) {
return 'ਦੁਪਹਿਰ';
} else if (hour < 20) {
return 'ਸ਼ਾਮ';
} else {
return 'ਰਾਤ';
}
},
week : {
dow : 0, // Sunday is the first day of the week.
doy : 6 // The week that contains Jan 1st is the first week of the year.
}
});
return paIn;
})));
================================================
FILE: public/admin-panel/assets/libs/moment/locale/pl.js
================================================
//! moment.js locale configuration
;(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined'
&& typeof require === 'function' ? factory(require('../moment')) :
typeof define === 'function' && define.amd ? define(['../moment'], factory) :
factory(global.moment)
}(this, (function (moment) { 'use strict';
var monthsNominative = 'styczeń_luty_marzec_kwiecień_maj_czerwiec_lipiec_sierpień_wrzesień_październik_listopad_grudzień'.split('_'),
monthsSubjective = 'stycznia_lutego_marca_kwietnia_maja_czerwca_lipca_sierpnia_września_października_listopada_grudnia'.split('_');
function plural(n) {
return (n % 10 < 5) && (n % 10 > 1) && ((~~(n / 10) % 10) !== 1);
}
function translate(number, withoutSuffix, key) {
var result = number + ' ';
switch (key) {
case 'ss':
return result + (plural(number) ? 'sekundy' : 'sekund');
case 'm':
return withoutSuffix ? 'minuta' : 'minutę';
case 'mm':
return result + (plural(number) ? 'minuty' : 'minut');
case 'h':
return withoutSuffix ? 'godzina' : 'godzinę';
case 'hh':
return result + (plural(number) ? 'godziny' : 'godzin');
case 'MM':
return result + (plural(number) ? 'miesiące' : 'miesięcy');
case 'yy':
return result + (plural(number) ? 'lata' : 'lat');
}
}
var pl = moment.defineLocale('pl', {
months : function (momentToFormat, format) {
if (!momentToFormat) {
return monthsNominative;
} else if (format === '') {
// Hack: if format empty we know this is used to generate
// RegExp by moment. Give then back both valid forms of months
// in RegExp ready format.
return '(' + monthsSubjective[momentToFormat.month()] + '|' + monthsNominative[momentToFormat.month()] + ')';
} else if (/D MMMM/.test(format)) {
return monthsSubjective[momentToFormat.month()];
} else {
return monthsNominative[momentToFormat.month()];
}
},
monthsShort : 'sty_lut_mar_kwi_maj_cze_lip_sie_wrz_paź_lis_gru'.split('_'),
weekdays : 'niedziela_poniedziałek_wtorek_środa_czwartek_piątek_sobota'.split('_'),
weekdaysShort : 'ndz_pon_wt_śr_czw_pt_sob'.split('_'),
weekdaysMin : 'Nd_Pn_Wt_Śr_Cz_Pt_So'.split('_'),
longDateFormat : {
LT : 'HH:mm',
LTS : 'HH:mm:ss',
L : 'DD.MM.YYYY',
LL : 'D MMMM YYYY',
LLL : 'D MMMM YYYY HH:mm',
LLLL : 'dddd, D MMMM YYYY HH:mm'
},
calendar : {
sameDay: '[Dziś o] LT',
nextDay: '[Jutro o] LT',
nextWeek: function () {
switch (this.day()) {
case 0:
return '[W niedzielę o] LT';
case 2:
return '[We wtorek o] LT';
case 3:
return '[W środę o] LT';
case 6:
return '[W sobotę o] LT';
default:
return '[W] dddd [o] LT';
}
},
lastDay: '[Wczoraj o] LT',
lastWeek: function () {
switch (this.day()) {
case 0:
return '[W zeszłą niedzielę o] LT';
case 3:
return '[W zeszłą środę o] LT';
case 6:
return '[W zeszłą sobotę o] LT';
default:
return '[W zeszły] dddd [o] LT';
}
},
sameElse: 'L'
},
relativeTime : {
future : 'za %s',
past : '%s temu',
s : 'kilka sekund',
ss : translate,
m : translate,
mm : translate,
h : translate,
hh : translate,
d : '1 dzień',
dd : '%d dni',
M : 'miesiąc',
MM : translate,
y : 'rok',
yy : translate
},
dayOfMonthOrdinalParse: /\d{1,2}\./,
ordinal : '%d.',
week : {
dow : 1, // Monday is the first day of the week.
doy : 4 // The week that contains Jan 4th is the first week of the year.
}
});
return pl;
})));
================================================
FILE: public/admin-panel/assets/libs/moment/locale/pt-br.js
================================================
//! moment.js locale configuration
;(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined'
&& typeof require === 'function' ? factory(require('../moment')) :
typeof define === 'function' && define.amd ? define(['../moment'], factory) :
factory(global.moment)
}(this, (function (moment) { 'use strict';
var ptBr = moment.defineLocale('pt-br', {
months : 'janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro'.split('_'),
monthsShort : 'jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez'.split('_'),
weekdays : 'Domingo_Segunda-feira_Terça-feira_Quarta-feira_Quinta-feira_Sexta-feira_Sábado'.split('_'),
weekdaysShort : 'Dom_Seg_Ter_Qua_Qui_Sex_Sáb'.split('_'),
weekdaysMin : 'Do_2ª_3ª_4ª_5ª_6ª_Sá'.split('_'),
weekdaysParseExact : true,
longDateFormat : {
LT : 'HH:mm',
LTS : 'HH:mm:ss',
L : 'DD/MM/YYYY',
LL : 'D [de] MMMM [de] YYYY',
LLL : 'D [de] MMMM [de] YYYY [às] HH:mm',
LLLL : 'dddd, D [de] MMMM [de] YYYY [às] HH:mm'
},
calendar : {
sameDay: '[Hoje às] LT',
nextDay: '[Amanhã às] LT',
nextWeek: 'dddd [às] LT',
lastDay: '[Ontem às] LT',
lastWeek: function () {
return (this.day() === 0 || this.day() === 6) ?
'[Último] dddd [às] LT' : // Saturday + Sunday
'[Última] dddd [às] LT'; // Monday - Friday
},
sameElse: 'L'
},
relativeTime : {
future : 'em %s',
past : 'há %s',
s : 'poucos segundos',
ss : '%d segundos',
m : 'um minuto',
mm : '%d minutos',
h : 'uma hora',
hh : '%d horas',
d : 'um dia',
dd : '%d dias',
M : 'um mês',
MM : '%d meses',
y : 'um ano',
yy : '%d anos'
},
dayOfMonthOrdinalParse: /\d{1,2}º/,
ordinal : '%dº'
});
return ptBr;
})));
================================================
FILE: public/admin-panel/assets/libs/moment/locale/pt.js
================================================
//! moment.js locale configuration
;(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined'
&& typeof require === 'function' ? factory(require('../moment')) :
typeof define === 'function' && define.amd ? define(['../moment'], factory) :
factory(global.moment)
}(this, (function (moment) { 'use strict';
var pt = moment.defineLocale('pt', {
months : 'janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro'.split('_'),
monthsShort : 'jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez'.split('_'),
weekdays : 'Domingo_Segunda-feira_Terça-feira_Quarta-feira_Quinta-feira_Sexta-feira_Sábado'.split('_'),
weekdaysShort : 'Dom_Seg_Ter_Qua_Qui_Sex_Sáb'.split('_'),
weekdaysMin : 'Do_2ª_3ª_4ª_5ª_6ª_Sá'.split('_'),
weekdaysParseExact : true,
longDateFormat : {
LT : 'HH:mm',
LTS : 'HH:mm:ss',
L : 'DD/MM/YYYY',
LL : 'D [de] MMMM [de] YYYY',
LLL : 'D [de] MMMM [de] YYYY HH:mm',
LLLL : 'dddd, D [de] MMMM [de] YYYY HH:mm'
},
calendar : {
sameDay: '[Hoje às] LT',
nextDay: '[Amanhã às] LT',
nextWeek: 'dddd [às] LT',
lastDay: '[Ontem às] LT',
lastWeek: function () {
return (this.day() === 0 || this.day() === 6) ?
'[Último] dddd [às] LT' : // Saturday + Sunday
'[Última] dddd [às] LT'; // Monday - Friday
},
sameElse: 'L'
},
relativeTime : {
future : 'em %s',
past : 'há %s',
s : 'segundos',
ss : '%d segundos',
m : 'um minuto',
mm : '%d minutos',
h : 'uma hora',
hh : '%d horas',
d : 'um dia',
dd : '%d dias',
M : 'um mês',
MM : '%d meses',
y : 'um ano',
yy : '%d anos'
},
dayOfMonthOrdinalParse: /\d{1,2}º/,
ordinal : '%dº',
week : {
dow : 1, // Monday is the first day of the week.
doy : 4 // The week that contains Jan 4th is the first week of the year.
}
});
return pt;
})));
================================================
FILE: public/admin-panel/assets/libs/moment/locale/ro.js
================================================
//! moment.js locale configuration
;(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined'
&& typeof require === 'function' ? factory(require('../moment')) :
typeof define === 'function' && define.amd ? define(['../moment'], factory) :
factory(global.moment)
}(this, (function (moment) { 'use strict';
function relativeTimeWithPlural(number, withoutSuffix, key) {
var format = {
'ss': 'secunde',
'mm': 'minute',
'hh': 'ore',
'dd': 'zile',
'MM': 'luni',
'yy': 'ani'
},
separator = ' ';
if (number % 100 >= 20 || (number >= 100 && number % 100 === 0)) {
separator = ' de ';
}
return number + separator + format[key];
}
var ro = moment.defineLocale('ro', {
months : 'ianuarie_februarie_martie_aprilie_mai_iunie_iulie_august_septembrie_octombrie_noiembrie_decembrie'.split('_'),
monthsShort : 'ian._febr._mart._apr._mai_iun._iul._aug._sept._oct._nov._dec.'.split('_'),
monthsParseExact: true,
weekdays : 'duminică_luni_marți_miercuri_joi_vineri_sâmbătă'.split('_'),
weekdaysShort : 'Dum_Lun_Mar_Mie_Joi_Vin_Sâm'.split('_'),
weekdaysMin : 'Du_Lu_Ma_Mi_Jo_Vi_Sâ'.split('_'),
longDateFormat : {
LT : 'H:mm',
LTS : 'H:mm:ss',
L : 'DD.MM.YYYY',
LL : 'D MMMM YYYY',
LLL : 'D MMMM YYYY H:mm',
LLLL : 'dddd, D MMMM YYYY H:mm'
},
calendar : {
sameDay: '[azi la] LT',
nextDay: '[mâine la] LT',
nextWeek: 'dddd [la] LT',
lastDay: '[ieri la] LT',
lastWeek: '[fosta] dddd [la] LT',
sameElse: 'L'
},
relativeTime : {
future : 'peste %s',
past : '%s în urmă',
s : 'câteva secunde',
ss : relativeTimeWithPlural,
m : 'un minut',
mm : relativeTimeWithPlural,
h : 'o oră',
hh : relativeTimeWithPlural,
d : 'o zi',
dd : relativeTimeWithPlural,
M : 'o lună',
MM : relativeTimeWithPlural,
y : 'un an',
yy : relativeTimeWithPlural
},
week : {
dow : 1, // Monday is the first day of the week.
doy : 7 // The week that contains Jan 1st is the first week of the year.
}
});
return ro;
})));
================================================
FILE: public/admin-panel/assets/libs/moment/locale/ru.js
================================================
//! moment.js locale configuration
;(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined'
&& typeof require === 'function' ? factory(require('../moment')) :
typeof define === 'function' && define.amd ? define(['../moment'], factory) :
factory(global.moment)
}(this, (function (moment) { 'use strict';
function plural(word, num) {
var forms = word.split('_');
return num % 10 === 1 && num % 100 !== 11 ? forms[0] : (num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) ? forms[1] : forms[2]);
}
function relativeTimeWithPlural(number, withoutSuffix, key) {
var format = {
'ss': withoutSuffix ? 'секунда_секунды_секунд' : 'секунду_секунды_секунд',
'mm': withoutSuffix ? 'минута_минуты_минут' : 'минуту_минуты_минут',
'hh': 'час_часа_часов',
'dd': 'день_дня_дней',
'MM': 'месяц_месяца_месяцев',
'yy': 'год_года_лет'
};
if (key === 'm') {
return withoutSuffix ? 'минута' : 'минуту';
}
else {
return number + ' ' + plural(format[key], +number);
}
}
var monthsParse = [/^янв/i, /^фев/i, /^мар/i, /^апр/i, /^ма[йя]/i, /^июн/i, /^июл/i, /^авг/i, /^сен/i, /^окт/i, /^ноя/i, /^дек/i];
// http://new.gramota.ru/spravka/rules/139-prop : § 103
// Сокращения месяцев: http://new.gramota.ru/spravka/buro/search-answer?s=242637
// CLDR data: http://www.unicode.org/cldr/charts/28/summary/ru.html#1753
var ru = moment.defineLocale('ru', {
months : {
format: 'января_февраля_марта_апреля_мая_июня_июля_августа_сентября_октября_ноября_декабря'.split('_'),
standalone: 'январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь'.split('_')
},
monthsShort : {
// по CLDR именно "июл." и "июн.", но какой смысл менять букву на точку ?
format: 'янв._февр._мар._апр._мая_июня_июля_авг._сент._окт._нояб._дек.'.split('_'),
standalone: 'янв._февр._март_апр._май_июнь_июль_авг._сент._окт._нояб._дек.'.split('_')
},
weekdays : {
standalone: 'воскресенье_понедельник_вторник_среда_четверг_пятница_суббота'.split('_'),
format: 'воскресенье_понедельник_вторник_среду_четверг_пятницу_субботу'.split('_'),
isFormat: /\[ ?[Вв] ?(?:прошлую|следующую|эту)? ?\] ?dddd/
},
weekdaysShort : 'вс_пн_вт_ср_чт_пт_сб'.split('_'),
weekdaysMin : 'вс_пн_вт_ср_чт_пт_сб'.split('_'),
monthsParse : monthsParse,
longMonthsParse : monthsParse,
shortMonthsParse : monthsParse,
// полные названия с падежами, по три буквы, для некоторых, по 4 буквы, сокращения с точкой и без точки
monthsRegex: /^(январ[ья]|янв\.?|феврал[ья]|февр?\.?|марта?|мар\.?|апрел[ья]|апр\.?|ма[йя]|июн[ья]|июн\.?|июл[ья]|июл\.?|августа?|авг\.?|сентябр[ья]|сент?\.?|октябр[ья]|окт\.?|ноябр[ья]|нояб?\.?|декабр[ья]|дек\.?)/i,
// копия предыдущего
monthsShortRegex: /^(январ[ья]|янв\.?|феврал[ья]|февр?\.?|марта?|мар\.?|апрел[ья]|апр\.?|ма[йя]|июн[ья]|июн\.?|июл[ья]|июл\.?|августа?|авг\.?|сентябр[ья]|сент?\.?|октябр[ья]|окт\.?|ноябр[ья]|нояб?\.?|декабр[ья]|дек\.?)/i,
// полные названия с падежами
monthsStrictRegex: /^(январ[яь]|феврал[яь]|марта?|апрел[яь]|ма[яй]|июн[яь]|июл[яь]|августа?|сентябр[яь]|октябр[яь]|ноябр[яь]|декабр[яь])/i,
// Выражение, которое соотвествует только сокращённым формам
monthsShortStrictRegex: /^(янв\.|февр?\.|мар[т.]|апр\.|ма[яй]|июн[ья.]|июл[ья.]|авг\.|сент?\.|окт\.|нояб?\.|дек\.)/i,
longDateFormat : {
LT : 'H:mm',
LTS : 'H:mm:ss',
L : 'DD.MM.YYYY',
LL : 'D MMMM YYYY г.',
LLL : 'D MMMM YYYY г., H:mm',
LLLL : 'dddd, D MMMM YYYY г., H:mm'
},
calendar : {
sameDay: '[Сегодня, в] LT',
nextDay: '[Завтра, в] LT',
lastDay: '[Вчера, в] LT',
nextWeek: function (now) {
if (now.week() !== this.week()) {
switch (this.day()) {
case 0:
return '[В следующее] dddd, [в] LT';
case 1:
case 2:
case 4:
return '[В следующий] dddd, [в] LT';
case 3:
case 5:
case 6:
return '[В следующую] dddd, [в] LT';
}
} else {
if (this.day() === 2) {
return '[Во] dddd, [в] LT';
} else {
return '[В] dddd, [в] LT';
}
}
},
lastWeek: function (now) {
if (now.week() !== this.week()) {
switch (this.day()) {
case 0:
return '[В прошлое] dddd, [в] LT';
case 1:
case 2:
case 4:
return '[В прошлый] dddd, [в] LT';
case 3:
case 5:
case 6:
return '[В прошлую] dddd, [в] LT';
}
} else {
if (this.day() === 2) {
return '[Во] dddd, [в] LT';
} else {
return '[В] dddd, [в] LT';
}
}
},
sameElse: 'L'
},
relativeTime : {
future : 'через %s',
past : '%s назад',
s : 'несколько секунд',
ss : relativeTimeWithPlural,
m : relativeTimeWithPlural,
mm : relativeTimeWithPlural,
h : 'час',
hh : relativeTimeWithPlural,
d : 'день',
dd : relativeTimeWithPlural,
M : 'месяц',
MM : relativeTimeWithPlural,
y : 'год',
yy : relativeTimeWithPlural
},
meridiemParse: /ночи|утра|дня|вечера/i,
isPM : function (input) {
return /^(дня|вечера)$/.test(input);
},
meridiem : function (hour, minute, isLower) {
if (hour < 4) {
return 'ночи';
} else if (hour < 12) {
return 'утра';
} else if (hour < 17) {
return 'дня';
} else {
return 'вечера';
}
},
dayOfMonthOrdinalParse: /\d{1,2}-(й|го|я)/,
ordinal: function (number, period) {
switch (period) {
case 'M':
case 'd':
case 'DDD':
return number + '-й';
case 'D':
return number + '-го';
case 'w':
case 'W':
return number + '-я';
default:
return number;
}
},
week : {
dow : 1, // Monday is the first day of the week.
doy : 4 // The week that contains Jan 4th is the first week of the year.
}
});
return ru;
})));
================================================
FILE: public/admin-panel/assets/libs/moment/locale/sd.js
================================================
//! moment.js locale configuration
;(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined'
&& typeof require === 'function' ? factory(require('../moment')) :
typeof define === 'function' && define.amd ? define(['../moment'], factory) :
factory(global.moment)
}(this, (function (moment) { 'use strict';
var months = [
'جنوري',
'فيبروري',
'مارچ',
'اپريل',
'مئي',
'جون',
'جولاءِ',
'آگسٽ',
'سيپٽمبر',
'آڪٽوبر',
'نومبر',
'ڊسمبر'
];
var days = [
'آچر',
'سومر',
'اڱارو',
'اربع',
'خميس',
'جمع',
'ڇنڇر'
];
var sd = moment.defineLocale('sd', {
months : months,
monthsShort : months,
weekdays : days,
weekdaysShort : days,
weekdaysMin : days,
longDateFormat : {
LT : 'HH:mm',
LTS : 'HH:mm:ss',
L : 'DD/MM/YYYY',
LL : 'D MMMM YYYY',
LLL : 'D MMMM YYYY HH:mm',
LLLL : 'dddd، D MMMM YYYY HH:mm'
},
meridiemParse: /صبح|شام/,
isPM : function (input) {
return 'شام' === input;
},
meridiem : function (hour, minute, isLower) {
if (hour < 12) {
return 'صبح';
}
return 'شام';
},
calendar : {
sameDay : '[اڄ] LT',
nextDay : '[سڀاڻي] LT',
nextWeek : 'dddd [اڳين هفتي تي] LT',
lastDay : '[ڪالهه] LT',
lastWeek : '[گزريل هفتي] dddd [تي] LT',
sameElse : 'L'
},
relativeTime : {
future : '%s پوء',
past : '%s اڳ',
s : 'چند سيڪنڊ',
ss : '%d سيڪنڊ',
m : 'هڪ منٽ',
mm : '%d منٽ',
h : 'هڪ ڪلاڪ',
hh : '%d ڪلاڪ',
d : 'هڪ ڏينهن',
dd : '%d ڏينهن',
M : 'هڪ مهينو',
MM : '%d مهينا',
y : 'هڪ سال',
yy : '%d سال'
},
preparse: function (string) {
return string.replace(/،/g, ',');
},
postformat: function (string) {
return string.replace(/,/g, '،');
},
week : {
dow : 1, // Monday is the first day of the week.
doy : 4 // The week that contains Jan 4th is the first week of the year.
}
});
return sd;
})));
================================================
FILE: public/admin-panel/assets/libs/moment/locale/se.js
================================================
//! moment.js locale configuration
;(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined'
&& typeof require === 'function' ? factory(require('../moment')) :
typeof define === 'function' && define.amd ? define(['../moment'], factory) :
factory(global.moment)
}(this, (function (moment) { 'use strict';
var se = moment.defineLocale('se', {
months : 'ođđajagemánnu_guovvamánnu_njukčamánnu_cuoŋománnu_miessemánnu_geassemánnu_suoidnemánnu_borgemánnu_čakčamánnu_golggotmánnu_skábmamánnu_juovlamánnu'.split('_'),
monthsShort : 'ođđj_guov_njuk_cuo_mies_geas_suoi_borg_čakč_golg_skáb_juov'.split('_'),
weekdays : 'sotnabeaivi_vuossárga_maŋŋebárga_gaskavahkku_duorastat_bearjadat_lávvardat'.split('_'),
weekdaysShort : 'sotn_vuos_maŋ_gask_duor_bear_láv'.split('_'),
weekdaysMin : 's_v_m_g_d_b_L'.split('_'),
longDateFormat : {
LT : 'HH:mm',
LTS : 'HH:mm:ss',
L : 'DD.MM.YYYY',
LL : 'MMMM D. [b.] YYYY',
LLL : 'MMMM D. [b.] YYYY [ti.] HH:mm',
LLLL : 'dddd, MMMM D. [b.] YYYY [ti.] HH:mm'
},
calendar : {
sameDay: '[otne ti] LT',
nextDay: '[ihttin ti] LT',
nextWeek: 'dddd [ti] LT',
lastDay: '[ikte ti] LT',
lastWeek: '[ovddit] dddd [ti] LT',
sameElse: 'L'
},
relativeTime : {
future : '%s geažes',
past : 'maŋit %s',
s : 'moadde sekunddat',
ss: '%d sekunddat',
m : 'okta minuhta',
mm : '%d minuhtat',
h : 'okta diimmu',
hh : '%d diimmut',
d : 'okta beaivi',
dd : '%d beaivvit',
M : 'okta mánnu',
MM : '%d mánut',
y : 'okta jahki',
yy : '%d jagit'
},
dayOfMonthOrdinalParse: /\d{1,2}\./,
ordinal : '%d.',
week : {
dow : 1, // Monday is the first day of the week.
doy : 4 // The week that contains Jan 4th is the first week of the year.
}
});
return se;
})));
================================================
FILE: public/admin-panel/assets/libs/moment/locale/si.js
================================================
//! moment.js locale configuration
;(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined'
&& typeof require === 'function' ? factory(require('../moment')) :
typeof define === 'function' && define.amd ? define(['../moment'], factory) :
factory(global.moment)
}(this, (function (moment) { 'use strict';
/*jshint -W100*/
var si = moment.defineLocale('si', {
months : 'ජනවාරි_පෙබරවාරි_මාර්තු_අප්රේල්_මැයි_ජූනි_ජූලි_අගෝස්තු_සැප්තැම්බර්_ඔක්තෝබර්_නොවැම්බර්_දෙසැම්බර්'.split('_'),
monthsShort : 'ජන_පෙබ_මාර්_අප්_මැයි_ජූනි_ජූලි_අගෝ_සැප්_ඔක්_නොවැ_දෙසැ'.split('_'),
weekdays : 'ඉරිදා_සඳුදා_අඟහරුවාදා_බදාදා_බ්රහස්පතින්දා_සිකුරාදා_සෙනසුරාදා'.split('_'),
weekdaysShort : 'ඉරි_සඳු_අඟ_බදා_බ්රහ_සිකු_සෙන'.split('_'),
weekdaysMin : 'ඉ_ස_අ_බ_බ්ර_සි_සෙ'.split('_'),
weekdaysParseExact : true,
longDateFormat : {
LT : 'a h:mm',
LTS : 'a h:mm:ss',
L : 'YYYY/MM/DD',
LL : 'YYYY MMMM D',
LLL : 'YYYY MMMM D, a h:mm',
LLLL : 'YYYY MMMM D [වැනි] dddd, a h:mm:ss'
},
calendar : {
sameDay : '[අද] LT[ට]',
nextDay : '[හෙට] LT[ට]',
nextWeek : 'dddd LT[ට]',
lastDay : '[ඊයේ] LT[ට]',
lastWeek : '[පසුගිය] dddd LT[ට]',
sameElse : 'L'
},
relativeTime : {
future : '%sකින්',
past : '%sකට පෙර',
s : 'තත්පර කිහිපය',
ss : 'තත්පර %d',
m : 'මිනිත්තුව',
mm : 'මිනිත්තු %d',
h : 'පැය',
hh : 'පැය %d',
d : 'දිනය',
dd : 'දින %d',
M : 'මාසය',
MM : 'මාස %d',
y : 'වසර',
yy : 'වසර %d'
},
dayOfMonthOrdinalParse: /\d{1,2} වැනි/,
ordinal : function (number) {
return number + ' වැනි';
},
meridiemParse : /පෙර වරු|පස් වරු|පෙ.ව|ප.ව./,
isPM : function (input) {
return input === 'ප.ව.' || input === 'පස් වරු';
},
meridiem : function (hours, minutes, isLower) {
if (hours > 11) {
return isLower ? 'ප.ව.' : 'පස් වරු';
} else {
return isLower ? 'පෙ.ව.' : 'පෙර වරු';
}
}
});
return si;
})));
================================================
FILE: public/admin-panel/assets/libs/moment/locale/sk.js
================================================
//! moment.js locale configuration
;(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined'
&& typeof require === 'function' ? factory(require('../moment')) :
typeof define === 'function' && define.amd ? define(['../moment'], factory) :
factory(global.moment)
}(this, (function (moment) { 'use strict';
var months = 'január_február_marec_apríl_máj_jún_júl_august_september_október_november_december'.split('_'),
monthsShort = 'jan_feb_mar_apr_máj_jún_júl_aug_sep_okt_nov_dec'.split('_');
function plural(n) {
return (n > 1) && (n < 5);
}
function translate(number, withoutSuffix, key, isFuture) {
var result = number + ' ';
switch (key) {
case 's': // a few seconds / in a few seconds / a few seconds ago
return (withoutSuffix || isFuture) ? 'pár sekúnd' : 'pár sekundami';
case 'ss': // 9 seconds / in 9 seconds / 9 seconds ago
if (withoutSuffix || isFuture) {
return result + (plural(number) ? 'sekundy' : 'sekúnd');
} else {
return result + 'sekundami';
}
break;
case 'm': // a minute / in a minute / a minute ago
return withoutSuffix ? 'minúta' : (isFuture ? 'minútu' : 'minútou');
case 'mm': // 9 minutes / in 9 minutes / 9 minutes ago
if (withoutSuffix || isFuture) {
return result + (plural(number) ? 'minúty' : 'minút');
} else {
return result + 'minútami';
}
break;
case 'h': // an hour / in an hour / an hour ago
return withoutSuffix ? 'hodina' : (isFuture ? 'hodinu' : 'hodinou');
case 'hh': // 9 hours / in 9 hours / 9 hours ago
if (withoutSuffix || isFuture) {
return result + (plural(number) ? 'hodiny' : 'hodín');
} else {
return result + 'hodinami';
}
break;
case 'd': // a day / in a day / a day ago
return (withoutSuffix || isFuture) ? 'deň' : 'dňom';
case 'dd': // 9 days / in 9 days / 9 days ago
if (withoutSuffix || isFuture) {
return result + (plural(number) ? 'dni' : 'dní');
} else {
return result + 'dňami';
}
break;
case 'M': // a month / in a month / a month ago
return (withoutSuffix || isFuture) ? 'mesiac' : 'mesiacom';
case 'MM': // 9 months / in 9 months / 9 months ago
if (withoutSuffix || isFuture) {
return result + (plural(number) ? 'mesiace' : 'mesiacov');
} else {
return result + 'mesiacmi';
}
break;
case 'y': // a year / in a year / a year ago
return (withoutSuffix || isFuture) ? 'rok' : 'rokom';
case 'yy': // 9 years / in 9 years / 9 years ago
if (withoutSuffix || isFuture) {
return result + (plural(number) ? 'roky' : 'rokov');
} else {
return result + 'rokmi';
}
break;
}
}
var sk = moment.defineLocale('sk', {
months : months,
monthsShort : monthsShort,
weekdays : 'nedeľa_pondelok_utorok_streda_štvrtok_piatok_sobota'.split('_'),
weekdaysShort : 'ne_po_ut_st_št_pi_so'.split('_'),
weekdaysMin : 'ne_po_ut_st_št_pi_so'.split('_'),
longDateFormat : {
LT: 'H:mm',
LTS : 'H:mm:ss',
L : 'DD.MM.YYYY',
LL : 'D. MMMM YYYY',
LLL : 'D. MMMM YYYY H:mm',
LLLL : 'dddd D. MMMM YYYY H:mm'
},
calendar : {
sameDay: '[dnes o] LT',
nextDay: '[zajtra o] LT',
nextWeek: function () {
switch (this.day()) {
case 0:
return '[v nedeľu o] LT';
case 1:
case 2:
return '[v] dddd [o] LT';
case 3:
return '[v stredu o] LT';
case 4:
return '[vo štvrtok o] LT';
case 5:
return '[v piatok o] LT';
case 6:
return '[v sobotu o] LT';
}
},
lastDay: '[včera o] LT',
lastWeek: function () {
switch (this.day()) {
case 0:
return '[minulú nedeľu o] LT';
case 1:
case 2:
return '[minulý] dddd [o] LT';
case 3:
return '[minulú stredu o] LT';
case 4:
case 5:
return '[minulý] dddd [o] LT';
case 6:
return '[minulú sobotu o] LT';
}
},
sameElse: 'L'
},
relativeTime : {
future : 'za %s',
past : 'pred %s',
s : translate,
ss : translate,
m : translate,
mm : translate,
h : translate,
hh : translate,
d : translate,
dd : translate,
M : translate,
MM : translate,
y : translate,
yy : translate
},
dayOfMonthOrdinalParse: /\d{1,2}\./,
ordinal : '%d.',
week : {
dow : 1, // Monday is the first day of the week.
doy : 4 // The week that contains Jan 4th is the first week of the year.
}
});
return sk;
})));
================================================
FILE: public/admin-panel/assets/libs/moment/locale/sl.js
================================================
//! moment.js locale configuration
;(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined'
&& typeof require === 'function' ? factory(require('../moment')) :
typeof define === 'function' && define.amd ? define(['../moment'], factory) :
factory(global.moment)
}(this, (function (moment) { 'use strict';
function processRelativeTime(number, withoutSuffix, key, isFuture) {
var result = number + ' ';
switch (key) {
case 's':
return withoutSuffix || isFuture ? 'nekaj sekund' : 'nekaj sekundami';
case 'ss':
if (number === 1) {
result += withoutSuffix ? 'sekundo' : 'sekundi';
} else if (number === 2) {
result += withoutSuffix || isFuture ? 'sekundi' : 'sekundah';
} else if (number < 5) {
result += withoutSuffix || isFuture ? 'sekunde' : 'sekundah';
} else {
result += withoutSuffix || isFuture ? 'sekund' : 'sekund';
}
return result;
case 'm':
return withoutSuffix ? 'ena minuta' : 'eno minuto';
case 'mm':
if (number === 1) {
result += withoutSuffix ? 'minuta' : 'minuto';
} else if (number === 2) {
result += withoutSuffix || isFuture ? 'minuti' : 'minutama';
} else if (number < 5) {
result += withoutSuffix || isFuture ? 'minute' : 'minutami';
} else {
result += withoutSuffix || isFuture ? 'minut' : 'minutami';
}
return result;
case 'h':
return withoutSuffix ? 'ena ura' : 'eno uro';
case 'hh':
if (number === 1) {
result += withoutSuffix ? 'ura' : 'uro';
} else if (number === 2) {
result += withoutSuffix || isFuture ? 'uri' : 'urama';
} else if (number < 5) {
result += withoutSuffix || isFuture ? 'ure' : 'urami';
} else {
result += withoutSuffix || isFuture ? 'ur' : 'urami';
}
return result;
case 'd':
return withoutSuffix || isFuture ? 'en dan' : 'enim dnem';
case 'dd':
if (number === 1) {
result += withoutSuffix || isFuture ? 'dan' : 'dnem';
} else if (number === 2) {
result += withoutSuffix || isFuture ? 'dni' : 'dnevoma';
} else {
result += withoutSuffix || isFuture ? 'dni' : 'dnevi';
}
return result;
case 'M':
return withoutSuffix || isFuture ? 'en mesec' : 'enim mesecem';
case 'MM':
if (number === 1) {
result += withoutSuffix || isFuture ? 'mesec' : 'mesecem';
} else if (number === 2) {
result += withoutSuffix || isFuture ? 'meseca' : 'mesecema';
} else if (number < 5) {
result += withoutSuffix || isFuture ? 'mesece' : 'meseci';
} else {
result += withoutSuffix || isFuture ? 'mesecev' : 'meseci';
}
return result;
case 'y':
return withoutSuffix || isFuture ? 'eno leto' : 'enim letom';
case 'yy':
if (number === 1) {
result += withoutSuffix || isFuture ? 'leto' : 'letom';
} else if (number === 2) {
result += withoutSuffix || isFuture ? 'leti' : 'letoma';
} else if (number < 5) {
result += withoutSuffix || isFuture ? 'leta' : 'leti';
} else {
result += withoutSuffix || isFuture ? 'let' : 'leti';
}
return result;
}
}
var sl = moment.defineLocale('sl', {
months : 'januar_februar_marec_april_maj_junij_julij_avgust_september_oktober_november_december'.split('_'),
monthsShort : 'jan._feb._mar._apr._maj._jun._jul._avg._sep._okt._nov._dec.'.split('_'),
monthsParseExact: true,
weekdays : 'nedelja_ponedeljek_torek_sreda_četrtek_petek_sobota'.split('_'),
weekdaysShort : 'ned._pon._tor._sre._čet._pet._sob.'.split('_'),
weekdaysMin : 'ne_po_to_sr_če_pe_so'.split('_'),
weekdaysParseExact : true,
longDateFormat : {
LT : 'H:mm',
LTS : 'H:mm:ss',
L : 'DD.MM.YYYY',
LL : 'D. MMMM YYYY',
LLL : 'D. MMMM YYYY H:mm',
LLLL : 'dddd, D. MMMM YYYY H:mm'
},
calendar : {
sameDay : '[danes ob] LT',
nextDay : '[jutri ob] LT',
nextWeek : function () {
switch (this.day()) {
case 0:
return '[v] [nedeljo] [ob] LT';
case 3:
return '[v] [sredo] [ob] LT';
case 6:
return '[v] [soboto] [ob] LT';
case 1:
case 2:
case 4:
case 5:
return '[v] dddd [ob] LT';
}
},
lastDay : '[včeraj ob] LT',
lastWeek : function () {
switch (this.day()) {
case 0:
return '[prejšnjo] [nedeljo] [ob] LT';
case 3:
return '[prejšnjo] [sredo] [ob] LT';
case 6:
return '[prejšnjo] [soboto] [ob] LT';
case 1:
case 2:
case 4:
case 5:
return '[prejšnji] dddd [ob] LT';
}
},
sameElse : 'L'
},
relativeTime : {
future : 'čez %s',
past : 'pred %s',
s : processRelativeTime,
ss : processRelativeTime,
m : processRelativeTime,
mm : processRelativeTime,
h : processRelativeTime,
hh : processRelativeTime,
d : processRelativeTime,
dd : processRelativeTime,
M : processRelativeTime,
MM : processRelativeTime,
y : processRelativeTime,
yy : processRelativeTime
},
dayOfMonthOrdinalParse: /\d{1,2}\./,
ordinal : '%d.',
week : {
dow : 1, // Monday is the first day of the week.
doy : 7 // The week that contains Jan 1st is the first week of the year.
}
});
return sl;
})));
================================================
FILE: public/admin-panel/assets/libs/moment/locale/sq.js
================================================
//! moment.js locale configuration
;(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined'
&& typeof require === 'function' ? factory(require('../moment')) :
typeof define === 'function' && define.amd ? define(['../moment'], factory) :
factory(global.moment)
}(this, (function (moment) { 'use strict';
var sq = moment.defineLocale('sq', {
months : 'Janar_Shkurt_Mars_Prill_Maj_Qershor_Korrik_Gusht_Shtator_Tetor_Nëntor_Dhjetor'.split('_'),
monthsShort : 'Jan_Shk_Mar_Pri_Maj_Qer_Kor_Gus_Sht_Tet_Nën_Dhj'.split('_'),
weekdays : 'E Diel_E Hënë_E Martë_E Mërkurë_E Enjte_E Premte_E Shtunë'.split('_'),
weekdaysShort : 'Die_Hën_Mar_Mër_Enj_Pre_Sht'.split('_'),
weekdaysMin : 'D_H_Ma_Më_E_P_Sh'.split('_'),
weekdaysParseExact : true,
meridiemParse: /PD|MD/,
isPM: function (input) {
return input.charAt(0) === 'M';
},
meridiem : function (hours, minutes, isLower) {
return hours < 12 ? 'PD' : 'MD';
},
longDateFormat : {
LT : 'HH:mm',
LTS : 'HH:mm:ss',
L : 'DD/MM/YYYY',
LL : 'D MMMM YYYY',
LLL : 'D MMMM YYYY HH:mm',
LLLL : 'dddd, D MMMM YYYY HH:mm'
},
calendar : {
sameDay : '[Sot në] LT',
nextDay : '[Nesër në] LT',
nextWeek : 'dddd [në] LT',
lastDay : '[Dje në] LT',
lastWeek : 'dddd [e kaluar në] LT',
sameElse : 'L'
},
relativeTime : {
future : 'në %s',
past : '%s më parë',
s : 'disa sekonda',
ss : '%d sekonda',
m : 'një minutë',
mm : '%d minuta',
h : 'një orë',
hh : '%d orë',
d : 'një ditë',
dd : '%d ditë',
M : 'një muaj',
MM : '%d muaj',
y : 'një vit',
yy : '%d vite'
},
dayOfMonthOrdinalParse: /\d{1,2}\./,
ordinal : '%d.',
week : {
dow : 1, // Monday is the first day of the week.
doy : 4 // The week that contains Jan 4th is the first week of the year.
}
});
return sq;
})));
================================================
FILE: public/admin-panel/assets/libs/moment/locale/sr-cyrl.js
================================================
//! moment.js locale configuration
;(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined'
&& typeof require === 'function' ? factory(require('../moment')) :
typeof define === 'function' && define.amd ? define(['../moment'], factory) :
factory(global.moment)
}(this, (function (moment) { 'use strict';
var translator = {
words: { //Different grammatical cases
ss: ['секунда', 'секунде', 'секунди'],
m: ['један минут', 'једне минуте'],
mm: ['минут', 'минуте', 'минута'],
h: ['један сат', 'једног сата'],
hh: ['сат', 'сата', 'сати'],
dd: ['дан', 'дана', 'дана'],
MM: ['месец', 'месеца', 'месеци'],
yy: ['година', 'године', 'година']
},
correctGrammaticalCase: function (number, wordKey) {
return number === 1 ? wordKey[0] : (number >= 2 && number <= 4 ? wordKey[1] : wordKey[2]);
},
translate: function (number, withoutSuffix, key) {
var wordKey = translator.words[key];
if (key.length === 1) {
return withoutSuffix ? wordKey[0] : wordKey[1];
} else {
return number + ' ' + translator.correctGrammaticalCase(number, wordKey);
}
}
};
var srCyrl = moment.defineLocale('sr-cyrl', {
months: 'јануар_фебруар_март_април_мај_јун_јул_август_септембар_октобар_новембар_децембар'.split('_'),
monthsShort: 'јан._феб._мар._апр._мај_јун_јул_авг._сеп._окт._нов._дец.'.split('_'),
monthsParseExact: true,
weekdays: 'недеља_понедељак_уторак_среда_четвртак_петак_субота'.split('_'),
weekdaysShort: 'нед._пон._уто._сре._чет._пет._суб.'.split('_'),
weekdaysMin: 'не_по_ут_ср_че_пе_су'.split('_'),
weekdaysParseExact : true,
longDateFormat: {
LT: 'H:mm',
LTS : 'H:mm:ss',
L: 'DD.MM.YYYY',
LL: 'D. MMMM YYYY',
LLL: 'D. MMMM YYYY H:mm',
LLLL: 'dddd, D. MMMM YYYY H:mm'
},
calendar: {
sameDay: '[данас у] LT',
nextDay: '[сутра у] LT',
nextWeek: function () {
switch (this.day()) {
case 0:
return '[у] [недељу] [у] LT';
case 3:
return '[у] [среду] [у] LT';
case 6:
return '[у] [суботу] [у] LT';
case 1:
case 2:
case 4:
case 5:
return '[у] dddd [у] LT';
}
},
lastDay : '[јуче у] LT',
lastWeek : function () {
var lastWeekDays = [
'[прошле] [недеље] [у] LT',
'[прошлог] [понедељка] [у] LT',
'[прошлог] [уторка] [у] LT',
'[прошле] [среде] [у] LT',
'[прошлог] [четвртка] [у] LT',
'[прошлог] [петка] [у] LT',
'[прошле] [суботе] [у] LT'
];
return lastWeekDays[this.day()];
},
sameElse : 'L'
},
relativeTime : {
future : 'за %s',
past : 'пре %s',
s : 'неколико секунди',
ss : translator.translate,
m : translator.translate,
mm : translator.translate,
h : translator.translate,
hh : translator.translate,
d : 'дан',
dd : translator.translate,
M : 'месец',
MM : translator.translate,
y : 'годину',
yy : translator.translate
},
dayOfMonthOrdinalParse: /\d{1,2}\./,
ordinal : '%d.',
week : {
dow : 1, // Monday is the first day of the week.
doy : 7 // The week that contains Jan 1st is the first week of the year.
}
});
return srCyrl;
})));
================================================
FILE: public/admin-panel/assets/libs/moment/locale/sr.js
================================================
//! moment.js locale configuration
;(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined'
&& typeof require === 'function' ? factory(require('../moment')) :
typeof define === 'function' && define.amd ? define(['../moment'], factory) :
factory(global.moment)
}(this, (function (moment) { 'use strict';
var translator = {
words: { //Different grammatical cases
ss: ['sekunda', 'sekunde', 'sekundi'],
m: ['jedan minut', 'jedne minute'],
mm: ['minut', 'minute', 'minuta'],
h: ['jedan sat', 'jednog sata'],
hh: ['sat', 'sata', 'sati'],
dd: ['dan', 'dana', 'dana'],
MM: ['mesec', 'meseca', 'meseci'],
yy: ['godina', 'godine', 'godina']
},
correctGrammaticalCase: function (number, wordKey) {
return number === 1 ? wordKey[0] : (number >= 2 && number <= 4 ? wordKey[1] : wordKey[2]);
},
translate: function (number, withoutSuffix, key) {
var wordKey = translator.words[key];
if (key.length === 1) {
return withoutSuffix ? wordKey[0] : wordKey[1];
} else {
return number + ' ' + translator.correctGrammaticalCase(number, wordKey);
}
}
};
var sr = moment.defineLocale('sr', {
months: 'januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar'.split('_'),
monthsShort: 'jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.'.split('_'),
monthsParseExact: true,
weekdays: 'nedelja_ponedeljak_utorak_sreda_četvrtak_petak_subota'.split('_'),
weekdaysShort: 'ned._pon._uto._sre._čet._pet._sub.'.split('_'),
weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),
weekdaysParseExact : true,
longDateFormat: {
LT: 'H:mm',
LTS : 'H:mm:ss',
L: 'DD.MM.YYYY',
LL: 'D. MMMM YYYY',
LLL: 'D. MMMM YYYY H:mm',
LLLL: 'dddd, D. MMMM YYYY H:mm'
},
calendar: {
sameDay: '[danas u] LT',
nextDay: '[sutra u] LT',
nextWeek: function () {
switch (this.day()) {
case 0:
return '[u] [nedelju] [u] LT';
case 3:
return '[u] [sredu] [u] LT';
case 6:
return '[u] [subotu] [u] LT';
case 1:
case 2:
case 4:
case 5:
return '[u] dddd [u] LT';
}
},
lastDay : '[juče u] LT',
lastWeek : function () {
var lastWeekDays = [
'[prošle] [nedelje] [u] LT',
'[prošlog] [ponedeljka] [u] LT',
'[prošlog] [utorka] [u] LT',
'[prošle] [srede] [u] LT',
'[prošlog] [četvrtka] [u] LT',
'[prošlog] [petka] [u] LT',
'[prošle] [subote] [u] LT'
];
return lastWeekDays[this.day()];
},
sameElse : 'L'
},
relativeTime : {
future : 'za %s',
past : 'pre %s',
s : 'nekoliko sekundi',
ss : translator.translate,
m : translator.translate,
mm : translator.translate,
h : translator.translate,
hh : translator.translate,
d : 'dan',
dd : translator.translate,
M : 'mesec',
MM : translator.translate,
y : 'godinu',
yy : translator.translate
},
dayOfMonthOrdinalParse: /\d{1,2}\./,
ordinal : '%d.',
week : {
dow : 1, // Monday is the first day of the week.
doy : 7 // The week that contains Jan 1st is the first week of the year.
}
});
return sr;
})));
================================================
FILE: public/admin-panel/assets/libs/moment/locale/ss.js
================================================
//! moment.js locale configuration
;(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined'
&& typeof require === 'function' ? factory(require('../moment')) :
typeof define === 'function' && define.amd ? define(['../moment'], factory) :
factory(global.moment)
}(this, (function (moment) { 'use strict';
var ss = moment.defineLocale('ss', {
months : "Bhimbidvwane_Indlovana_Indlov'lenkhulu_Mabasa_Inkhwekhweti_Inhlaba_Kholwane_Ingci_Inyoni_Imphala_Lweti_Ingongoni".split('_'),
monthsShort : 'Bhi_Ina_Inu_Mab_Ink_Inh_Kho_Igc_Iny_Imp_Lwe_Igo'.split('_'),
weekdays : 'Lisontfo_Umsombuluko_Lesibili_Lesitsatfu_Lesine_Lesihlanu_Umgcibelo'.split('_'),
weekdaysShort : 'Lis_Umb_Lsb_Les_Lsi_Lsh_Umg'.split('_'),
weekdaysMin : 'Li_Us_Lb_Lt_Ls_Lh_Ug'.split('_'),
weekdaysParseExact : true,
longDateFormat : {
LT : 'h:mm A',
LTS : 'h:mm:ss A',
L : 'DD/MM/YYYY',
LL : 'D MMMM YYYY',
LLL : 'D MMMM YYYY h:mm A',
LLLL : 'dddd, D MMMM YYYY h:mm A'
},
calendar : {
sameDay : '[Namuhla nga] LT',
nextDay : '[Kusasa nga] LT',
nextWeek : 'dddd [nga] LT',
lastDay : '[Itolo nga] LT',
lastWeek : 'dddd [leliphelile] [nga] LT',
sameElse : 'L'
},
relativeTime : {
future : 'nga %s',
past : 'wenteka nga %s',
s : 'emizuzwana lomcane',
ss : '%d mzuzwana',
m : 'umzuzu',
mm : '%d emizuzu',
h : 'lihora',
hh : '%d emahora',
d : 'lilanga',
dd : '%d emalanga',
M : 'inyanga',
MM : '%d tinyanga',
y : 'umnyaka',
yy : '%d iminyaka'
},
meridiemParse: /ekuseni|emini|entsambama|ebusuku/,
meridiem : function (hours, minutes, isLower) {
if (hours < 11) {
return 'ekuseni';
} else if (hours < 15) {
return 'emini';
} else if (hours < 19) {
return 'entsambama';
} else {
return 'ebusuku';
}
},
meridiemHour : function (hour, meridiem) {
if (hour === 12) {
hour = 0;
}
if (meridiem === 'ekuseni') {
return hour;
} else if (meridiem === 'emini') {
return hour >= 11 ? hour : hour + 12;
} else if (meridiem === 'entsambama' || meridiem === 'ebusuku') {
if (hour === 0) {
return 0;
}
return hour + 12;
}
},
dayOfMonthOrdinalParse: /\d{1,2}/,
ordinal : '%d',
week : {
dow : 1, // Monday is the first day of the week.
doy : 4 // The week that contains Jan 4th is the first week of the year.
}
});
return ss;
})));
================================================
FILE: public/admin-panel/assets/libs/moment/locale/sv.js
================================================
//! moment.js locale configuration
;(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined'
&& typeof require === 'function' ? factory(require('../moment')) :
typeof define === 'function' && define.amd ? define(['../moment'], factory) :
factory(global.moment)
}(this, (function (moment) { 'use strict';
var sv = moment.defineLocale('sv', {
months : 'januari_februari_mars_april_maj_juni_juli_augusti_september_oktober_november_december'.split('_'),
monthsShort : 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'),
weekdays : 'söndag_måndag_tisdag_onsdag_torsdag_fredag_lördag'.split('_'),
weekdaysShort : 'sön_mån_tis_ons_tor_fre_lör'.split('_'),
weekdaysMin : 'sö_må_ti_on_to_fr_lö'.split('_'),
longDateFormat : {
LT : 'HH:mm',
LTS : 'HH:mm:ss',
L : 'YYYY-MM-DD',
LL : 'D MMMM YYYY',
LLL : 'D MMMM YYYY [kl.] HH:mm',
LLLL : 'dddd D MMMM YYYY [kl.] HH:mm',
lll : 'D MMM YYYY HH:mm',
llll : 'ddd D MMM YYYY HH:mm'
},
calendar : {
sameDay: '[Idag] LT',
nextDay: '[Imorgon] LT',
lastDay: '[Igår] LT',
nextWeek: '[På] dddd LT',
lastWeek: '[I] dddd[s] LT',
sameElse: 'L'
},
relativeTime : {
future : 'om %s',
past : 'för %s sedan',
s : 'några sekunder',
ss : '%d sekunder',
m : 'en minut',
mm : '%d minuter',
h : 'en timme',
hh : '%d timmar',
d : 'en dag',
dd : '%d dagar',
M : 'en månad',
MM : '%d månader',
y : 'ett år',
yy : '%d år'
},
dayOfMonthOrdinalParse: /\d{1,2}(e|a)/,
ordinal : function (number) {
var b = number % 10,
output = (~~(number % 100 / 10) === 1) ? 'e' :
(b === 1) ? 'a' :
(b === 2) ? 'a' :
(b === 3) ? 'e' : 'e';
return number + output;
},
week : {
dow : 1, // Monday is the first day of the week.
doy : 4 // The week that contains Jan 4th is the first week of the year.
}
});
return sv;
})));
================================================
FILE: public/admin-panel/assets/libs/moment/locale/sw.js
================================================
//! moment.js locale configuration
;(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined'
&& typeof require === 'function' ? factory(require('../moment')) :
typeof define === 'function' && define.amd ? define(['../moment'], factory) :
factory(global.moment)
}(this, (function (moment) { 'use strict';
var sw = moment.defineLocale('sw', {
months : 'Januari_Februari_Machi_Aprili_Mei_Juni_Julai_Agosti_Septemba_Oktoba_Novemba_Desemba'.split('_'),
monthsShort : 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ago_Sep_Okt_Nov_Des'.split('_'),
weekdays : 'Jumapili_Jumatatu_Jumanne_Jumatano_Alhamisi_Ijumaa_Jumamosi'.split('_'),
weekdaysShort : 'Jpl_Jtat_Jnne_Jtan_Alh_Ijm_Jmos'.split('_'),
weekdaysMin : 'J2_J3_J4_J5_Al_Ij_J1'.split('_'),
weekdaysParseExact : true,
longDateFormat : {
LT : 'HH:mm',
LTS : 'HH:mm:ss',
L : 'DD.MM.YYYY',
LL : 'D MMMM YYYY',
LLL : 'D MMMM YYYY HH:mm',
LLLL : 'dddd, D MMMM YYYY HH:mm'
},
calendar : {
sameDay : '[leo saa] LT',
nextDay : '[kesho saa] LT',
nextWeek : '[wiki ijayo] dddd [saat] LT',
lastDay : '[jana] LT',
lastWeek : '[wiki iliyopita] dddd [saat] LT',
sameElse : 'L'
},
relativeTime : {
future : '%s baadaye',
past : 'tokea %s',
s : 'hivi punde',
ss : 'sekunde %d',
m : 'dakika moja',
mm : 'dakika %d',
h : 'saa limoja',
hh : 'masaa %d',
d : 'siku moja',
dd : 'masiku %d',
M : 'mwezi mmoja',
MM : 'miezi %d',
y : 'mwaka mmoja',
yy : 'miaka %d'
},
week : {
dow : 1, // Monday is the first day of the week.
doy : 7 // The week that contains Jan 1st is the first week of the year.
}
});
return sw;
})));
================================================
FILE: public/admin-panel/assets/libs/moment/locale/ta.js
================================================
//! moment.js locale configuration
;(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined'
&& typeof require === 'function' ? factory(require('../moment')) :
typeof define === 'function' && define.amd ? define(['../moment'], factory) :
factory(global.moment)
}(this, (function (moment) { 'use strict';
var symbolMap = {
'1': '௧',
'2': '௨',
'3': '௩',
'4': '௪',
'5': '௫',
'6': '௬',
'7': '௭',
'8': '௮',
'9': '௯',
'0': '௦'
}, numberMap = {
'௧': '1',
'௨': '2',
'௩': '3',
'௪': '4',
'௫': '5',
'௬': '6',
'௭': '7',
'௮': '8',
'௯': '9',
'௦': '0'
};
var ta = moment.defineLocale('ta', {
months : 'ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்'.split('_'),
monthsShort : 'ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்'.split('_'),
weekdays : 'ஞாயிற்றுக்கிழமை_திங்கட்கிழமை_செவ்வாய்கிழமை_புதன்கிழமை_வியாழக்கிழமை_வெள்ளிக்கிழமை_சனிக்கிழமை'.split('_'),
weekdaysShort : 'ஞாயிறு_திங்கள்_செவ்வாய்_புதன்_வியாழன்_வெள்ளி_சனி'.split('_'),
weekdaysMin : 'ஞா_தி_செ_பு_வி_வெ_ச'.split('_'),
longDateFormat : {
LT : 'HH:mm',
LTS : 'HH:mm:ss',
L : 'DD/MM/YYYY',
LL : 'D MMMM YYYY',
LLL : 'D MMMM YYYY, HH:mm',
LLLL : 'dddd, D MMMM YYYY, HH:mm'
},
calendar : {
sameDay : '[இன்று] LT',
nextDay : '[நாளை] LT',
nextWeek : 'dddd, LT',
lastDay : '[நேற்று] LT',
lastWeek : '[கடந்த வாரம்] dddd, LT',
sameElse : 'L'
},
relativeTime : {
future : '%s இல்',
past : '%s முன்',
s : 'ஒரு சில விநாடிகள்',
ss : '%d விநாடிகள்',
m : 'ஒரு நிமிடம்',
mm : '%d நிமிடங்கள்',
h : 'ஒரு மணி நேரம்',
hh : '%d மணி நேரம்',
d : 'ஒரு நாள்',
dd : '%d நாட்கள்',
M : 'ஒரு மாதம்',
MM : '%d மாதங்கள்',
y : 'ஒரு வருடம்',
yy : '%d ஆண்டுகள்'
},
dayOfMonthOrdinalParse: /\d{1,2}வது/,
ordinal : function (number) {
return number + 'வது';
},
preparse: function (string) {
return string.replace(/[௧௨௩௪௫௬௭௮௯௦]/g, function (match) {
return numberMap[match];
});
},
postformat: function (string) {
return string.replace(/\d/g, function (match) {
return symbolMap[match];
});
},
// refer http://ta.wikipedia.org/s/1er1
meridiemParse: /யாமம்|வைகறை|காலை|நண்பகல்|எற்பாடு|மாலை/,
meridiem : function (hour, minute, isLower) {
if (hour < 2) {
return ' யாமம்';
} else if (hour < 6) {
return ' வைகறை'; // வைகறை
} else if (hour < 10) {
return ' காலை'; // காலை
} else if (hour < 14) {
return ' நண்பகல்'; // நண்பகல்
} else if (hour < 18) {
return ' எற்பாடு'; // எற்பாடு
} else if (hour < 22) {
return ' மாலை'; // மாலை
} else {
return ' யாமம்';
}
},
meridiemHour : function (hour, meridiem) {
if (hour === 12) {
hour = 0;
}
if (meridiem === 'யாமம்') {
return hour < 2 ? hour : hour + 12;
} else if (meridiem === 'வைகறை' || meridiem === 'காலை') {
return hour;
} else if (meridiem === 'நண்பகல்') {
return hour >= 10 ? hour : hour + 12;
} else {
return hour + 12;
}
},
week : {
dow : 0, // Sunday is the first day of the week.
doy : 6 // The week that contains Jan 1st is the first week of the year.
}
});
return ta;
})));
================================================
FILE: public/admin-panel/assets/libs/moment/locale/te.js
================================================
//! moment.js locale configuration
;(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined'
&& typeof require === 'function' ? factory(require('../moment')) :
typeof define === 'function' && define.amd ? define(['../moment'], factory) :
factory(global.moment)
}(this, (function (moment) { 'use strict';
var te = moment.defineLocale('te', {
months : 'జనవరి_ఫిబ్రవరి_మార్చి_ఏప్రిల్_మే_జూన్_జూలై_ఆగస్టు_సెప్టెంబర్_అక్టోబర్_నవంబర్_డిసెంబర్'.split('_'),
monthsShort : 'జన._ఫిబ్ర._మార్చి_ఏప్రి._మే_జూన్_జూలై_ఆగ._సెప్._అక్టో._నవ._డిసె.'.split('_'),
monthsParseExact : true,
weekdays : 'ఆదివారం_సోమవారం_మంగళవారం_బుధవారం_గురువారం_శుక్రవారం_శనివారం'.split('_'),
weekdaysShort : 'ఆది_సోమ_మంగళ_బుధ_గురు_శుక్ర_శని'.split('_'),
weekdaysMin : 'ఆ_సో_మం_బు_గు_శు_శ'.split('_'),
longDateFormat : {
LT : 'A h:mm',
LTS : 'A h:mm:ss',
L : 'DD/MM/YYYY',
LL : 'D MMMM YYYY',
LLL : 'D MMMM YYYY, A h:mm',
LLLL : 'dddd, D MMMM YYYY, A h:mm'
},
calendar : {
sameDay : '[నేడు] LT',
nextDay : '[రేపు] LT',
nextWeek : 'dddd, LT',
lastDay : '[నిన్న] LT',
lastWeek : '[గత] dddd, LT',
sameElse : 'L'
},
relativeTime : {
future : '%s లో',
past : '%s క్రితం',
s : 'కొన్ని క్షణాలు',
ss : '%d సెకన్లు',
m : 'ఒక నిమిషం',
mm : '%d నిమిషాలు',
h : 'ఒక గంట',
hh : '%d గంటలు',
d : 'ఒక రోజు',
dd : '%d రోజులు',
M : 'ఒక నెల',
MM : '%d నెలలు',
y : 'ఒక సంవత్సరం',
yy : '%d సంవత్సరాలు'
},
dayOfMonthOrdinalParse : /\d{1,2}వ/,
ordinal : '%dవ',
meridiemParse: /రాత్రి|ఉదయం|మధ్యాహ్నం|సాయంత్రం/,
meridiemHour : function (hour, meridiem) {
if (hour === 12) {
hour = 0;
}
if (meridiem === 'రాత్రి') {
return hour < 4 ? hour : hour + 12;
} else if (meridiem === 'ఉదయం') {
return hour;
} else if (meridiem === 'మధ్యాహ్నం') {
return hour >= 10 ? hour : hour + 12;
} else if (meridiem === 'సాయంత్రం') {
return hour + 12;
}
},
meridiem : function (hour, minute, isLower) {
if (hour < 4) {
return 'రాత్రి';
} else if (hour < 10) {
return 'ఉదయం';
} else if (hour < 17) {
return 'మధ్యాహ్నం';
} else if (hour < 20) {
return 'సాయంత్రం';
} else {
return 'రాత్రి';
}
},
week : {
dow : 0, // Sunday is the first day of the week.
doy : 6 // The week that contains Jan 1st is the first week of the year.
}
});
return te;
})));
================================================
FILE: public/admin-panel/assets/libs/moment/locale/tet.js
================================================
//! moment.js locale configuration
;(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined'
&& typeof require === 'function' ? factory(require('../moment')) :
typeof define === 'function' && define.amd ? define(['../moment'], factory) :
factory(global.moment)
}(this, (function (moment) { 'use strict';
var tet = moment.defineLocale('tet', {
months : 'Janeiru_Fevereiru_Marsu_Abril_Maiu_Juñu_Jullu_Agustu_Setembru_Outubru_Novembru_Dezembru'.split('_'),
monthsShort : 'Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez'.split('_'),
weekdays : 'Domingu_Segunda_Tersa_Kuarta_Kinta_Sesta_Sabadu'.split('_'),
weekdaysShort : 'Dom_Seg_Ters_Kua_Kint_Sest_Sab'.split('_'),
weekdaysMin : 'Do_Seg_Te_Ku_Ki_Ses_Sa'.split('_'),
longDateFormat : {
LT : 'HH:mm',
LTS : 'HH:mm:ss',
L : 'DD/MM/YYYY',
LL : 'D MMMM YYYY',
LLL : 'D MMMM YYYY HH:mm',
LLLL : 'dddd, D MMMM YYYY HH:mm'
},
calendar : {
sameDay: '[Ohin iha] LT',
nextDay: '[Aban iha] LT',
nextWeek: 'dddd [iha] LT',
lastDay: '[Horiseik iha] LT',
lastWeek: 'dddd [semana kotuk] [iha] LT',
sameElse: 'L'
},
relativeTime : {
future : 'iha %s',
past : '%s liuba',
s : 'minutu balun',
ss : 'minutu %d',
m : 'minutu ida',
mm : 'minutu %d',
h : 'oras ida',
hh : 'oras %d',
d : 'loron ida',
dd : 'loron %d',
M : 'fulan ida',
MM : 'fulan %d',
y : 'tinan ida',
yy : 'tinan %d'
},
dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/,
ordinal : function (number) {
var b = number % 10,
output = (~~(number % 100 / 10) === 1) ? 'th' :
(b === 1) ? 'st' :
(b === 2) ? 'nd' :
(b === 3) ? 'rd' : 'th';
return number + output;
},
week : {
dow : 1, // Monday is the first day of the week.
doy : 4 // The week that contains Jan 4th is the first week of the year.
}
});
return tet;
})));
================================================
FILE: public/admin-panel/assets/libs/moment/locale/tg.js
================================================
//! moment.js locale configuration
;(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined'
&& typeof require === 'function' ? factory(require('../moment')) :
typeof define === 'function' && define.amd ? define(['../moment'], factory) :
factory(global.moment)
}(this, (function (moment) { 'use strict';
var suffixes = {
0: '-ум',
1: '-ум',
2: '-юм',
3: '-юм',
4: '-ум',
5: '-ум',
6: '-ум',
7: '-ум',
8: '-ум',
9: '-ум',
10: '-ум',
12: '-ум',
13: '-ум',
20: '-ум',
30: '-юм',
40: '-ум',
50: '-ум',
60: '-ум',
70: '-ум',
80: '-ум',
90: '-ум',
100: '-ум'
};
var tg = moment.defineLocale('tg', {
months : 'январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр'.split('_'),
monthsShort : 'янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек'.split('_'),
weekdays : 'якшанбе_душанбе_сешанбе_чоршанбе_панҷшанбе_ҷумъа_шанбе'.split('_'),
weekdaysShort : 'яшб_дшб_сшб_чшб_пшб_ҷум_шнб'.split('_'),
weekdaysMin : 'яш_дш_сш_чш_пш_ҷм_шб'.split('_'),
longDateFormat : {
LT : 'HH:mm',
LTS : 'HH:mm:ss',
L : 'DD/MM/YYYY',
LL : 'D MMMM YYYY',
LLL : 'D MMMM YYYY HH:mm',
LLLL : 'dddd, D MMMM YYYY HH:mm'
},
calendar : {
sameDay : '[Имрӯз соати] LT',
nextDay : '[Пагоҳ соати] LT',
lastDay : '[Дирӯз соати] LT',
nextWeek : 'dddd[и] [ҳафтаи оянда соати] LT',
lastWeek : 'dddd[и] [ҳафтаи гузашта соати] LT',
sameElse : 'L'
},
relativeTime : {
future : 'баъди %s',
past : '%s пеш',
s : 'якчанд сония',
m : 'як дақиқа',
mm : '%d дақиқа',
h : 'як соат',
hh : '%d соат',
d : 'як рӯз',
dd : '%d рӯз',
M : 'як моҳ',
MM : '%d моҳ',
y : 'як сол',
yy : '%d сол'
},
meridiemParse: /шаб|субҳ|рӯз|бегоҳ/,
meridiemHour: function (hour, meridiem) {
if (hour === 12) {
hour = 0;
}
if (meridiem === 'шаб') {
return hour < 4 ? hour : hour + 12;
} else if (meridiem === 'субҳ') {
return hour;
} else if (meridiem === 'рӯз') {
return hour >= 11 ? hour : hour + 12;
} else if (meridiem === 'бегоҳ') {
return hour + 12;
}
},
meridiem: function (hour, minute, isLower) {
if (hour < 4) {
return 'шаб';
} else if (hour < 11) {
return 'субҳ';
} else if (hour < 16) {
return 'рӯз';
} else if (hour < 19) {
return 'бегоҳ';
} else {
return 'шаб';
}
},
dayOfMonthOrdinalParse: /\d{1,2}-(ум|юм)/,
ordinal: function (number) {
var a = number % 10,
b = number >= 100 ? 100 : null;
return number + (suffixes[number] || suffixes[a] || suffixes[b]);
},
week : {
dow : 1, // Monday is the first day of the week.
doy : 7 // The week that contains Jan 1th is the first week of the year.
}
});
return tg;
})));
================================================
FILE: public/admin-panel/assets/libs/moment/locale/th.js
================================================
//! moment.js locale configuration
;(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined'
&& typeof require === 'function' ? factory(require('../moment')) :
typeof define === 'function' && define.amd ? define(['../moment'], factory) :
factory(global.moment)
}(this, (function (moment) { 'use strict';
var th = moment.defineLocale('th', {
months : 'มกราคม_กุมภาพันธ์_มีนาคม_เมษายน_พฤษภาคม_มิถุนายน_กรกฎาคม_สิงหาคม_กันยายน_ตุลาคม_พฤศจิกายน_ธันวาคม'.split('_'),
monthsShort : 'ม.ค._ก.พ._มี.ค._เม.ย._พ.ค._มิ.ย._ก.ค._ส.ค._ก.ย._ต.ค._พ.ย._ธ.ค.'.split('_'),
monthsParseExact: true,
weekdays : 'อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัสบดี_ศุกร์_เสาร์'.split('_'),
weekdaysShort : 'อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัส_ศุกร์_เสาร์'.split('_'), // yes, three characters difference
weekdaysMin : 'อา._จ._อ._พ._พฤ._ศ._ส.'.split('_'),
weekdaysParseExact : true,
longDateFormat : {
LT : 'H:mm',
LTS : 'H:mm:ss',
L : 'DD/MM/YYYY',
LL : 'D MMMM YYYY',
LLL : 'D MMMM YYYY เวลา H:mm',
LLLL : 'วันddddที่ D MMMM YYYY เวลา H:mm'
},
meridiemParse: /ก่อนเที่ยง|หลังเที่ยง/,
isPM: function (input) {
return input === 'หลังเที่ยง';
},
meridiem : function (hour, minute, isLower) {
if (hour < 12) {
return 'ก่อนเที่ยง';
} else {
return 'หลังเที่ยง';
}
},
calendar : {
sameDay : '[วันนี้ เวลา] LT',
nextDay : '[พรุ่งนี้ เวลา] LT',
nextWeek : 'dddd[หน้า เวลา] LT',
lastDay : '[เมื่อวานนี้ เวลา] LT',
lastWeek : '[วัน]dddd[ที่แล้ว เวลา] LT',
sameElse : 'L'
},
relativeTime : {
future : 'อีก %s',
past : '%sที่แล้ว',
s : 'ไม่กี่วินาที',
ss : '%d วินาที',
m : '1 นาที',
mm : '%d นาที',
h : '1 ชั่วโมง',
hh : '%d ชั่วโมง',
d : '1 วัน',
dd : '%d วัน',
M : '1 เดือน',
MM : '%d เดือน',
y : '1 ปี',
yy : '%d ปี'
}
});
return th;
})));
================================================
FILE: public/admin-panel/assets/libs/moment/locale/tl-ph.js
================================================
//! moment.js locale configuration
;(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined'
&& typeof require === 'function' ? factory(require('../moment')) :
typeof define === 'function' && define.amd ? define(['../moment'], factory) :
factory(global.moment)
}(this, (function (moment) { 'use strict';
var tlPh = moment.defineLocale('tl-ph', {
months : 'Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre'.split('_'),
monthsShort : 'Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis'.split('_'),
weekdays : 'Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado'.split('_'),
weekdaysShort : 'Lin_Lun_Mar_Miy_Huw_Biy_Sab'.split('_'),
weekdaysMin : 'Li_Lu_Ma_Mi_Hu_Bi_Sab'.split('_'),
longDateFormat : {
LT : 'HH:mm',
LTS : 'HH:mm:ss',
L : 'MM/D/YYYY',
LL : 'MMMM D, YYYY',
LLL : 'MMMM D, YYYY HH:mm',
LLLL : 'dddd, MMMM DD, YYYY HH:mm'
},
calendar : {
sameDay: 'LT [ngayong araw]',
nextDay: '[Bukas ng] LT',
nextWeek: 'LT [sa susunod na] dddd',
lastDay: 'LT [kahapon]',
lastWeek: 'LT [noong nakaraang] dddd',
sameElse: 'L'
},
relativeTime : {
future : 'sa loob ng %s',
past : '%s ang nakalipas',
s : 'ilang segundo',
ss : '%d segundo',
m : 'isang minuto',
mm : '%d minuto',
h : 'isang oras',
hh : '%d oras',
d : 'isang araw',
dd : '%d araw',
M : 'isang buwan',
MM : '%d buwan',
y : 'isang taon',
yy : '%d taon'
},
dayOfMonthOrdinalParse: /\d{1,2}/,
ordinal : function (number) {
return number;
},
week : {
dow : 1, // Monday is the first day of the week.
doy : 4 // The week that contains Jan 4th is the first week of the year.
}
});
return tlPh;
})));
================================================
FILE: public/admin-panel/assets/libs/moment/locale/tlh.js
================================================
//! moment.js locale configuration
;(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined'
&& typeof require === 'function' ? factory(require('../moment')) :
typeof define === 'function' && define.amd ? define(['../moment'], factory) :
factory(global.moment)
}(this, (function (moment) { 'use strict';
var numbersNouns = 'pagh_wa’_cha’_wej_loS_vagh_jav_Soch_chorgh_Hut'.split('_');
function translateFuture(output) {
var time = output;
time = (output.indexOf('jaj') !== -1) ?
time.slice(0, -3) + 'leS' :
(output.indexOf('jar') !== -1) ?
time.slice(0, -3) + 'waQ' :
(output.indexOf('DIS') !== -1) ?
time.slice(0, -3) + 'nem' :
time + ' pIq';
return time;
}
function translatePast(output) {
var time = output;
time = (output.indexOf('jaj') !== -1) ?
time.slice(0, -3) + 'Hu’' :
(output.indexOf('jar') !== -1) ?
time.slice(0, -3) + 'wen' :
(output.indexOf('DIS') !== -1) ?
time.slice(0, -3) + 'ben' :
time + ' ret';
return time;
}
function translate(number, withoutSuffix, string, isFuture) {
var numberNoun = numberAsNoun(number);
switch (string) {
case 'ss':
return numberNoun + ' lup';
case 'mm':
return numberNoun + ' tup';
case 'hh':
return numberNoun + ' rep';
case 'dd':
return numberNoun + ' jaj';
case 'MM':
return numberNoun + ' jar';
case 'yy':
return numberNoun + ' DIS';
}
}
function numberAsNoun(number) {
var hundred = Math.floor((number % 1000) / 100),
ten = Math.floor((number % 100) / 10),
one = number % 10,
word = '';
if (hundred > 0) {
word += numbersNouns[hundred] + 'vatlh';
}
if (ten > 0) {
word += ((word !== '') ? ' ' : '') + numbersNouns[ten] + 'maH';
}
if (one > 0) {
word += ((word !== '') ? ' ' : '') + numbersNouns[one];
}
return (word === '') ? 'pagh' : word;
}
var tlh = moment.defineLocale('tlh', {
months : 'tera’ jar wa’_tera’ jar cha’_tera’ jar wej_tera’ jar loS_tera’ jar vagh_tera’ jar jav_tera’ jar Soch_tera’ jar chorgh_tera’ jar Hut_tera’ jar wa’maH_tera’ jar wa’maH wa’_tera’ jar wa’maH cha’'.split('_'),
monthsShort : 'jar wa’_jar cha’_jar wej_jar loS_jar vagh_jar jav_jar Soch_jar chorgh_jar Hut_jar wa’maH_jar wa’maH wa’_jar wa’maH cha’'.split('_'),
monthsParseExact : true,
weekdays : 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split('_'),
weekdaysShort : 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split('_'),
weekdaysMin : 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split('_'),
longDateFormat : {
LT : 'HH:mm',
LTS : 'HH:mm:ss',
L : 'DD.MM.YYYY',
LL : 'D MMMM YYYY',
LLL : 'D MMMM YYYY HH:mm',
LLLL : 'dddd, D MMMM YYYY HH:mm'
},
calendar : {
sameDay: '[DaHjaj] LT',
nextDay: '[wa’leS] LT',
nextWeek: 'LLL',
lastDay: '[wa’Hu’] LT',
lastWeek: 'LLL',
sameElse: 'L'
},
relativeTime : {
future : translateFuture,
past : translatePast,
s : 'puS lup',
ss : translate,
m : 'wa’ tup',
mm : translate,
h : 'wa’ rep',
hh : translate,
d : 'wa’ jaj',
dd : translate,
M : 'wa’ jar',
MM : translate,
y : 'wa’ DIS',
yy : translate
},
dayOfMonthOrdinalParse: /\d{1,2}\./,
ordinal : '%d.',
week : {
dow : 1, // Monday is the first day of the week.
doy : 4 // The week that contains Jan 4th is the first week of the year.
}
});
return tlh;
})));
================================================
FILE: public/admin-panel/assets/libs/moment/locale/tr.js
================================================
;(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined'
&& typeof require === 'function' ? factory(require('../moment')) :
typeof define === 'function' && define.amd ? define(['../moment'], factory) :
factory(global.moment)
}(this, (function (moment) { 'use strict';
var suffixes = {
1: '\'inci',
5: '\'inci',
8: '\'inci',
70: '\'inci',
80: '\'inci',
2: '\'nci',
7: '\'nci',
20: '\'nci',
50: '\'nci',
3: '\'üncü',
4: '\'üncü',
100: '\'üncü',
6: '\'ncı',
9: '\'uncu',
10: '\'uncu',
30: '\'uncu',
60: '\'ıncı',
90: '\'ıncı'
};
var tr = moment.defineLocale('tr', {
months : 'Ocak_Şubat_Mart_Nisan_Mayıs_Haziran_Temmuz_Ağustos_Eylül_Ekim_Kasım_Aralık'.split('_'),
monthsShort : 'Oca_Şub_Mar_Nis_May_Haz_Tem_Ağu_Eyl_Eki_Kas_Ara'.split('_'),
weekdays : 'Pazar_Pazartesi_Salı_Çarşamba_Perşembe_Cuma_Cumartesi'.split('_'),
weekdaysShort : 'Paz_Pts_Sal_Çar_Per_Cum_Cts'.split('_'),
weekdaysMin : 'Pz_Pt_Sa_Ça_Pe_Cu_Ct'.split('_'),
longDateFormat : {
LT : 'HH:mm',
LTS : 'HH:mm:ss',
L : 'DD.MM.YYYY',
LL : 'D MMMM YYYY',
LLL : 'D MMMM YYYY HH:mm',
LLLL : 'dddd, D MMMM YYYY HH:mm'
},
calendar : {
sameDay : '[bugün saat] LT',
nextDay : '[yarın saat] LT',
nextWeek : '[gelecek] dddd [saat] LT',
lastDay : '[dün] LT',
lastWeek : '[geçen] dddd [saat] LT',
sameElse : 'L'
},
relativeTime : {
future : '%s sonra',
past : '%s önce',
s : 'birkaç saniye',
ss : '%d saniye',
m : 'bir dakika',
mm : '%d dakika',
h : 'bir saat',
hh : '%d saat',
d : 'bir gün',
dd : '%d gün',
M : 'bir ay',
MM : '%d ay',
y : 'bir yıl',
yy : '%d yıl'
},
ordinal: function (number, period) {
switch (period) {
case 'd':
case 'D':
case 'Do':
case 'DD':
return number;
default:
if (number === 0) { // special case for zero
return number + '\'ıncı';
}
var a = number % 10,
b = number % 100 - a,
c = number >= 100 ? 100 : null;
return number + (suffixes[a] || suffixes[b] || suffixes[c]);
}
},
week : {
dow : 1, // Monday is the first day of the week.
doy : 7 // The week that contains Jan 1st is the first week of the year.
}
});
return tr;
})));
================================================
FILE: public/admin-panel/assets/libs/moment/locale/tzl.js
================================================
//! moment.js locale configuration
;(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined'
&& typeof require === 'function' ? factory(require('../moment')) :
typeof define === 'function' && define.amd ? define(['../moment'], factory) :
factory(global.moment)
}(this, (function (moment) { 'use strict';
// After the year there should be a slash and the amount of years since December 26, 1979 in Roman numerals.
// This is currently too difficult (maybe even impossible) to add.
var tzl = moment.defineLocale('tzl', {
months : 'Januar_Fevraglh_Març_Avrïu_Mai_Gün_Julia_Guscht_Setemvar_Listopäts_Noemvar_Zecemvar'.split('_'),
monthsShort : 'Jan_Fev_Mar_Avr_Mai_Gün_Jul_Gus_Set_Lis_Noe_Zec'.split('_'),
weekdays : 'Súladi_Lúneçi_Maitzi_Márcuri_Xhúadi_Viénerçi_Sáturi'.split('_'),
weekdaysShort : 'Súl_Lún_Mai_Már_Xhú_Vié_Sát'.split('_'),
weekdaysMin : 'Sú_Lú_Ma_Má_Xh_Vi_Sá'.split('_'),
longDateFormat : {
LT : 'HH.mm',
LTS : 'HH.mm.ss',
L : 'DD.MM.YYYY',
LL : 'D. MMMM [dallas] YYYY',
LLL : 'D. MMMM [dallas] YYYY HH.mm',
LLLL : 'dddd, [li] D. MMMM [dallas] YYYY HH.mm'
},
meridiemParse: /d\'o|d\'a/i,
isPM : function (input) {
return 'd\'o' === input.toLowerCase();
},
meridiem : function (hours, minutes, isLower) {
if (hours > 11) {
return isLower ? 'd\'o' : 'D\'O';
} else {
return isLower ? 'd\'a' : 'D\'A';
}
},
calendar : {
sameDay : '[oxhi à] LT',
nextDay : '[demà à] LT',
nextWeek : 'dddd [à] LT',
lastDay : '[ieiri à] LT',
lastWeek : '[sür el] dddd [lasteu à] LT',
sameElse : 'L'
},
relativeTime : {
future : 'osprei %s',
past : 'ja%s',
s : processRelativeTime,
ss : processRelativeTime,
m : processRelativeTime,
mm : processRelativeTime,
h : processRelativeTime,
hh : processRelativeTime,
d : processRelativeTime,
dd : processRelativeTime,
M : processRelativeTime,
MM : processRelativeTime,
y : processRelativeTime,
yy : processRelativeTime
},
dayOfMonthOrdinalParse: /\d{1,2}\./,
ordinal : '%d.',
week : {
dow : 1, // Monday is the first day of the week.
doy : 4 // The week that contains Jan 4th is the first week of the year.
}
});
function processRelativeTime(number, withoutSuffix, key, isFuture) {
var format = {
's': ['viensas secunds', '\'iensas secunds'],
'ss': [number + ' secunds', '' + number + ' secunds'],
'm': ['\'n míut', '\'iens míut'],
'mm': [number + ' míuts', '' + number + ' míuts'],
'h': ['\'n þora', '\'iensa þora'],
'hh': [number + ' þoras', '' + number + ' þoras'],
'd': ['\'n ziua', '\'iensa ziua'],
'dd': [number + ' ziuas', '' + number + ' ziuas'],
'M': ['\'n mes', '\'iens mes'],
'MM': [number + ' mesen', '' + number + ' mesen'],
'y': ['\'n ar', '\'iens ar'],
'yy': [number + ' ars', '' + number + ' ars']
};
return isFuture ? format[key][0] : (withoutSuffix ? format[key][0] : format[key][1]);
}
return tzl;
})));
================================================
FILE: public/admin-panel/assets/libs/moment/locale/tzm-latn.js
================================================
//! moment.js locale configuration
;(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined'
&& typeof require === 'function' ? factory(require('../moment')) :
typeof define === 'function' && define.amd ? define(['../moment'], factory) :
factory(global.moment)
}(this, (function (moment) { 'use strict';
var tzmLatn = moment.defineLocale('tzm-latn', {
months : 'innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir'.split('_'),
monthsShort : 'innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir'.split('_'),
weekdays : 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'),
weekdaysShort : 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'),
weekdaysMin : 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'),
longDateFormat : {
LT : 'HH:mm',
LTS : 'HH:mm:ss',
L : 'DD/MM/YYYY',
LL : 'D MMMM YYYY',
LLL : 'D MMMM YYYY HH:mm',
LLLL : 'dddd D MMMM YYYY HH:mm'
},
calendar : {
sameDay: '[asdkh g] LT',
nextDay: '[aska g] LT',
nextWeek: 'dddd [g] LT',
lastDay: '[assant g] LT',
lastWeek: 'dddd [g] LT',
sameElse: 'L'
},
relativeTime : {
future : 'dadkh s yan %s',
past : 'yan %s',
s : 'imik',
ss : '%d imik',
m : 'minuḍ',
mm : '%d minuḍ',
h : 'saɛa',
hh : '%d tassaɛin',
d : 'ass',
dd : '%d ossan',
M : 'ayowr',
MM : '%d iyyirn',
y : 'asgas',
yy : '%d isgasn'
},
week : {
dow : 6, // Saturday is the first day of the week.
doy : 12 // The week that contains Jan 1st is the first week of the year.
}
});
return tzmLatn;
})));
================================================
FILE: public/admin-panel/assets/libs/moment/locale/tzm.js
================================================
//! moment.js locale configuration
;(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined'
&& typeof require === 'function' ? factory(require('../moment')) :
typeof define === 'function' && define.amd ? define(['../moment'], factory) :
factory(global.moment)
}(this, (function (moment) { 'use strict';
var tzm = moment.defineLocale('tzm', {
months : 'ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ'.split('_'),
monthsShort : 'ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ'.split('_'),
weekdays : 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'),
weekdaysShort : 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'),
weekdaysMin : 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'),
longDateFormat : {
LT : 'HH:mm',
LTS: 'HH:mm:ss',
L : 'DD/MM/YYYY',
LL : 'D MMMM YYYY',
LLL : 'D MMMM YYYY HH:mm',
LLLL : 'dddd D MMMM YYYY HH:mm'
},
calendar : {
sameDay: '[ⴰⵙⴷⵅ ⴴ] LT',
nextDay: '[ⴰⵙⴽⴰ ⴴ] LT',
nextWeek: 'dddd [ⴴ] LT',
lastDay: '[ⴰⵚⴰⵏⵜ ⴴ] LT',
lastWeek: 'dddd [ⴴ] LT',
sameElse: 'L'
},
relativeTime : {
future : 'ⴷⴰⴷⵅ ⵙ ⵢⴰⵏ %s',
past : 'ⵢⴰⵏ %s',
s : 'ⵉⵎⵉⴽ',
ss : '%d ⵉⵎⵉⴽ',
m : 'ⵎⵉⵏⵓⴺ',
mm : '%d ⵎⵉⵏⵓⴺ',
h : 'ⵙⴰⵄⴰ',
hh : '%d ⵜⴰⵙⵙⴰⵄⵉⵏ',
d : 'ⴰⵙⵙ',
dd : '%d oⵙⵙⴰⵏ',
M : 'ⴰⵢoⵓⵔ',
MM : '%d ⵉⵢⵢⵉⵔⵏ',
y : 'ⴰⵙⴳⴰⵙ',
yy : '%d ⵉⵙⴳⴰⵙⵏ'
},
week : {
dow : 6, // Saturday is the first day of the week.
doy : 12 // The week that contains Jan 1st is the first week of the year.
}
});
return tzm;
})));
================================================
FILE: public/admin-panel/assets/libs/moment/locale/ug-cn.js
================================================
//! moment.js language configuration
;(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined'
&& typeof require === 'function' ? factory(require('../moment')) :
typeof define === 'function' && define.amd ? define(['../moment'], factory) :
factory(global.moment)
}(this, (function (moment) { 'use strict';
var ugCn = moment.defineLocale('ug-cn', {
months: 'يانۋار_فېۋرال_مارت_ئاپرېل_ماي_ئىيۇن_ئىيۇل_ئاۋغۇست_سېنتەبىر_ئۆكتەبىر_نويابىر_دېكابىر'.split(
'_'
),
monthsShort: 'يانۋار_فېۋرال_مارت_ئاپرېل_ماي_ئىيۇن_ئىيۇل_ئاۋغۇست_سېنتەبىر_ئۆكتەبىر_نويابىر_دېكابىر'.split(
'_'
),
weekdays: 'يەكشەنبە_دۈشەنبە_سەيشەنبە_چارشەنبە_پەيشەنبە_جۈمە_شەنبە'.split(
'_'
),
weekdaysShort: 'يە_دۈ_سە_چا_پە_جۈ_شە'.split('_'),
weekdaysMin: 'يە_دۈ_سە_چا_پە_جۈ_شە'.split('_'),
longDateFormat: {
LT: 'HH:mm',
LTS: 'HH:mm:ss',
L: 'YYYY-MM-DD',
LL: 'YYYY-يىلىM-ئاينىڭD-كۈنى',
LLL: 'YYYY-يىلىM-ئاينىڭD-كۈنى، HH:mm',
LLLL: 'dddd، YYYY-يىلىM-ئاينىڭD-كۈنى، HH:mm'
},
meridiemParse: /يېرىم كېچە|سەھەر|چۈشتىن بۇرۇن|چۈش|چۈشتىن كېيىن|كەچ/,
meridiemHour: function (hour, meridiem) {
if (hour === 12) {
hour = 0;
}
if (
meridiem === 'يېرىم كېچە' ||
meridiem === 'سەھەر' ||
meridiem === 'چۈشتىن بۇرۇن'
) {
return hour;
} else if (meridiem === 'چۈشتىن كېيىن' || meridiem === 'كەچ') {
return hour + 12;
} else {
return hour >= 11 ? hour : hour + 12;
}
},
meridiem: function (hour, minute, isLower) {
var hm = hour * 100 + minute;
if (hm < 600) {
return 'يېرىم كېچە';
} else if (hm < 900) {
return 'سەھەر';
} else if (hm < 1130) {
return 'چۈشتىن بۇرۇن';
} else if (hm < 1230) {
return 'چۈش';
} else if (hm < 1800) {
return 'چۈشتىن كېيىن';
} else {
return 'كەچ';
}
},
calendar: {
sameDay: '[بۈگۈن سائەت] LT',
nextDay: '[ئەتە سائەت] LT',
nextWeek: '[كېلەركى] dddd [سائەت] LT',
lastDay: '[تۆنۈگۈن] LT',
lastWeek: '[ئالدىنقى] dddd [سائەت] LT',
sameElse: 'L'
},
relativeTime: {
future: '%s كېيىن',
past: '%s بۇرۇن',
s: 'نەچچە سېكونت',
ss: '%d سېكونت',
m: 'بىر مىنۇت',
mm: '%d مىنۇت',
h: 'بىر سائەت',
hh: '%d سائەت',
d: 'بىر كۈن',
dd: '%d كۈن',
M: 'بىر ئاي',
MM: '%d ئاي',
y: 'بىر يىل',
yy: '%d يىل'
},
dayOfMonthOrdinalParse: /\d{1,2}(-كۈنى|-ئاي|-ھەپتە)/,
ordinal: function (number, period) {
switch (period) {
case 'd':
case 'D':
case 'DDD':
return number + '-كۈنى';
case 'w':
case 'W':
return number + '-ھەپتە';
default:
return number;
}
},
preparse: function (string) {
return string.replace(/،/g, ',');
},
postformat: function (string) {
return string.replace(/,/g, '،');
},
week: {
// GB/T 7408-1994《数据元和交换格式·信息交换·日期和时间表示法》与ISO 8601:1988等效
dow: 1, // Monday is the first day of the week.
doy: 7 // The week that contains Jan 1st is the first week of the year.
}
});
return ugCn;
})));
================================================
FILE: public/admin-panel/assets/libs/moment/locale/uk.js
================================================
//! moment.js locale configuration
;(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined'
&& typeof require === 'function' ? factory(require('../moment')) :
typeof define === 'function' && define.amd ? define(['../moment'], factory) :
factory(global.moment)
}(this, (function (moment) { 'use strict';
function plural(word, num) {
var forms = word.split('_');
return num % 10 === 1 && num % 100 !== 11 ? forms[0] : (num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) ? forms[1] : forms[2]);
}
function relativeTimeWithPlural(number, withoutSuffix, key) {
var format = {
'ss': withoutSuffix ? 'секунда_секунди_секунд' : 'секунду_секунди_секунд',
'mm': withoutSuffix ? 'хвилина_хвилини_хвилин' : 'хвилину_хвилини_хвилин',
'hh': withoutSuffix ? 'година_години_годин' : 'годину_години_годин',
'dd': 'день_дні_днів',
'MM': 'місяць_місяці_місяців',
'yy': 'рік_роки_років'
};
if (key === 'm') {
return withoutSuffix ? 'хвилина' : 'хвилину';
}
else if (key === 'h') {
return withoutSuffix ? 'година' : 'годину';
}
else {
return number + ' ' + plural(format[key], +number);
}
}
function weekdaysCaseReplace(m, format) {
var weekdays = {
'nominative': 'неділя_понеділок_вівторок_середа_четвер_п’ятниця_субота'.split('_'),
'accusative': 'неділю_понеділок_вівторок_середу_четвер_п’ятницю_суботу'.split('_'),
'genitive': 'неділі_понеділка_вівторка_середи_четверга_п’ятниці_суботи'.split('_')
};
if (!m) {
return weekdays['nominative'];
}
var nounCase = (/(\[[ВвУу]\]) ?dddd/).test(format) ?
'accusative' :
((/\[?(?:минулої|наступної)? ?\] ?dddd/).test(format) ?
'genitive' :
'nominative');
return weekdays[nounCase][m.day()];
}
function processHoursFunction(str) {
return function () {
return str + 'о' + (this.hours() === 11 ? 'б' : '') + '] LT';
};
}
var uk = moment.defineLocale('uk', {
months : {
'format': 'січня_лютого_березня_квітня_травня_червня_липня_серпня_вересня_жовтня_листопада_грудня'.split('_'),
'standalone': 'січень_лютий_березень_квітень_травень_червень_липень_серпень_вересень_жовтень_листопад_грудень'.split('_')
},
monthsShort : 'січ_лют_бер_квіт_трав_черв_лип_серп_вер_жовт_лист_груд'.split('_'),
weekdays : weekdaysCaseReplace,
weekdaysShort : 'нд_пн_вт_ср_чт_пт_сб'.split('_'),
weekdaysMin : 'нд_пн_вт_ср_чт_пт_сб'.split('_'),
longDateFormat : {
LT : 'HH:mm',
LTS : 'HH:mm:ss',
L : 'DD.MM.YYYY',
LL : 'D MMMM YYYY р.',
LLL : 'D MMMM YYYY р., HH:mm',
LLLL : 'dddd, D MMMM YYYY р., HH:mm'
},
calendar : {
sameDay: processHoursFunction('[Сьогодні '),
nextDay: processHoursFunction('[Завтра '),
lastDay: processHoursFunction('[Вчора '),
nextWeek: processHoursFunction('[У] dddd ['),
lastWeek: function () {
switch (this.day()) {
case 0:
case 3:
case 5:
case 6:
return processHoursFunction('[Минулої] dddd [').call(this);
case 1:
case 2:
case 4:
return processHoursFunction('[Минулого] dddd [').call(this);
}
},
sameElse: 'L'
},
relativeTime : {
future : 'за %s',
past : '%s тому',
s : 'декілька секунд',
ss : relativeTimeWithPlural,
m : relativeTimeWithPlural,
mm : relativeTimeWithPlural,
h : 'годину',
hh : relativeTimeWithPlural,
d : 'день',
dd : relativeTimeWithPlural,
M : 'місяць',
MM : relativeTimeWithPlural,
y : 'рік',
yy : relativeTimeWithPlural
},
// M. E.: those two are virtually unused but a user might want to implement them for his/her website for some reason
meridiemParse: /ночі|ранку|дня|вечора/,
isPM: function (input) {
return /^(дня|вечора)$/.test(input);
},
meridiem : function (hour, minute, isLower) {
if (hour < 4) {
return 'ночі';
} else if (hour < 12) {
return 'ранку';
} else if (hour < 17) {
return 'дня';
} else {
return 'вечора';
}
},
dayOfMonthOrdinalParse: /\d{1,2}-(й|го)/,
ordinal: function (number, period) {
switch (period) {
case 'M':
case 'd':
case 'DDD':
case 'w':
case 'W':
return number + '-й';
case 'D':
return number + '-го';
default:
return number;
}
},
week : {
dow : 1, // Monday is the first day of the week.
doy : 7 // The week that contains Jan 1st is the first week of the year.
}
});
return uk;
})));
================================================
FILE: public/admin-panel/assets/libs/moment/locale/ur.js
================================================
//! moment.js locale configuration
;(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined'
&& typeof require === 'function' ? factory(require('../moment')) :
typeof define === 'function' && define.amd ? define(['../moment'], factory) :
factory(global.moment)
}(this, (function (moment) { 'use strict';
var months = [
'جنوری',
'فروری',
'مارچ',
'اپریل',
'مئی',
'جون',
'جولائی',
'اگست',
'ستمبر',
'اکتوبر',
'نومبر',
'دسمبر'
];
var days = [
'اتوار',
'پیر',
'منگل',
'بدھ',
'جمعرات',
'جمعہ',
'ہفتہ'
];
var ur = moment.defineLocale('ur', {
months : months,
monthsShort : months,
weekdays : days,
weekdaysShort : days,
weekdaysMin : days,
longDateFormat : {
LT : 'HH:mm',
LTS : 'HH:mm:ss',
L : 'DD/MM/YYYY',
LL : 'D MMMM YYYY',
LLL : 'D MMMM YYYY HH:mm',
LLLL : 'dddd، D MMMM YYYY HH:mm'
},
meridiemParse: /صبح|شام/,
isPM : function (input) {
return 'شام' === input;
},
meridiem : function (hour, minute, isLower) {
if (hour < 12) {
return 'صبح';
}
return 'شام';
},
calendar : {
sameDay : '[آج بوقت] LT',
nextDay : '[کل بوقت] LT',
nextWeek : 'dddd [بوقت] LT',
lastDay : '[گذشتہ روز بوقت] LT',
lastWeek : '[گذشتہ] dddd [بوقت] LT',
sameElse : 'L'
},
relativeTime : {
future : '%s بعد',
past : '%s قبل',
s : 'چند سیکنڈ',
ss : '%d سیکنڈ',
m : 'ایک منٹ',
mm : '%d منٹ',
h : 'ایک گھنٹہ',
hh : '%d گھنٹے',
d : 'ایک دن',
dd : '%d دن',
M : 'ایک ماہ',
MM : '%d ماہ',
y : 'ایک سال',
yy : '%d سال'
},
preparse: function (string) {
return string.replace(/،/g, ',');
},
postformat: function (string) {
return string.replace(/,/g, '،');
},
week : {
dow : 1, // Monday is the first day of the week.
doy : 4 // The week that contains Jan 4th is the first week of the year.
}
});
return ur;
})));
================================================
FILE: public/admin-panel/assets/libs/moment/locale/uz-latn.js
================================================
//! moment.js locale configuration
;(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined'
&& typeof require === 'function' ? factory(require('../moment')) :
typeof define === 'function' && define.amd ? define(['../moment'], factory) :
factory(global.moment)
}(this, (function (moment) { 'use strict';
var uzLatn = moment.defineLocale('uz-latn', {
months : 'Yanvar_Fevral_Mart_Aprel_May_Iyun_Iyul_Avgust_Sentabr_Oktabr_Noyabr_Dekabr'.split('_'),
monthsShort : 'Yan_Fev_Mar_Apr_May_Iyun_Iyul_Avg_Sen_Okt_Noy_Dek'.split('_'),
weekdays : 'Yakshanba_Dushanba_Seshanba_Chorshanba_Payshanba_Juma_Shanba'.split('_'),
weekdaysShort : 'Yak_Dush_Sesh_Chor_Pay_Jum_Shan'.split('_'),
weekdaysMin : 'Ya_Du_Se_Cho_Pa_Ju_Sha'.split('_'),
longDateFormat : {
LT : 'HH:mm',
LTS : 'HH:mm:ss',
L : 'DD/MM/YYYY',
LL : 'D MMMM YYYY',
LLL : 'D MMMM YYYY HH:mm',
LLLL : 'D MMMM YYYY, dddd HH:mm'
},
calendar : {
sameDay : '[Bugun soat] LT [da]',
nextDay : '[Ertaga] LT [da]',
nextWeek : 'dddd [kuni soat] LT [da]',
lastDay : '[Kecha soat] LT [da]',
lastWeek : '[O\'tgan] dddd [kuni soat] LT [da]',
sameElse : 'L'
},
relativeTime : {
future : 'Yaqin %s ichida',
past : 'Bir necha %s oldin',
s : 'soniya',
ss : '%d soniya',
m : 'bir daqiqa',
mm : '%d daqiqa',
h : 'bir soat',
hh : '%d soat',
d : 'bir kun',
dd : '%d kun',
M : 'bir oy',
MM : '%d oy',
y : 'bir yil',
yy : '%d yil'
},
week : {
dow : 1, // Monday is the first day of the week.
doy : 7 // The week that contains Jan 1st is the first week of the year.
}
});
return uzLatn;
})));
================================================
FILE: public/admin-panel/assets/libs/moment/locale/uz.js
================================================
//! moment.js locale configuration
;(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined'
&& typeof require === 'function' ? factory(require('../moment')) :
typeof define === 'function' && define.amd ? define(['../moment'], factory) :
factory(global.moment)
}(this, (function (moment) { 'use strict';
var uz = moment.defineLocale('uz', {
months : 'январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр'.split('_'),
monthsShort : 'янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек'.split('_'),
weekdays : 'Якшанба_Душанба_Сешанба_Чоршанба_Пайшанба_Жума_Шанба'.split('_'),
weekdaysShort : 'Якш_Душ_Сеш_Чор_Пай_Жум_Шан'.split('_'),
weekdaysMin : 'Як_Ду_Се_Чо_Па_Жу_Ша'.split('_'),
longDateFormat : {
LT : 'HH:mm',
LTS : 'HH:mm:ss',
L : 'DD/MM/YYYY',
LL : 'D MMMM YYYY',
LLL : 'D MMMM YYYY HH:mm',
LLLL : 'D MMMM YYYY, dddd HH:mm'
},
calendar : {
sameDay : '[Бугун соат] LT [да]',
nextDay : '[Эртага] LT [да]',
nextWeek : 'dddd [куни соат] LT [да]',
lastDay : '[Кеча соат] LT [да]',
lastWeek : '[Утган] dddd [куни соат] LT [да]',
sameElse : 'L'
},
relativeTime : {
future : 'Якин %s ичида',
past : 'Бир неча %s олдин',
s : 'фурсат',
ss : '%d фурсат',
m : 'бир дакика',
mm : '%d дакика',
h : 'бир соат',
hh : '%d соат',
d : 'бир кун',
dd : '%d кун',
M : 'бир ой',
MM : '%d ой',
y : 'бир йил',
yy : '%d йил'
},
week : {
dow : 1, // Monday is the first day of the week.
doy : 7 // The week that contains Jan 4th is the first week of the year.
}
});
return uz;
})));
================================================
FILE: public/admin-panel/assets/libs/moment/locale/vi.js
================================================
//! moment.js locale configuration
;(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined'
&& typeof require === 'function' ? factory(require('../moment')) :
typeof define === 'function' && define.amd ? define(['../moment'], factory) :
factory(global.moment)
}(this, (function (moment) { 'use strict';
var vi = moment.defineLocale('vi', {
months : 'tháng 1_tháng 2_tháng 3_tháng 4_tháng 5_tháng 6_tháng 7_tháng 8_tháng 9_tháng 10_tháng 11_tháng 12'.split('_'),
monthsShort : 'Th01_Th02_Th03_Th04_Th05_Th06_Th07_Th08_Th09_Th10_Th11_Th12'.split('_'),
monthsParseExact : true,
weekdays : 'chủ nhật_thứ hai_thứ ba_thứ tư_thứ năm_thứ sáu_thứ bảy'.split('_'),
weekdaysShort : 'CN_T2_T3_T4_T5_T6_T7'.split('_'),
weekdaysMin : 'CN_T2_T3_T4_T5_T6_T7'.split('_'),
weekdaysParseExact : true,
meridiemParse: /sa|ch/i,
isPM : function (input) {
return /^ch$/i.test(input);
},
meridiem : function (hours, minutes, isLower) {
if (hours < 12) {
return isLower ? 'sa' : 'SA';
} else {
return isLower ? 'ch' : 'CH';
}
},
longDateFormat : {
LT : 'HH:mm',
LTS : 'HH:mm:ss',
L : 'DD/MM/YYYY',
LL : 'D MMMM [năm] YYYY',
LLL : 'D MMMM [năm] YYYY HH:mm',
LLLL : 'dddd, D MMMM [năm] YYYY HH:mm',
l : 'DD/M/YYYY',
ll : 'D MMM YYYY',
lll : 'D MMM YYYY HH:mm',
llll : 'ddd, D MMM YYYY HH:mm'
},
calendar : {
sameDay: '[Hôm nay lúc] LT',
nextDay: '[Ngày mai lúc] LT',
nextWeek: 'dddd [tuần tới lúc] LT',
lastDay: '[Hôm qua lúc] LT',
lastWeek: 'dddd [tuần rồi lúc] LT',
sameElse: 'L'
},
relativeTime : {
future : '%s tới',
past : '%s trước',
s : 'vài giây',
ss : '%d giây' ,
m : 'một phút',
mm : '%d phút',
h : 'một giờ',
hh : '%d giờ',
d : 'một ngày',
dd : '%d ngày',
M : 'một tháng',
MM : '%d tháng',
y : 'một năm',
yy : '%d năm'
},
dayOfMonthOrdinalParse: /\d{1,2}/,
ordinal : function (number) {
return number;
},
week : {
dow : 1, // Monday is the first day of the week.
doy : 4 // The week that contains Jan 4th is the first week of the year.
}
});
return vi;
})));
================================================
FILE: public/admin-panel/assets/libs/moment/locale/x-pseudo.js
================================================
//! moment.js locale configuration
;(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined'
&& typeof require === 'function' ? factory(require('../moment')) :
typeof define === 'function' && define.amd ? define(['../moment'], factory) :
factory(global.moment)
}(this, (function (moment) { 'use strict';
var xPseudo = moment.defineLocale('x-pseudo', {
months : 'J~áñúá~rý_F~ébrú~árý_~Márc~h_Áp~ríl_~Máý_~Júñé~_Júl~ý_Áú~gúst~_Sép~témb~ér_Ó~ctób~ér_Ñ~óvém~bér_~Décé~mbér'.split('_'),
monthsShort : 'J~áñ_~Féb_~Már_~Ápr_~Máý_~Júñ_~Júl_~Áúg_~Sép_~Óct_~Ñóv_~Déc'.split('_'),
monthsParseExact : true,
weekdays : 'S~úñdá~ý_Mó~ñdáý~_Túé~sdáý~_Wéd~ñésd~áý_T~húrs~dáý_~Fríd~áý_S~átúr~dáý'.split('_'),
weekdaysShort : 'S~úñ_~Móñ_~Túé_~Wéd_~Thú_~Frí_~Sát'.split('_'),
weekdaysMin : 'S~ú_Mó~_Tú_~Wé_T~h_Fr~_Sá'.split('_'),
weekdaysParseExact : true,
longDateFormat : {
LT : 'HH:mm',
L : 'DD/MM/YYYY',
LL : 'D MMMM YYYY',
LLL : 'D MMMM YYYY HH:mm',
LLLL : 'dddd, D MMMM YYYY HH:mm'
},
calendar : {
sameDay : '[T~ódá~ý át] LT',
nextDay : '[T~ómó~rró~w át] LT',
nextWeek : 'dddd [át] LT',
lastDay : '[Ý~ést~érdá~ý át] LT',
lastWeek : '[L~ást] dddd [át] LT',
sameElse : 'L'
},
relativeTime : {
future : 'í~ñ %s',
past : '%s á~gó',
s : 'á ~féw ~sécó~ñds',
ss : '%d s~écóñ~ds',
m : 'á ~míñ~úté',
mm : '%d m~íñú~tés',
h : 'á~ñ hó~úr',
hh : '%d h~óúrs',
d : 'á ~dáý',
dd : '%d d~áýs',
M : 'á ~móñ~th',
MM : '%d m~óñt~hs',
y : 'á ~ýéár',
yy : '%d ý~éárs'
},
dayOfMonthOrdinalParse: /\d{1,2}(th|st|nd|rd)/,
ordinal : function (number) {
var b = number % 10,
output = (~~(number % 100 / 10) === 1) ? 'th' :
(b === 1) ? 'st' :
(b === 2) ? 'nd' :
(b === 3) ? 'rd' : 'th';
return number + output;
},
week : {
dow : 1, // Monday is the first day of the week.
doy : 4 // The week that contains Jan 4th is the first week of the year.
}
});
return xPseudo;
})));
================================================
FILE: public/admin-panel/assets/libs/moment/locale/yo.js
================================================
//! moment.js locale configuration
;(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined'
&& typeof require === 'function' ? factory(require('../moment')) :
typeof define === 'function' && define.amd ? define(['../moment'], factory) :
factory(global.moment)
}(this, (function (moment) { 'use strict';
var yo = moment.defineLocale('yo', {
months : 'Sẹ́rẹ́_Èrèlè_Ẹrẹ̀nà_Ìgbé_Èbibi_Òkùdu_Agẹmo_Ògún_Owewe_Ọ̀wàrà_Bélú_Ọ̀pẹ̀̀'.split('_'),
monthsShort : 'Sẹ́r_Èrl_Ẹrn_Ìgb_Èbi_Òkù_Agẹ_Ògú_Owe_Ọ̀wà_Bél_Ọ̀pẹ̀̀'.split('_'),
weekdays : 'Àìkú_Ajé_Ìsẹ́gun_Ọjọ́rú_Ọjọ́bọ_Ẹtì_Àbámẹ́ta'.split('_'),
weekdaysShort : 'Àìk_Ajé_Ìsẹ́_Ọjr_Ọjb_Ẹtì_Àbá'.split('_'),
weekdaysMin : 'Àì_Aj_Ìs_Ọr_Ọb_Ẹt_Àb'.split('_'),
longDateFormat : {
LT : 'h:mm A',
LTS : 'h:mm:ss A',
L : 'DD/MM/YYYY',
LL : 'D MMMM YYYY',
LLL : 'D MMMM YYYY h:mm A',
LLLL : 'dddd, D MMMM YYYY h:mm A'
},
calendar : {
sameDay : '[Ònì ni] LT',
nextDay : '[Ọ̀la ni] LT',
nextWeek : 'dddd [Ọsẹ̀ tón\'bọ] [ni] LT',
lastDay : '[Àna ni] LT',
lastWeek : 'dddd [Ọsẹ̀ tólọ́] [ni] LT',
sameElse : 'L'
},
relativeTime : {
future : 'ní %s',
past : '%s kọjá',
s : 'ìsẹjú aayá die',
ss :'aayá %d',
m : 'ìsẹjú kan',
mm : 'ìsẹjú %d',
h : 'wákati kan',
hh : 'wákati %d',
d : 'ọjọ́ kan',
dd : 'ọjọ́ %d',
M : 'osù kan',
MM : 'osù %d',
y : 'ọdún kan',
yy : 'ọdún %d'
},
dayOfMonthOrdinalParse : /ọjọ́\s\d{1,2}/,
ordinal : 'ọjọ́ %d',
week : {
dow : 1, // Monday is the first day of the week.
doy : 4 // The week that contains Jan 4th is the first week of the year.
}
});
return yo;
})));
================================================
FILE: public/admin-panel/assets/libs/moment/locale/zh-cn.js
================================================
//! moment.js locale configuration
;(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined'
&& typeof require === 'function' ? factory(require('../moment')) :
typeof define === 'function' && define.amd ? define(['../moment'], factory) :
factory(global.moment)
}(this, (function (moment) { 'use strict';
var zhCn = moment.defineLocale('zh-cn', {
months : '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split('_'),
monthsShort : '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),
weekdays : '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),
weekdaysShort : '周日_周一_周二_周三_周四_周五_周六'.split('_'),
weekdaysMin : '日_一_二_三_四_五_六'.split('_'),
longDateFormat : {
LT : 'HH:mm',
LTS : 'HH:mm:ss',
L : 'YYYY/MM/DD',
LL : 'YYYY年M月D日',
LLL : 'YYYY年M月D日Ah点mm分',
LLLL : 'YYYY年M月D日ddddAh点mm分',
l : 'YYYY/M/D',
ll : 'YYYY年M月D日',
lll : 'YYYY年M月D日 HH:mm',
llll : 'YYYY年M月D日dddd HH:mm'
},
meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,
meridiemHour: function (hour, meridiem) {
if (hour === 12) {
hour = 0;
}
if (meridiem === '凌晨' || meridiem === '早上' ||
meridiem === '上午') {
return hour;
} else if (meridiem === '下午' || meridiem === '晚上') {
return hour + 12;
} else {
// '中午'
return hour >= 11 ? hour : hour + 12;
}
},
meridiem : function (hour, minute, isLower) {
var hm = hour * 100 + minute;
if (hm < 600) {
return '凌晨';
} else if (hm < 900) {
return '早上';
} else if (hm < 1130) {
return '上午';
} else if (hm < 1230) {
return '中午';
} else if (hm < 1800) {
return '下午';
} else {
return '晚上';
}
},
calendar : {
sameDay : '[今天]LT',
nextDay : '[明天]LT',
nextWeek : '[下]ddddLT',
lastDay : '[昨天]LT',
lastWeek : '[上]ddddLT',
sameElse : 'L'
},
dayOfMonthOrdinalParse: /\d{1,2}(日|月|周)/,
ordinal : function (number, period) {
switch (period) {
case 'd':
case 'D':
case 'DDD':
return number + '日';
case 'M':
return number + '月';
case 'w':
case 'W':
return number + '周';
default:
return number;
}
},
relativeTime : {
future : '%s内',
past : '%s前',
s : '几秒',
ss : '%d 秒',
m : '1 分钟',
mm : '%d 分钟',
h : '1 小时',
hh : '%d 小时',
d : '1 天',
dd : '%d 天',
M : '1 个月',
MM : '%d 个月',
y : '1 年',
yy : '%d 年'
},
week : {
// GB/T 7408-1994《数据元和交换格式·信息交换·日期和时间表示法》与ISO 8601:1988等效
dow : 1, // Monday is the first day of the week.
doy : 4 // The week that contains Jan 4th is the first week of the year.
}
});
return zhCn;
})));
================================================
FILE: public/admin-panel/assets/libs/moment/locale/zh-hk.js
================================================
//! moment.js locale configuration
;(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined'
&& typeof require === 'function' ? factory(require('../moment')) :
typeof define === 'function' && define.amd ? define(['../moment'], factory) :
factory(global.moment)
}(this, (function (moment) { 'use strict';
var zhHk = moment.defineLocale('zh-hk', {
months : '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split('_'),
monthsShort : '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),
weekdays : '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),
weekdaysShort : '週日_週一_週二_週三_週四_週五_週六'.split('_'),
weekdaysMin : '日_一_二_三_四_五_六'.split('_'),
longDateFormat : {
LT : 'HH:mm',
LTS : 'HH:mm:ss',
L : 'YYYY/MM/DD',
LL : 'YYYY年M月D日',
LLL : 'YYYY年M月D日 HH:mm',
LLLL : 'YYYY年M月D日dddd HH:mm',
l : 'YYYY/M/D',
ll : 'YYYY年M月D日',
lll : 'YYYY年M月D日 HH:mm',
llll : 'YYYY年M月D日dddd HH:mm'
},
meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,
meridiemHour : function (hour, meridiem) {
if (hour === 12) {
hour = 0;
}
if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') {
return hour;
} else if (meridiem === '中午') {
return hour >= 11 ? hour : hour + 12;
} else if (meridiem === '下午' || meridiem === '晚上') {
return hour + 12;
}
},
meridiem : function (hour, minute, isLower) {
var hm = hour * 100 + minute;
if (hm < 600) {
return '凌晨';
} else if (hm < 900) {
return '早上';
} else if (hm < 1130) {
return '上午';
} else if (hm < 1230) {
return '中午';
} else if (hm < 1800) {
return '下午';
} else {
return '晚上';
}
},
calendar : {
sameDay : '[今天]LT',
nextDay : '[明天]LT',
nextWeek : '[下]ddddLT',
lastDay : '[昨天]LT',
lastWeek : '[上]ddddLT',
sameElse : 'L'
},
dayOfMonthOrdinalParse: /\d{1,2}(日|月|週)/,
ordinal : function (number, period) {
switch (period) {
case 'd' :
case 'D' :
case 'DDD' :
return number + '日';
case 'M' :
return number + '月';
case 'w' :
case 'W' :
return number + '週';
default :
return number;
}
},
relativeTime : {
future : '%s內',
past : '%s前',
s : '幾秒',
ss : '%d 秒',
m : '1 分鐘',
mm : '%d 分鐘',
h : '1 小時',
hh : '%d 小時',
d : '1 天',
dd : '%d 天',
M : '1 個月',
MM : '%d 個月',
y : '1 年',
yy : '%d 年'
}
});
return zhHk;
})));
================================================
FILE: public/admin-panel/assets/libs/moment/locale/zh-tw.js
================================================
//! moment.js locale configuration
;(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined'
&& typeof require === 'function' ? factory(require('../moment')) :
typeof define === 'function' && define.amd ? define(['../moment'], factory) :
factory(global.moment)
}(this, (function (moment) { 'use strict';
var zhTw = moment.defineLocale('zh-tw', {
months : '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split('_'),
monthsShort : '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),
weekdays : '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),
weekdaysShort : '週日_週一_週二_週三_週四_週五_週六'.split('_'),
weekdaysMin : '日_一_二_三_四_五_六'.split('_'),
longDateFormat : {
LT : 'HH:mm',
LTS : 'HH:mm:ss',
L : 'YYYY/MM/DD',
LL : 'YYYY年M月D日',
LLL : 'YYYY年M月D日 HH:mm',
LLLL : 'YYYY年M月D日dddd HH:mm',
l : 'YYYY/M/D',
ll : 'YYYY年M月D日',
lll : 'YYYY年M月D日 HH:mm',
llll : 'YYYY年M月D日dddd HH:mm'
},
meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,
meridiemHour : function (hour, meridiem) {
if (hour === 12) {
hour = 0;
}
if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') {
return hour;
} else if (meridiem === '中午') {
return hour >= 11 ? hour : hour + 12;
} else if (meridiem === '下午' || meridiem === '晚上') {
return hour + 12;
}
},
meridiem : function (hour, minute, isLower) {
var hm = hour * 100 + minute;
if (hm < 600) {
return '凌晨';
} else if (hm < 900) {
return '早上';
} else if (hm < 1130) {
return '上午';
} else if (hm < 1230) {
return '中午';
} else if (hm < 1800) {
return '下午';
} else {
return '晚上';
}
},
calendar : {
sameDay : '[今天] LT',
nextDay : '[明天] LT',
nextWeek : '[下]dddd LT',
lastDay : '[昨天] LT',
lastWeek : '[上]dddd LT',
sameElse : 'L'
},
dayOfMonthOrdinalParse: /\d{1,2}(日|月|週)/,
ordinal : function (number, period) {
switch (period) {
case 'd' :
case 'D' :
case 'DDD' :
return number + '日';
case 'M' :
return number + '月';
case 'w' :
case 'W' :
return number + '週';
default :
return number;
}
},
relativeTime : {
future : '%s內',
past : '%s前',
s : '幾秒',
ss : '%d 秒',
m : '1 分鐘',
mm : '%d 分鐘',
h : '1 小時',
hh : '%d 小時',
d : '1 天',
dd : '%d 天',
M : '1 個月',
MM : '%d 個月',
y : '1 年',
yy : '%d 年'
}
});
return zhTw;
})));
================================================
FILE: public/admin-panel/assets/libs/moment/moment.js
================================================
//! moment.js
;(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
typeof define === 'function' && define.amd ? define(factory) :
global.moment = factory()
}(this, (function () { 'use strict';
var hookCallback;
function hooks () {
return hookCallback.apply(null, arguments);
}
// This is done to register the method called with moment()
// without creating circular dependencies.
function setHookCallback (callback) {
hookCallback = callback;
}
function isArray(input) {
return input instanceof Array || Object.prototype.toString.call(input) === '[object Array]';
}
function isObject(input) {
// IE8 will treat undefined and null as object if it wasn't for
// input != null
return input != null && Object.prototype.toString.call(input) === '[object Object]';
}
function isObjectEmpty(obj) {
if (Object.getOwnPropertyNames) {
return (Object.getOwnPropertyNames(obj).length === 0);
} else {
var k;
for (k in obj) {
if (obj.hasOwnProperty(k)) {
return false;
}
}
return true;
}
}
function isUndefined(input) {
return input === void 0;
}
function isNumber(input) {
return typeof input === 'number' || Object.prototype.toString.call(input) === '[object Number]';
}
function isDate(input) {
return input instanceof Date || Object.prototype.toString.call(input) === '[object Date]';
}
function map(arr, fn) {
var res = [], i;
for (i = 0; i < arr.length; ++i) {
res.push(fn(arr[i], i));
}
return res;
}
function hasOwnProp(a, b) {
return Object.prototype.hasOwnProperty.call(a, b);
}
function extend(a, b) {
for (var i in b) {
if (hasOwnProp(b, i)) {
a[i] = b[i];
}
}
if (hasOwnProp(b, 'toString')) {
a.toString = b.toString;
}
if (hasOwnProp(b, 'valueOf')) {
a.valueOf = b.valueOf;
}
return a;
}
function createUTC (input, format, locale, strict) {
return createLocalOrUTC(input, format, locale, strict, true).utc();
}
function defaultParsingFlags() {
// We need to deep clone this object.
return {
empty : false,
unusedTokens : [],
unusedInput : [],
overflow : -2,
charsLeftOver : 0,
nullInput : false,
invalidMonth : null,
invalidFormat : false,
userInvalidated : false,
iso : false,
parsedDateParts : [],
meridiem : null,
rfc2822 : false,
weekdayMismatch : false
};
}
function getParsingFlags(m) {
if (m._pf == null) {
m._pf = defaultParsingFlags();
}
return m._pf;
}
var some;
if (Array.prototype.some) {
some = Array.prototype.some;
} else {
some = function (fun) {
var t = Object(this);
var len = t.length >>> 0;
for (var i = 0; i < len; i++) {
if (i in t && fun.call(this, t[i], i, t)) {
return true;
}
}
return false;
};
}
function isValid(m) {
if (m._isValid == null) {
var flags = getParsingFlags(m);
var parsedParts = some.call(flags.parsedDateParts, function (i) {
return i != null;
});
var isNowValid = !isNaN(m._d.getTime()) &&
flags.overflow < 0 &&
!flags.empty &&
!flags.invalidMonth &&
!flags.invalidWeekday &&
!flags.weekdayMismatch &&
!flags.nullInput &&
!flags.invalidFormat &&
!flags.userInvalidated &&
(!flags.meridiem || (flags.meridiem && parsedParts));
if (m._strict) {
isNowValid = isNowValid &&
flags.charsLeftOver === 0 &&
flags.unusedTokens.length === 0 &&
flags.bigHour === undefined;
}
if (Object.isFrozen == null || !Object.isFrozen(m)) {
m._isValid = isNowValid;
}
else {
return isNowValid;
}
}
return m._isValid;
}
function createInvalid (flags) {
var m = createUTC(NaN);
if (flags != null) {
extend(getParsingFlags(m), flags);
}
else {
getParsingFlags(m).userInvalidated = true;
}
return m;
}
// Plugins that add properties should also add the key here (null value),
// so we can properly clone ourselves.
var momentProperties = hooks.momentProperties = [];
function copyConfig(to, from) {
var i, prop, val;
if (!isUndefined(from._isAMomentObject)) {
to._isAMomentObject = from._isAMomentObject;
}
if (!isUndefined(from._i)) {
to._i = from._i;
}
if (!isUndefined(from._f)) {
to._f = from._f;
}
if (!isUndefined(from._l)) {
to._l = from._l;
}
if (!isUndefined(from._strict)) {
to._strict = from._strict;
}
if (!isUndefined(from._tzm)) {
to._tzm = from._tzm;
}
if (!isUndefined(from._isUTC)) {
to._isUTC = from._isUTC;
}
if (!isUndefined(from._offset)) {
to._offset = from._offset;
}
if (!isUndefined(from._pf)) {
to._pf = getParsingFlags(from);
}
if (!isUndefined(from._locale)) {
to._locale = from._locale;
}
if (momentProperties.length > 0) {
for (i = 0; i < momentProperties.length; i++) {
prop = momentProperties[i];
val = from[prop];
if (!isUndefined(val)) {
to[prop] = val;
}
}
}
return to;
}
var updateInProgress = false;
// Moment prototype object
function Moment(config) {
copyConfig(this, config);
this._d = new Date(config._d != null ? config._d.getTime() : NaN);
if (!this.isValid()) {
this._d = new Date(NaN);
}
// Prevent infinite loop in case updateOffset creates new moment
// objects.
if (updateInProgress === false) {
updateInProgress = true;
hooks.updateOffset(this);
updateInProgress = false;
}
}
function isMoment (obj) {
return obj instanceof Moment || (obj != null && obj._isAMomentObject != null);
}
function absFloor (number) {
if (number < 0) {
// -0 -> 0
return Math.ceil(number) || 0;
} else {
return Math.floor(number);
}
}
function toInt(argumentForCoercion) {
var coercedNumber = +argumentForCoercion,
value = 0;
if (coercedNumber !== 0 && isFinite(coercedNumber)) {
value = absFloor(coercedNumber);
}
return value;
}
// compare two arrays, return the number of differences
function compareArrays(array1, array2, dontConvert) {
var len = Math.min(array1.length, array2.length),
lengthDiff = Math.abs(array1.length - array2.length),
diffs = 0,
i;
for (i = 0; i < len; i++) {
if ((dontConvert && array1[i] !== array2[i]) ||
(!dontConvert && toInt(array1[i]) !== toInt(array2[i]))) {
diffs++;
}
}
return diffs + lengthDiff;
}
function warn(msg) {
if (hooks.suppressDeprecationWarnings === false &&
(typeof console !== 'undefined') && console.warn) {
console.warn('Deprecation warning: ' + msg);
}
}
function deprecate(msg, fn) {
var firstTime = true;
return extend(function () {
if (hooks.deprecationHandler != null) {
hooks.deprecationHandler(null, msg);
}
if (firstTime) {
var args = [];
var arg;
for (var i = 0; i < arguments.length; i++) {
arg = '';
if (typeof arguments[i] === 'object') {
arg += '\n[' + i + '] ';
for (var key in arguments[0]) {
arg += key + ': ' + arguments[0][key] + ', ';
}
arg = arg.slice(0, -2); // Remove trailing comma and space
} else {
arg = arguments[i];
}
args.push(arg);
}
warn(msg + '\nArguments: ' + Array.prototype.slice.call(args).join('') + '\n' + (new Error()).stack);
firstTime = false;
}
return fn.apply(this, arguments);
}, fn);
}
var deprecations = {};
function deprecateSimple(name, msg) {
if (hooks.deprecationHandler != null) {
hooks.deprecationHandler(name, msg);
}
if (!deprecations[name]) {
warn(msg);
deprecations[name] = true;
}
}
hooks.suppressDeprecationWarnings = false;
hooks.deprecationHandler = null;
function isFunction(input) {
return input instanceof Function || Object.prototype.toString.call(input) === '[object Function]';
}
function set (config) {
var prop, i;
for (i in config) {
prop = config[i];
if (isFunction(prop)) {
this[i] = prop;
} else {
this['_' + i] = prop;
}
}
this._config = config;
// Lenient ordinal parsing accepts just a number in addition to
// number + (possibly) stuff coming from _dayOfMonthOrdinalParse.
// TODO: Remove "ordinalParse" fallback in next major release.
this._dayOfMonthOrdinalParseLenient = new RegExp(
(this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) +
'|' + (/\d{1,2}/).source);
}
function mergeConfigs(parentConfig, childConfig) {
var res = extend({}, parentConfig), prop;
for (prop in childConfig) {
if (hasOwnProp(childConfig, prop)) {
if (isObject(parentConfig[prop]) && isObject(childConfig[prop])) {
res[prop] = {};
extend(res[prop], parentConfig[prop]);
extend(res[prop], childConfig[prop]);
} else if (childConfig[prop] != null) {
res[prop] = childConfig[prop];
} else {
delete res[prop];
}
}
}
for (prop in parentConfig) {
if (hasOwnProp(parentConfig, prop) &&
!hasOwnProp(childConfig, prop) &&
isObject(parentConfig[prop])) {
// make sure changes to properties don't modify parent config
res[prop] = extend({}, res[prop]);
}
}
return res;
}
function Locale(config) {
if (config != null) {
this.set(config);
}
}
var keys;
if (Object.keys) {
keys = Object.keys;
} else {
keys = function (obj) {
var i, res = [];
for (i in obj) {
if (hasOwnProp(obj, i)) {
res.push(i);
}
}
return res;
};
}
var defaultCalendar = {
sameDay : '[Today at] LT',
nextDay : '[Tomorrow at] LT',
nextWeek : 'dddd [at] LT',
lastDay : '[Yesterday at] LT',
lastWeek : '[Last] dddd [at] LT',
sameElse : 'L'
};
function calendar (key, mom, now) {
var output = this._calendar[key] || this._calendar['sameElse'];
return isFunction(output) ? output.call(mom, now) : output;
}
var defaultLongDateFormat = {
LTS : 'h:mm:ss A',
LT : 'h:mm A',
L : 'MM/DD/YYYY',
LL : 'MMMM D, YYYY',
LLL : 'MMMM D, YYYY h:mm A',
LLLL : 'dddd, MMMM D, YYYY h:mm A'
};
function longDateFormat (key) {
var format = this._longDateFormat[key],
formatUpper = this._longDateFormat[key.toUpperCase()];
if (format || !formatUpper) {
return format;
}
this._longDateFormat[key] = formatUpper.replace(/MMMM|MM|DD|dddd/g, function (val) {
return val.slice(1);
});
return this._longDateFormat[key];
}
var defaultInvalidDate = 'Invalid date';
function invalidDate () {
return this._invalidDate;
}
var defaultOrdinal = '%d';
var defaultDayOfMonthOrdinalParse = /\d{1,2}/;
function ordinal (number) {
return this._ordinal.replace('%d', number);
}
var defaultRelativeTime = {
future : 'in %s',
past : '%s ago',
s : 'a few seconds',
ss : '%d seconds',
m : 'a minute',
mm : '%d minutes',
h : 'an hour',
hh : '%d hours',
d : 'a day',
dd : '%d days',
M : 'a month',
MM : '%d months',
y : 'a year',
yy : '%d years'
};
function relativeTime (number, withoutSuffix, string, isFuture) {
var output = this._relativeTime[string];
return (isFunction(output)) ?
output(number, withoutSuffix, string, isFuture) :
output.replace(/%d/i, number);
}
function pastFuture (diff, output) {
var format = this._relativeTime[diff > 0 ? 'future' : 'past'];
return isFunction(format) ? format(output) : format.replace(/%s/i, output);
}
var aliases = {};
function addUnitAlias (unit, shorthand) {
var lowerCase = unit.toLowerCase();
aliases[lowerCase] = aliases[lowerCase + 's'] = aliases[shorthand] = unit;
}
function normalizeUnits(units) {
return typeof units === 'string' ? aliases[units] || aliases[units.toLowerCase()] : undefined;
}
function normalizeObjectUnits(inputObject) {
var normalizedInput = {},
normalizedProp,
prop;
for (prop in inputObject) {
if (hasOwnProp(inputObject, prop)) {
normalizedProp = normalizeUnits(prop);
if (normalizedProp) {
normalizedInput[normalizedProp] = inputObject[prop];
}
}
}
return normalizedInput;
}
var priorities = {};
function addUnitPriority(unit, priority) {
priorities[unit] = priority;
}
function getPrioritizedUnits(unitsObj) {
var units = [];
for (var u in unitsObj) {
units.push({unit: u, priority: priorities[u]});
}
units.sort(function (a, b) {
return a.priority - b.priority;
});
return units;
}
function zeroFill(number, targetLength, forceSign) {
var absNumber = '' + Math.abs(number),
zerosToFill = targetLength - absNumber.length,
sign = number >= 0;
return (sign ? (forceSign ? '+' : '') : '-') +
Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) + absNumber;
}
var formattingTokens = /(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g;
var localFormattingTokens = /(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g;
var formatFunctions = {};
var formatTokenFunctions = {};
// token: 'M'
// padded: ['MM', 2]
// ordinal: 'Mo'
// callback: function () { this.month() + 1 }
function addFormatToken (token, padded, ordinal, callback) {
var func = callback;
if (typeof callback === 'string') {
func = function () {
return this[callback]();
};
}
if (token) {
formatTokenFunctions[token] = func;
}
if (padded) {
formatTokenFunctions[padded[0]] = function () {
return zeroFill(func.apply(this, arguments), padded[1], padded[2]);
};
}
if (ordinal) {
formatTokenFunctions[ordinal] = function () {
return this.localeData().ordinal(func.apply(this, arguments), token);
};
}
}
function removeFormattingTokens(input) {
if (input.match(/\[[\s\S]/)) {
return input.replace(/^\[|\]$/g, '');
}
return input.replace(/\\/g, '');
}
function makeFormatFunction(format) {
var array = format.match(formattingTokens), i, length;
for (i = 0, length = array.length; i < length; i++) {
if (formatTokenFunctions[array[i]]) {
array[i] = formatTokenFunctions[array[i]];
} else {
array[i] = removeFormattingTokens(array[i]);
}
}
return function (mom) {
var output = '', i;
for (i = 0; i < length; i++) {
output += isFunction(array[i]) ? array[i].call(mom, format) : array[i];
}
return output;
};
}
// format date using native date object
function formatMoment(m, format) {
if (!m.isValid()) {
return m.localeData().invalidDate();
}
format = expandFormat(format, m.localeData());
formatFunctions[format] = formatFunctions[format] || makeFormatFunction(format);
return formatFunctions[format](m);
}
function expandFormat(format, locale) {
var i = 5;
function replaceLongDateFormatTokens(input) {
return locale.longDateFormat(input) || input;
}
localFormattingTokens.lastIndex = 0;
while (i >= 0 && localFormattingTokens.test(format)) {
format = format.replace(localFormattingTokens, replaceLongDateFormatTokens);
localFormattingTokens.lastIndex = 0;
i -= 1;
}
return format;
}
var match1 = /\d/; // 0 - 9
var match2 = /\d\d/; // 00 - 99
var match3 = /\d{3}/; // 000 - 999
var match4 = /\d{4}/; // 0000 - 9999
var match6 = /[+-]?\d{6}/; // -999999 - 999999
var match1to2 = /\d\d?/; // 0 - 99
var match3to4 = /\d\d\d\d?/; // 999 - 9999
var match5to6 = /\d\d\d\d\d\d?/; // 99999 - 999999
var match1to3 = /\d{1,3}/; // 0 - 999
var match1to4 = /\d{1,4}/; // 0 - 9999
var match1to6 = /[+-]?\d{1,6}/; // -999999 - 999999
var matchUnsigned = /\d+/; // 0 - inf
var matchSigned = /[+-]?\d+/; // -inf - inf
var matchOffset = /Z|[+-]\d\d:?\d\d/gi; // +00:00 -00:00 +0000 -0000 or Z
var matchShortOffset = /Z|[+-]\d\d(?::?\d\d)?/gi; // +00 -00 +00:00 -00:00 +0000 -0000 or Z
var matchTimestamp = /[+-]?\d+(\.\d{1,3})?/; // 123456789 123456789.123
// any word (or two) characters or numbers including two/three word month in arabic.
// includes scottish gaelic two word and hyphenated months
var matchWord = /[0-9]{0,256}['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFF07\uFF10-\uFFEF]{1,256}|[\u0600-\u06FF\/]{1,256}(\s*?[\u0600-\u06FF]{1,256}){1,2}/i;
var regexes = {};
function addRegexToken (token, regex, strictRegex) {
regexes[token] = isFunction(regex) ? regex : function (isStrict, localeData) {
return (isStrict && strictRegex) ? strictRegex : regex;
};
}
function getParseRegexForToken (token, config) {
if (!hasOwnProp(regexes, token)) {
return new RegExp(unescapeFormat(token));
}
return regexes[token](config._strict, config._locale);
}
// Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript
function unescapeFormat(s) {
return regexEscape(s.replace('\\', '').replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g, function (matched, p1, p2, p3, p4) {
return p1 || p2 || p3 || p4;
}));
}
function regexEscape(s) {
return s.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&');
}
var tokens = {};
function addParseToken (token, callback) {
var i, func = callback;
if (typeof token === 'string') {
token = [token];
}
if (isNumber(callback)) {
func = function (input, array) {
array[callback] = toInt(input);
};
}
for (i = 0; i < token.length; i++) {
tokens[token[i]] = func;
}
}
function addWeekParseToken (token, callback) {
addParseToken(token, function (input, array, config, token) {
config._w = config._w || {};
callback(input, config._w, config, token);
});
}
function addTimeToArrayFromToken(token, input, config) {
if (input != null && hasOwnProp(tokens, token)) {
tokens[token](input, config._a, config, token);
}
}
var YEAR = 0;
var MONTH = 1;
var DATE = 2;
var HOUR = 3;
var MINUTE = 4;
var SECOND = 5;
var MILLISECOND = 6;
var WEEK = 7;
var WEEKDAY = 8;
// FORMATTING
addFormatToken('Y', 0, 0, function () {
var y = this.year();
return y <= 9999 ? '' + y : '+' + y;
});
addFormatToken(0, ['YY', 2], 0, function () {
return this.year() % 100;
});
addFormatToken(0, ['YYYY', 4], 0, 'year');
addFormatToken(0, ['YYYYY', 5], 0, 'year');
addFormatToken(0, ['YYYYYY', 6, true], 0, 'year');
// ALIASES
addUnitAlias('year', 'y');
// PRIORITIES
addUnitPriority('year', 1);
// PARSING
addRegexToken('Y', matchSigned);
addRegexToken('YY', match1to2, match2);
addRegexToken('YYYY', match1to4, match4);
addRegexToken('YYYYY', match1to6, match6);
addRegexToken('YYYYYY', match1to6, match6);
addParseToken(['YYYYY', 'YYYYYY'], YEAR);
addParseToken('YYYY', function (input, array) {
array[YEAR] = input.length === 2 ? hooks.parseTwoDigitYear(input) : toInt(input);
});
addParseToken('YY', function (input, array) {
array[YEAR] = hooks.parseTwoDigitYear(input);
});
addParseToken('Y', function (input, array) {
array[YEAR] = parseInt(input, 10);
});
// HELPERS
function daysInYear(year) {
return isLeapYear(year) ? 366 : 365;
}
function isLeapYear(year) {
return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;
}
// HOOKS
hooks.parseTwoDigitYear = function (input) {
return toInt(input) + (toInt(input) > 68 ? 1900 : 2000);
};
// MOMENTS
var getSetYear = makeGetSet('FullYear', true);
function getIsLeapYear () {
return isLeapYear(this.year());
}
function makeGetSet (unit, keepTime) {
return function (value) {
if (value != null) {
set$1(this, unit, value);
hooks.updateOffset(this, keepTime);
return this;
} else {
return get(this, unit);
}
};
}
function get (mom, unit) {
return mom.isValid() ?
mom._d['get' + (mom._isUTC ? 'UTC' : '') + unit]() : NaN;
}
function set$1 (mom, unit, value) {
if (mom.isValid() && !isNaN(value)) {
if (unit === 'FullYear' && isLeapYear(mom.year()) && mom.month() === 1 && mom.date() === 29) {
mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value, mom.month(), daysInMonth(value, mom.month()));
}
else {
mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value);
}
}
}
// MOMENTS
function stringGet (units) {
units = normalizeUnits(units);
if (isFunction(this[units])) {
return this[units]();
}
return this;
}
function stringSet (units, value) {
if (typeof units === 'object') {
units = normalizeObjectUnits(units);
var prioritized = getPrioritizedUnits(units);
for (var i = 0; i < prioritized.length; i++) {
this[prioritized[i].unit](units[prioritized[i].unit]);
}
} else {
units = normalizeUnits(units);
if (isFunction(this[units])) {
return this[units](value);
}
}
return this;
}
function mod(n, x) {
return ((n % x) + x) % x;
}
var indexOf;
if (Array.prototype.indexOf) {
indexOf = Array.prototype.indexOf;
} else {
indexOf = function (o) {
// I know
var i;
for (i = 0; i < this.length; ++i) {
if (this[i] === o) {
return i;
}
}
return -1;
};
}
function daysInMonth(year, month) {
if (isNaN(year) || isNaN(month)) {
return NaN;
}
var modMonth = mod(month, 12);
year += (month - modMonth) / 12;
return modMonth === 1 ? (isLeapYear(year) ? 29 : 28) : (31 - modMonth % 7 % 2);
}
// FORMATTING
addFormatToken('M', ['MM', 2], 'Mo', function () {
return this.month() + 1;
});
addFormatToken('MMM', 0, 0, function (format) {
return this.localeData().monthsShort(this, format);
});
addFormatToken('MMMM', 0, 0, function (format) {
return this.localeData().months(this, format);
});
// ALIASES
addUnitAlias('month', 'M');
// PRIORITY
addUnitPriority('month', 8);
// PARSING
addRegexToken('M', match1to2);
addRegexToken('MM', match1to2, match2);
addRegexToken('MMM', function (isStrict, locale) {
return locale.monthsShortRegex(isStrict);
});
addRegexToken('MMMM', function (isStrict, locale) {
return locale.monthsRegex(isStrict);
});
addParseToken(['M', 'MM'], function (input, array) {
array[MONTH] = toInt(input) - 1;
});
addParseToken(['MMM', 'MMMM'], function (input, array, config, token) {
var month = config._locale.monthsParse(input, token, config._strict);
// if we didn't find a month name, mark the date as invalid.
if (month != null) {
array[MONTH] = month;
} else {
getParsingFlags(config).invalidMonth = input;
}
});
// LOCALES
var MONTHS_IN_FORMAT = /D[oD]?(\[[^\[\]]*\]|\s)+MMMM?/;
var defaultLocaleMonths = 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_');
function localeMonths (m, format) {
if (!m) {
return isArray(this._months) ? this._months :
this._months['standalone'];
}
return isArray(this._months) ? this._months[m.month()] :
this._months[(this._months.isFormat || MONTHS_IN_FORMAT).test(format) ? 'format' : 'standalone'][m.month()];
}
var defaultLocaleMonthsShort = 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_');
function localeMonthsShort (m, format) {
if (!m) {
return isArray(this._monthsShort) ? this._monthsShort :
this._monthsShort['standalone'];
}
return isArray(this._monthsShort) ? this._monthsShort[m.month()] :
this._monthsShort[MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone'][m.month()];
}
function handleStrictParse(monthName, format, strict) {
var i, ii, mom, llc = monthName.toLocaleLowerCase();
if (!this._monthsParse) {
// this is not used
this._monthsParse = [];
this._longMonthsParse = [];
this._shortMonthsParse = [];
for (i = 0; i < 12; ++i) {
mom = createUTC([2000, i]);
this._shortMonthsParse[i] = this.monthsShort(mom, '').toLocaleLowerCase();
this._longMonthsParse[i] = this.months(mom, '').toLocaleLowerCase();
}
}
if (strict) {
if (format === 'MMM') {
ii = indexOf.call(this._shortMonthsParse, llc);
return ii !== -1 ? ii : null;
} else {
ii = indexOf.call(this._longMonthsParse, llc);
return ii !== -1 ? ii : null;
}
} else {
if (format === 'MMM') {
ii = indexOf.call(this._shortMonthsParse, llc);
if (ii !== -1) {
return ii;
}
ii = indexOf.call(this._longMonthsParse, llc);
return ii !== -1 ? ii : null;
} else {
ii = indexOf.call(this._longMonthsParse, llc);
if (ii !== -1) {
return ii;
}
ii = indexOf.call(this._shortMonthsParse, llc);
return ii !== -1 ? ii : null;
}
}
}
function localeMonthsParse (monthName, format, strict) {
var i, mom, regex;
if (this._monthsParseExact) {
return handleStrictParse.call(this, monthName, format, strict);
}
if (!this._monthsParse) {
this._monthsParse = [];
this._longMonthsParse = [];
this._shortMonthsParse = [];
}
// TODO: add sorting
// Sorting makes sure if one month (or abbr) is a prefix of another
// see sorting in computeMonthsParse
for (i = 0; i < 12; i++) {
// make the regex if we don't have it already
mom = createUTC([2000, i]);
if (strict && !this._longMonthsParse[i]) {
this._longMonthsParse[i] = new RegExp('^' + this.months(mom, '').replace('.', '') + '$', 'i');
this._shortMonthsParse[i] = new RegExp('^' + this.monthsShort(mom, '').replace('.', '') + '$', 'i');
}
if (!strict && !this._monthsParse[i]) {
regex = '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, '');
this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i');
}
// test the regex
if (strict && format === 'MMMM' && this._longMonthsParse[i].test(monthName)) {
return i;
} else if (strict && format === 'MMM' && this._shortMonthsParse[i].test(monthName)) {
return i;
} else if (!strict && this._monthsParse[i].test(monthName)) {
return i;
}
}
}
// MOMENTS
function setMonth (mom, value) {
var dayOfMonth;
if (!mom.isValid()) {
// No op
return mom;
}
if (typeof value === 'string') {
if (/^\d+$/.test(value)) {
value = toInt(value);
} else {
value = mom.localeData().monthsParse(value);
// TODO: Another silent failure?
if (!isNumber(value)) {
return mom;
}
}
}
dayOfMonth = Math.min(mom.date(), daysInMonth(mom.year(), value));
mom._d['set' + (mom._isUTC ? 'UTC' : '') + 'Month'](value, dayOfMonth);
return mom;
}
function getSetMonth (value) {
if (value != null) {
setMonth(this, value);
hooks.updateOffset(this, true);
return this;
} else {
return get(this, 'Month');
}
}
function getDaysInMonth () {
return daysInMonth(this.year(), this.month());
}
var defaultMonthsShortRegex = matchWord;
function monthsShortRegex (isStrict) {
if (this._monthsParseExact) {
if (!hasOwnProp(this, '_monthsRegex')) {
computeMonthsParse.call(this);
}
if (isStrict) {
return this._monthsShortStrictRegex;
} else {
return this._monthsShortRegex;
}
} else {
if (!hasOwnProp(this, '_monthsShortRegex')) {
this._monthsShortRegex = defaultMonthsShortRegex;
}
return this._monthsShortStrictRegex && isStrict ?
this._monthsShortStrictRegex : this._monthsShortRegex;
}
}
var defaultMonthsRegex = matchWord;
function monthsRegex (isStrict) {
if (this._monthsParseExact) {
if (!hasOwnProp(this, '_monthsRegex')) {
computeMonthsParse.call(this);
}
if (isStrict) {
return this._monthsStrictRegex;
} else {
return this._monthsRegex;
}
} else {
if (!hasOwnProp(this, '_monthsRegex')) {
this._monthsRegex = defaultMonthsRegex;
}
return this._monthsStrictRegex && isStrict ?
this._monthsStrictRegex : this._monthsRegex;
}
}
function computeMonthsParse () {
function cmpLenRev(a, b) {
return b.length - a.length;
}
var shortPieces = [], longPieces = [], mixedPieces = [],
i, mom;
for (i = 0; i < 12; i++) {
// make the regex if we don't have it already
mom = createUTC([2000, i]);
shortPieces.push(this.monthsShort(mom, ''));
longPieces.push(this.months(mom, ''));
mixedPieces.push(this.months(mom, ''));
mixedPieces.push(this.monthsShort(mom, ''));
}
// Sorting makes sure if one month (or abbr) is a prefix of another it
// will match the longer piece.
shortPieces.sort(cmpLenRev);
longPieces.sort(cmpLenRev);
mixedPieces.sort(cmpLenRev);
for (i = 0; i < 12; i++) {
shortPieces[i] = regexEscape(shortPieces[i]);
longPieces[i] = regexEscape(longPieces[i]);
}
for (i = 0; i < 24; i++) {
mixedPieces[i] = regexEscape(mixedPieces[i]);
}
this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');
this._monthsShortRegex = this._monthsRegex;
this._monthsStrictRegex = new RegExp('^(' + longPieces.join('|') + ')', 'i');
this._monthsShortStrictRegex = new RegExp('^(' + shortPieces.join('|') + ')', 'i');
}
function createDate (y, m, d, h, M, s, ms) {
// can't just apply() to create a date:
// https://stackoverflow.com/q/181348
var date = new Date(y, m, d, h, M, s, ms);
// the date constructor remaps years 0-99 to 1900-1999
if (y < 100 && y >= 0 && isFinite(date.getFullYear())) {
date.setFullYear(y);
}
return date;
}
function createUTCDate (y) {
var date = new Date(Date.UTC.apply(null, arguments));
// the Date.UTC function remaps years 0-99 to 1900-1999
if (y < 100 && y >= 0 && isFinite(date.getUTCFullYear())) {
date.setUTCFullYear(y);
}
return date;
}
// start-of-first-week - start-of-year
function firstWeekOffset(year, dow, doy) {
var // first-week day -- which january is always in the first week (4 for iso, 1 for other)
fwd = 7 + dow - doy,
// first-week day local weekday -- which local weekday is fwd
fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7;
return -fwdlw + fwd - 1;
}
// https://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday
function dayOfYearFromWeeks(year, week, weekday, dow, doy) {
var localWeekday = (7 + weekday - dow) % 7,
weekOffset = firstWeekOffset(year, dow, doy),
dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset,
resYear, resDayOfYear;
if (dayOfYear <= 0) {
resYear = year - 1;
resDayOfYear = daysInYear(resYear) + dayOfYear;
} else if (dayOfYear > daysInYear(year)) {
resYear = year + 1;
resDayOfYear = dayOfYear - daysInYear(year);
} else {
resYear = year;
resDayOfYear = dayOfYear;
}
return {
year: resYear,
dayOfYear: resDayOfYear
};
}
function weekOfYear(mom, dow, doy) {
var weekOffset = firstWeekOffset(mom.year(), dow, doy),
week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1,
resWeek, resYear;
if (week < 1) {
resYear = mom.year() - 1;
resWeek = week + weeksInYear(resYear, dow, doy);
} else if (week > weeksInYear(mom.year(), dow, doy)) {
resWeek = week - weeksInYear(mom.year(), dow, doy);
resYear = mom.year() + 1;
} else {
resYear = mom.year();
resWeek = week;
}
return {
week: resWeek,
year: resYear
};
}
function weeksInYear(year, dow, doy) {
var weekOffset = firstWeekOffset(year, dow, doy),
weekOffsetNext = firstWeekOffset(year + 1, dow, doy);
return (daysInYear(year) - weekOffset + weekOffsetNext) / 7;
}
// FORMATTING
addFormatToken('w', ['ww', 2], 'wo', 'week');
addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek');
// ALIASES
addUnitAlias('week', 'w');
addUnitAlias('isoWeek', 'W');
// PRIORITIES
addUnitPriority('week', 5);
addUnitPriority('isoWeek', 5);
// PARSING
addRegexToken('w', match1to2);
addRegexToken('ww', match1to2, match2);
addRegexToken('W', match1to2);
addRegexToken('WW', match1to2, match2);
addWeekParseToken(['w', 'ww', 'W', 'WW'], function (input, week, config, token) {
week[token.substr(0, 1)] = toInt(input);
});
// HELPERS
// LOCALES
function localeWeek (mom) {
return weekOfYear(mom, this._week.dow, this._week.doy).week;
}
var defaultLocaleWeek = {
dow : 0, // Sunday is the first day of the week.
doy : 6 // The week that contains Jan 1st is the first week of the year.
};
function localeFirstDayOfWeek () {
return this._week.dow;
}
function localeFirstDayOfYear () {
return this._week.doy;
}
// MOMENTS
function getSetWeek (input) {
var week = this.localeData().week(this);
return input == null ? week : this.add((input - week) * 7, 'd');
}
function getSetISOWeek (input) {
var week = weekOfYear(this, 1, 4).week;
return input == null ? week : this.add((input - week) * 7, 'd');
}
// FORMATTING
addFormatToken('d', 0, 'do', 'day');
addFormatToken('dd', 0, 0, function (format) {
return this.localeData().weekdaysMin(this, format);
});
addFormatToken('ddd', 0, 0, function (format) {
return this.localeData().weekdaysShort(this, format);
});
addFormatToken('dddd', 0, 0, function (format) {
return this.localeData().weekdays(this, format);
});
addFormatToken('e', 0, 0, 'weekday');
addFormatToken('E', 0, 0, 'isoWeekday');
// ALIASES
addUnitAlias('day', 'd');
addUnitAlias('weekday', 'e');
addUnitAlias('isoWeekday', 'E');
// PRIORITY
addUnitPriority('day', 11);
addUnitPriority('weekday', 11);
addUnitPriority('isoWeekday', 11);
// PARSING
addRegexToken('d', match1to2);
addRegexToken('e', match1to2);
addRegexToken('E', match1to2);
addRegexToken('dd', function (isStrict, locale) {
return locale.weekdaysMinRegex(isStrict);
});
addRegexToken('ddd', function (isStrict, locale) {
return locale.weekdaysShortRegex(isStrict);
});
addRegexToken('dddd', function (isStrict, locale) {
return locale.weekdaysRegex(isStrict);
});
addWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) {
var weekday = config._locale.weekdaysParse(input, token, config._strict);
// if we didn't get a weekday name, mark the date as invalid
if (weekday != null) {
week.d = weekday;
} else {
getParsingFlags(config).invalidWeekday = input;
}
});
addWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) {
week[token] = toInt(input);
});
// HELPERS
function parseWeekday(input, locale) {
if (typeof input !== 'string') {
return input;
}
if (!isNaN(input)) {
return parseInt(input, 10);
}
input = locale.weekdaysParse(input);
if (typeof input === 'number') {
return input;
}
return null;
}
function parseIsoWeekday(input, locale) {
if (typeof input === 'string') {
return locale.weekdaysParse(input) % 7 || 7;
}
return isNaN(input) ? null : input;
}
// LOCALES
var defaultLocaleWeekdays = 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_');
function localeWeekdays (m, format) {
if (!m) {
return isArray(this._weekdays) ? this._weekdays :
this._weekdays['standalone'];
}
return isArray(this._weekdays) ? this._weekdays[m.day()] :
this._weekdays[this._weekdays.isFormat.test(format) ? 'format' : 'standalone'][m.day()];
}
var defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_');
function localeWeekdaysShort (m) {
return (m) ? this._weekdaysShort[m.day()] : this._weekdaysShort;
}
var defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_');
function localeWeekdaysMin (m) {
return (m) ? this._weekdaysMin[m.day()] : this._weekdaysMin;
}
function handleStrictParse$1(weekdayName, format, strict) {
var i, ii, mom, llc = weekdayName.toLocaleLowerCase();
if (!this._weekdaysParse) {
this._weekdaysParse = [];
this._shortWeekdaysParse = [];
this._minWeekdaysParse = [];
for (i = 0; i < 7; ++i) {
mom = createUTC([2000, 1]).day(i);
this._minWeekdaysParse[i] = this.weekdaysMin(mom, '').toLocaleLowerCase();
this._shortWeekdaysParse[i] = this.weekdaysShort(mom, '').toLocaleLowerCase();
this._weekdaysParse[i] = this.weekdays(mom, '').toLocaleLowerCase();
}
}
if (strict) {
if (format === 'dddd') {
ii = indexOf.call(this._weekdaysParse, llc);
return ii !== -1 ? ii : null;
} else if (format === 'ddd') {
ii = indexOf.call(this._shortWeekdaysParse, llc);
return ii !== -1 ? ii : null;
} else {
ii = indexOf.call(this._minWeekdaysParse, llc);
return ii !== -1 ? ii : null;
}
} else {
if (format === 'dddd') {
ii = indexOf.call(this._weekdaysParse, llc);
if (ii !== -1) {
return ii;
}
ii = indexOf.call(this._shortWeekdaysParse, llc);
if (ii !== -1) {
return ii;
}
ii = indexOf.call(this._minWeekdaysParse, llc);
return ii !== -1 ? ii : null;
} else if (format === 'ddd') {
ii = indexOf.call(this._shortWeekdaysParse, llc);
if (ii !== -1) {
return ii;
}
ii = indexOf.call(this._weekdaysParse, llc);
if (ii !== -1) {
return ii;
}
ii = indexOf.call(this._minWeekdaysParse, llc);
return ii !== -1 ? ii : null;
} else {
ii = indexOf.call(this._minWeekdaysParse, llc);
if (ii !== -1) {
return ii;
}
ii = indexOf.call(this._weekdaysParse, llc);
if (ii !== -1) {
return ii;
}
ii = indexOf.call(this._shortWeekdaysParse, llc);
return ii !== -1 ? ii : null;
}
}
}
function localeWeekdaysParse (weekdayName, format, strict) {
var i, mom, regex;
if (this._weekdaysParseExact) {
return handleStrictParse$1.call(this, weekdayName, format, strict);
}
if (!this._weekdaysParse) {
this._weekdaysParse = [];
this._minWeekdaysParse = [];
this._shortWeekdaysParse = [];
this._fullWeekdaysParse = [];
}
for (i = 0; i < 7; i++) {
// make the regex if we don't have it already
mom = createUTC([2000, 1]).day(i);
if (strict && !this._fullWeekdaysParse[i]) {
this._fullWeekdaysParse[i] = new RegExp('^' + this.weekdays(mom, '').replace('.', '\.?') + '$', 'i');
this._shortWeekdaysParse[i] = new RegExp('^' + this.weekdaysShort(mom, '').replace('.', '\.?') + '$', 'i');
this._minWeekdaysParse[i] = new RegExp('^' + this.weekdaysMin(mom, '').replace('.', '\.?') + '$', 'i');
}
if (!this._weekdaysParse[i]) {
regex = '^' + this.weekdays(mom, '') + '|^' + this.weekdaysShort(mom, '') + '|^' + this.weekdaysMin(mom, '');
this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i');
}
// test the regex
if (strict && format === 'dddd' && this._fullWeekdaysParse[i].test(weekdayName)) {
return i;
} else if (strict && format === 'ddd' && this._shortWeekdaysParse[i].test(weekdayName)) {
return i;
} else if (strict && format === 'dd' && this._minWeekdaysParse[i].test(weekdayName)) {
return i;
} else if (!strict && this._weekdaysParse[i].test(weekdayName)) {
return i;
}
}
}
// MOMENTS
function getSetDayOfWeek (input) {
if (!this.isValid()) {
return input != null ? this : NaN;
}
var day = this._isUTC ? this._d.getUTCDay() : this._d.getDay();
if (input != null) {
input = parseWeekday(input, this.localeData());
return this.add(input - day, 'd');
} else {
return day;
}
}
function getSetLocaleDayOfWeek (input) {
if (!this.isValid()) {
return input != null ? this : NaN;
}
var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7;
return input == null ? weekday : this.add(input - weekday, 'd');
}
function getSetISODayOfWeek (input) {
if (!this.isValid()) {
return input != null ? this : NaN;
}
// behaves the same as moment#day except
// as a getter, returns 7 instead of 0 (1-7 range instead of 0-6)
// as a setter, sunday should belong to the previous week.
if (input != null) {
var weekday = parseIsoWeekday(input, this.localeData());
return this.day(this.day() % 7 ? weekday : weekday - 7);
} else {
return this.day() || 7;
}
}
var defaultWeekdaysRegex = matchWord;
function weekdaysRegex (isStrict) {
if (this._weekdaysParseExact) {
if (!hasOwnProp(this, '_weekdaysRegex')) {
computeWeekdaysParse.call(this);
}
if (isStrict) {
return this._weekdaysStrictRegex;
} else {
return this._weekdaysRegex;
}
} else {
if (!hasOwnProp(this, '_weekdaysRegex')) {
this._weekdaysRegex = defaultWeekdaysRegex;
}
return this._weekdaysStrictRegex && isStrict ?
this._weekdaysStrictRegex : this._weekdaysRegex;
}
}
var defaultWeekdaysShortRegex = matchWord;
function weekdaysShortRegex (isStrict) {
if (this._weekdaysParseExact) {
if (!hasOwnProp(this, '_weekdaysRegex')) {
computeWeekdaysParse.call(this);
}
if (isStrict) {
return this._weekdaysShortStrictRegex;
} else {
return this._weekdaysShortRegex;
}
} else {
if (!hasOwnProp(this, '_weekdaysShortRegex')) {
this._weekdaysShortRegex = defaultWeekdaysShortRegex;
}
return this._weekdaysShortStrictRegex && isStrict ?
this._weekdaysShortStrictRegex : this._weekdaysShortRegex;
}
}
var defaultWeekdaysMinRegex = matchWord;
function weekdaysMinRegex (isStrict) {
if (this._weekdaysParseExact) {
if (!hasOwnProp(this, '_weekdaysRegex')) {
computeWeekdaysParse.call(this);
}
if (isStrict) {
return this._weekdaysMinStrictRegex;
} else {
return this._weekdaysMinRegex;
}
} else {
if (!hasOwnProp(this, '_weekdaysMinRegex')) {
this._weekdaysMinRegex = defaultWeekdaysMinRegex;
}
return this._weekdaysMinStrictRegex && isStrict ?
this._weekdaysMinStrictRegex : this._weekdaysMinRegex;
}
}
function computeWeekdaysParse () {
function cmpLenRev(a, b) {
return b.length - a.length;
}
var minPieces = [], shortPieces = [], longPieces = [], mixedPieces = [],
i, mom, minp, shortp, longp;
for (i = 0; i < 7; i++) {
// make the regex if we don't have it already
mom = createUTC([2000, 1]).day(i);
minp = this.weekdaysMin(mom, '');
shortp = this.weekdaysShort(mom, '');
longp = this.weekdays(mom, '');
minPieces.push(minp);
shortPieces.push(shortp);
longPieces.push(longp);
mixedPieces.push(minp);
mixedPieces.push(shortp);
mixedPieces.push(longp);
}
// Sorting makes sure if one weekday (or abbr) is a prefix of another it
// will match the longer piece.
minPieces.sort(cmpLenRev);
shortPieces.sort(cmpLenRev);
longPieces.sort(cmpLenRev);
mixedPieces.sort(cmpLenRev);
for (i = 0; i < 7; i++) {
shortPieces[i] = regexEscape(shortPieces[i]);
longPieces[i] = regexEscape(longPieces[i]);
mixedPieces[i] = regexEscape(mixedPieces[i]);
}
this._weekdaysRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');
this._weekdaysShortRegex = this._weekdaysRegex;
this._weekdaysMinRegex = this._weekdaysRegex;
this._weekdaysStrictRegex = new RegExp('^(' + longPieces.join('|') + ')', 'i');
this._weekdaysShortStrictRegex = new RegExp('^(' + shortPieces.join('|') + ')', 'i');
this._weekdaysMinStrictRegex = new RegExp('^(' + minPieces.join('|') + ')', 'i');
}
// FORMATTING
function hFormat() {
return this.hours() % 12 || 12;
}
function kFormat() {
return this.hours() || 24;
}
addFormatToken('H', ['HH', 2], 0, 'hour');
addFormatToken('h', ['hh', 2], 0, hFormat);
addFormatToken('k', ['kk', 2], 0, kFormat);
addFormatToken('hmm', 0, 0, function () {
return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2);
});
addFormatToken('hmmss', 0, 0, function () {
return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2) +
zeroFill(this.seconds(), 2);
});
addFormatToken('Hmm', 0, 0, function () {
return '' + this.hours() + zeroFill(this.minutes(), 2);
});
addFormatToken('Hmmss', 0, 0, function () {
return '' + this.hours() + zeroFill(this.minutes(), 2) +
zeroFill(this.seconds(), 2);
});
function meridiem (token, lowercase) {
addFormatToken(token, 0, 0, function () {
return this.localeData().meridiem(this.hours(), this.minutes(), lowercase);
});
}
meridiem('a', true);
meridiem('A', false);
// ALIASES
addUnitAlias('hour', 'h');
// PRIORITY
addUnitPriority('hour', 13);
// PARSING
function matchMeridiem (isStrict, locale) {
return locale._meridiemParse;
}
addRegexToken('a', matchMeridiem);
addRegexToken('A', matchMeridiem);
addRegexToken('H', match1to2);
addRegexToken('h', match1to2);
addRegexToken('k', match1to2);
addRegexToken('HH', match1to2, match2);
addRegexToken('hh', match1to2, match2);
addRegexToken('kk', match1to2, match2);
addRegexToken('hmm', match3to4);
addRegexToken('hmmss', match5to6);
addRegexToken('Hmm', match3to4);
addRegexToken('Hmmss', match5to6);
addParseToken(['H', 'HH'], HOUR);
addParseToken(['k', 'kk'], function (input, array, config) {
var kInput = toInt(input);
array[HOUR] = kInput === 24 ? 0 : kInput;
});
addParseToken(['a', 'A'], function (input, array, config) {
config._isPm = config._locale.isPM(input);
config._meridiem = input;
});
addParseToken(['h', 'hh'], function (input, array, config) {
array[HOUR] = toInt(input);
getParsingFlags(config).bigHour = true;
});
addParseToken('hmm', function (input, array, config) {
var pos = input.length - 2;
array[HOUR] = toInt(input.substr(0, pos));
array[MINUTE] = toInt(input.substr(pos));
getParsingFlags(config).bigHour = true;
});
addParseToken('hmmss', function (input, array, config) {
var pos1 = input.length - 4;
var pos2 = input.length - 2;
array[HOUR] = toInt(input.substr(0, pos1));
array[MINUTE] = toInt(input.substr(pos1, 2));
array[SECOND] = toInt(input.substr(pos2));
getParsingFlags(config).bigHour = true;
});
addParseToken('Hmm', function (input, array, config) {
var pos = input.length - 2;
array[HOUR] = toInt(input.substr(0, pos));
array[MINUTE] = toInt(input.substr(pos));
});
addParseToken('Hmmss', function (input, array, config) {
var pos1 = input.length - 4;
var pos2 = input.length - 2;
array[HOUR] = toInt(input.substr(0, pos1));
array[MINUTE] = toInt(input.substr(pos1, 2));
array[SECOND] = toInt(input.substr(pos2));
});
// LOCALES
function localeIsPM (input) {
// IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays
// Using charAt should be more compatible.
return ((input + '').toLowerCase().charAt(0) === 'p');
}
var defaultLocaleMeridiemParse = /[ap]\.?m?\.?/i;
function localeMeridiem (hours, minutes, isLower) {
if (hours > 11) {
return isLower ? 'pm' : 'PM';
} else {
return isLower ? 'am' : 'AM';
}
}
// MOMENTS
// Setting the hour should keep the time, because the user explicitly
// specified which hour they want. So trying to maintain the same hour (in
// a new timezone) makes sense. Adding/subtracting hours does not follow
// this rule.
var getSetHour = makeGetSet('Hours', true);
var baseConfig = {
calendar: defaultCalendar,
longDateFormat: defaultLongDateFormat,
invalidDate: defaultInvalidDate,
ordinal: defaultOrdinal,
dayOfMonthOrdinalParse: defaultDayOfMonthOrdinalParse,
relativeTime: defaultRelativeTime,
months: defaultLocaleMonths,
monthsShort: defaultLocaleMonthsShort,
week: defaultLocaleWeek,
weekdays: defaultLocaleWeekdays,
weekdaysMin: defaultLocaleWeekdaysMin,
weekdaysShort: defaultLocaleWeekdaysShort,
meridiemParse: defaultLocaleMeridiemParse
};
// internal storage for locale config files
var locales = {};
var localeFamilies = {};
var globalLocale;
function normalizeLocale(key) {
return key ? key.toLowerCase().replace('_', '-') : key;
}
// pick the locale from the array
// try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each
// substring from most specific to least, but move to the next array item if it's a more specific variant than the current root
function chooseLocale(names) {
var i = 0, j, next, locale, split;
while (i < names.length) {
split = normalizeLocale(names[i]).split('-');
j = split.length;
next = normalizeLocale(names[i + 1]);
next = next ? next.split('-') : null;
while (j > 0) {
locale = loadLocale(split.slice(0, j).join('-'));
if (locale) {
return locale;
}
if (next && next.length >= j && compareArrays(split, next, true) >= j - 1) {
//the next array item is better than a shallower substring of this one
break;
}
j--;
}
i++;
}
return globalLocale;
}
function loadLocale(name) {
var oldLocale = null;
// TODO: Find a better way to register and load all the locales in Node
if (!locales[name] && (typeof module !== 'undefined') &&
module && module.exports) {
try {
oldLocale = globalLocale._abbr;
var aliasedRequire = require;
aliasedRequire('./locale/' + name);
getSetGlobalLocale(oldLocale);
} catch (e) {}
}
return locales[name];
}
// This function will load locale and then set the global locale. If
// no arguments are passed in, it will simply return the current global
// locale key.
function getSetGlobalLocale (key, values) {
var data;
if (key) {
if (isUndefined(values)) {
data = getLocale(key);
}
else {
data = defineLocale(key, values);
}
if (data) {
// moment.duration._locale = moment._locale = data;
globalLocale = data;
}
else {
if ((typeof console !== 'undefined') && console.warn) {
//warn user if arguments are passed but the locale could not be set
console.warn('Locale ' + key + ' not found. Did you forget to load it?');
}
}
}
return globalLocale._abbr;
}
function defineLocale (name, config) {
if (config !== null) {
var locale, parentConfig = baseConfig;
config.abbr = name;
if (locales[name] != null) {
deprecateSimple('defineLocaleOverride',
'use moment.updateLocale(localeName, config) to change ' +
'an existing locale. moment.defineLocale(localeName, ' +
'config) should only be used for creating a new locale ' +
'See http://momentjs.com/guides/#/warnings/define-locale/ for more info.');
parentConfig = locales[name]._config;
} else if (config.parentLocale != null) {
if (locales[config.parentLocale] != null) {
parentConfig = locales[config.parentLocale]._config;
} else {
locale = loadLocale(config.parentLocale);
if (locale != null) {
parentConfig = locale._config;
} else {
if (!localeFamilies[config.parentLocale]) {
localeFamilies[config.parentLocale] = [];
}
localeFamilies[config.parentLocale].push({
name: name,
config: config
});
return null;
}
}
}
locales[name] = new Locale(mergeConfigs(parentConfig, config));
if (localeFamilies[name]) {
localeFamilies[name].forEach(function (x) {
defineLocale(x.name, x.config);
});
}
// backwards compat for now: also set the locale
// make sure we set the locale AFTER all child locales have been
// created, so we won't end up with the child locale set.
getSetGlobalLocale(name);
return locales[name];
} else {
// useful for testing
delete locales[name];
return null;
}
}
function updateLocale(name, config) {
if (config != null) {
var locale, tmpLocale, parentConfig = baseConfig;
// MERGE
tmpLocale = loadLocale(name);
if (tmpLocale != null) {
parentConfig = tmpLocale._config;
}
config = mergeConfigs(parentConfig, config);
locale = new Locale(config);
locale.parentLocale = locales[name];
locales[name] = locale;
// backwards compat for now: also set the locale
getSetGlobalLocale(name);
} else {
// pass null for config to unupdate, useful for tests
if (locales[name] != null) {
if (locales[name].parentLocale != null) {
locales[name] = locales[name].parentLocale;
} else if (locales[name] != null) {
delete locales[name];
}
}
}
return locales[name];
}
// returns locale data
function getLocale (key) {
var locale;
if (key && key._locale && key._locale._abbr) {
key = key._locale._abbr;
}
if (!key) {
return globalLocale;
}
if (!isArray(key)) {
//short-circuit everything else
locale = loadLocale(key);
if (locale) {
return locale;
}
key = [key];
}
return chooseLocale(key);
}
function listLocales() {
return keys(locales);
}
function checkOverflow (m) {
var overflow;
var a = m._a;
if (a && getParsingFlags(m).overflow === -2) {
overflow =
a[MONTH] < 0 || a[MONTH] > 11 ? MONTH :
a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH]) ? DATE :
a[HOUR] < 0 || a[HOUR] > 24 || (a[HOUR] === 24 && (a[MINUTE] !== 0 || a[SECOND] !== 0 || a[MILLISECOND] !== 0)) ? HOUR :
a[MINUTE] < 0 || a[MINUTE] > 59 ? MINUTE :
a[SECOND] < 0 || a[SECOND] > 59 ? SECOND :
a[MILLISECOND] < 0 || a[MILLISECOND] > 999 ? MILLISECOND :
-1;
if (getParsingFlags(m)._overflowDayOfYear && (overflow < YEAR || overflow > DATE)) {
overflow = DATE;
}
if (getParsingFlags(m)._overflowWeeks && overflow === -1) {
overflow = WEEK;
}
if (getParsingFlags(m)._overflowWeekday && overflow === -1) {
overflow = WEEKDAY;
}
getParsingFlags(m).overflow = overflow;
}
return m;
}
// Pick the first defined of two or three arguments.
function defaults(a, b, c) {
if (a != null) {
return a;
}
if (b != null) {
return b;
}
return c;
}
function currentDateArray(config) {
// hooks is actually the exported moment object
var nowValue = new Date(hooks.now());
if (config._useUTC) {
return [nowValue.getUTCFullYear(), nowValue.getUTCMonth(), nowValue.getUTCDate()];
}
return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()];
}
// convert an array to a date.
// the array should mirror the parameters below
// note: all values past the year are optional and will default to the lowest possible value.
// [year, month, day , hour, minute, second, millisecond]
function configFromArray (config) {
var i, date, input = [], currentDate, expectedWeekday, yearToUse;
if (config._d) {
return;
}
currentDate = currentDateArray(config);
//compute day of the year from weeks and weekdays
if (config._w && config._a[DATE] == null && config._a[MONTH] == null) {
dayOfYearFromWeekInfo(config);
}
//if the day of the year is set, figure out what it is
if (config._dayOfYear != null) {
yearToUse = defaults(config._a[YEAR], currentDate[YEAR]);
if (config._dayOfYear > daysInYear(yearToUse) || config._dayOfYear === 0) {
getParsingFlags(config)._overflowDayOfYear = true;
}
date = createUTCDate(yearToUse, 0, config._dayOfYear);
config._a[MONTH] = date.getUTCMonth();
config._a[DATE] = date.getUTCDate();
}
// Default to current date.
// * if no year, month, day of month are given, default to today
// * if day of month is given, default month and year
// * if month is given, default only year
// * if year is given, don't default anything
for (i = 0; i < 3 && config._a[i] == null; ++i) {
config._a[i] = input[i] = currentDate[i];
}
// Zero out whatever was not defaulted, including time
for (; i < 7; i++) {
config._a[i] = input[i] = (config._a[i] == null) ? (i === 2 ? 1 : 0) : config._a[i];
}
// Check for 24:00:00.000
if (config._a[HOUR] === 24 &&
config._a[MINUTE] === 0 &&
config._a[SECOND] === 0 &&
config._a[MILLISECOND] === 0) {
config._nextDay = true;
config._a[HOUR] = 0;
}
config._d = (config._useUTC ? createUTCDate : createDate).apply(null, input);
expectedWeekday = config._useUTC ? config._d.getUTCDay() : config._d.getDay();
// Apply timezone offset from input. The actual utcOffset can be changed
// with parseZone.
if (config._tzm != null) {
config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);
}
if (config._nextDay) {
config._a[HOUR] = 24;
}
// check for mismatching day of week
if (config._w && typeof config._w.d !== 'undefined' && config._w.d !== expectedWeekday) {
getParsingFlags(config).weekdayMismatch = true;
}
}
function dayOfYearFromWeekInfo(config) {
var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow;
w = config._w;
if (w.GG != null || w.W != null || w.E != null) {
dow = 1;
doy = 4;
// TODO: We need to take the current isoWeekYear, but that depends on
// how we interpret now (local, utc, fixed offset). So create
// a now version of current config (take local/utc/offset flags, and
// create now).
weekYear = defaults(w.GG, config._a[YEAR], weekOfYear(createLocal(), 1, 4).year);
week = defaults(w.W, 1);
weekday = defaults(w.E, 1);
if (weekday < 1 || weekday > 7) {
weekdayOverflow = true;
}
} else {
dow = config._locale._week.dow;
doy = config._locale._week.doy;
var curWeek = weekOfYear(createLocal(), dow, doy);
weekYear = defaults(w.gg, config._a[YEAR], curWeek.year);
// Default to current week.
week = defaults(w.w, curWeek.week);
if (w.d != null) {
// weekday -- low day numbers are considered next week
weekday = w.d;
if (weekday < 0 || weekday > 6) {
weekdayOverflow = true;
}
} else if (w.e != null) {
// local weekday -- counting starts from begining of week
weekday = w.e + dow;
if (w.e < 0 || w.e > 6) {
weekdayOverflow = true;
}
} else {
// default to begining of week
weekday = dow;
}
}
if (week < 1 || week > weeksInYear(weekYear, dow, doy)) {
getParsingFlags(config)._overflowWeeks = true;
} else if (weekdayOverflow != null) {
getParsingFlags(config)._overflowWeekday = true;
} else {
temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy);
config._a[YEAR] = temp.year;
config._dayOfYear = temp.dayOfYear;
}
}
// iso 8601 regex
// 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000 or +00)
var extendedIsoRegex = /^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/;
var basicIsoRegex = /^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/;
var tzRegex = /Z|[+-]\d\d(?::?\d\d)?/;
var isoDates = [
['YYYYYY-MM-DD', /[+-]\d{6}-\d\d-\d\d/],
['YYYY-MM-DD', /\d{4}-\d\d-\d\d/],
['GGGG-[W]WW-E', /\d{4}-W\d\d-\d/],
['GGGG-[W]WW', /\d{4}-W\d\d/, false],
['YYYY-DDD', /\d{4}-\d{3}/],
['YYYY-MM', /\d{4}-\d\d/, false],
['YYYYYYMMDD', /[+-]\d{10}/],
['YYYYMMDD', /\d{8}/],
// YYYYMM is NOT allowed by the standard
['GGGG[W]WWE', /\d{4}W\d{3}/],
['GGGG[W]WW', /\d{4}W\d{2}/, false],
['YYYYDDD', /\d{7}/]
];
// iso time formats and regexes
var isoTimes = [
['HH:mm:ss.SSSS', /\d\d:\d\d:\d\d\.\d+/],
['HH:mm:ss,SSSS', /\d\d:\d\d:\d\d,\d+/],
['HH:mm:ss', /\d\d:\d\d:\d\d/],
['HH:mm', /\d\d:\d\d/],
['HHmmss.SSSS', /\d\d\d\d\d\d\.\d+/],
['HHmmss,SSSS', /\d\d\d\d\d\d,\d+/],
['HHmmss', /\d\d\d\d\d\d/],
['HHmm', /\d\d\d\d/],
['HH', /\d\d/]
];
var aspNetJsonRegex = /^\/?Date\((\-?\d+)/i;
// date from iso format
function configFromISO(config) {
var i, l,
string = config._i,
match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string),
allowTime, dateFormat, timeFormat, tzFormat;
if (match) {
getParsingFlags(config).iso = true;
for (i = 0, l = isoDates.length; i < l; i++) {
if (isoDates[i][1].exec(match[1])) {
dateFormat = isoDates[i][0];
allowTime = isoDates[i][2] !== false;
break;
}
}
if (dateFormat == null) {
config._isValid = false;
return;
}
if (match[3]) {
for (i = 0, l = isoTimes.length; i < l; i++) {
if (isoTimes[i][1].exec(match[3])) {
// match[2] should be 'T' or space
timeFormat = (match[2] || ' ') + isoTimes[i][0];
break;
}
}
if (timeFormat == null) {
config._isValid = false;
return;
}
}
if (!allowTime && timeFormat != null) {
config._isValid = false;
return;
}
if (match[4]) {
if (tzRegex.exec(match[4])) {
tzFormat = 'Z';
} else {
config._isValid = false;
return;
}
}
config._f = dateFormat + (timeFormat || '') + (tzFormat || '');
configFromStringAndFormat(config);
} else {
config._isValid = false;
}
}
// RFC 2822 regex: For details see https://tools.ietf.org/html/rfc2822#section-3.3
var rfc2822 = /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\d{4}))$/;
function extractFromRFC2822Strings(yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr) {
var result = [
untruncateYear(yearStr),
defaultLocaleMonthsShort.indexOf(monthStr),
parseInt(dayStr, 10),
parseInt(hourStr, 10),
parseInt(minuteStr, 10)
];
if (secondStr) {
result.push(parseInt(secondStr, 10));
}
return result;
}
function untruncateYear(yearStr) {
var year = parseInt(yearStr, 10);
if (year <= 49) {
return 2000 + year;
} else if (year <= 999) {
return 1900 + year;
}
return year;
}
function preprocessRFC2822(s) {
// Remove comments and folding whitespace and replace multiple-spaces with a single space
return s.replace(/\([^)]*\)|[\n\t]/g, ' ').replace(/(\s\s+)/g, ' ').trim();
}
function checkWeekday(weekdayStr, parsedInput, config) {
if (weekdayStr) {
// TODO: Replace the vanilla JS Date object with an indepentent day-of-week check.
var weekdayProvided = defaultLocaleWeekdaysShort.indexOf(weekdayStr),
weekdayActual = new Date(parsedInput[0], parsedInput[1], parsedInput[2]).getDay();
if (weekdayProvided !== weekdayActual) {
getParsingFlags(config).weekdayMismatch = true;
config._isValid = false;
return false;
}
}
return true;
}
var obsOffsets = {
UT: 0,
GMT: 0,
EDT: -4 * 60,
EST: -5 * 60,
CDT: -5 * 60,
CST: -6 * 60,
MDT: -6 * 60,
MST: -7 * 60,
PDT: -7 * 60,
PST: -8 * 60
};
function calculateOffset(obsOffset, militaryOffset, numOffset) {
if (obsOffset) {
return obsOffsets[obsOffset];
} else if (militaryOffset) {
// the only allowed military tz is Z
return 0;
} else {
var hm = parseInt(numOffset, 10);
var m = hm % 100, h = (hm - m) / 100;
return h * 60 + m;
}
}
// date and time from ref 2822 format
function configFromRFC2822(config) {
var match = rfc2822.exec(preprocessRFC2822(config._i));
if (match) {
var parsedArray = extractFromRFC2822Strings(match[4], match[3], match[2], match[5], match[6], match[7]);
if (!checkWeekday(match[1], parsedArray, config)) {
return;
}
config._a = parsedArray;
config._tzm = calculateOffset(match[8], match[9], match[10]);
config._d = createUTCDate.apply(null, config._a);
config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);
getParsingFlags(config).rfc2822 = true;
} else {
config._isValid = false;
}
}
// date from iso format or fallback
function configFromString(config) {
var matched = aspNetJsonRegex.exec(config._i);
if (matched !== null) {
config._d = new Date(+matched[1]);
return;
}
configFromISO(config);
if (config._isValid === false) {
delete config._isValid;
} else {
return;
}
configFromRFC2822(config);
if (config._isValid === false) {
delete config._isValid;
} else {
return;
}
// Final attempt, use Input Fallback
hooks.createFromInputFallback(config);
}
hooks.createFromInputFallback = deprecate(
'value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), ' +
'which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are ' +
'discouraged and will be removed in an upcoming major release. Please refer to ' +
'http://momentjs.com/guides/#/warnings/js-date/ for more info.',
function (config) {
config._d = new Date(config._i + (config._useUTC ? ' UTC' : ''));
}
);
// constant that refers to the ISO standard
hooks.ISO_8601 = function () {};
// constant that refers to the RFC 2822 form
hooks.RFC_2822 = function () {};
// date from string and format string
function configFromStringAndFormat(config) {
// TODO: Move this to another part of the creation flow to prevent circular deps
if (config._f === hooks.ISO_8601) {
configFromISO(config);
return;
}
if (config._f === hooks.RFC_2822) {
configFromRFC2822(config);
return;
}
config._a = [];
getParsingFlags(config).empty = true;
// This array is used to make a Date, either with `new Date` or `Date.UTC`
var string = '' + config._i,
i, parsedInput, tokens, token, skipped,
stringLength = string.length,
totalParsedInputLength = 0;
tokens = expandFormat(config._f, config._locale).match(formattingTokens) || [];
for (i = 0; i < tokens.length; i++) {
token = tokens[i];
parsedInput = (string.match(getParseRegexForToken(token, config)) || [])[0];
// console.log('token', token, 'parsedInput', parsedInput,
// 'regex', getParseRegexForToken(token, config));
if (parsedInput) {
skipped = string.substr(0, string.indexOf(parsedInput));
if (skipped.length > 0) {
getParsingFlags(config).unusedInput.push(skipped);
}
string = string.slice(string.indexOf(parsedInput) + parsedInput.length);
totalParsedInputLength += parsedInput.length;
}
// don't parse if it's not a known token
if (formatTokenFunctions[token]) {
if (parsedInput) {
getParsingFlags(config).empty = false;
}
else {
getParsingFlags(config).unusedTokens.push(token);
}
addTimeToArrayFromToken(token, parsedInput, config);
}
else if (config._strict && !parsedInput) {
getParsingFlags(config).unusedTokens.push(token);
}
}
// add remaining unparsed input length to the string
getParsingFlags(config).charsLeftOver = stringLength - totalParsedInputLength;
if (string.length > 0) {
getParsingFlags(config).unusedInput.push(string);
}
// clear _12h flag if hour is <= 12
if (config._a[HOUR] <= 12 &&
getParsingFlags(config).bigHour === true &&
config._a[HOUR] > 0) {
getParsingFlags(config).bigHour = undefined;
}
getParsingFlags(config).parsedDateParts = config._a.slice(0);
getParsingFlags(config).meridiem = config._meridiem;
// handle meridiem
config._a[HOUR] = meridiemFixWrap(config._locale, config._a[HOUR], config._meridiem);
configFromArray(config);
checkOverflow(config);
}
function meridiemFixWrap (locale, hour, meridiem) {
var isPm;
if (meridiem == null) {
// nothing to do
return hour;
}
if (locale.meridiemHour != null) {
return locale.meridiemHour(hour, meridiem);
} else if (locale.isPM != null) {
// Fallback
isPm = locale.isPM(meridiem);
if (isPm && hour < 12) {
hour += 12;
}
if (!isPm && hour === 12) {
hour = 0;
}
return hour;
} else {
// this is not supposed to happen
return hour;
}
}
// date from string and array of format strings
function configFromStringAndArray(config) {
var tempConfig,
bestMoment,
scoreToBeat,
i,
currentScore;
if (config._f.length === 0) {
getParsingFlags(config).invalidFormat = true;
config._d = new Date(NaN);
return;
}
for (i = 0; i < config._f.length; i++) {
currentScore = 0;
tempConfig = copyConfig({}, config);
if (config._useUTC != null) {
tempConfig._useUTC = config._useUTC;
}
tempConfig._f = config._f[i];
configFromStringAndFormat(tempConfig);
if (!isValid(tempConfig)) {
continue;
}
// if there is any input that was not parsed add a penalty for that format
currentScore += getParsingFlags(tempConfig).charsLeftOver;
//or tokens
currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10;
getParsingFlags(tempConfig).score = currentScore;
if (scoreToBeat == null || currentScore < scoreToBeat) {
scoreToBeat = currentScore;
bestMoment = tempConfig;
}
}
extend(config, bestMoment || tempConfig);
}
function configFromObject(config) {
if (config._d) {
return;
}
var i = normalizeObjectUnits(config._i);
config._a = map([i.year, i.month, i.day || i.date, i.hour, i.minute, i.second, i.millisecond], function (obj) {
return obj && parseInt(obj, 10);
});
configFromArray(config);
}
function createFromConfig (config) {
var res = new Moment(checkOverflow(prepareConfig(config)));
if (res._nextDay) {
// Adding is smart enough around DST
res.add(1, 'd');
res._nextDay = undefined;
}
return res;
}
function prepareConfig (config) {
var input = config._i,
format = config._f;
config._locale = config._locale || getLocale(config._l);
if (input === null || (format === undefined && input === '')) {
return createInvalid({nullInput: true});
}
if (typeof input === 'string') {
config._i = input = config._locale.preparse(input);
}
if (isMoment(input)) {
return new Moment(checkOverflow(input));
} else if (isDate(input)) {
config._d = input;
} else if (isArray(format)) {
configFromStringAndArray(config);
} else if (format) {
configFromStringAndFormat(config);
} else {
configFromInput(config);
}
if (!isValid(config)) {
config._d = null;
}
return config;
}
function configFromInput(config) {
var input = config._i;
if (isUndefined(input)) {
config._d = new Date(hooks.now());
} else if (isDate(input)) {
config._d = new Date(input.valueOf());
} else if (typeof input === 'string') {
configFromString(config);
} else if (isArray(input)) {
config._a = map(input.slice(0), function (obj) {
return parseInt(obj, 10);
});
configFromArray(config);
} else if (isObject(input)) {
configFromObject(config);
} else if (isNumber(input)) {
// from milliseconds
config._d = new Date(input);
} else {
hooks.createFromInputFallback(config);
}
}
function createLocalOrUTC (input, format, locale, strict, isUTC) {
var c = {};
if (locale === true || locale === false) {
strict = locale;
locale = undefined;
}
if ((isObject(input) && isObjectEmpty(input)) ||
(isArray(input) && input.length === 0)) {
input = undefined;
}
// object construction must be done this way.
// https://github.com/moment/moment/issues/1423
c._isAMomentObject = true;
c._useUTC = c._isUTC = isUTC;
c._l = locale;
c._i = input;
c._f = format;
c._strict = strict;
return createFromConfig(c);
}
function createLocal (input, format, locale, strict) {
return createLocalOrUTC(input, format, locale, strict, false);
}
var prototypeMin = deprecate(
'moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/',
function () {
var other = createLocal.apply(null, arguments);
if (this.isValid() && other.isValid()) {
return other < this ? this : other;
} else {
return createInvalid();
}
}
);
var prototypeMax = deprecate(
'moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/',
function () {
var other = createLocal.apply(null, arguments);
if (this.isValid() && other.isValid()) {
return other > this ? this : other;
} else {
return createInvalid();
}
}
);
// Pick a moment m from moments so that m[fn](other) is true for all
// other. This relies on the function fn to be transitive.
//
// moments should either be an array of moment objects or an array, whose
// first element is an array of moment objects.
function pickBy(fn, moments) {
var res, i;
if (moments.length === 1 && isArray(moments[0])) {
moments = moments[0];
}
if (!moments.length) {
return createLocal();
}
res = moments[0];
for (i = 1; i < moments.length; ++i) {
if (!moments[i].isValid() || moments[i][fn](res)) {
res = moments[i];
}
}
return res;
}
// TODO: Use [].sort instead?
function min () {
var args = [].slice.call(arguments, 0);
return pickBy('isBefore', args);
}
function max () {
var args = [].slice.call(arguments, 0);
return pickBy('isAfter', args);
}
var now = function () {
return Date.now ? Date.now() : +(new Date());
};
var ordering = ['year', 'quarter', 'month', 'week', 'day', 'hour', 'minute', 'second', 'millisecond'];
function isDurationValid(m) {
for (var key in m) {
if (!(indexOf.call(ordering, key) !== -1 && (m[key] == null || !isNaN(m[key])))) {
return false;
}
}
var unitHasDecimal = false;
for (var i = 0; i < ordering.length; ++i) {
if (m[ordering[i]]) {
if (unitHasDecimal) {
return false; // only allow non-integers for smallest unit
}
if (parseFloat(m[ordering[i]]) !== toInt(m[ordering[i]])) {
unitHasDecimal = true;
}
}
}
return true;
}
function isValid$1() {
return this._isValid;
}
function createInvalid$1() {
return createDuration(NaN);
}
function Duration (duration) {
var normalizedInput = normalizeObjectUnits(duration),
years = normalizedInput.year || 0,
quarters = normalizedInput.quarter || 0,
months = normalizedInput.month || 0,
weeks = normalizedInput.week || 0,
days = normalizedInput.day || 0,
hours = normalizedInput.hour || 0,
minutes = normalizedInput.minute || 0,
seconds = normalizedInput.second || 0,
milliseconds = normalizedInput.millisecond || 0;
this._isValid = isDurationValid(normalizedInput);
// representation for dateAddRemove
this._milliseconds = +milliseconds +
seconds * 1e3 + // 1000
minutes * 6e4 + // 1000 * 60
hours * 1000 * 60 * 60; //using 1000 * 60 * 60 instead of 36e5 to avoid floating point rounding errors https://github.com/moment/moment/issues/2978
// Because of dateAddRemove treats 24 hours as different from a
// day when working around DST, we need to store them separately
this._days = +days +
weeks * 7;
// It is impossible to translate months into days without knowing
// which months you are are talking about, so we have to store
// it separately.
this._months = +months +
quarters * 3 +
years * 12;
this._data = {};
this._locale = getLocale();
this._bubble();
}
function isDuration (obj) {
return obj instanceof Duration;
}
function absRound (number) {
if (number < 0) {
return Math.round(-1 * number) * -1;
} else {
return Math.round(number);
}
}
// FORMATTING
function offset (token, separator) {
addFormatToken(token, 0, 0, function () {
var offset = this.utcOffset();
var sign = '+';
if (offset < 0) {
offset = -offset;
sign = '-';
}
return sign + zeroFill(~~(offset / 60), 2) + separator + zeroFill(~~(offset) % 60, 2);
});
}
offset('Z', ':');
offset('ZZ', '');
// PARSING
addRegexToken('Z', matchShortOffset);
addRegexToken('ZZ', matchShortOffset);
addParseToken(['Z', 'ZZ'], function (input, array, config) {
config._useUTC = true;
config._tzm = offsetFromString(matchShortOffset, input);
});
// HELPERS
// timezone chunker
// '+10:00' > ['10', '00']
// '-1530' > ['-15', '30']
var chunkOffset = /([\+\-]|\d\d)/gi;
function offsetFromString(matcher, string) {
var matches = (string || '').match(matcher);
if (matches === null) {
return null;
}
var chunk = matches[matches.length - 1] || [];
var parts = (chunk + '').match(chunkOffset) || ['-', 0, 0];
var minutes = +(parts[1] * 60) + toInt(parts[2]);
return minutes === 0 ?
0 :
parts[0] === '+' ? minutes : -minutes;
}
// Return a moment from input, that is local/utc/zone equivalent to model.
function cloneWithOffset(input, model) {
var res, diff;
if (model._isUTC) {
res = model.clone();
diff = (isMoment(input) || isDate(input) ? input.valueOf() : createLocal(input).valueOf()) - res.valueOf();
// Use low-level api, because this fn is low-level api.
res._d.setTime(res._d.valueOf() + diff);
hooks.updateOffset(res, false);
return res;
} else {
return createLocal(input).local();
}
}
function getDateOffset (m) {
// On Firefox.24 Date#getTimezoneOffset returns a floating point.
// https://github.com/moment/moment/pull/1871
return -Math.round(m._d.getTimezoneOffset() / 15) * 15;
}
// HOOKS
// This function will be called whenever a moment is mutated.
// It is intended to keep the offset in sync with the timezone.
hooks.updateOffset = function () {};
// MOMENTS
// keepLocalTime = true means only change the timezone, without
// affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]-->
// 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset
// +0200, so we adjust the time as needed, to be valid.
//
// Keeping the time actually adds/subtracts (one hour)
// from the actual represented time. That is why we call updateOffset
// a second time. In case it wants us to change the offset again
// _changeInProgress == true case, then we have to adjust, because
// there is no such time in the given timezone.
function getSetOffset (input, keepLocalTime, keepMinutes) {
var offset = this._offset || 0,
localAdjust;
if (!this.isValid()) {
return input != null ? this : NaN;
}
if (input != null) {
if (typeof input === 'string') {
input = offsetFromString(matchShortOffset, input);
if (input === null) {
return this;
}
} else if (Math.abs(input) < 16 && !keepMinutes) {
input = input * 60;
}
if (!this._isUTC && keepLocalTime) {
localAdjust = getDateOffset(this);
}
this._offset = input;
this._isUTC = true;
if (localAdjust != null) {
this.add(localAdjust, 'm');
}
if (offset !== input) {
if (!keepLocalTime || this._changeInProgress) {
addSubtract(this, createDuration(input - offset, 'm'), 1, false);
} else if (!this._changeInProgress) {
this._changeInProgress = true;
hooks.updateOffset(this, true);
this._changeInProgress = null;
}
}
return this;
} else {
return this._isUTC ? offset : getDateOffset(this);
}
}
function getSetZone (input, keepLocalTime) {
if (input != null) {
if (typeof input !== 'string') {
input = -input;
}
this.utcOffset(input, keepLocalTime);
return this;
} else {
return -this.utcOffset();
}
}
function setOffsetToUTC (keepLocalTime) {
return this.utcOffset(0, keepLocalTime);
}
function setOffsetToLocal (keepLocalTime) {
if (this._isUTC) {
this.utcOffset(0, keepLocalTime);
this._isUTC = false;
if (keepLocalTime) {
this.subtract(getDateOffset(this), 'm');
}
}
return this;
}
function setOffsetToParsedOffset () {
if (this._tzm != null) {
this.utcOffset(this._tzm, false, true);
} else if (typeof this._i === 'string') {
var tZone = offsetFromString(matchOffset, this._i);
if (tZone != null) {
this.utcOffset(tZone);
}
else {
this.utcOffset(0, true);
}
}
return this;
}
function hasAlignedHourOffset (input) {
if (!this.isValid()) {
return false;
}
input = input ? createLocal(input).utcOffset() : 0;
return (this.utcOffset() - input) % 60 === 0;
}
function isDaylightSavingTime () {
return (
this.utcOffset() > this.clone().month(0).utcOffset() ||
this.utcOffset() > this.clone().month(5).utcOffset()
);
}
function isDaylightSavingTimeShifted () {
if (!isUndefined(this._isDSTShifted)) {
return this._isDSTShifted;
}
var c = {};
copyConfig(c, this);
c = prepareConfig(c);
if (c._a) {
var other = c._isUTC ? createUTC(c._a) : createLocal(c._a);
this._isDSTShifted = this.isValid() &&
compareArrays(c._a, other.toArray()) > 0;
} else {
this._isDSTShifted = false;
}
return this._isDSTShifted;
}
function isLocal () {
return this.isValid() ? !this._isUTC : false;
}
function isUtcOffset () {
return this.isValid() ? this._isUTC : false;
}
function isUtc () {
return this.isValid() ? this._isUTC && this._offset === 0 : false;
}
// ASP.NET json date format regex
var aspNetRegex = /^(\-|\+)?(?:(\d*)[. ])?(\d+)\:(\d+)(?:\:(\d+)(\.\d*)?)?$/;
// from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html
// somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere
// and further modified to allow for strings containing both week and day
var isoRegex = /^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;
function createDuration (input, key) {
var duration = input,
// matching against regexp is expensive, do it on demand
match = null,
sign,
ret,
diffRes;
if (isDuration(input)) {
duration = {
ms : input._milliseconds,
d : input._days,
M : input._months
};
} else if (isNumber(input)) {
duration = {};
if (key) {
duration[key] = input;
} else {
duration.milliseconds = input;
}
} else if (!!(match = aspNetRegex.exec(input))) {
sign = (match[1] === '-') ? -1 : 1;
duration = {
y : 0,
d : toInt(match[DATE]) * sign,
h : toInt(match[HOUR]) * sign,
m : toInt(match[MINUTE]) * sign,
s : toInt(match[SECOND]) * sign,
ms : toInt(absRound(match[MILLISECOND] * 1000)) * sign // the millisecond decimal point is included in the match
};
} else if (!!(match = isoRegex.exec(input))) {
sign = (match[1] === '-') ? -1 : (match[1] === '+') ? 1 : 1;
duration = {
y : parseIso(match[2], sign),
M : parseIso(match[3], sign),
w : parseIso(match[4], sign),
d : parseIso(match[5], sign),
h : parseIso(match[6], sign),
m : parseIso(match[7], sign),
s : parseIso(match[8], sign)
};
} else if (duration == null) {// checks for null or undefined
duration = {};
} else if (typeof duration === 'object' && ('from' in duration || 'to' in duration)) {
diffRes = momentsDifference(createLocal(duration.from), createLocal(duration.to));
duration = {};
duration.ms = diffRes.milliseconds;
duration.M = diffRes.months;
}
ret = new Duration(duration);
if (isDuration(input) && hasOwnProp(input, '_locale')) {
ret._locale = input._locale;
}
return ret;
}
createDuration.fn = Duration.prototype;
createDuration.invalid = createInvalid$1;
function parseIso (inp, sign) {
// We'd normally use ~~inp for this, but unfortunately it also
// converts floats to ints.
// inp may be undefined, so careful calling replace on it.
var res = inp && parseFloat(inp.replace(',', '.'));
// apply sign while we're at it
return (isNaN(res) ? 0 : res) * sign;
}
function positiveMomentsDifference(base, other) {
var res = {milliseconds: 0, months: 0};
res.months = other.month() - base.month() +
(other.year() - base.year()) * 12;
if (base.clone().add(res.months, 'M').isAfter(other)) {
--res.months;
}
res.milliseconds = +other - +(base.clone().add(res.months, 'M'));
return res;
}
function momentsDifference(base, other) {
var res;
if (!(base.isValid() && other.isValid())) {
return {milliseconds: 0, months: 0};
}
other = cloneWithOffset(other, base);
if (base.isBefore(other)) {
res = positiveMomentsDifference(base, other);
} else {
res = positiveMomentsDifference(other, base);
res.milliseconds = -res.milliseconds;
res.months = -res.months;
}
return res;
}
// TODO: remove 'name' arg after deprecation is removed
function createAdder(direction, name) {
return function (val, period) {
var dur, tmp;
//invert the arguments, but complain about it
if (period !== null && !isNaN(+period)) {
deprecateSimple(name, 'moment().' + name + '(period, number) is deprecated. Please use moment().' + name + '(number, period). ' +
'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.');
tmp = val; val = period; period = tmp;
}
val = typeof val === 'string' ? +val : val;
dur = createDuration(val, period);
addSubtract(this, dur, direction);
return this;
};
}
function addSubtract (mom, duration, isAdding, updateOffset) {
var milliseconds = duration._milliseconds,
days = absRound(duration._days),
months = absRound(duration._months);
if (!mom.isValid()) {
// No op
return;
}
updateOffset = updateOffset == null ? true : updateOffset;
if (months) {
setMonth(mom, get(mom, 'Month') + months * isAdding);
}
if (days) {
set$1(mom, 'Date', get(mom, 'Date') + days * isAdding);
}
if (milliseconds) {
mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding);
}
if (updateOffset) {
hooks.updateOffset(mom, days || months);
}
}
var add = createAdder(1, 'add');
var subtract = createAdder(-1, 'subtract');
function getCalendarFormat(myMoment, now) {
var diff = myMoment.diff(now, 'days', true);
return diff < -6 ? 'sameElse' :
diff < -1 ? 'lastWeek' :
diff < 0 ? 'lastDay' :
diff < 1 ? 'sameDay' :
diff < 2 ? 'nextDay' :
diff < 7 ? 'nextWeek' : 'sameElse';
}
function calendar$1 (time, formats) {
// We want to compare the start of today, vs this.
// Getting start-of-today depends on whether we're local/utc/offset or not.
var now = time || createLocal(),
sod = cloneWithOffset(now, this).startOf('day'),
format = hooks.calendarFormat(this, sod) || 'sameElse';
var output = formats && (isFunction(formats[format]) ? formats[format].call(this, now) : formats[format]);
return this.format(output || this.localeData().calendar(format, this, createLocal(now)));
}
function clone () {
return new Moment(this);
}
function isAfter (input, units) {
var localInput = isMoment(input) ? input : createLocal(input);
if (!(this.isValid() && localInput.isValid())) {
return false;
}
units = normalizeUnits(!isUndefined(units) ? units : 'millisecond');
if (units === 'millisecond') {
return this.valueOf() > localInput.valueOf();
} else {
return localInput.valueOf() < this.clone().startOf(units).valueOf();
}
}
function isBefore (input, units) {
var localInput = isMoment(input) ? input : createLocal(input);
if (!(this.isValid() && localInput.isValid())) {
return false;
}
units = normalizeUnits(!isUndefined(units) ? units : 'millisecond');
if (units === 'millisecond') {
return this.valueOf() < localInput.valueOf();
} else {
return this.clone().endOf(units).valueOf() < localInput.valueOf();
}
}
function isBetween (from, to, units, inclusivity) {
inclusivity = inclusivity || '()';
return (inclusivity[0] === '(' ? this.isAfter(from, units) : !this.isBefore(from, units)) &&
(inclusivity[1] === ')' ? this.isBefore(to, units) : !this.isAfter(to, units));
}
function isSame (input, units) {
var localInput = isMoment(input) ? input : createLocal(input),
inputMs;
if (!(this.isValid() && localInput.isValid())) {
return false;
}
units = normalizeUnits(units || 'millisecond');
if (units === 'millisecond') {
return this.valueOf() === localInput.valueOf();
} else {
inputMs = localInput.valueOf();
return this.clone().startOf(units).valueOf() <= inputMs && inputMs <= this.clone().endOf(units).valueOf();
}
}
function isSameOrAfter (input, units) {
return this.isSame(input, units) || this.isAfter(input,units);
}
function isSameOrBefore (input, units) {
return this.isSame(input, units) || this.isBefore(input,units);
}
function diff (input, units, asFloat) {
var that,
zoneDelta,
output;
if (!this.isValid()) {
return NaN;
}
that = cloneWithOffset(input, this);
if (!that.isValid()) {
return NaN;
}
zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4;
units = normalizeUnits(units);
switch (units) {
case 'year': output = monthDiff(this, that) / 12; break;
case 'month': output = monthDiff(this, that); break;
case 'quarter': output = monthDiff(this, that) / 3; break;
case 'second': output = (this - that) / 1e3; break; // 1000
case 'minute': output = (this - that) / 6e4; break; // 1000 * 60
case 'hour': output = (this - that) / 36e5; break; // 1000 * 60 * 60
case 'day': output = (this - that - zoneDelta) / 864e5; break; // 1000 * 60 * 60 * 24, negate dst
case 'week': output = (this - that - zoneDelta) / 6048e5; break; // 1000 * 60 * 60 * 24 * 7, negate dst
default: output = this - that;
}
return asFloat ? output : absFloor(output);
}
function monthDiff (a, b) {
// difference in months
var wholeMonthDiff = ((b.year() - a.year()) * 12) + (b.month() - a.month()),
// b is in (anchor - 1 month, anchor + 1 month)
anchor = a.clone().add(wholeMonthDiff, 'months'),
anchor2, adjust;
if (b - anchor < 0) {
anchor2 = a.clone().add(wholeMonthDiff - 1, 'months');
// linear across the month
adjust = (b - anchor) / (anchor - anchor2);
} else {
anchor2 = a.clone().add(wholeMonthDiff + 1, 'months');
// linear across the month
adjust = (b - anchor) / (anchor2 - anchor);
}
//check for negative zero, return zero if negative zero
return -(wholeMonthDiff + adjust) || 0;
}
hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ';
hooks.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]';
function toString () {
return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ');
}
function toISOString(keepOffset) {
if (!this.isValid()) {
return null;
}
var utc = keepOffset !== true;
var m = utc ? this.clone().utc() : this;
if (m.year() < 0 || m.year() > 9999) {
return formatMoment(m, utc ? 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYYYY-MM-DD[T]HH:mm:ss.SSSZ');
}
if (isFunction(Date.prototype.toISOString)) {
// native implementation is ~50x faster, use it when we can
if (utc) {
return this.toDate().toISOString();
} else {
return new Date(this.valueOf() + this.utcOffset() * 60 * 1000).toISOString().replace('Z', formatMoment(m, 'Z'));
}
}
return formatMoment(m, utc ? 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYY-MM-DD[T]HH:mm:ss.SSSZ');
}
/**
* Return a human readable representation of a moment that can
* also be evaluated to get a new moment which is the same
*
* @link https://nodejs.org/dist/latest/docs/api/util.html#util_custom_inspect_function_on_objects
*/
function inspect () {
if (!this.isValid()) {
return 'moment.invalid(/* ' + this._i + ' */)';
}
var func = 'moment';
var zone = '';
if (!this.isLocal()) {
func = this.utcOffset() === 0 ? 'moment.utc' : 'moment.parseZone';
zone = 'Z';
}
var prefix = '[' + func + '("]';
var year = (0 <= this.year() && this.year() <= 9999) ? 'YYYY' : 'YYYYYY';
var datetime = '-MM-DD[T]HH:mm:ss.SSS';
var suffix = zone + '[")]';
return this.format(prefix + year + datetime + suffix);
}
function format (inputString) {
if (!inputString) {
inputString = this.isUtc() ? hooks.defaultFormatUtc : hooks.defaultFormat;
}
var output = formatMoment(this, inputString);
return this.localeData().postformat(output);
}
function from (time, withoutSuffix) {
if (this.isValid() &&
((isMoment(time) && time.isValid()) ||
createLocal(time).isValid())) {
return createDuration({to: this, from: time}).locale(this.locale()).humanize(!withoutSuffix);
} else {
return this.localeData().invalidDate();
}
}
function fromNow (withoutSuffix) {
return this.from(createLocal(), withoutSuffix);
}
function to (time, withoutSuffix) {
if (this.isValid() &&
((isMoment(time) && time.isValid()) ||
createLocal(time).isValid())) {
return createDuration({from: this, to: time}).locale(this.locale()).humanize(!withoutSuffix);
} else {
return this.localeData().invalidDate();
}
}
function toNow (withoutSuffix) {
return this.to(createLocal(), withoutSuffix);
}
// If passed a locale key, it will set the locale for this
// instance. Otherwise, it will return the locale configuration
// variables for this instance.
function locale (key) {
var newLocaleData;
if (key === undefined) {
return this._locale._abbr;
} else {
newLocaleData = getLocale(key);
if (newLocaleData != null) {
this._locale = newLocaleData;
}
return this;
}
}
var lang = deprecate(
'moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.',
function (key) {
if (key === undefined) {
return this.localeData();
} else {
return this.locale(key);
}
}
);
function localeData () {
return this._locale;
}
function startOf (units) {
units = normalizeUnits(units);
// the following switch intentionally omits break keywords
// to utilize falling through the cases.
switch (units) {
case 'year':
this.month(0);
/* falls through */
case 'quarter':
case 'month':
this.date(1);
/* falls through */
case 'week':
case 'isoWeek':
case 'day':
case 'date':
this.hours(0);
/* falls through */
case 'hour':
this.minutes(0);
/* falls through */
case 'minute':
this.seconds(0);
/* falls through */
case 'second':
this.milliseconds(0);
}
// weeks are a special case
if (units === 'week') {
this.weekday(0);
}
if (units === 'isoWeek') {
this.isoWeekday(1);
}
// quarters are also special
if (units === 'quarter') {
this.month(Math.floor(this.month() / 3) * 3);
}
return this;
}
function endOf (units) {
units = normalizeUnits(units);
if (units === undefined || units === 'millisecond') {
return this;
}
// 'date' is an alias for 'day', so it should be considered as such.
if (units === 'date') {
units = 'day';
}
return this.startOf(units).add(1, (units === 'isoWeek' ? 'week' : units)).subtract(1, 'ms');
}
function valueOf () {
return this._d.valueOf() - ((this._offset || 0) * 60000);
}
function unix () {
return Math.floor(this.valueOf() / 1000);
}
function toDate () {
return new Date(this.valueOf());
}
function toArray () {
var m = this;
return [m.year(), m.month(), m.date(), m.hour(), m.minute(), m.second(), m.millisecond()];
}
function toObject () {
var m = this;
return {
years: m.year(),
months: m.month(),
date: m.date(),
hours: m.hours(),
minutes: m.minutes(),
seconds: m.seconds(),
milliseconds: m.milliseconds()
};
}
function toJSON () {
// new Date(NaN).toJSON() === null
return this.isValid() ? this.toISOString() : null;
}
function isValid$2 () {
return isValid(this);
}
function parsingFlags () {
return extend({}, getParsingFlags(this));
}
function invalidAt () {
return getParsingFlags(this).overflow;
}
function creationData() {
return {
input: this._i,
format: this._f,
locale: this._locale,
isUTC: this._isUTC,
strict: this._strict
};
}
// FORMATTING
addFormatToken(0, ['gg', 2], 0, function () {
return this.weekYear() % 100;
});
addFormatToken(0, ['GG', 2], 0, function () {
return this.isoWeekYear() % 100;
});
function addWeekYearFormatToken (token, getter) {
addFormatToken(0, [token, token.length], 0, getter);
}
addWeekYearFormatToken('gggg', 'weekYear');
addWeekYearFormatToken('ggggg', 'weekYear');
addWeekYearFormatToken('GGGG', 'isoWeekYear');
addWeekYearFormatToken('GGGGG', 'isoWeekYear');
// ALIASES
addUnitAlias('weekYear', 'gg');
addUnitAlias('isoWeekYear', 'GG');
// PRIORITY
addUnitPriority('weekYear', 1);
addUnitPriority('isoWeekYear', 1);
// PARSING
addRegexToken('G', matchSigned);
addRegexToken('g', matchSigned);
addRegexToken('GG', match1to2, match2);
addRegexToken('gg', match1to2, match2);
addRegexToken('GGGG', match1to4, match4);
addRegexToken('gggg', match1to4, match4);
addRegexToken('GGGGG', match1to6, match6);
addRegexToken('ggggg', match1to6, match6);
addWeekParseToken(['gggg', 'ggggg', 'GGGG', 'GGGGG'], function (input, week, config, token) {
week[token.substr(0, 2)] = toInt(input);
});
addWeekParseToken(['gg', 'GG'], function (input, week, config, token) {
week[token] = hooks.parseTwoDigitYear(input);
});
// MOMENTS
function getSetWeekYear (input) {
return getSetWeekYearHelper.call(this,
input,
this.week(),
this.weekday(),
this.localeData()._week.dow,
this.localeData()._week.doy);
}
function getSetISOWeekYear (input) {
return getSetWeekYearHelper.call(this,
input, this.isoWeek(), this.isoWeekday(), 1, 4);
}
function getISOWeeksInYear () {
return weeksInYear(this.year(), 1, 4);
}
function getWeeksInYear () {
var weekInfo = this.localeData()._week;
return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy);
}
function getSetWeekYearHelper(input, week, weekday, dow, doy) {
var weeksTarget;
if (input == null) {
return weekOfYear(this, dow, doy).year;
} else {
weeksTarget = weeksInYear(input, dow, doy);
if (week > weeksTarget) {
week = weeksTarget;
}
return setWeekAll.call(this, input, week, weekday, dow, doy);
}
}
function setWeekAll(weekYear, week, weekday, dow, doy) {
var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy),
date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear);
this.year(date.getUTCFullYear());
this.month(date.getUTCMonth());
this.date(date.getUTCDate());
return this;
}
// FORMATTING
addFormatToken('Q', 0, 'Qo', 'quarter');
// ALIASES
addUnitAlias('quarter', 'Q');
// PRIORITY
addUnitPriority('quarter', 7);
// PARSING
addRegexToken('Q', match1);
addParseToken('Q', function (input, array) {
array[MONTH] = (toInt(input) - 1) * 3;
});
// MOMENTS
function getSetQuarter (input) {
return input == null ? Math.ceil((this.month() + 1) / 3) : this.month((input - 1) * 3 + this.month() % 3);
}
// FORMATTING
addFormatToken('D', ['DD', 2], 'Do', 'date');
// ALIASES
addUnitAlias('date', 'D');
// PRIORITY
addUnitPriority('date', 9);
// PARSING
addRegexToken('D', match1to2);
addRegexToken('DD', match1to2, match2);
addRegexToken('Do', function (isStrict, locale) {
// TODO: Remove "ordinalParse" fallback in next major release.
return isStrict ?
(locale._dayOfMonthOrdinalParse || locale._ordinalParse) :
locale._dayOfMonthOrdinalParseLenient;
});
addParseToken(['D', 'DD'], DATE);
addParseToken('Do', function (input, array) {
array[DATE] = toInt(input.match(match1to2)[0]);
});
// MOMENTS
var getSetDayOfMonth = makeGetSet('Date', true);
// FORMATTING
addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear');
// ALIASES
addUnitAlias('dayOfYear', 'DDD');
// PRIORITY
addUnitPriority('dayOfYear', 4);
// PARSING
addRegexToken('DDD', match1to3);
addRegexToken('DDDD', match3);
addParseToken(['DDD', 'DDDD'], function (input, array, config) {
config._dayOfYear = toInt(input);
});
// HELPERS
// MOMENTS
function getSetDayOfYear (input) {
var dayOfYear = Math.round((this.clone().startOf('day') - this.clone().startOf('year')) / 864e5) + 1;
return input == null ? dayOfYear : this.add((input - dayOfYear), 'd');
}
// FORMATTING
addFormatToken('m', ['mm', 2], 0, 'minute');
// ALIASES
addUnitAlias('minute', 'm');
// PRIORITY
addUnitPriority('minute', 14);
// PARSING
addRegexToken('m', match1to2);
addRegexToken('mm', match1to2, match2);
addParseToken(['m', 'mm'], MINUTE);
// MOMENTS
var getSetMinute = makeGetSet('Minutes', false);
// FORMATTING
addFormatToken('s', ['ss', 2], 0, 'second');
// ALIASES
addUnitAlias('second', 's');
// PRIORITY
addUnitPriority('second', 15);
// PARSING
addRegexToken('s', match1to2);
addRegexToken('ss', match1to2, match2);
addParseToken(['s', 'ss'], SECOND);
// MOMENTS
var getSetSecond = makeGetSet('Seconds', false);
// FORMATTING
addFormatToken('S', 0, 0, function () {
return ~~(this.millisecond() / 100);
});
addFormatToken(0, ['SS', 2], 0, function () {
return ~~(this.millisecond() / 10);
});
addFormatToken(0, ['SSS', 3], 0, 'millisecond');
addFormatToken(0, ['SSSS', 4], 0, function () {
return this.millisecond() * 10;
});
addFormatToken(0, ['SSSSS', 5], 0, function () {
return this.millisecond() * 100;
});
addFormatToken(0, ['SSSSSS', 6], 0, function () {
return this.millisecond() * 1000;
});
addFormatToken(0, ['SSSSSSS', 7], 0, function () {
return this.millisecond() * 10000;
});
addFormatToken(0, ['SSSSSSSS', 8], 0, function () {
return this.millisecond() * 100000;
});
addFormatToken(0, ['SSSSSSSSS', 9], 0, function () {
return this.millisecond() * 1000000;
});
// ALIASES
addUnitAlias('millisecond', 'ms');
// PRIORITY
addUnitPriority('millisecond', 16);
// PARSING
addRegexToken('S', match1to3, match1);
addRegexToken('SS', match1to3, match2);
addRegexToken('SSS', match1to3, match3);
var token;
for (token = 'SSSS'; token.length <= 9; token += 'S') {
addRegexToken(token, matchUnsigned);
}
function parseMs(input, array) {
array[MILLISECOND] = toInt(('0.' + input) * 1000);
}
for (token = 'S'; token.length <= 9; token += 'S') {
addParseToken(token, parseMs);
}
// MOMENTS
var getSetMillisecond = makeGetSet('Milliseconds', false);
// FORMATTING
addFormatToken('z', 0, 0, 'zoneAbbr');
addFormatToken('zz', 0, 0, 'zoneName');
// MOMENTS
function getZoneAbbr () {
return this._isUTC ? 'UTC' : '';
}
function getZoneName () {
return this._isUTC ? 'Coordinated Universal Time' : '';
}
var proto = Moment.prototype;
proto.add = add;
proto.calendar = calendar$1;
proto.clone = clone;
proto.diff = diff;
proto.endOf = endOf;
proto.format = format;
proto.from = from;
proto.fromNow = fromNow;
proto.to = to;
proto.toNow = toNow;
proto.get = stringGet;
proto.invalidAt = invalidAt;
proto.isAfter = isAfter;
proto.isBefore = isBefore;
proto.isBetween = isBetween;
proto.isSame = isSame;
proto.isSameOrAfter = isSameOrAfter;
proto.isSameOrBefore = isSameOrBefore;
proto.isValid = isValid$2;
proto.lang = lang;
proto.locale = locale;
proto.localeData = localeData;
proto.max = prototypeMax;
proto.min = prototypeMin;
proto.parsingFlags = parsingFlags;
proto.set = stringSet;
proto.startOf = startOf;
proto.subtract = subtract;
proto.toArray = toArray;
proto.toObject = toObject;
proto.toDate = toDate;
proto.toISOString = toISOString;
proto.inspect = inspect;
proto.toJSON = toJSON;
proto.toString = toString;
proto.unix = unix;
proto.valueOf = valueOf;
proto.creationData = creationData;
proto.year = getSetYear;
proto.isLeapYear = getIsLeapYear;
proto.weekYear = getSetWeekYear;
proto.isoWeekYear = getSetISOWeekYear;
proto.quarter = proto.quarters = getSetQuarter;
proto.month = getSetMonth;
proto.daysInMonth = getDaysInMonth;
proto.week = proto.weeks = getSetWeek;
proto.isoWeek = proto.isoWeeks = getSetISOWeek;
proto.weeksInYear = getWeeksInYear;
proto.isoWeeksInYear = getISOWeeksInYear;
proto.date = getSetDayOfMonth;
proto.day = proto.days = getSetDayOfWeek;
proto.weekday = getSetLocaleDayOfWeek;
proto.isoWeekday = getSetISODayOfWeek;
proto.dayOfYear = getSetDayOfYear;
proto.hour = proto.hours = getSetHour;
proto.minute = proto.minutes = getSetMinute;
proto.second = proto.seconds = getSetSecond;
proto.millisecond = proto.milliseconds = getSetMillisecond;
proto.utcOffset = getSetOffset;
proto.utc = setOffsetToUTC;
proto.local = setOffsetToLocal;
proto.parseZone = setOffsetToParsedOffset;
proto.hasAlignedHourOffset = hasAlignedHourOffset;
proto.isDST = isDaylightSavingTime;
proto.isLocal = isLocal;
proto.isUtcOffset = isUtcOffset;
proto.isUtc = isUtc;
proto.isUTC = isUtc;
proto.zoneAbbr = getZoneAbbr;
proto.zoneName = getZoneName;
proto.dates = deprecate('dates accessor is deprecated. Use date instead.', getSetDayOfMonth);
proto.months = deprecate('months accessor is deprecated. Use month instead', getSetMonth);
proto.years = deprecate('years accessor is deprecated. Use year instead', getSetYear);
proto.zone = deprecate('moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/', getSetZone);
proto.isDSTShifted = deprecate('isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information', isDaylightSavingTimeShifted);
function createUnix (input) {
return createLocal(input * 1000);
}
function createInZone () {
return createLocal.apply(null, arguments).parseZone();
}
function preParsePostFormat (string) {
return string;
}
var proto$1 = Locale.prototype;
proto$1.calendar = calendar;
proto$1.longDateFormat = longDateFormat;
proto$1.invalidDate = invalidDate;
proto$1.ordinal = ordinal;
proto$1.preparse = preParsePostFormat;
proto$1.postformat = preParsePostFormat;
proto$1.relativeTime = relativeTime;
proto$1.pastFuture = pastFuture;
proto$1.set = set;
proto$1.months = localeMonths;
proto$1.monthsShort = localeMonthsShort;
proto$1.monthsParse = localeMonthsParse;
proto$1.monthsRegex = monthsRegex;
proto$1.monthsShortRegex = monthsShortRegex;
proto$1.week = localeWeek;
proto$1.firstDayOfYear = localeFirstDayOfYear;
proto$1.firstDayOfWeek = localeFirstDayOfWeek;
proto$1.weekdays = localeWeekdays;
proto$1.weekdaysMin = localeWeekdaysMin;
proto$1.weekdaysShort = localeWeekdaysShort;
proto$1.weekdaysParse = localeWeekdaysParse;
proto$1.weekdaysRegex = weekdaysRegex;
proto$1.weekdaysShortRegex = weekdaysShortRegex;
proto$1.weekdaysMinRegex = weekdaysMinRegex;
proto$1.isPM = localeIsPM;
proto$1.meridiem = localeMeridiem;
function get$1 (format, index, field, setter) {
var locale = getLocale();
var utc = createUTC().set(setter, index);
return locale[field](utc, format);
}
function listMonthsImpl (format, index, field) {
if (isNumber(format)) {
index = format;
format = undefined;
}
format = format || '';
if (index != null) {
return get$1(format, index, field, 'month');
}
var i;
var out = [];
for (i = 0; i < 12; i++) {
out[i] = get$1(format, i, field, 'month');
}
return out;
}
// ()
// (5)
// (fmt, 5)
// (fmt)
// (true)
// (true, 5)
// (true, fmt, 5)
// (true, fmt)
function listWeekdaysImpl (localeSorted, format, index, field) {
if (typeof localeSorted === 'boolean') {
if (isNumber(format)) {
index = format;
format = undefined;
}
format = format || '';
} else {
format = localeSorted;
index = format;
localeSorted = false;
if (isNumber(format)) {
index = format;
format = undefined;
}
format = format || '';
}
var locale = getLocale(),
shift = localeSorted ? locale._week.dow : 0;
if (index != null) {
return get$1(format, (index + shift) % 7, field, 'day');
}
var i;
var out = [];
for (i = 0; i < 7; i++) {
out[i] = get$1(format, (i + shift) % 7, field, 'day');
}
return out;
}
function listMonths (format, index) {
return listMonthsImpl(format, index, 'months');
}
function listMonthsShort (format, index) {
return listMonthsImpl(format, index, 'monthsShort');
}
function listWeekdays (localeSorted, format, index) {
return listWeekdaysImpl(localeSorted, format, index, 'weekdays');
}
function listWeekdaysShort (localeSorted, format, index) {
return listWeekdaysImpl(localeSorted, format, index, 'weekdaysShort');
}
function listWeekdaysMin (localeSorted, format, index) {
return listWeekdaysImpl(localeSorted, format, index, 'weekdaysMin');
}
getSetGlobalLocale('en', {
dayOfMonthOrdinalParse: /\d{1,2}(th|st|nd|rd)/,
ordinal : function (number) {
var b = number % 10,
output = (toInt(number % 100 / 10) === 1) ? 'th' :
(b === 1) ? 'st' :
(b === 2) ? 'nd' :
(b === 3) ? 'rd' : 'th';
return number + output;
}
});
// Side effect imports
hooks.lang = deprecate('moment.lang is deprecated. Use moment.locale instead.', getSetGlobalLocale);
hooks.langData = deprecate('moment.langData is deprecated. Use moment.localeData instead.', getLocale);
var mathAbs = Math.abs;
function abs () {
var data = this._data;
this._milliseconds = mathAbs(this._milliseconds);
this._days = mathAbs(this._days);
this._months = mathAbs(this._months);
data.milliseconds = mathAbs(data.milliseconds);
data.seconds = mathAbs(data.seconds);
data.minutes = mathAbs(data.minutes);
data.hours = mathAbs(data.hours);
data.months = mathAbs(data.months);
data.years = mathAbs(data.years);
return this;
}
function addSubtract$1 (duration, input, value, direction) {
var other = createDuration(input, value);
duration._milliseconds += direction * other._milliseconds;
duration._days += direction * other._days;
duration._months += direction * other._months;
return duration._bubble();
}
// supports only 2.0-style add(1, 's') or add(duration)
function add$1 (input, value) {
return addSubtract$1(this, input, value, 1);
}
// supports only 2.0-style subtract(1, 's') or subtract(duration)
function subtract$1 (input, value) {
return addSubtract$1(this, input, value, -1);
}
function absCeil (number) {
if (number < 0) {
return Math.floor(number);
} else {
return Math.ceil(number);
}
}
function bubble () {
var milliseconds = this._milliseconds;
var days = this._days;
var months = this._months;
var data = this._data;
var seconds, minutes, hours, years, monthsFromDays;
// if we have a mix of positive and negative values, bubble down first
// check: https://github.com/moment/moment/issues/2166
if (!((milliseconds >= 0 && days >= 0 && months >= 0) ||
(milliseconds <= 0 && days <= 0 && months <= 0))) {
milliseconds += absCeil(monthsToDays(months) + days) * 864e5;
days = 0;
months = 0;
}
// The following code bubbles up values, see the tests for
// examples of what that means.
data.milliseconds = milliseconds % 1000;
seconds = absFloor(milliseconds / 1000);
data.seconds = seconds % 60;
minutes = absFloor(seconds / 60);
data.minutes = minutes % 60;
hours = absFloor(minutes / 60);
data.hours = hours % 24;
days += absFloor(hours / 24);
// convert days to months
monthsFromDays = absFloor(daysToMonths(days));
months += monthsFromDays;
days -= absCeil(monthsToDays(monthsFromDays));
// 12 months -> 1 year
years = absFloor(months / 12);
months %= 12;
data.days = days;
data.months = months;
data.years = years;
return this;
}
function daysToMonths (days) {
// 400 years have 146097 days (taking into account leap year rules)
// 400 years have 12 months === 4800
return days * 4800 / 146097;
}
function monthsToDays (months) {
// the reverse of daysToMonths
return months * 146097 / 4800;
}
function as (units) {
if (!this.isValid()) {
return NaN;
}
var days;
var months;
var milliseconds = this._milliseconds;
units = normalizeUnits(units);
if (units === 'month' || units === 'year') {
days = this._days + milliseconds / 864e5;
months = this._months + daysToMonths(days);
return units === 'month' ? months : months / 12;
} else {
// handle milliseconds separately because of floating point math errors (issue #1867)
days = this._days + Math.round(monthsToDays(this._months));
switch (units) {
case 'week' : return days / 7 + milliseconds / 6048e5;
case 'day' : return days + milliseconds / 864e5;
case 'hour' : return days * 24 + milliseconds / 36e5;
case 'minute' : return days * 1440 + milliseconds / 6e4;
case 'second' : return days * 86400 + milliseconds / 1000;
// Math.floor prevents floating point math errors here
case 'millisecond': return Math.floor(days * 864e5) + milliseconds;
default: throw new Error('Unknown unit ' + units);
}
}
}
// TODO: Use this.as('ms')?
function valueOf$1 () {
if (!this.isValid()) {
return NaN;
}
return (
this._milliseconds +
this._days * 864e5 +
(this._months % 12) * 2592e6 +
toInt(this._months / 12) * 31536e6
);
}
function makeAs (alias) {
return function () {
return this.as(alias);
};
}
var asMilliseconds = makeAs('ms');
var asSeconds = makeAs('s');
var asMinutes = makeAs('m');
var asHours = makeAs('h');
var asDays = makeAs('d');
var asWeeks = makeAs('w');
var asMonths = makeAs('M');
var asYears = makeAs('y');
function clone$1 () {
return createDuration(this);
}
function get$2 (units) {
units = normalizeUnits(units);
return this.isValid() ? this[units + 's']() : NaN;
}
function makeGetter(name) {
return function () {
return this.isValid() ? this._data[name] : NaN;
};
}
var milliseconds = makeGetter('milliseconds');
var seconds = makeGetter('seconds');
var minutes = makeGetter('minutes');
var hours = makeGetter('hours');
var days = makeGetter('days');
var months = makeGetter('months');
var years = makeGetter('years');
function weeks () {
return absFloor(this.days() / 7);
}
var round = Math.round;
var thresholds = {
ss: 44, // a few seconds to seconds
s : 45, // seconds to minute
m : 45, // minutes to hour
h : 22, // hours to day
d : 26, // days to month
M : 11 // months to year
};
// helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize
function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) {
return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture);
}
function relativeTime$1 (posNegDuration, withoutSuffix, locale) {
var duration = createDuration(posNegDuration).abs();
var seconds = round(duration.as('s'));
var minutes = round(duration.as('m'));
var hours = round(duration.as('h'));
var days = round(duration.as('d'));
var months = round(duration.as('M'));
var years = round(duration.as('y'));
var a = seconds <= thresholds.ss && ['s', seconds] ||
seconds < thresholds.s && ['ss', seconds] ||
minutes <= 1 && ['m'] ||
minutes < thresholds.m && ['mm', minutes] ||
hours <= 1 && ['h'] ||
hours < thresholds.h && ['hh', hours] ||
days <= 1 && ['d'] ||
days < thresholds.d && ['dd', days] ||
months <= 1 && ['M'] ||
months < thresholds.M && ['MM', months] ||
years <= 1 && ['y'] || ['yy', years];
a[2] = withoutSuffix;
a[3] = +posNegDuration > 0;
a[4] = locale;
return substituteTimeAgo.apply(null, a);
}
// This function allows you to set the rounding function for relative time strings
function getSetRelativeTimeRounding (roundingFunction) {
if (roundingFunction === undefined) {
return round;
}
if (typeof(roundingFunction) === 'function') {
round = roundingFunction;
return true;
}
return false;
}
// This function allows you to set a threshold for relative time strings
function getSetRelativeTimeThreshold (threshold, limit) {
if (thresholds[threshold] === undefined) {
return false;
}
if (limit === undefined) {
return thresholds[threshold];
}
thresholds[threshold] = limit;
if (threshold === 's') {
thresholds.ss = limit - 1;
}
return true;
}
function humanize (withSuffix) {
if (!this.isValid()) {
return this.localeData().invalidDate();
}
var locale = this.localeData();
var output = relativeTime$1(this, !withSuffix, locale);
if (withSuffix) {
output = locale.pastFuture(+this, output);
}
return locale.postformat(output);
}
var abs$1 = Math.abs;
function sign(x) {
return ((x > 0) - (x < 0)) || +x;
}
function toISOString$1() {
// for ISO strings we do not use the normal bubbling rules:
// * milliseconds bubble up until they become hours
// * days do not bubble at all
// * months bubble up until they become years
// This is because there is no context-free conversion between hours and days
// (think of clock changes)
// and also not between days and months (28-31 days per month)
if (!this.isValid()) {
return this.localeData().invalidDate();
}
var seconds = abs$1(this._milliseconds) / 1000;
var days = abs$1(this._days);
var months = abs$1(this._months);
var minutes, hours, years;
// 3600 seconds -> 60 minutes -> 1 hour
minutes = absFloor(seconds / 60);
hours = absFloor(minutes / 60);
seconds %= 60;
minutes %= 60;
// 12 months -> 1 year
years = absFloor(months / 12);
months %= 12;
// inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js
var Y = years;
var M = months;
var D = days;
var h = hours;
var m = minutes;
var s = seconds ? seconds.toFixed(3).replace(/\.?0+$/, '') : '';
var total = this.asSeconds();
if (!total) {
// this is the same as C#'s (Noda) and python (isodate)...
// but not other JS (goog.date)
return 'P0D';
}
var totalSign = total < 0 ? '-' : '';
var ymSign = sign(this._months) !== sign(total) ? '-' : '';
var daysSign = sign(this._days) !== sign(total) ? '-' : '';
var hmsSign = sign(this._milliseconds) !== sign(total) ? '-' : '';
return totalSign + 'P' +
(Y ? ymSign + Y + 'Y' : '') +
(M ? ymSign + M + 'M' : '') +
(D ? daysSign + D + 'D' : '') +
((h || m || s) ? 'T' : '') +
(h ? hmsSign + h + 'H' : '') +
(m ? hmsSign + m + 'M' : '') +
(s ? hmsSign + s + 'S' : '');
}
var proto$2 = Duration.prototype;
proto$2.isValid = isValid$1;
proto$2.abs = abs;
proto$2.add = add$1;
proto$2.subtract = subtract$1;
proto$2.as = as;
proto$2.asMilliseconds = asMilliseconds;
proto$2.asSeconds = asSeconds;
proto$2.asMinutes = asMinutes;
proto$2.asHours = asHours;
proto$2.asDays = asDays;
proto$2.asWeeks = asWeeks;
proto$2.asMonths = asMonths;
proto$2.asYears = asYears;
proto$2.valueOf = valueOf$1;
proto$2._bubble = bubble;
proto$2.clone = clone$1;
proto$2.get = get$2;
proto$2.milliseconds = milliseconds;
proto$2.seconds = seconds;
proto$2.minutes = minutes;
proto$2.hours = hours;
proto$2.days = days;
proto$2.weeks = weeks;
proto$2.months = months;
proto$2.years = years;
proto$2.humanize = humanize;
proto$2.toISOString = toISOString$1;
proto$2.toString = toISOString$1;
proto$2.toJSON = toISOString$1;
proto$2.locale = locale;
proto$2.localeData = localeData;
proto$2.toIsoString = deprecate('toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)', toISOString$1);
proto$2.lang = lang;
// Side effect imports
// FORMATTING
addFormatToken('X', 0, 0, 'unix');
addFormatToken('x', 0, 0, 'valueOf');
// PARSING
addRegexToken('x', matchSigned);
addRegexToken('X', matchTimestamp);
addParseToken('X', function (input, array, config) {
config._d = new Date(parseFloat(input, 10) * 1000);
});
addParseToken('x', function (input, array, config) {
config._d = new Date(toInt(input));
});
// Side effect imports
hooks.version = '2.22.1';
setHookCallback(createLocal);
hooks.fn = proto;
hooks.min = min;
hooks.max = max;
hooks.now = now;
hooks.utc = createUTC;
hooks.unix = createUnix;
hooks.months = listMonths;
hooks.isDate = isDate;
hooks.locale = getSetGlobalLocale;
hooks.invalid = createInvalid;
hooks.duration = createDuration;
hooks.isMoment = isMoment;
hooks.weekdays = listWeekdays;
hooks.parseZone = createInZone;
hooks.localeData = getLocale;
hooks.isDuration = isDuration;
hooks.monthsShort = listMonthsShort;
hooks.weekdaysMin = listWeekdaysMin;
hooks.defineLocale = defineLocale;
hooks.updateLocale = updateLocale;
hooks.locales = listLocales;
hooks.weekdaysShort = listWeekdaysShort;
hooks.normalizeUnits = normalizeUnits;
hooks.relativeTimeRounding = getSetRelativeTimeRounding;
hooks.relativeTimeThreshold = getSetRelativeTimeThreshold;
hooks.calendarFormat = getCalendarFormat;
hooks.prototype = proto;
// currently HTML5 input type only supports 24-hour formats
hooks.HTML5_FMT = {
DATETIME_LOCAL: 'YYYY-MM-DDTHH:mm', //
DATETIME_LOCAL_SECONDS: 'YYYY-MM-DDTHH:mm:ss', //
DATETIME_LOCAL_MS: 'YYYY-MM-DDTHH:mm:ss.SSS', //
DATE: 'YYYY-MM-DD', //
TIME: 'HH:mm', //
TIME_SECONDS: 'HH:mm:ss', //
TIME_MS: 'HH:mm:ss.SSS', //
WEEK: 'YYYY-[W]WW', //
MONTH: 'YYYY-MM' //
};
return hooks;
})));
================================================
FILE: public/admin-panel/assets/libs/moment/package.js
================================================
var profile = {
resourceTags: {
ignore: function(filename, mid){
// only include moment/moment
return mid != "moment/moment";
},
amd: function(filename, mid){
return /\.js$/.test(filename);
}
}
};
================================================
FILE: public/admin-panel/assets/libs/perfect-scrollbar/dist/perfect-scrollbar.common.js
================================================
/*!
* perfect-scrollbar v1.3.0
* (c) 2017 Hyunje Jun
* @license MIT
*/
'use strict';
function get(element) {
return getComputedStyle(element);
}
function set(element, obj) {
for (var key in obj) {
var val = obj[key];
if (typeof val === 'number') {
val = val + "px";
}
element.style[key] = val;
}
return element;
}
function div(className) {
var div = document.createElement('div');
div.className = className;
return div;
}
var elMatches =
typeof Element !== 'undefined' &&
(Element.prototype.matches ||
Element.prototype.webkitMatchesSelector ||
Element.prototype.msMatchesSelector);
function matches(element, query) {
if (!elMatches) {
throw new Error('No element matching method supported');
}
return elMatches.call(element, query);
}
function remove(element) {
if (element.remove) {
element.remove();
} else {
if (element.parentNode) {
element.parentNode.removeChild(element);
}
}
}
function queryChildren(element, selector) {
return Array.prototype.filter.call(element.children, function (child) { return matches(child, selector); }
);
}
var cls = {
main: 'ps',
element: {
thumb: function (x) { return ("ps__thumb-" + x); },
rail: function (x) { return ("ps__rail-" + x); },
consuming: 'ps__child--consume',
},
state: {
focus: 'ps--focus',
active: function (x) { return ("ps--active-" + x); },
scrolling: function (x) { return ("ps--scrolling-" + x); },
},
};
/*
* Helper methods
*/
var scrollingClassTimeout = { x: null, y: null };
function addScrollingClass(i, x) {
var classList = i.element.classList;
var className = cls.state.scrolling(x);
if (classList.contains(className)) {
clearTimeout(scrollingClassTimeout[x]);
} else {
classList.add(className);
}
}
function removeScrollingClass(i, x) {
scrollingClassTimeout[x] = setTimeout(
function () { return i.isAlive && i.element.classList.remove(cls.state.scrolling(x)); },
i.settings.scrollingThreshold
);
}
function setScrollingClassInstantly(i, x) {
addScrollingClass(i, x);
removeScrollingClass(i, x);
}
var EventElement = function EventElement(element) {
this.element = element;
this.handlers = {};
};
var prototypeAccessors = { isEmpty: { configurable: true } };
EventElement.prototype.bind = function bind (eventName, handler) {
if (typeof this.handlers[eventName] === 'undefined') {
this.handlers[eventName] = [];
}
this.handlers[eventName].push(handler);
this.element.addEventListener(eventName, handler, false);
};
EventElement.prototype.unbind = function unbind (eventName, target) {
var this$1 = this;
this.handlers[eventName] = this.handlers[eventName].filter(function (handler) {
if (target && handler !== target) {
return true;
}
this$1.element.removeEventListener(eventName, handler, false);
return false;
});
};
EventElement.prototype.unbindAll = function unbindAll () {
var this$1 = this;
for (var name in this$1.handlers) {
this$1.unbind(name);
}
};
prototypeAccessors.isEmpty.get = function () {
var this$1 = this;
return Object.keys(this.handlers).every(
function (key) { return this$1.handlers[key].length === 0; }
);
};
Object.defineProperties( EventElement.prototype, prototypeAccessors );
var EventManager = function EventManager() {
this.eventElements = [];
};
EventManager.prototype.eventElement = function eventElement (element) {
var ee = this.eventElements.filter(function (ee) { return ee.element === element; })[0];
if (!ee) {
ee = new EventElement(element);
this.eventElements.push(ee);
}
return ee;
};
EventManager.prototype.bind = function bind (element, eventName, handler) {
this.eventElement(element).bind(eventName, handler);
};
EventManager.prototype.unbind = function unbind (element, eventName, handler) {
var ee = this.eventElement(element);
ee.unbind(eventName, handler);
if (ee.isEmpty) {
// remove
this.eventElements.splice(this.eventElements.indexOf(ee), 1);
}
};
EventManager.prototype.unbindAll = function unbindAll () {
this.eventElements.forEach(function (e) { return e.unbindAll(); });
this.eventElements = [];
};
EventManager.prototype.once = function once (element, eventName, handler) {
var ee = this.eventElement(element);
var onceHandler = function (evt) {
ee.unbind(eventName, onceHandler);
handler(evt);
};
ee.bind(eventName, onceHandler);
};
function createEvent(name) {
if (typeof window.CustomEvent === 'function') {
return new CustomEvent(name);
} else {
var evt = document.createEvent('CustomEvent');
evt.initCustomEvent(name, false, false, undefined);
return evt;
}
}
var processScrollDiff = function(
i,
axis,
diff,
useScrollingClass,
forceFireReachEvent
) {
if ( useScrollingClass === void 0 ) useScrollingClass = true;
if ( forceFireReachEvent === void 0 ) forceFireReachEvent = false;
var fields;
if (axis === 'top') {
fields = [
'contentHeight',
'containerHeight',
'scrollTop',
'y',
'up',
'down' ];
} else if (axis === 'left') {
fields = [
'contentWidth',
'containerWidth',
'scrollLeft',
'x',
'left',
'right' ];
} else {
throw new Error('A proper axis should be provided');
}
processScrollDiff$1(i, diff, fields, useScrollingClass, forceFireReachEvent);
};
function processScrollDiff$1(
i,
diff,
ref,
useScrollingClass,
forceFireReachEvent
) {
var contentHeight = ref[0];
var containerHeight = ref[1];
var scrollTop = ref[2];
var y = ref[3];
var up = ref[4];
var down = ref[5];
if ( useScrollingClass === void 0 ) useScrollingClass = true;
if ( forceFireReachEvent === void 0 ) forceFireReachEvent = false;
var element = i.element;
// reset reach
i.reach[y] = null;
// 1 for subpixel rounding
if (element[scrollTop] < 1) {
i.reach[y] = 'start';
}
// 1 for subpixel rounding
if (element[scrollTop] > i[contentHeight] - i[containerHeight] - 1) {
i.reach[y] = 'end';
}
if (diff) {
element.dispatchEvent(createEvent(("ps-scroll-" + y)));
if (diff < 0) {
element.dispatchEvent(createEvent(("ps-scroll-" + up)));
} else if (diff > 0) {
element.dispatchEvent(createEvent(("ps-scroll-" + down)));
}
if (useScrollingClass) {
setScrollingClassInstantly(i, y);
}
}
if (i.reach[y] && (diff || forceFireReachEvent)) {
element.dispatchEvent(createEvent(("ps-" + y + "-reach-" + (i.reach[y]))));
}
}
function toInt(x) {
return parseInt(x, 10) || 0;
}
function isEditable(el) {
return (
matches(el, 'input,[contenteditable]') ||
matches(el, 'select,[contenteditable]') ||
matches(el, 'textarea,[contenteditable]') ||
matches(el, 'button,[contenteditable]')
);
}
function outerWidth(element) {
var styles = get(element);
return (
toInt(styles.width) +
toInt(styles.paddingLeft) +
toInt(styles.paddingRight) +
toInt(styles.borderLeftWidth) +
toInt(styles.borderRightWidth)
);
}
var env = {
isWebKit:
typeof document !== 'undefined' &&
'WebkitAppearance' in document.documentElement.style,
supportsTouch:
typeof window !== 'undefined' &&
('ontouchstart' in window ||
(window.DocumentTouch && document instanceof window.DocumentTouch)),
supportsIePointer:
typeof navigator !== 'undefined' && navigator.msMaxTouchPoints,
isChrome:
typeof navigator !== 'undefined' &&
/Chrome/i.test(navigator && navigator.userAgent),
};
var updateGeometry = function(i) {
var element = i.element;
i.containerWidth = element.clientWidth;
i.containerHeight = element.clientHeight;
i.contentWidth = element.scrollWidth;
i.contentHeight = element.scrollHeight;
if (!element.contains(i.scrollbarXRail)) {
// clean up and append
queryChildren(element, cls.element.rail('x')).forEach(function (el) { return remove(el); }
);
element.appendChild(i.scrollbarXRail);
}
if (!element.contains(i.scrollbarYRail)) {
// clean up and append
queryChildren(element, cls.element.rail('y')).forEach(function (el) { return remove(el); }
);
element.appendChild(i.scrollbarYRail);
}
if (
!i.settings.suppressScrollX &&
i.containerWidth + i.settings.scrollXMarginOffset < i.contentWidth
) {
i.scrollbarXActive = true;
i.railXWidth = i.containerWidth - i.railXMarginWidth;
i.railXRatio = i.containerWidth / i.railXWidth;
i.scrollbarXWidth = getThumbSize(
i,
toInt(i.railXWidth * i.containerWidth / i.contentWidth)
);
i.scrollbarXLeft = toInt(
(i.negativeScrollAdjustment + element.scrollLeft) *
(i.railXWidth - i.scrollbarXWidth) /
(i.contentWidth - i.containerWidth)
);
} else {
i.scrollbarXActive = false;
}
if (
!i.settings.suppressScrollY &&
i.containerHeight + i.settings.scrollYMarginOffset < i.contentHeight
) {
i.scrollbarYActive = true;
i.railYHeight = i.containerHeight - i.railYMarginHeight;
i.railYRatio = i.containerHeight / i.railYHeight;
i.scrollbarYHeight = getThumbSize(
i,
toInt(i.railYHeight * i.containerHeight / i.contentHeight)
);
i.scrollbarYTop = toInt(
element.scrollTop *
(i.railYHeight - i.scrollbarYHeight) /
(i.contentHeight - i.containerHeight)
);
} else {
i.scrollbarYActive = false;
}
if (i.scrollbarXLeft >= i.railXWidth - i.scrollbarXWidth) {
i.scrollbarXLeft = i.railXWidth - i.scrollbarXWidth;
}
if (i.scrollbarYTop >= i.railYHeight - i.scrollbarYHeight) {
i.scrollbarYTop = i.railYHeight - i.scrollbarYHeight;
}
updateCss(element, i);
if (i.scrollbarXActive) {
element.classList.add(cls.state.active('x'));
} else {
element.classList.remove(cls.state.active('x'));
i.scrollbarXWidth = 0;
i.scrollbarXLeft = 0;
element.scrollLeft = 0;
}
if (i.scrollbarYActive) {
element.classList.add(cls.state.active('y'));
} else {
element.classList.remove(cls.state.active('y'));
i.scrollbarYHeight = 0;
i.scrollbarYTop = 0;
element.scrollTop = 0;
}
};
function getThumbSize(i, thumbSize) {
if (i.settings.minScrollbarLength) {
thumbSize = Math.max(thumbSize, i.settings.minScrollbarLength);
}
if (i.settings.maxScrollbarLength) {
thumbSize = Math.min(thumbSize, i.settings.maxScrollbarLength);
}
return thumbSize;
}
function updateCss(element, i) {
var xRailOffset = { width: i.railXWidth };
if (i.isRtl) {
xRailOffset.left =
i.negativeScrollAdjustment +
element.scrollLeft +
i.containerWidth -
i.contentWidth;
} else {
xRailOffset.left = element.scrollLeft;
}
if (i.isScrollbarXUsingBottom) {
xRailOffset.bottom = i.scrollbarXBottom - element.scrollTop;
} else {
xRailOffset.top = i.scrollbarXTop + element.scrollTop;
}
set(i.scrollbarXRail, xRailOffset);
var yRailOffset = { top: element.scrollTop, height: i.railYHeight };
if (i.isScrollbarYUsingRight) {
if (i.isRtl) {
yRailOffset.right =
i.contentWidth -
(i.negativeScrollAdjustment + element.scrollLeft) -
i.scrollbarYRight -
i.scrollbarYOuterWidth;
} else {
yRailOffset.right = i.scrollbarYRight - element.scrollLeft;
}
} else {
if (i.isRtl) {
yRailOffset.left =
i.negativeScrollAdjustment +
element.scrollLeft +
i.containerWidth * 2 -
i.contentWidth -
i.scrollbarYLeft -
i.scrollbarYOuterWidth;
} else {
yRailOffset.left = i.scrollbarYLeft + element.scrollLeft;
}
}
set(i.scrollbarYRail, yRailOffset);
set(i.scrollbarX, {
left: i.scrollbarXLeft,
width: i.scrollbarXWidth - i.railBorderXWidth,
});
set(i.scrollbarY, {
top: i.scrollbarYTop,
height: i.scrollbarYHeight - i.railBorderYWidth,
});
}
var clickRail = function(i) {
i.event.bind(i.scrollbarY, 'mousedown', function (e) { return e.stopPropagation(); });
i.event.bind(i.scrollbarYRail, 'mousedown', function (e) {
var positionTop =
e.pageY -
window.pageYOffset -
i.scrollbarYRail.getBoundingClientRect().top;
var direction = positionTop > i.scrollbarYTop ? 1 : -1;
i.element.scrollTop += direction * i.containerHeight;
updateGeometry(i);
e.stopPropagation();
});
i.event.bind(i.scrollbarX, 'mousedown', function (e) { return e.stopPropagation(); });
i.event.bind(i.scrollbarXRail, 'mousedown', function (e) {
var positionLeft =
e.pageX -
window.pageXOffset -
i.scrollbarXRail.getBoundingClientRect().left;
var direction = positionLeft > i.scrollbarXLeft ? 1 : -1;
i.element.scrollLeft += direction * i.containerWidth;
updateGeometry(i);
e.stopPropagation();
});
};
var dragThumb = function(i) {
bindMouseScrollHandler(i, [
'containerWidth',
'contentWidth',
'pageX',
'railXWidth',
'scrollbarX',
'scrollbarXWidth',
'scrollLeft',
'x' ]);
bindMouseScrollHandler(i, [
'containerHeight',
'contentHeight',
'pageY',
'railYHeight',
'scrollbarY',
'scrollbarYHeight',
'scrollTop',
'y' ]);
};
function bindMouseScrollHandler(
i,
ref
) {
var containerHeight = ref[0];
var contentHeight = ref[1];
var pageY = ref[2];
var railYHeight = ref[3];
var scrollbarY = ref[4];
var scrollbarYHeight = ref[5];
var scrollTop = ref[6];
var y = ref[7];
var element = i.element;
var startingScrollTop = null;
var startingMousePageY = null;
var scrollBy = null;
function mouseMoveHandler(e) {
element[scrollTop] =
startingScrollTop + scrollBy * (e[pageY] - startingMousePageY);
addScrollingClass(i, y);
updateGeometry(i);
e.stopPropagation();
e.preventDefault();
}
function mouseUpHandler() {
removeScrollingClass(i, y);
i.event.unbind(i.ownerDocument, 'mousemove', mouseMoveHandler);
}
i.event.bind(i[scrollbarY], 'mousedown', function (e) {
startingScrollTop = element[scrollTop];
startingMousePageY = e[pageY];
scrollBy =
(i[contentHeight] - i[containerHeight]) /
(i[railYHeight] - i[scrollbarYHeight]);
i.event.bind(i.ownerDocument, 'mousemove', mouseMoveHandler);
i.event.once(i.ownerDocument, 'mouseup', mouseUpHandler);
e.stopPropagation();
e.preventDefault();
});
}
var keyboard = function(i) {
var element = i.element;
var elementHovered = function () { return matches(element, ':hover'); };
var scrollbarFocused = function () { return matches(i.scrollbarX, ':focus') || matches(i.scrollbarY, ':focus'); };
function shouldPreventDefault(deltaX, deltaY) {
var scrollTop = element.scrollTop;
if (deltaX === 0) {
if (!i.scrollbarYActive) {
return false;
}
if (
(scrollTop === 0 && deltaY > 0) ||
(scrollTop >= i.contentHeight - i.containerHeight && deltaY < 0)
) {
return !i.settings.wheelPropagation;
}
}
var scrollLeft = element.scrollLeft;
if (deltaY === 0) {
if (!i.scrollbarXActive) {
return false;
}
if (
(scrollLeft === 0 && deltaX < 0) ||
(scrollLeft >= i.contentWidth - i.containerWidth && deltaX > 0)
) {
return !i.settings.wheelPropagation;
}
}
return true;
}
i.event.bind(i.ownerDocument, 'keydown', function (e) {
if (
(e.isDefaultPrevented && e.isDefaultPrevented()) ||
e.defaultPrevented
) {
return;
}
if (!elementHovered() && !scrollbarFocused()) {
return;
}
var activeElement = document.activeElement
? document.activeElement
: i.ownerDocument.activeElement;
if (activeElement) {
if (activeElement.tagName === 'IFRAME') {
activeElement = activeElement.contentDocument.activeElement;
} else {
// go deeper if element is a webcomponent
while (activeElement.shadowRoot) {
activeElement = activeElement.shadowRoot.activeElement;
}
}
if (isEditable(activeElement)) {
return;
}
}
var deltaX = 0;
var deltaY = 0;
switch (e.which) {
case 37: // left
if (e.metaKey) {
deltaX = -i.contentWidth;
} else if (e.altKey) {
deltaX = -i.containerWidth;
} else {
deltaX = -30;
}
break;
case 38: // up
if (e.metaKey) {
deltaY = i.contentHeight;
} else if (e.altKey) {
deltaY = i.containerHeight;
} else {
deltaY = 30;
}
break;
case 39: // right
if (e.metaKey) {
deltaX = i.contentWidth;
} else if (e.altKey) {
deltaX = i.containerWidth;
} else {
deltaX = 30;
}
break;
case 40: // down
if (e.metaKey) {
deltaY = -i.contentHeight;
} else if (e.altKey) {
deltaY = -i.containerHeight;
} else {
deltaY = -30;
}
break;
case 32: // space bar
if (e.shiftKey) {
deltaY = i.containerHeight;
} else {
deltaY = -i.containerHeight;
}
break;
case 33: // page up
deltaY = i.containerHeight;
break;
case 34: // page down
deltaY = -i.containerHeight;
break;
case 36: // home
deltaY = i.contentHeight;
break;
case 35: // end
deltaY = -i.contentHeight;
break;
default:
return;
}
if (i.settings.suppressScrollX && deltaX !== 0) {
return;
}
if (i.settings.suppressScrollY && deltaY !== 0) {
return;
}
element.scrollTop -= deltaY;
element.scrollLeft += deltaX;
updateGeometry(i);
if (shouldPreventDefault(deltaX, deltaY)) {
e.preventDefault();
}
});
};
var wheel = function(i) {
var element = i.element;
function shouldPreventDefault(deltaX, deltaY) {
var isTop = element.scrollTop === 0;
var isBottom =
element.scrollTop + element.offsetHeight === element.scrollHeight;
var isLeft = element.scrollLeft === 0;
var isRight =
element.scrollLeft + element.offsetWidth === element.offsetWidth;
var hitsBound;
// pick axis with primary direction
if (Math.abs(deltaY) > Math.abs(deltaX)) {
hitsBound = isTop || isBottom;
} else {
hitsBound = isLeft || isRight;
}
return hitsBound ? !i.settings.wheelPropagation : true;
}
function getDeltaFromEvent(e) {
var deltaX = e.deltaX;
var deltaY = -1 * e.deltaY;
if (typeof deltaX === 'undefined' || typeof deltaY === 'undefined') {
// OS X Safari
deltaX = -1 * e.wheelDeltaX / 6;
deltaY = e.wheelDeltaY / 6;
}
if (e.deltaMode && e.deltaMode === 1) {
// Firefox in deltaMode 1: Line scrolling
deltaX *= 10;
deltaY *= 10;
}
if (deltaX !== deltaX && deltaY !== deltaY /* NaN checks */) {
// IE in some mouse drivers
deltaX = 0;
deltaY = e.wheelDelta;
}
if (e.shiftKey) {
// reverse axis with shift key
return [-deltaY, -deltaX];
}
return [deltaX, deltaY];
}
function shouldBeConsumedByChild(target, deltaX, deltaY) {
// FIXME: this is a workaround for
issue in FF and IE #571
if (!env.isWebKit && element.querySelector('select:focus')) {
return true;
}
if (!element.contains(target)) {
return false;
}
var cursor = target;
while (cursor && cursor !== element) {
if (cursor.classList.contains(cls.element.consuming)) {
return true;
}
var style = get(cursor);
var overflow = [style.overflow, style.overflowX, style.overflowY].join(
''
);
// if scrollable
if (overflow.match(/(scroll|auto)/)) {
var maxScrollTop = cursor.scrollHeight - cursor.clientHeight;
if (maxScrollTop > 0) {
if (
!(cursor.scrollTop === 0 && deltaY > 0) &&
!(cursor.scrollTop === maxScrollTop && deltaY < 0)
) {
return true;
}
}
var maxScrollLeft = cursor.scrollLeft - cursor.clientWidth;
if (maxScrollLeft > 0) {
if (
!(cursor.scrollLeft === 0 && deltaX < 0) &&
!(cursor.scrollLeft === maxScrollLeft && deltaX > 0)
) {
return true;
}
}
}
cursor = cursor.parentNode;
}
return false;
}
function mousewheelHandler(e) {
var ref = getDeltaFromEvent(e);
var deltaX = ref[0];
var deltaY = ref[1];
if (shouldBeConsumedByChild(e.target, deltaX, deltaY)) {
return;
}
var shouldPrevent = false;
if (!i.settings.useBothWheelAxes) {
// deltaX will only be used for horizontal scrolling and deltaY will
// only be used for vertical scrolling - this is the default
element.scrollTop -= deltaY * i.settings.wheelSpeed;
element.scrollLeft += deltaX * i.settings.wheelSpeed;
} else if (i.scrollbarYActive && !i.scrollbarXActive) {
// only vertical scrollbar is active and useBothWheelAxes option is
// active, so let's scroll vertical bar using both mouse wheel axes
if (deltaY) {
element.scrollTop -= deltaY * i.settings.wheelSpeed;
} else {
element.scrollTop += deltaX * i.settings.wheelSpeed;
}
shouldPrevent = true;
} else if (i.scrollbarXActive && !i.scrollbarYActive) {
// useBothWheelAxes and only horizontal bar is active, so use both
// wheel axes for horizontal bar
if (deltaX) {
element.scrollLeft += deltaX * i.settings.wheelSpeed;
} else {
element.scrollLeft -= deltaY * i.settings.wheelSpeed;
}
shouldPrevent = true;
}
updateGeometry(i);
shouldPrevent = shouldPrevent || shouldPreventDefault(deltaX, deltaY);
if (shouldPrevent && !e.ctrlKey) {
e.stopPropagation();
e.preventDefault();
}
}
if (typeof window.onwheel !== 'undefined') {
i.event.bind(element, 'wheel', mousewheelHandler);
} else if (typeof window.onmousewheel !== 'undefined') {
i.event.bind(element, 'mousewheel', mousewheelHandler);
}
};
var touch = function(i) {
if (!env.supportsTouch && !env.supportsIePointer) {
return;
}
var element = i.element;
function shouldPrevent(deltaX, deltaY) {
var scrollTop = element.scrollTop;
var scrollLeft = element.scrollLeft;
var magnitudeX = Math.abs(deltaX);
var magnitudeY = Math.abs(deltaY);
if (magnitudeY > magnitudeX) {
// user is perhaps trying to swipe up/down the page
if (
(deltaY < 0 && scrollTop === i.contentHeight - i.containerHeight) ||
(deltaY > 0 && scrollTop === 0)
) {
// set prevent for mobile Chrome refresh
return window.scrollY === 0 && deltaY > 0 && env.isChrome;
}
} else if (magnitudeX > magnitudeY) {
// user is perhaps trying to swipe left/right across the page
if (
(deltaX < 0 && scrollLeft === i.contentWidth - i.containerWidth) ||
(deltaX > 0 && scrollLeft === 0)
) {
return true;
}
}
return true;
}
function applyTouchMove(differenceX, differenceY) {
element.scrollTop -= differenceY;
element.scrollLeft -= differenceX;
updateGeometry(i);
}
var startOffset = {};
var startTime = 0;
var speed = {};
var easingLoop = null;
function getTouch(e) {
if (e.targetTouches) {
return e.targetTouches[0];
} else {
// Maybe IE pointer
return e;
}
}
function shouldHandle(e) {
if (e.pointerType && e.pointerType === 'pen' && e.buttons === 0) {
return false;
}
if (e.targetTouches && e.targetTouches.length === 1) {
return true;
}
if (
e.pointerType &&
e.pointerType !== 'mouse' &&
e.pointerType !== e.MSPOINTER_TYPE_MOUSE
) {
return true;
}
return false;
}
function touchStart(e) {
if (!shouldHandle(e)) {
return;
}
var touch = getTouch(e);
startOffset.pageX = touch.pageX;
startOffset.pageY = touch.pageY;
startTime = new Date().getTime();
if (easingLoop !== null) {
clearInterval(easingLoop);
}
}
function shouldBeConsumedByChild(target, deltaX, deltaY) {
if (!element.contains(target)) {
return false;
}
var cursor = target;
while (cursor && cursor !== element) {
if (cursor.classList.contains(cls.element.consuming)) {
return true;
}
var style = get(cursor);
var overflow = [style.overflow, style.overflowX, style.overflowY].join(
''
);
// if scrollable
if (overflow.match(/(scroll|auto)/)) {
var maxScrollTop = cursor.scrollHeight - cursor.clientHeight;
if (maxScrollTop > 0) {
if (
!(cursor.scrollTop === 0 && deltaY > 0) &&
!(cursor.scrollTop === maxScrollTop && deltaY < 0)
) {
return true;
}
}
var maxScrollLeft = cursor.scrollLeft - cursor.clientWidth;
if (maxScrollLeft > 0) {
if (
!(cursor.scrollLeft === 0 && deltaX < 0) &&
!(cursor.scrollLeft === maxScrollLeft && deltaX > 0)
) {
return true;
}
}
}
cursor = cursor.parentNode;
}
return false;
}
function touchMove(e) {
if (shouldHandle(e)) {
var touch = getTouch(e);
var currentOffset = { pageX: touch.pageX, pageY: touch.pageY };
var differenceX = currentOffset.pageX - startOffset.pageX;
var differenceY = currentOffset.pageY - startOffset.pageY;
if (shouldBeConsumedByChild(e.target, differenceX, differenceY)) {
return;
}
applyTouchMove(differenceX, differenceY);
startOffset = currentOffset;
var currentTime = new Date().getTime();
var timeGap = currentTime - startTime;
if (timeGap > 0) {
speed.x = differenceX / timeGap;
speed.y = differenceY / timeGap;
startTime = currentTime;
}
if (shouldPrevent(differenceX, differenceY)) {
e.preventDefault();
}
}
}
function touchEnd() {
if (i.settings.swipeEasing) {
clearInterval(easingLoop);
easingLoop = setInterval(function() {
if (i.isInitialized) {
clearInterval(easingLoop);
return;
}
if (!speed.x && !speed.y) {
clearInterval(easingLoop);
return;
}
if (Math.abs(speed.x) < 0.01 && Math.abs(speed.y) < 0.01) {
clearInterval(easingLoop);
return;
}
applyTouchMove(speed.x * 30, speed.y * 30);
speed.x *= 0.8;
speed.y *= 0.8;
}, 10);
}
}
if (env.supportsTouch) {
i.event.bind(element, 'touchstart', touchStart);
i.event.bind(element, 'touchmove', touchMove);
i.event.bind(element, 'touchend', touchEnd);
} else if (env.supportsIePointer) {
if (window.PointerEvent) {
i.event.bind(element, 'pointerdown', touchStart);
i.event.bind(element, 'pointermove', touchMove);
i.event.bind(element, 'pointerup', touchEnd);
} else if (window.MSPointerEvent) {
i.event.bind(element, 'MSPointerDown', touchStart);
i.event.bind(element, 'MSPointerMove', touchMove);
i.event.bind(element, 'MSPointerUp', touchEnd);
}
}
};
var defaultSettings = function () { return ({
handlers: ['click-rail', 'drag-thumb', 'keyboard', 'wheel', 'touch'],
maxScrollbarLength: null,
minScrollbarLength: null,
scrollingThreshold: 1000,
scrollXMarginOffset: 0,
scrollYMarginOffset: 0,
suppressScrollX: false,
suppressScrollY: false,
swipeEasing: true,
useBothWheelAxes: false,
wheelPropagation: false,
wheelSpeed: 1,
}); };
var handlers = {
'click-rail': clickRail,
'drag-thumb': dragThumb,
keyboard: keyboard,
wheel: wheel,
touch: touch,
};
var PerfectScrollbar = function PerfectScrollbar(element, userSettings) {
var this$1 = this;
if ( userSettings === void 0 ) userSettings = {};
if (typeof element === 'string') {
element = document.querySelector(element);
}
if (!element || !element.nodeName) {
throw new Error('no element is specified to initialize PerfectScrollbar');
}
this.element = element;
element.classList.add(cls.main);
this.settings = defaultSettings();
for (var key in userSettings) {
this$1.settings[key] = userSettings[key];
}
this.containerWidth = null;
this.containerHeight = null;
this.contentWidth = null;
this.contentHeight = null;
var focus = function () { return element.classList.add(cls.state.focus); };
var blur = function () { return element.classList.remove(cls.state.focus); };
this.isRtl = get(element).direction === 'rtl';
this.isNegativeScroll = (function () {
var originalScrollLeft = element.scrollLeft;
var result = null;
element.scrollLeft = -1;
result = element.scrollLeft < 0;
element.scrollLeft = originalScrollLeft;
return result;
})();
this.negativeScrollAdjustment = this.isNegativeScroll
? element.scrollWidth - element.clientWidth
: 0;
this.event = new EventManager();
this.ownerDocument = element.ownerDocument || document;
this.scrollbarXRail = div(cls.element.rail('x'));
element.appendChild(this.scrollbarXRail);
this.scrollbarX = div(cls.element.thumb('x'));
this.scrollbarXRail.appendChild(this.scrollbarX);
this.scrollbarX.setAttribute('tabindex', 0);
this.event.bind(this.scrollbarX, 'focus', focus);
this.event.bind(this.scrollbarX, 'blur', blur);
this.scrollbarXActive = null;
this.scrollbarXWidth = null;
this.scrollbarXLeft = null;
var railXStyle = get(this.scrollbarXRail);
this.scrollbarXBottom = parseInt(railXStyle.bottom, 10);
if (isNaN(this.scrollbarXBottom)) {
this.isScrollbarXUsingBottom = false;
this.scrollbarXTop = toInt(railXStyle.top);
} else {
this.isScrollbarXUsingBottom = true;
}
this.railBorderXWidth =
toInt(railXStyle.borderLeftWidth) + toInt(railXStyle.borderRightWidth);
// Set rail to display:block to calculate margins
set(this.scrollbarXRail, { display: 'block' });
this.railXMarginWidth =
toInt(railXStyle.marginLeft) + toInt(railXStyle.marginRight);
set(this.scrollbarXRail, { display: '' });
this.railXWidth = null;
this.railXRatio = null;
this.scrollbarYRail = div(cls.element.rail('y'));
element.appendChild(this.scrollbarYRail);
this.scrollbarY = div(cls.element.thumb('y'));
this.scrollbarYRail.appendChild(this.scrollbarY);
this.scrollbarY.setAttribute('tabindex', 0);
this.event.bind(this.scrollbarY, 'focus', focus);
this.event.bind(this.scrollbarY, 'blur', blur);
this.scrollbarYActive = null;
this.scrollbarYHeight = null;
this.scrollbarYTop = null;
var railYStyle = get(this.scrollbarYRail);
this.scrollbarYRight = parseInt(railYStyle.right, 10);
if (isNaN(this.scrollbarYRight)) {
this.isScrollbarYUsingRight = false;
this.scrollbarYLeft = toInt(railYStyle.left);
} else {
this.isScrollbarYUsingRight = true;
}
this.scrollbarYOuterWidth = this.isRtl ? outerWidth(this.scrollbarY) : null;
this.railBorderYWidth =
toInt(railYStyle.borderTopWidth) + toInt(railYStyle.borderBottomWidth);
set(this.scrollbarYRail, { display: 'block' });
this.railYMarginHeight =
toInt(railYStyle.marginTop) + toInt(railYStyle.marginBottom);
set(this.scrollbarYRail, { display: '' });
this.railYHeight = null;
this.railYRatio = null;
this.reach = {
x:
element.scrollLeft <= 0
? 'start'
: element.scrollLeft >= this.contentWidth - this.containerWidth
? 'end'
: null,
y:
element.scrollTop <= 0
? 'start'
: element.scrollTop >= this.contentHeight - this.containerHeight
? 'end'
: null,
};
this.isAlive = true;
this.settings.handlers.forEach(function (handlerName) { return handlers[handlerName](this$1); });
this.lastScrollTop = element.scrollTop; // for onScroll only
this.lastScrollLeft = element.scrollLeft; // for onScroll only
this.event.bind(this.element, 'scroll', function (e) { return this$1.onScroll(e); });
updateGeometry(this);
};
PerfectScrollbar.prototype.update = function update () {
if (!this.isAlive) {
return;
}
// Recalcuate negative scrollLeft adjustment
this.negativeScrollAdjustment = this.isNegativeScroll
? this.element.scrollWidth - this.element.clientWidth
: 0;
// Recalculate rail margins
set(this.scrollbarXRail, { display: 'block' });
set(this.scrollbarYRail, { display: 'block' });
this.railXMarginWidth =
toInt(get(this.scrollbarXRail).marginLeft) +
toInt(get(this.scrollbarXRail).marginRight);
this.railYMarginHeight =
toInt(get(this.scrollbarYRail).marginTop) +
toInt(get(this.scrollbarYRail).marginBottom);
// Hide scrollbars not to affect scrollWidth and scrollHeight
set(this.scrollbarXRail, { display: 'none' });
set(this.scrollbarYRail, { display: 'none' });
updateGeometry(this);
processScrollDiff(this, 'top', 0, false, true);
processScrollDiff(this, 'left', 0, false, true);
set(this.scrollbarXRail, { display: '' });
set(this.scrollbarYRail, { display: '' });
};
PerfectScrollbar.prototype.onScroll = function onScroll (e) {
if (!this.isAlive) {
return;
}
updateGeometry(this);
processScrollDiff(this, 'top', this.element.scrollTop - this.lastScrollTop);
processScrollDiff(
this,
'left',
this.element.scrollLeft - this.lastScrollLeft
);
this.lastScrollTop = this.element.scrollTop;
this.lastScrollLeft = this.element.scrollLeft;
};
PerfectScrollbar.prototype.destroy = function destroy () {
if (!this.isAlive) {
return;
}
this.event.unbindAll();
remove(this.scrollbarX);
remove(this.scrollbarY);
remove(this.scrollbarXRail);
remove(this.scrollbarYRail);
this.removePsClasses();
// unset elements
this.element = null;
this.scrollbarX = null;
this.scrollbarY = null;
this.scrollbarXRail = null;
this.scrollbarYRail = null;
this.isAlive = false;
};
PerfectScrollbar.prototype.removePsClasses = function removePsClasses () {
this.element.className = this.element.className
.split(' ')
.filter(function (name) { return !name.match(/^ps([-_].+|)$/); })
.join(' ');
};
module.exports = PerfectScrollbar;
================================================
FILE: public/admin-panel/assets/libs/perfect-scrollbar/dist/perfect-scrollbar.esm.js
================================================
/*!
* perfect-scrollbar v1.3.0
* (c) 2017 Hyunje Jun
* @license MIT
*/
function get(element) {
return getComputedStyle(element);
}
function set(element, obj) {
for (var key in obj) {
var val = obj[key];
if (typeof val === 'number') {
val = val + "px";
}
element.style[key] = val;
}
return element;
}
function div(className) {
var div = document.createElement('div');
div.className = className;
return div;
}
var elMatches =
typeof Element !== 'undefined' &&
(Element.prototype.matches ||
Element.prototype.webkitMatchesSelector ||
Element.prototype.msMatchesSelector);
function matches(element, query) {
if (!elMatches) {
throw new Error('No element matching method supported');
}
return elMatches.call(element, query);
}
function remove(element) {
if (element.remove) {
element.remove();
} else {
if (element.parentNode) {
element.parentNode.removeChild(element);
}
}
}
function queryChildren(element, selector) {
return Array.prototype.filter.call(element.children, function (child) { return matches(child, selector); }
);
}
var cls = {
main: 'ps',
element: {
thumb: function (x) { return ("ps__thumb-" + x); },
rail: function (x) { return ("ps__rail-" + x); },
consuming: 'ps__child--consume',
},
state: {
focus: 'ps--focus',
active: function (x) { return ("ps--active-" + x); },
scrolling: function (x) { return ("ps--scrolling-" + x); },
},
};
/*
* Helper methods
*/
var scrollingClassTimeout = { x: null, y: null };
function addScrollingClass(i, x) {
var classList = i.element.classList;
var className = cls.state.scrolling(x);
if (classList.contains(className)) {
clearTimeout(scrollingClassTimeout[x]);
} else {
classList.add(className);
}
}
function removeScrollingClass(i, x) {
scrollingClassTimeout[x] = setTimeout(
function () { return i.isAlive && i.element.classList.remove(cls.state.scrolling(x)); },
i.settings.scrollingThreshold
);
}
function setScrollingClassInstantly(i, x) {
addScrollingClass(i, x);
removeScrollingClass(i, x);
}
var EventElement = function EventElement(element) {
this.element = element;
this.handlers = {};
};
var prototypeAccessors = { isEmpty: { configurable: true } };
EventElement.prototype.bind = function bind (eventName, handler) {
if (typeof this.handlers[eventName] === 'undefined') {
this.handlers[eventName] = [];
}
this.handlers[eventName].push(handler);
this.element.addEventListener(eventName, handler, false);
};
EventElement.prototype.unbind = function unbind (eventName, target) {
var this$1 = this;
this.handlers[eventName] = this.handlers[eventName].filter(function (handler) {
if (target && handler !== target) {
return true;
}
this$1.element.removeEventListener(eventName, handler, false);
return false;
});
};
EventElement.prototype.unbindAll = function unbindAll () {
var this$1 = this;
for (var name in this$1.handlers) {
this$1.unbind(name);
}
};
prototypeAccessors.isEmpty.get = function () {
var this$1 = this;
return Object.keys(this.handlers).every(
function (key) { return this$1.handlers[key].length === 0; }
);
};
Object.defineProperties( EventElement.prototype, prototypeAccessors );
var EventManager = function EventManager() {
this.eventElements = [];
};
EventManager.prototype.eventElement = function eventElement (element) {
var ee = this.eventElements.filter(function (ee) { return ee.element === element; })[0];
if (!ee) {
ee = new EventElement(element);
this.eventElements.push(ee);
}
return ee;
};
EventManager.prototype.bind = function bind (element, eventName, handler) {
this.eventElement(element).bind(eventName, handler);
};
EventManager.prototype.unbind = function unbind (element, eventName, handler) {
var ee = this.eventElement(element);
ee.unbind(eventName, handler);
if (ee.isEmpty) {
// remove
this.eventElements.splice(this.eventElements.indexOf(ee), 1);
}
};
EventManager.prototype.unbindAll = function unbindAll () {
this.eventElements.forEach(function (e) { return e.unbindAll(); });
this.eventElements = [];
};
EventManager.prototype.once = function once (element, eventName, handler) {
var ee = this.eventElement(element);
var onceHandler = function (evt) {
ee.unbind(eventName, onceHandler);
handler(evt);
};
ee.bind(eventName, onceHandler);
};
function createEvent(name) {
if (typeof window.CustomEvent === 'function') {
return new CustomEvent(name);
} else {
var evt = document.createEvent('CustomEvent');
evt.initCustomEvent(name, false, false, undefined);
return evt;
}
}
var processScrollDiff = function(
i,
axis,
diff,
useScrollingClass,
forceFireReachEvent
) {
if ( useScrollingClass === void 0 ) useScrollingClass = true;
if ( forceFireReachEvent === void 0 ) forceFireReachEvent = false;
var fields;
if (axis === 'top') {
fields = [
'contentHeight',
'containerHeight',
'scrollTop',
'y',
'up',
'down' ];
} else if (axis === 'left') {
fields = [
'contentWidth',
'containerWidth',
'scrollLeft',
'x',
'left',
'right' ];
} else {
throw new Error('A proper axis should be provided');
}
processScrollDiff$1(i, diff, fields, useScrollingClass, forceFireReachEvent);
};
function processScrollDiff$1(
i,
diff,
ref,
useScrollingClass,
forceFireReachEvent
) {
var contentHeight = ref[0];
var containerHeight = ref[1];
var scrollTop = ref[2];
var y = ref[3];
var up = ref[4];
var down = ref[5];
if ( useScrollingClass === void 0 ) useScrollingClass = true;
if ( forceFireReachEvent === void 0 ) forceFireReachEvent = false;
var element = i.element;
// reset reach
i.reach[y] = null;
// 1 for subpixel rounding
if (element[scrollTop] < 1) {
i.reach[y] = 'start';
}
// 1 for subpixel rounding
if (element[scrollTop] > i[contentHeight] - i[containerHeight] - 1) {
i.reach[y] = 'end';
}
if (diff) {
element.dispatchEvent(createEvent(("ps-scroll-" + y)));
if (diff < 0) {
element.dispatchEvent(createEvent(("ps-scroll-" + up)));
} else if (diff > 0) {
element.dispatchEvent(createEvent(("ps-scroll-" + down)));
}
if (useScrollingClass) {
setScrollingClassInstantly(i, y);
}
}
if (i.reach[y] && (diff || forceFireReachEvent)) {
element.dispatchEvent(createEvent(("ps-" + y + "-reach-" + (i.reach[y]))));
}
}
function toInt(x) {
return parseInt(x, 10) || 0;
}
function isEditable(el) {
return (
matches(el, 'input,[contenteditable]') ||
matches(el, 'select,[contenteditable]') ||
matches(el, 'textarea,[contenteditable]') ||
matches(el, 'button,[contenteditable]')
);
}
function outerWidth(element) {
var styles = get(element);
return (
toInt(styles.width) +
toInt(styles.paddingLeft) +
toInt(styles.paddingRight) +
toInt(styles.borderLeftWidth) +
toInt(styles.borderRightWidth)
);
}
var env = {
isWebKit:
typeof document !== 'undefined' &&
'WebkitAppearance' in document.documentElement.style,
supportsTouch:
typeof window !== 'undefined' &&
('ontouchstart' in window ||
(window.DocumentTouch && document instanceof window.DocumentTouch)),
supportsIePointer:
typeof navigator !== 'undefined' && navigator.msMaxTouchPoints,
isChrome:
typeof navigator !== 'undefined' &&
/Chrome/i.test(navigator && navigator.userAgent),
};
var updateGeometry = function(i) {
var element = i.element;
i.containerWidth = element.clientWidth;
i.containerHeight = element.clientHeight;
i.contentWidth = element.scrollWidth;
i.contentHeight = element.scrollHeight;
if (!element.contains(i.scrollbarXRail)) {
// clean up and append
queryChildren(element, cls.element.rail('x')).forEach(function (el) { return remove(el); }
);
element.appendChild(i.scrollbarXRail);
}
if (!element.contains(i.scrollbarYRail)) {
// clean up and append
queryChildren(element, cls.element.rail('y')).forEach(function (el) { return remove(el); }
);
element.appendChild(i.scrollbarYRail);
}
if (
!i.settings.suppressScrollX &&
i.containerWidth + i.settings.scrollXMarginOffset < i.contentWidth
) {
i.scrollbarXActive = true;
i.railXWidth = i.containerWidth - i.railXMarginWidth;
i.railXRatio = i.containerWidth / i.railXWidth;
i.scrollbarXWidth = getThumbSize(
i,
toInt(i.railXWidth * i.containerWidth / i.contentWidth)
);
i.scrollbarXLeft = toInt(
(i.negativeScrollAdjustment + element.scrollLeft) *
(i.railXWidth - i.scrollbarXWidth) /
(i.contentWidth - i.containerWidth)
);
} else {
i.scrollbarXActive = false;
}
if (
!i.settings.suppressScrollY &&
i.containerHeight + i.settings.scrollYMarginOffset < i.contentHeight
) {
i.scrollbarYActive = true;
i.railYHeight = i.containerHeight - i.railYMarginHeight;
i.railYRatio = i.containerHeight / i.railYHeight;
i.scrollbarYHeight = getThumbSize(
i,
toInt(i.railYHeight * i.containerHeight / i.contentHeight)
);
i.scrollbarYTop = toInt(
element.scrollTop *
(i.railYHeight - i.scrollbarYHeight) /
(i.contentHeight - i.containerHeight)
);
} else {
i.scrollbarYActive = false;
}
if (i.scrollbarXLeft >= i.railXWidth - i.scrollbarXWidth) {
i.scrollbarXLeft = i.railXWidth - i.scrollbarXWidth;
}
if (i.scrollbarYTop >= i.railYHeight - i.scrollbarYHeight) {
i.scrollbarYTop = i.railYHeight - i.scrollbarYHeight;
}
updateCss(element, i);
if (i.scrollbarXActive) {
element.classList.add(cls.state.active('x'));
} else {
element.classList.remove(cls.state.active('x'));
i.scrollbarXWidth = 0;
i.scrollbarXLeft = 0;
element.scrollLeft = 0;
}
if (i.scrollbarYActive) {
element.classList.add(cls.state.active('y'));
} else {
element.classList.remove(cls.state.active('y'));
i.scrollbarYHeight = 0;
i.scrollbarYTop = 0;
element.scrollTop = 0;
}
};
function getThumbSize(i, thumbSize) {
if (i.settings.minScrollbarLength) {
thumbSize = Math.max(thumbSize, i.settings.minScrollbarLength);
}
if (i.settings.maxScrollbarLength) {
thumbSize = Math.min(thumbSize, i.settings.maxScrollbarLength);
}
return thumbSize;
}
function updateCss(element, i) {
var xRailOffset = { width: i.railXWidth };
if (i.isRtl) {
xRailOffset.left =
i.negativeScrollAdjustment +
element.scrollLeft +
i.containerWidth -
i.contentWidth;
} else {
xRailOffset.left = element.scrollLeft;
}
if (i.isScrollbarXUsingBottom) {
xRailOffset.bottom = i.scrollbarXBottom - element.scrollTop;
} else {
xRailOffset.top = i.scrollbarXTop + element.scrollTop;
}
set(i.scrollbarXRail, xRailOffset);
var yRailOffset = { top: element.scrollTop, height: i.railYHeight };
if (i.isScrollbarYUsingRight) {
if (i.isRtl) {
yRailOffset.right =
i.contentWidth -
(i.negativeScrollAdjustment + element.scrollLeft) -
i.scrollbarYRight -
i.scrollbarYOuterWidth;
} else {
yRailOffset.right = i.scrollbarYRight - element.scrollLeft;
}
} else {
if (i.isRtl) {
yRailOffset.left =
i.negativeScrollAdjustment +
element.scrollLeft +
i.containerWidth * 2 -
i.contentWidth -
i.scrollbarYLeft -
i.scrollbarYOuterWidth;
} else {
yRailOffset.left = i.scrollbarYLeft + element.scrollLeft;
}
}
set(i.scrollbarYRail, yRailOffset);
set(i.scrollbarX, {
left: i.scrollbarXLeft,
width: i.scrollbarXWidth - i.railBorderXWidth,
});
set(i.scrollbarY, {
top: i.scrollbarYTop,
height: i.scrollbarYHeight - i.railBorderYWidth,
});
}
var clickRail = function(i) {
i.event.bind(i.scrollbarY, 'mousedown', function (e) { return e.stopPropagation(); });
i.event.bind(i.scrollbarYRail, 'mousedown', function (e) {
var positionTop =
e.pageY -
window.pageYOffset -
i.scrollbarYRail.getBoundingClientRect().top;
var direction = positionTop > i.scrollbarYTop ? 1 : -1;
i.element.scrollTop += direction * i.containerHeight;
updateGeometry(i);
e.stopPropagation();
});
i.event.bind(i.scrollbarX, 'mousedown', function (e) { return e.stopPropagation(); });
i.event.bind(i.scrollbarXRail, 'mousedown', function (e) {
var positionLeft =
e.pageX -
window.pageXOffset -
i.scrollbarXRail.getBoundingClientRect().left;
var direction = positionLeft > i.scrollbarXLeft ? 1 : -1;
i.element.scrollLeft += direction * i.containerWidth;
updateGeometry(i);
e.stopPropagation();
});
};
var dragThumb = function(i) {
bindMouseScrollHandler(i, [
'containerWidth',
'contentWidth',
'pageX',
'railXWidth',
'scrollbarX',
'scrollbarXWidth',
'scrollLeft',
'x' ]);
bindMouseScrollHandler(i, [
'containerHeight',
'contentHeight',
'pageY',
'railYHeight',
'scrollbarY',
'scrollbarYHeight',
'scrollTop',
'y' ]);
};
function bindMouseScrollHandler(
i,
ref
) {
var containerHeight = ref[0];
var contentHeight = ref[1];
var pageY = ref[2];
var railYHeight = ref[3];
var scrollbarY = ref[4];
var scrollbarYHeight = ref[5];
var scrollTop = ref[6];
var y = ref[7];
var element = i.element;
var startingScrollTop = null;
var startingMousePageY = null;
var scrollBy = null;
function mouseMoveHandler(e) {
element[scrollTop] =
startingScrollTop + scrollBy * (e[pageY] - startingMousePageY);
addScrollingClass(i, y);
updateGeometry(i);
e.stopPropagation();
e.preventDefault();
}
function mouseUpHandler() {
removeScrollingClass(i, y);
i.event.unbind(i.ownerDocument, 'mousemove', mouseMoveHandler);
}
i.event.bind(i[scrollbarY], 'mousedown', function (e) {
startingScrollTop = element[scrollTop];
startingMousePageY = e[pageY];
scrollBy =
(i[contentHeight] - i[containerHeight]) /
(i[railYHeight] - i[scrollbarYHeight]);
i.event.bind(i.ownerDocument, 'mousemove', mouseMoveHandler);
i.event.once(i.ownerDocument, 'mouseup', mouseUpHandler);
e.stopPropagation();
e.preventDefault();
});
}
var keyboard = function(i) {
var element = i.element;
var elementHovered = function () { return matches(element, ':hover'); };
var scrollbarFocused = function () { return matches(i.scrollbarX, ':focus') || matches(i.scrollbarY, ':focus'); };
function shouldPreventDefault(deltaX, deltaY) {
var scrollTop = element.scrollTop;
if (deltaX === 0) {
if (!i.scrollbarYActive) {
return false;
}
if (
(scrollTop === 0 && deltaY > 0) ||
(scrollTop >= i.contentHeight - i.containerHeight && deltaY < 0)
) {
return !i.settings.wheelPropagation;
}
}
var scrollLeft = element.scrollLeft;
if (deltaY === 0) {
if (!i.scrollbarXActive) {
return false;
}
if (
(scrollLeft === 0 && deltaX < 0) ||
(scrollLeft >= i.contentWidth - i.containerWidth && deltaX > 0)
) {
return !i.settings.wheelPropagation;
}
}
return true;
}
i.event.bind(i.ownerDocument, 'keydown', function (e) {
if (
(e.isDefaultPrevented && e.isDefaultPrevented()) ||
e.defaultPrevented
) {
return;
}
if (!elementHovered() && !scrollbarFocused()) {
return;
}
var activeElement = document.activeElement
? document.activeElement
: i.ownerDocument.activeElement;
if (activeElement) {
if (activeElement.tagName === 'IFRAME') {
activeElement = activeElement.contentDocument.activeElement;
} else {
// go deeper if element is a webcomponent
while (activeElement.shadowRoot) {
activeElement = activeElement.shadowRoot.activeElement;
}
}
if (isEditable(activeElement)) {
return;
}
}
var deltaX = 0;
var deltaY = 0;
switch (e.which) {
case 37: // left
if (e.metaKey) {
deltaX = -i.contentWidth;
} else if (e.altKey) {
deltaX = -i.containerWidth;
} else {
deltaX = -30;
}
break;
case 38: // up
if (e.metaKey) {
deltaY = i.contentHeight;
} else if (e.altKey) {
deltaY = i.containerHeight;
} else {
deltaY = 30;
}
break;
case 39: // right
if (e.metaKey) {
deltaX = i.contentWidth;
} else if (e.altKey) {
deltaX = i.containerWidth;
} else {
deltaX = 30;
}
break;
case 40: // down
if (e.metaKey) {
deltaY = -i.contentHeight;
} else if (e.altKey) {
deltaY = -i.containerHeight;
} else {
deltaY = -30;
}
break;
case 32: // space bar
if (e.shiftKey) {
deltaY = i.containerHeight;
} else {
deltaY = -i.containerHeight;
}
break;
case 33: // page up
deltaY = i.containerHeight;
break;
case 34: // page down
deltaY = -i.containerHeight;
break;
case 36: // home
deltaY = i.contentHeight;
break;
case 35: // end
deltaY = -i.contentHeight;
break;
default:
return;
}
if (i.settings.suppressScrollX && deltaX !== 0) {
return;
}
if (i.settings.suppressScrollY && deltaY !== 0) {
return;
}
element.scrollTop -= deltaY;
element.scrollLeft += deltaX;
updateGeometry(i);
if (shouldPreventDefault(deltaX, deltaY)) {
e.preventDefault();
}
});
};
var wheel = function(i) {
var element = i.element;
function shouldPreventDefault(deltaX, deltaY) {
var isTop = element.scrollTop === 0;
var isBottom =
element.scrollTop + element.offsetHeight === element.scrollHeight;
var isLeft = element.scrollLeft === 0;
var isRight =
element.scrollLeft + element.offsetWidth === element.offsetWidth;
var hitsBound;
// pick axis with primary direction
if (Math.abs(deltaY) > Math.abs(deltaX)) {
hitsBound = isTop || isBottom;
} else {
hitsBound = isLeft || isRight;
}
return hitsBound ? !i.settings.wheelPropagation : true;
}
function getDeltaFromEvent(e) {
var deltaX = e.deltaX;
var deltaY = -1 * e.deltaY;
if (typeof deltaX === 'undefined' || typeof deltaY === 'undefined') {
// OS X Safari
deltaX = -1 * e.wheelDeltaX / 6;
deltaY = e.wheelDeltaY / 6;
}
if (e.deltaMode && e.deltaMode === 1) {
// Firefox in deltaMode 1: Line scrolling
deltaX *= 10;
deltaY *= 10;
}
if (deltaX !== deltaX && deltaY !== deltaY /* NaN checks */) {
// IE in some mouse drivers
deltaX = 0;
deltaY = e.wheelDelta;
}
if (e.shiftKey) {
// reverse axis with shift key
return [-deltaY, -deltaX];
}
return [deltaX, deltaY];
}
function shouldBeConsumedByChild(target, deltaX, deltaY) {
// FIXME: this is a workaround for issue in FF and IE #571
if (!env.isWebKit && element.querySelector('select:focus')) {
return true;
}
if (!element.contains(target)) {
return false;
}
var cursor = target;
while (cursor && cursor !== element) {
if (cursor.classList.contains(cls.element.consuming)) {
return true;
}
var style = get(cursor);
var overflow = [style.overflow, style.overflowX, style.overflowY].join(
''
);
// if scrollable
if (overflow.match(/(scroll|auto)/)) {
var maxScrollTop = cursor.scrollHeight - cursor.clientHeight;
if (maxScrollTop > 0) {
if (
!(cursor.scrollTop === 0 && deltaY > 0) &&
!(cursor.scrollTop === maxScrollTop && deltaY < 0)
) {
return true;
}
}
var maxScrollLeft = cursor.scrollLeft - cursor.clientWidth;
if (maxScrollLeft > 0) {
if (
!(cursor.scrollLeft === 0 && deltaX < 0) &&
!(cursor.scrollLeft === maxScrollLeft && deltaX > 0)
) {
return true;
}
}
}
cursor = cursor.parentNode;
}
return false;
}
function mousewheelHandler(e) {
var ref = getDeltaFromEvent(e);
var deltaX = ref[0];
var deltaY = ref[1];
if (shouldBeConsumedByChild(e.target, deltaX, deltaY)) {
return;
}
var shouldPrevent = false;
if (!i.settings.useBothWheelAxes) {
// deltaX will only be used for horizontal scrolling and deltaY will
// only be used for vertical scrolling - this is the default
element.scrollTop -= deltaY * i.settings.wheelSpeed;
element.scrollLeft += deltaX * i.settings.wheelSpeed;
} else if (i.scrollbarYActive && !i.scrollbarXActive) {
// only vertical scrollbar is active and useBothWheelAxes option is
// active, so let's scroll vertical bar using both mouse wheel axes
if (deltaY) {
element.scrollTop -= deltaY * i.settings.wheelSpeed;
} else {
element.scrollTop += deltaX * i.settings.wheelSpeed;
}
shouldPrevent = true;
} else if (i.scrollbarXActive && !i.scrollbarYActive) {
// useBothWheelAxes and only horizontal bar is active, so use both
// wheel axes for horizontal bar
if (deltaX) {
element.scrollLeft += deltaX * i.settings.wheelSpeed;
} else {
element.scrollLeft -= deltaY * i.settings.wheelSpeed;
}
shouldPrevent = true;
}
updateGeometry(i);
shouldPrevent = shouldPrevent || shouldPreventDefault(deltaX, deltaY);
if (shouldPrevent && !e.ctrlKey) {
e.stopPropagation();
e.preventDefault();
}
}
if (typeof window.onwheel !== 'undefined') {
i.event.bind(element, 'wheel', mousewheelHandler);
} else if (typeof window.onmousewheel !== 'undefined') {
i.event.bind(element, 'mousewheel', mousewheelHandler);
}
};
var touch = function(i) {
if (!env.supportsTouch && !env.supportsIePointer) {
return;
}
var element = i.element;
function shouldPrevent(deltaX, deltaY) {
var scrollTop = element.scrollTop;
var scrollLeft = element.scrollLeft;
var magnitudeX = Math.abs(deltaX);
var magnitudeY = Math.abs(deltaY);
if (magnitudeY > magnitudeX) {
// user is perhaps trying to swipe up/down the page
if (
(deltaY < 0 && scrollTop === i.contentHeight - i.containerHeight) ||
(deltaY > 0 && scrollTop === 0)
) {
// set prevent for mobile Chrome refresh
return window.scrollY === 0 && deltaY > 0 && env.isChrome;
}
} else if (magnitudeX > magnitudeY) {
// user is perhaps trying to swipe left/right across the page
if (
(deltaX < 0 && scrollLeft === i.contentWidth - i.containerWidth) ||
(deltaX > 0 && scrollLeft === 0)
) {
return true;
}
}
return true;
}
function applyTouchMove(differenceX, differenceY) {
element.scrollTop -= differenceY;
element.scrollLeft -= differenceX;
updateGeometry(i);
}
var startOffset = {};
var startTime = 0;
var speed = {};
var easingLoop = null;
function getTouch(e) {
if (e.targetTouches) {
return e.targetTouches[0];
} else {
// Maybe IE pointer
return e;
}
}
function shouldHandle(e) {
if (e.pointerType && e.pointerType === 'pen' && e.buttons === 0) {
return false;
}
if (e.targetTouches && e.targetTouches.length === 1) {
return true;
}
if (
e.pointerType &&
e.pointerType !== 'mouse' &&
e.pointerType !== e.MSPOINTER_TYPE_MOUSE
) {
return true;
}
return false;
}
function touchStart(e) {
if (!shouldHandle(e)) {
return;
}
var touch = getTouch(e);
startOffset.pageX = touch.pageX;
startOffset.pageY = touch.pageY;
startTime = new Date().getTime();
if (easingLoop !== null) {
clearInterval(easingLoop);
}
}
function shouldBeConsumedByChild(target, deltaX, deltaY) {
if (!element.contains(target)) {
return false;
}
var cursor = target;
while (cursor && cursor !== element) {
if (cursor.classList.contains(cls.element.consuming)) {
return true;
}
var style = get(cursor);
var overflow = [style.overflow, style.overflowX, style.overflowY].join(
''
);
// if scrollable
if (overflow.match(/(scroll|auto)/)) {
var maxScrollTop = cursor.scrollHeight - cursor.clientHeight;
if (maxScrollTop > 0) {
if (
!(cursor.scrollTop === 0 && deltaY > 0) &&
!(cursor.scrollTop === maxScrollTop && deltaY < 0)
) {
return true;
}
}
var maxScrollLeft = cursor.scrollLeft - cursor.clientWidth;
if (maxScrollLeft > 0) {
if (
!(cursor.scrollLeft === 0 && deltaX < 0) &&
!(cursor.scrollLeft === maxScrollLeft && deltaX > 0)
) {
return true;
}
}
}
cursor = cursor.parentNode;
}
return false;
}
function touchMove(e) {
if (shouldHandle(e)) {
var touch = getTouch(e);
var currentOffset = { pageX: touch.pageX, pageY: touch.pageY };
var differenceX = currentOffset.pageX - startOffset.pageX;
var differenceY = currentOffset.pageY - startOffset.pageY;
if (shouldBeConsumedByChild(e.target, differenceX, differenceY)) {
return;
}
applyTouchMove(differenceX, differenceY);
startOffset = currentOffset;
var currentTime = new Date().getTime();
var timeGap = currentTime - startTime;
if (timeGap > 0) {
speed.x = differenceX / timeGap;
speed.y = differenceY / timeGap;
startTime = currentTime;
}
if (shouldPrevent(differenceX, differenceY)) {
e.preventDefault();
}
}
}
function touchEnd() {
if (i.settings.swipeEasing) {
clearInterval(easingLoop);
easingLoop = setInterval(function() {
if (i.isInitialized) {
clearInterval(easingLoop);
return;
}
if (!speed.x && !speed.y) {
clearInterval(easingLoop);
return;
}
if (Math.abs(speed.x) < 0.01 && Math.abs(speed.y) < 0.01) {
clearInterval(easingLoop);
return;
}
applyTouchMove(speed.x * 30, speed.y * 30);
speed.x *= 0.8;
speed.y *= 0.8;
}, 10);
}
}
if (env.supportsTouch) {
i.event.bind(element, 'touchstart', touchStart);
i.event.bind(element, 'touchmove', touchMove);
i.event.bind(element, 'touchend', touchEnd);
} else if (env.supportsIePointer) {
if (window.PointerEvent) {
i.event.bind(element, 'pointerdown', touchStart);
i.event.bind(element, 'pointermove', touchMove);
i.event.bind(element, 'pointerup', touchEnd);
} else if (window.MSPointerEvent) {
i.event.bind(element, 'MSPointerDown', touchStart);
i.event.bind(element, 'MSPointerMove', touchMove);
i.event.bind(element, 'MSPointerUp', touchEnd);
}
}
};
var defaultSettings = function () { return ({
handlers: ['click-rail', 'drag-thumb', 'keyboard', 'wheel', 'touch'],
maxScrollbarLength: null,
minScrollbarLength: null,
scrollingThreshold: 1000,
scrollXMarginOffset: 0,
scrollYMarginOffset: 0,
suppressScrollX: false,
suppressScrollY: false,
swipeEasing: true,
useBothWheelAxes: false,
wheelPropagation: false,
wheelSpeed: 1,
}); };
var handlers = {
'click-rail': clickRail,
'drag-thumb': dragThumb,
keyboard: keyboard,
wheel: wheel,
touch: touch,
};
var PerfectScrollbar = function PerfectScrollbar(element, userSettings) {
var this$1 = this;
if ( userSettings === void 0 ) userSettings = {};
if (typeof element === 'string') {
element = document.querySelector(element);
}
if (!element || !element.nodeName) {
throw new Error('no element is specified to initialize PerfectScrollbar');
}
this.element = element;
element.classList.add(cls.main);
this.settings = defaultSettings();
for (var key in userSettings) {
this$1.settings[key] = userSettings[key];
}
this.containerWidth = null;
this.containerHeight = null;
this.contentWidth = null;
this.contentHeight = null;
var focus = function () { return element.classList.add(cls.state.focus); };
var blur = function () { return element.classList.remove(cls.state.focus); };
this.isRtl = get(element).direction === 'rtl';
this.isNegativeScroll = (function () {
var originalScrollLeft = element.scrollLeft;
var result = null;
element.scrollLeft = -1;
result = element.scrollLeft < 0;
element.scrollLeft = originalScrollLeft;
return result;
})();
this.negativeScrollAdjustment = this.isNegativeScroll
? element.scrollWidth - element.clientWidth
: 0;
this.event = new EventManager();
this.ownerDocument = element.ownerDocument || document;
this.scrollbarXRail = div(cls.element.rail('x'));
element.appendChild(this.scrollbarXRail);
this.scrollbarX = div(cls.element.thumb('x'));
this.scrollbarXRail.appendChild(this.scrollbarX);
this.scrollbarX.setAttribute('tabindex', 0);
this.event.bind(this.scrollbarX, 'focus', focus);
this.event.bind(this.scrollbarX, 'blur', blur);
this.scrollbarXActive = null;
this.scrollbarXWidth = null;
this.scrollbarXLeft = null;
var railXStyle = get(this.scrollbarXRail);
this.scrollbarXBottom = parseInt(railXStyle.bottom, 10);
if (isNaN(this.scrollbarXBottom)) {
this.isScrollbarXUsingBottom = false;
this.scrollbarXTop = toInt(railXStyle.top);
} else {
this.isScrollbarXUsingBottom = true;
}
this.railBorderXWidth =
toInt(railXStyle.borderLeftWidth) + toInt(railXStyle.borderRightWidth);
// Set rail to display:block to calculate margins
set(this.scrollbarXRail, { display: 'block' });
this.railXMarginWidth =
toInt(railXStyle.marginLeft) + toInt(railXStyle.marginRight);
set(this.scrollbarXRail, { display: '' });
this.railXWidth = null;
this.railXRatio = null;
this.scrollbarYRail = div(cls.element.rail('y'));
element.appendChild(this.scrollbarYRail);
this.scrollbarY = div(cls.element.thumb('y'));
this.scrollbarYRail.appendChild(this.scrollbarY);
this.scrollbarY.setAttribute('tabindex', 0);
this.event.bind(this.scrollbarY, 'focus', focus);
this.event.bind(this.scrollbarY, 'blur', blur);
this.scrollbarYActive = null;
this.scrollbarYHeight = null;
this.scrollbarYTop = null;
var railYStyle = get(this.scrollbarYRail);
this.scrollbarYRight = parseInt(railYStyle.right, 10);
if (isNaN(this.scrollbarYRight)) {
this.isScrollbarYUsingRight = false;
this.scrollbarYLeft = toInt(railYStyle.left);
} else {
this.isScrollbarYUsingRight = true;
}
this.scrollbarYOuterWidth = this.isRtl ? outerWidth(this.scrollbarY) : null;
this.railBorderYWidth =
toInt(railYStyle.borderTopWidth) + toInt(railYStyle.borderBottomWidth);
set(this.scrollbarYRail, { display: 'block' });
this.railYMarginHeight =
toInt(railYStyle.marginTop) + toInt(railYStyle.marginBottom);
set(this.scrollbarYRail, { display: '' });
this.railYHeight = null;
this.railYRatio = null;
this.reach = {
x:
element.scrollLeft <= 0
? 'start'
: element.scrollLeft >= this.contentWidth - this.containerWidth
? 'end'
: null,
y:
element.scrollTop <= 0
? 'start'
: element.scrollTop >= this.contentHeight - this.containerHeight
? 'end'
: null,
};
this.isAlive = true;
this.settings.handlers.forEach(function (handlerName) { return handlers[handlerName](this$1); });
this.lastScrollTop = element.scrollTop; // for onScroll only
this.lastScrollLeft = element.scrollLeft; // for onScroll only
this.event.bind(this.element, 'scroll', function (e) { return this$1.onScroll(e); });
updateGeometry(this);
};
PerfectScrollbar.prototype.update = function update () {
if (!this.isAlive) {
return;
}
// Recalcuate negative scrollLeft adjustment
this.negativeScrollAdjustment = this.isNegativeScroll
? this.element.scrollWidth - this.element.clientWidth
: 0;
// Recalculate rail margins
set(this.scrollbarXRail, { display: 'block' });
set(this.scrollbarYRail, { display: 'block' });
this.railXMarginWidth =
toInt(get(this.scrollbarXRail).marginLeft) +
toInt(get(this.scrollbarXRail).marginRight);
this.railYMarginHeight =
toInt(get(this.scrollbarYRail).marginTop) +
toInt(get(this.scrollbarYRail).marginBottom);
// Hide scrollbars not to affect scrollWidth and scrollHeight
set(this.scrollbarXRail, { display: 'none' });
set(this.scrollbarYRail, { display: 'none' });
updateGeometry(this);
processScrollDiff(this, 'top', 0, false, true);
processScrollDiff(this, 'left', 0, false, true);
set(this.scrollbarXRail, { display: '' });
set(this.scrollbarYRail, { display: '' });
};
PerfectScrollbar.prototype.onScroll = function onScroll (e) {
if (!this.isAlive) {
return;
}
updateGeometry(this);
processScrollDiff(this, 'top', this.element.scrollTop - this.lastScrollTop);
processScrollDiff(
this,
'left',
this.element.scrollLeft - this.lastScrollLeft
);
this.lastScrollTop = this.element.scrollTop;
this.lastScrollLeft = this.element.scrollLeft;
};
PerfectScrollbar.prototype.destroy = function destroy () {
if (!this.isAlive) {
return;
}
this.event.unbindAll();
remove(this.scrollbarX);
remove(this.scrollbarY);
remove(this.scrollbarXRail);
remove(this.scrollbarYRail);
this.removePsClasses();
// unset elements
this.element = null;
this.scrollbarX = null;
this.scrollbarY = null;
this.scrollbarXRail = null;
this.scrollbarYRail = null;
this.isAlive = false;
};
PerfectScrollbar.prototype.removePsClasses = function removePsClasses () {
this.element.className = this.element.className
.split(' ')
.filter(function (name) { return !name.match(/^ps([-_].+|)$/); })
.join(' ');
};
export default PerfectScrollbar;
================================================
FILE: public/admin-panel/assets/libs/quill/dist/quill.bubble.css
================================================
/*!
* Quill Editor v1.3.6
* https://quilljs.com/
* Copyright (c) 2014, Jason Chen
* Copyright (c) 2013, salesforce.com
*/
.ql-container {
box-sizing: border-box;
font-family: Helvetica, Arial, sans-serif;
font-size: 13px;
height: 100%;
margin: 0px;
position: relative;
}
.ql-container.ql-disabled .ql-tooltip {
visibility: hidden;
}
.ql-container.ql-disabled .ql-editor ul[data-checked] > li::before {
pointer-events: none;
}
.ql-clipboard {
left: -100000px;
height: 1px;
overflow-y: hidden;
position: absolute;
top: 50%;
}
.ql-clipboard p {
margin: 0;
padding: 0;
}
.ql-editor {
box-sizing: border-box;
line-height: 1.42;
height: 100%;
outline: none;
overflow-y: auto;
padding: 12px 15px;
tab-size: 4;
-moz-tab-size: 4;
text-align: left;
white-space: pre-wrap;
word-wrap: break-word;
}
.ql-editor > * {
cursor: text;
}
.ql-editor p,
.ql-editor ol,
.ql-editor ul,
.ql-editor pre,
.ql-editor blockquote,
.ql-editor h1,
.ql-editor h2,
.ql-editor h3,
.ql-editor h4,
.ql-editor h5,
.ql-editor h6 {
margin: 0;
padding: 0;
counter-reset: list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9;
}
.ql-editor ol,
.ql-editor ul {
padding-left: 1.5em;
}
.ql-editor ol > li,
.ql-editor ul > li {
list-style-type: none;
}
.ql-editor ul > li::before {
content: '\2022';
}
.ql-editor ul[data-checked=true],
.ql-editor ul[data-checked=false] {
pointer-events: none;
}
.ql-editor ul[data-checked=true] > li *,
.ql-editor ul[data-checked=false] > li * {
pointer-events: all;
}
.ql-editor ul[data-checked=true] > li::before,
.ql-editor ul[data-checked=false] > li::before {
color: #777;
cursor: pointer;
pointer-events: all;
}
.ql-editor ul[data-checked=true] > li::before {
content: '\2611';
}
.ql-editor ul[data-checked=false] > li::before {
content: '\2610';
}
.ql-editor li::before {
display: inline-block;
white-space: nowrap;
width: 1.2em;
}
.ql-editor li:not(.ql-direction-rtl)::before {
margin-left: -1.5em;
margin-right: 0.3em;
text-align: right;
}
.ql-editor li.ql-direction-rtl::before {
margin-left: 0.3em;
margin-right: -1.5em;
}
.ql-editor ol li:not(.ql-direction-rtl),
.ql-editor ul li:not(.ql-direction-rtl) {
padding-left: 1.5em;
}
.ql-editor ol li.ql-direction-rtl,
.ql-editor ul li.ql-direction-rtl {
padding-right: 1.5em;
}
.ql-editor ol li {
counter-reset: list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9;
counter-increment: list-0;
}
.ql-editor ol li:before {
content: counter(list-0, decimal) '. ';
}
.ql-editor ol li.ql-indent-1 {
counter-increment: list-1;
}
.ql-editor ol li.ql-indent-1:before {
content: counter(list-1, lower-alpha) '. ';
}
.ql-editor ol li.ql-indent-1 {
counter-reset: list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9;
}
.ql-editor ol li.ql-indent-2 {
counter-increment: list-2;
}
.ql-editor ol li.ql-indent-2:before {
content: counter(list-2, lower-roman) '. ';
}
.ql-editor ol li.ql-indent-2 {
counter-reset: list-3 list-4 list-5 list-6 list-7 list-8 list-9;
}
.ql-editor ol li.ql-indent-3 {
counter-increment: list-3;
}
.ql-editor ol li.ql-indent-3:before {
content: counter(list-3, decimal) '. ';
}
.ql-editor ol li.ql-indent-3 {
counter-reset: list-4 list-5 list-6 list-7 list-8 list-9;
}
.ql-editor ol li.ql-indent-4 {
counter-increment: list-4;
}
.ql-editor ol li.ql-indent-4:before {
content: counter(list-4, lower-alpha) '. ';
}
.ql-editor ol li.ql-indent-4 {
counter-reset: list-5 list-6 list-7 list-8 list-9;
}
.ql-editor ol li.ql-indent-5 {
counter-increment: list-5;
}
.ql-editor ol li.ql-indent-5:before {
content: counter(list-5, lower-roman) '. ';
}
.ql-editor ol li.ql-indent-5 {
counter-reset: list-6 list-7 list-8 list-9;
}
.ql-editor ol li.ql-indent-6 {
counter-increment: list-6;
}
.ql-editor ol li.ql-indent-6:before {
content: counter(list-6, decimal) '. ';
}
.ql-editor ol li.ql-indent-6 {
counter-reset: list-7 list-8 list-9;
}
.ql-editor ol li.ql-indent-7 {
counter-increment: list-7;
}
.ql-editor ol li.ql-indent-7:before {
content: counter(list-7, lower-alpha) '. ';
}
.ql-editor ol li.ql-indent-7 {
counter-reset: list-8 list-9;
}
.ql-editor ol li.ql-indent-8 {
counter-increment: list-8;
}
.ql-editor ol li.ql-indent-8:before {
content: counter(list-8, lower-roman) '. ';
}
.ql-editor ol li.ql-indent-8 {
counter-reset: list-9;
}
.ql-editor ol li.ql-indent-9 {
counter-increment: list-9;
}
.ql-editor ol li.ql-indent-9:before {
content: counter(list-9, decimal) '. ';
}
.ql-editor .ql-indent-1:not(.ql-direction-rtl) {
padding-left: 3em;
}
.ql-editor li.ql-indent-1:not(.ql-direction-rtl) {
padding-left: 4.5em;
}
.ql-editor .ql-indent-1.ql-direction-rtl.ql-align-right {
padding-right: 3em;
}
.ql-editor li.ql-indent-1.ql-direction-rtl.ql-align-right {
padding-right: 4.5em;
}
.ql-editor .ql-indent-2:not(.ql-direction-rtl) {
padding-left: 6em;
}
.ql-editor li.ql-indent-2:not(.ql-direction-rtl) {
padding-left: 7.5em;
}
.ql-editor .ql-indent-2.ql-direction-rtl.ql-align-right {
padding-right: 6em;
}
.ql-editor li.ql-indent-2.ql-direction-rtl.ql-align-right {
padding-right: 7.5em;
}
.ql-editor .ql-indent-3:not(.ql-direction-rtl) {
padding-left: 9em;
}
.ql-editor li.ql-indent-3:not(.ql-direction-rtl) {
padding-left: 10.5em;
}
.ql-editor .ql-indent-3.ql-direction-rtl.ql-align-right {
padding-right: 9em;
}
.ql-editor li.ql-indent-3.ql-direction-rtl.ql-align-right {
padding-right: 10.5em;
}
.ql-editor .ql-indent-4:not(.ql-direction-rtl) {
padding-left: 12em;
}
.ql-editor li.ql-indent-4:not(.ql-direction-rtl) {
padding-left: 13.5em;
}
.ql-editor .ql-indent-4.ql-direction-rtl.ql-align-right {
padding-right: 12em;
}
.ql-editor li.ql-indent-4.ql-direction-rtl.ql-align-right {
padding-right: 13.5em;
}
.ql-editor .ql-indent-5:not(.ql-direction-rtl) {
padding-left: 15em;
}
.ql-editor li.ql-indent-5:not(.ql-direction-rtl) {
padding-left: 16.5em;
}
.ql-editor .ql-indent-5.ql-direction-rtl.ql-align-right {
padding-right: 15em;
}
.ql-editor li.ql-indent-5.ql-direction-rtl.ql-align-right {
padding-right: 16.5em;
}
.ql-editor .ql-indent-6:not(.ql-direction-rtl) {
padding-left: 18em;
}
.ql-editor li.ql-indent-6:not(.ql-direction-rtl) {
padding-left: 19.5em;
}
.ql-editor .ql-indent-6.ql-direction-rtl.ql-align-right {
padding-right: 18em;
}
.ql-editor li.ql-indent-6.ql-direction-rtl.ql-align-right {
padding-right: 19.5em;
}
.ql-editor .ql-indent-7:not(.ql-direction-rtl) {
padding-left: 21em;
}
.ql-editor li.ql-indent-7:not(.ql-direction-rtl) {
padding-left: 22.5em;
}
.ql-editor .ql-indent-7.ql-direction-rtl.ql-align-right {
padding-right: 21em;
}
.ql-editor li.ql-indent-7.ql-direction-rtl.ql-align-right {
padding-right: 22.5em;
}
.ql-editor .ql-indent-8:not(.ql-direction-rtl) {
padding-left: 24em;
}
.ql-editor li.ql-indent-8:not(.ql-direction-rtl) {
padding-left: 25.5em;
}
.ql-editor .ql-indent-8.ql-direction-rtl.ql-align-right {
padding-right: 24em;
}
.ql-editor li.ql-indent-8.ql-direction-rtl.ql-align-right {
padding-right: 25.5em;
}
.ql-editor .ql-indent-9:not(.ql-direction-rtl) {
padding-left: 27em;
}
.ql-editor li.ql-indent-9:not(.ql-direction-rtl) {
padding-left: 28.5em;
}
.ql-editor .ql-indent-9.ql-direction-rtl.ql-align-right {
padding-right: 27em;
}
.ql-editor li.ql-indent-9.ql-direction-rtl.ql-align-right {
padding-right: 28.5em;
}
.ql-editor .ql-video {
display: block;
max-width: 100%;
}
.ql-editor .ql-video.ql-align-center {
margin: 0 auto;
}
.ql-editor .ql-video.ql-align-right {
margin: 0 0 0 auto;
}
.ql-editor .ql-bg-black {
background-color: #000;
}
.ql-editor .ql-bg-red {
background-color: #e60000;
}
.ql-editor .ql-bg-orange {
background-color: #f90;
}
.ql-editor .ql-bg-yellow {
background-color: #ff0;
}
.ql-editor .ql-bg-green {
background-color: #008a00;
}
.ql-editor .ql-bg-blue {
background-color: #06c;
}
.ql-editor .ql-bg-purple {
background-color: #93f;
}
.ql-editor .ql-color-white {
color: #fff;
}
.ql-editor .ql-color-red {
color: #e60000;
}
.ql-editor .ql-color-orange {
color: #f90;
}
.ql-editor .ql-color-yellow {
color: #ff0;
}
.ql-editor .ql-color-green {
color: #008a00;
}
.ql-editor .ql-color-blue {
color: #06c;
}
.ql-editor .ql-color-purple {
color: #93f;
}
.ql-editor .ql-font-serif {
font-family: Georgia, Times New Roman, serif;
}
.ql-editor .ql-font-monospace {
font-family: Monaco, Courier New, monospace;
}
.ql-editor .ql-size-small {
font-size: 0.75em;
}
.ql-editor .ql-size-large {
font-size: 1.5em;
}
.ql-editor .ql-size-huge {
font-size: 2.5em;
}
.ql-editor .ql-direction-rtl {
direction: rtl;
text-align: inherit;
}
.ql-editor .ql-align-center {
text-align: center;
}
.ql-editor .ql-align-justify {
text-align: justify;
}
.ql-editor .ql-align-right {
text-align: right;
}
.ql-editor.ql-blank::before {
color: rgba(0,0,0,0.6);
content: attr(data-placeholder);
font-style: italic;
left: 15px;
pointer-events: none;
position: absolute;
right: 15px;
}
.ql-bubble.ql-toolbar:after,
.ql-bubble .ql-toolbar:after {
clear: both;
content: '';
display: table;
}
.ql-bubble.ql-toolbar button,
.ql-bubble .ql-toolbar button {
background: none;
border: none;
cursor: pointer;
display: inline-block;
float: left;
height: 24px;
padding: 3px 5px;
width: 28px;
}
.ql-bubble.ql-toolbar button svg,
.ql-bubble .ql-toolbar button svg {
float: left;
height: 100%;
}
.ql-bubble.ql-toolbar button:active:hover,
.ql-bubble .ql-toolbar button:active:hover {
outline: none;
}
.ql-bubble.ql-toolbar input.ql-image[type=file],
.ql-bubble .ql-toolbar input.ql-image[type=file] {
display: none;
}
.ql-bubble.ql-toolbar button:hover,
.ql-bubble .ql-toolbar button:hover,
.ql-bubble.ql-toolbar button:focus,
.ql-bubble .ql-toolbar button:focus,
.ql-bubble.ql-toolbar button.ql-active,
.ql-bubble .ql-toolbar button.ql-active,
.ql-bubble.ql-toolbar .ql-picker-label:hover,
.ql-bubble .ql-toolbar .ql-picker-label:hover,
.ql-bubble.ql-toolbar .ql-picker-label.ql-active,
.ql-bubble .ql-toolbar .ql-picker-label.ql-active,
.ql-bubble.ql-toolbar .ql-picker-item:hover,
.ql-bubble .ql-toolbar .ql-picker-item:hover,
.ql-bubble.ql-toolbar .ql-picker-item.ql-selected,
.ql-bubble .ql-toolbar .ql-picker-item.ql-selected {
color: #fff;
}
.ql-bubble.ql-toolbar button:hover .ql-fill,
.ql-bubble .ql-toolbar button:hover .ql-fill,
.ql-bubble.ql-toolbar button:focus .ql-fill,
.ql-bubble .ql-toolbar button:focus .ql-fill,
.ql-bubble.ql-toolbar button.ql-active .ql-fill,
.ql-bubble .ql-toolbar button.ql-active .ql-fill,
.ql-bubble.ql-toolbar .ql-picker-label:hover .ql-fill,
.ql-bubble .ql-toolbar .ql-picker-label:hover .ql-fill,
.ql-bubble.ql-toolbar .ql-picker-label.ql-active .ql-fill,
.ql-bubble .ql-toolbar .ql-picker-label.ql-active .ql-fill,
.ql-bubble.ql-toolbar .ql-picker-item:hover .ql-fill,
.ql-bubble .ql-toolbar .ql-picker-item:hover .ql-fill,
.ql-bubble.ql-toolbar .ql-picker-item.ql-selected .ql-fill,
.ql-bubble .ql-toolbar .ql-picker-item.ql-selected .ql-fill,
.ql-bubble.ql-toolbar button:hover .ql-stroke.ql-fill,
.ql-bubble .ql-toolbar button:hover .ql-stroke.ql-fill,
.ql-bubble.ql-toolbar button:focus .ql-stroke.ql-fill,
.ql-bubble .ql-toolbar button:focus .ql-stroke.ql-fill,
.ql-bubble.ql-toolbar button.ql-active .ql-stroke.ql-fill,
.ql-bubble .ql-toolbar button.ql-active .ql-stroke.ql-fill,
.ql-bubble.ql-toolbar .ql-picker-label:hover .ql-stroke.ql-fill,
.ql-bubble .ql-toolbar .ql-picker-label:hover .ql-stroke.ql-fill,
.ql-bubble.ql-toolbar .ql-picker-label.ql-active .ql-stroke.ql-fill,
.ql-bubble .ql-toolbar .ql-picker-label.ql-active .ql-stroke.ql-fill,
.ql-bubble.ql-toolbar .ql-picker-item:hover .ql-stroke.ql-fill,
.ql-bubble .ql-toolbar .ql-picker-item:hover .ql-stroke.ql-fill,
.ql-bubble.ql-toolbar .ql-picker-item.ql-selected .ql-stroke.ql-fill,
.ql-bubble .ql-toolbar .ql-picker-item.ql-selected .ql-stroke.ql-fill {
fill: #fff;
}
.ql-bubble.ql-toolbar button:hover .ql-stroke,
.ql-bubble .ql-toolbar button:hover .ql-stroke,
.ql-bubble.ql-toolbar button:focus .ql-stroke,
.ql-bubble .ql-toolbar button:focus .ql-stroke,
.ql-bubble.ql-toolbar button.ql-active .ql-stroke,
.ql-bubble .ql-toolbar button.ql-active .ql-stroke,
.ql-bubble.ql-toolbar .ql-picker-label:hover .ql-stroke,
.ql-bubble .ql-toolbar .ql-picker-label:hover .ql-stroke,
.ql-bubble.ql-toolbar .ql-picker-label.ql-active .ql-stroke,
.ql-bubble .ql-toolbar .ql-picker-label.ql-active .ql-stroke,
.ql-bubble.ql-toolbar .ql-picker-item:hover .ql-stroke,
.ql-bubble .ql-toolbar .ql-picker-item:hover .ql-stroke,
.ql-bubble.ql-toolbar .ql-picker-item.ql-selected .ql-stroke,
.ql-bubble .ql-toolbar .ql-picker-item.ql-selected .ql-stroke,
.ql-bubble.ql-toolbar button:hover .ql-stroke-miter,
.ql-bubble .ql-toolbar button:hover .ql-stroke-miter,
.ql-bubble.ql-toolbar button:focus .ql-stroke-miter,
.ql-bubble .ql-toolbar button:focus .ql-stroke-miter,
.ql-bubble.ql-toolbar button.ql-active .ql-stroke-miter,
.ql-bubble .ql-toolbar button.ql-active .ql-stroke-miter,
.ql-bubble.ql-toolbar .ql-picker-label:hover .ql-stroke-miter,
.ql-bubble .ql-toolbar .ql-picker-label:hover .ql-stroke-miter,
.ql-bubble.ql-toolbar .ql-picker-label.ql-active .ql-stroke-miter,
.ql-bubble .ql-toolbar .ql-picker-label.ql-active .ql-stroke-miter,
.ql-bubble.ql-toolbar .ql-picker-item:hover .ql-stroke-miter,
.ql-bubble .ql-toolbar .ql-picker-item:hover .ql-stroke-miter,
.ql-bubble.ql-toolbar .ql-picker-item.ql-selected .ql-stroke-miter,
.ql-bubble .ql-toolbar .ql-picker-item.ql-selected .ql-stroke-miter {
stroke: #fff;
}
@media (pointer: coarse) {
.ql-bubble.ql-toolbar button:hover:not(.ql-active),
.ql-bubble .ql-toolbar button:hover:not(.ql-active) {
color: #ccc;
}
.ql-bubble.ql-toolbar button:hover:not(.ql-active) .ql-fill,
.ql-bubble .ql-toolbar button:hover:not(.ql-active) .ql-fill,
.ql-bubble.ql-toolbar button:hover:not(.ql-active) .ql-stroke.ql-fill,
.ql-bubble .ql-toolbar button:hover:not(.ql-active) .ql-stroke.ql-fill {
fill: #ccc;
}
.ql-bubble.ql-toolbar button:hover:not(.ql-active) .ql-stroke,
.ql-bubble .ql-toolbar button:hover:not(.ql-active) .ql-stroke,
.ql-bubble.ql-toolbar button:hover:not(.ql-active) .ql-stroke-miter,
.ql-bubble .ql-toolbar button:hover:not(.ql-active) .ql-stroke-miter {
stroke: #ccc;
}
}
.ql-bubble {
box-sizing: border-box;
}
.ql-bubble * {
box-sizing: border-box;
}
.ql-bubble .ql-hidden {
display: none;
}
.ql-bubble .ql-out-bottom,
.ql-bubble .ql-out-top {
visibility: hidden;
}
.ql-bubble .ql-tooltip {
position: absolute;
transform: translateY(10px);
}
.ql-bubble .ql-tooltip a {
cursor: pointer;
text-decoration: none;
}
.ql-bubble .ql-tooltip.ql-flip {
transform: translateY(-10px);
}
.ql-bubble .ql-formats {
display: inline-block;
vertical-align: middle;
}
.ql-bubble .ql-formats:after {
clear: both;
content: '';
display: table;
}
.ql-bubble .ql-stroke {
fill: none;
stroke: #ccc;
stroke-linecap: round;
stroke-linejoin: round;
stroke-width: 2;
}
.ql-bubble .ql-stroke-miter {
fill: none;
stroke: #ccc;
stroke-miterlimit: 10;
stroke-width: 2;
}
.ql-bubble .ql-fill,
.ql-bubble .ql-stroke.ql-fill {
fill: #ccc;
}
.ql-bubble .ql-empty {
fill: none;
}
.ql-bubble .ql-even {
fill-rule: evenodd;
}
.ql-bubble .ql-thin,
.ql-bubble .ql-stroke.ql-thin {
stroke-width: 1;
}
.ql-bubble .ql-transparent {
opacity: 0.4;
}
.ql-bubble .ql-direction svg:last-child {
display: none;
}
.ql-bubble .ql-direction.ql-active svg:last-child {
display: inline;
}
.ql-bubble .ql-direction.ql-active svg:first-child {
display: none;
}
.ql-bubble .ql-editor h1 {
font-size: 2em;
}
.ql-bubble .ql-editor h2 {
font-size: 1.5em;
}
.ql-bubble .ql-editor h3 {
font-size: 1.17em;
}
.ql-bubble .ql-editor h4 {
font-size: 1em;
}
.ql-bubble .ql-editor h5 {
font-size: 0.83em;
}
.ql-bubble .ql-editor h6 {
font-size: 0.67em;
}
.ql-bubble .ql-editor a {
text-decoration: underline;
}
.ql-bubble .ql-editor blockquote {
border-left: 4px solid #ccc;
margin-bottom: 5px;
margin-top: 5px;
padding-left: 16px;
}
.ql-bubble .ql-editor code,
.ql-bubble .ql-editor pre {
background-color: #f0f0f0;
border-radius: 3px;
}
.ql-bubble .ql-editor pre {
white-space: pre-wrap;
margin-bottom: 5px;
margin-top: 5px;
padding: 5px 10px;
}
.ql-bubble .ql-editor code {
font-size: 85%;
padding: 2px 4px;
}
.ql-bubble .ql-editor pre.ql-syntax {
background-color: #23241f;
color: #f8f8f2;
overflow: visible;
}
.ql-bubble .ql-editor img {
max-width: 100%;
}
.ql-bubble .ql-picker {
color: #ccc;
display: inline-block;
float: left;
font-size: 14px;
font-weight: 500;
height: 24px;
position: relative;
vertical-align: middle;
}
.ql-bubble .ql-picker-label {
cursor: pointer;
display: inline-block;
height: 100%;
padding-left: 8px;
padding-right: 2px;
position: relative;
width: 100%;
}
.ql-bubble .ql-picker-label::before {
display: inline-block;
line-height: 22px;
}
.ql-bubble .ql-picker-options {
background-color: #444;
display: none;
min-width: 100%;
padding: 4px 8px;
position: absolute;
white-space: nowrap;
}
.ql-bubble .ql-picker-options .ql-picker-item {
cursor: pointer;
display: block;
padding-bottom: 5px;
padding-top: 5px;
}
.ql-bubble .ql-picker.ql-expanded .ql-picker-label {
color: #777;
z-index: 2;
}
.ql-bubble .ql-picker.ql-expanded .ql-picker-label .ql-fill {
fill: #777;
}
.ql-bubble .ql-picker.ql-expanded .ql-picker-label .ql-stroke {
stroke: #777;
}
.ql-bubble .ql-picker.ql-expanded .ql-picker-options {
display: block;
margin-top: -1px;
top: 100%;
z-index: 1;
}
.ql-bubble .ql-color-picker,
.ql-bubble .ql-icon-picker {
width: 28px;
}
.ql-bubble .ql-color-picker .ql-picker-label,
.ql-bubble .ql-icon-picker .ql-picker-label {
padding: 2px 4px;
}
.ql-bubble .ql-color-picker .ql-picker-label svg,
.ql-bubble .ql-icon-picker .ql-picker-label svg {
right: 4px;
}
.ql-bubble .ql-icon-picker .ql-picker-options {
padding: 4px 0px;
}
.ql-bubble .ql-icon-picker .ql-picker-item {
height: 24px;
width: 24px;
padding: 2px 4px;
}
.ql-bubble .ql-color-picker .ql-picker-options {
padding: 3px 5px;
width: 152px;
}
.ql-bubble .ql-color-picker .ql-picker-item {
border: 1px solid transparent;
float: left;
height: 16px;
margin: 2px;
padding: 0px;
width: 16px;
}
.ql-bubble .ql-picker:not(.ql-color-picker):not(.ql-icon-picker) svg {
position: absolute;
margin-top: -9px;
right: 0;
top: 50%;
width: 18px;
}
.ql-bubble .ql-picker.ql-header .ql-picker-label[data-label]:not([data-label=''])::before,
.ql-bubble .ql-picker.ql-font .ql-picker-label[data-label]:not([data-label=''])::before,
.ql-bubble .ql-picker.ql-size .ql-picker-label[data-label]:not([data-label=''])::before,
.ql-bubble .ql-picker.ql-header .ql-picker-item[data-label]:not([data-label=''])::before,
.ql-bubble .ql-picker.ql-font .ql-picker-item[data-label]:not([data-label=''])::before,
.ql-bubble .ql-picker.ql-size .ql-picker-item[data-label]:not([data-label=''])::before {
content: attr(data-label);
}
.ql-bubble .ql-picker.ql-header {
width: 98px;
}
.ql-bubble .ql-picker.ql-header .ql-picker-label::before,
.ql-bubble .ql-picker.ql-header .ql-picker-item::before {
content: 'Normal';
}
.ql-bubble .ql-picker.ql-header .ql-picker-label[data-value="1"]::before,
.ql-bubble .ql-picker.ql-header .ql-picker-item[data-value="1"]::before {
content: 'Heading 1';
}
.ql-bubble .ql-picker.ql-header .ql-picker-label[data-value="2"]::before,
.ql-bubble .ql-picker.ql-header .ql-picker-item[data-value="2"]::before {
content: 'Heading 2';
}
.ql-bubble .ql-picker.ql-header .ql-picker-label[data-value="3"]::before,
.ql-bubble .ql-picker.ql-header .ql-picker-item[data-value="3"]::before {
content: 'Heading 3';
}
.ql-bubble .ql-picker.ql-header .ql-picker-label[data-value="4"]::before,
.ql-bubble .ql-picker.ql-header .ql-picker-item[data-value="4"]::before {
content: 'Heading 4';
}
.ql-bubble .ql-picker.ql-header .ql-picker-label[data-value="5"]::before,
.ql-bubble .ql-picker.ql-header .ql-picker-item[data-value="5"]::before {
content: 'Heading 5';
}
.ql-bubble .ql-picker.ql-header .ql-picker-label[data-value="6"]::before,
.ql-bubble .ql-picker.ql-header .ql-picker-item[data-value="6"]::before {
content: 'Heading 6';
}
.ql-bubble .ql-picker.ql-header .ql-picker-item[data-value="1"]::before {
font-size: 2em;
}
.ql-bubble .ql-picker.ql-header .ql-picker-item[data-value="2"]::before {
font-size: 1.5em;
}
.ql-bubble .ql-picker.ql-header .ql-picker-item[data-value="3"]::before {
font-size: 1.17em;
}
.ql-bubble .ql-picker.ql-header .ql-picker-item[data-value="4"]::before {
font-size: 1em;
}
.ql-bubble .ql-picker.ql-header .ql-picker-item[data-value="5"]::before {
font-size: 0.83em;
}
.ql-bubble .ql-picker.ql-header .ql-picker-item[data-value="6"]::before {
font-size: 0.67em;
}
.ql-bubble .ql-picker.ql-font {
width: 108px;
}
.ql-bubble .ql-picker.ql-font .ql-picker-label::before,
.ql-bubble .ql-picker.ql-font .ql-picker-item::before {
content: 'Sans Serif';
}
.ql-bubble .ql-picker.ql-font .ql-picker-label[data-value=serif]::before,
.ql-bubble .ql-picker.ql-font .ql-picker-item[data-value=serif]::before {
content: 'Serif';
}
.ql-bubble .ql-picker.ql-font .ql-picker-label[data-value=monospace]::before,
.ql-bubble .ql-picker.ql-font .ql-picker-item[data-value=monospace]::before {
content: 'Monospace';
}
.ql-bubble .ql-picker.ql-font .ql-picker-item[data-value=serif]::before {
font-family: Georgia, Times New Roman, serif;
}
.ql-bubble .ql-picker.ql-font .ql-picker-item[data-value=monospace]::before {
font-family: Monaco, Courier New, monospace;
}
.ql-bubble .ql-picker.ql-size {
width: 98px;
}
.ql-bubble .ql-picker.ql-size .ql-picker-label::before,
.ql-bubble .ql-picker.ql-size .ql-picker-item::before {
content: 'Normal';
}
.ql-bubble .ql-picker.ql-size .ql-picker-label[data-value=small]::before,
.ql-bubble .ql-picker.ql-size .ql-picker-item[data-value=small]::before {
content: 'Small';
}
.ql-bubble .ql-picker.ql-size .ql-picker-label[data-value=large]::before,
.ql-bubble .ql-picker.ql-size .ql-picker-item[data-value=large]::before {
content: 'Large';
}
.ql-bubble .ql-picker.ql-size .ql-picker-label[data-value=huge]::before,
.ql-bubble .ql-picker.ql-size .ql-picker-item[data-value=huge]::before {
content: 'Huge';
}
.ql-bubble .ql-picker.ql-size .ql-picker-item[data-value=small]::before {
font-size: 10px;
}
.ql-bubble .ql-picker.ql-size .ql-picker-item[data-value=large]::before {
font-size: 18px;
}
.ql-bubble .ql-picker.ql-size .ql-picker-item[data-value=huge]::before {
font-size: 32px;
}
.ql-bubble .ql-color-picker.ql-background .ql-picker-item {
background-color: #fff;
}
.ql-bubble .ql-color-picker.ql-color .ql-picker-item {
background-color: #000;
}
.ql-bubble .ql-toolbar .ql-formats {
margin: 8px 12px 8px 0px;
}
.ql-bubble .ql-toolbar .ql-formats:first-child {
margin-left: 12px;
}
.ql-bubble .ql-color-picker svg {
margin: 1px;
}
.ql-bubble .ql-color-picker .ql-picker-item.ql-selected,
.ql-bubble .ql-color-picker .ql-picker-item:hover {
border-color: #fff;
}
.ql-bubble .ql-tooltip {
background-color: #444;
border-radius: 25px;
color: #fff;
}
.ql-bubble .ql-tooltip-arrow {
border-left: 6px solid transparent;
border-right: 6px solid transparent;
content: " ";
display: block;
left: 50%;
margin-left: -6px;
position: absolute;
}
.ql-bubble .ql-tooltip:not(.ql-flip) .ql-tooltip-arrow {
border-bottom: 6px solid #444;
top: -6px;
}
.ql-bubble .ql-tooltip.ql-flip .ql-tooltip-arrow {
border-top: 6px solid #444;
bottom: -6px;
}
.ql-bubble .ql-tooltip.ql-editing .ql-tooltip-editor {
display: block;
}
.ql-bubble .ql-tooltip.ql-editing .ql-formats {
visibility: hidden;
}
.ql-bubble .ql-tooltip-editor {
display: none;
}
.ql-bubble .ql-tooltip-editor input[type=text] {
background: transparent;
border: none;
color: #fff;
font-size: 13px;
height: 100%;
outline: none;
padding: 10px 20px;
position: absolute;
width: 100%;
}
.ql-bubble .ql-tooltip-editor a {
top: 10px;
position: absolute;
right: 20px;
}
.ql-bubble .ql-tooltip-editor a:before {
color: #ccc;
content: "\D7";
font-size: 16px;
font-weight: bold;
}
.ql-container.ql-bubble:not(.ql-disabled) a {
position: relative;
white-space: nowrap;
}
.ql-container.ql-bubble:not(.ql-disabled) a::before {
background-color: #444;
border-radius: 15px;
top: -5px;
font-size: 12px;
color: #fff;
content: attr(href);
font-weight: normal;
overflow: hidden;
padding: 5px 15px;
text-decoration: none;
z-index: 1;
}
.ql-container.ql-bubble:not(.ql-disabled) a::after {
border-top: 6px solid #444;
border-left: 6px solid transparent;
border-right: 6px solid transparent;
top: 0;
content: " ";
height: 0;
width: 0;
}
.ql-container.ql-bubble:not(.ql-disabled) a::before,
.ql-container.ql-bubble:not(.ql-disabled) a::after {
left: 0;
margin-left: 50%;
position: absolute;
transform: translate(-50%, -100%);
transition: visibility 0s ease 200ms;
visibility: hidden;
}
.ql-container.ql-bubble:not(.ql-disabled) a:hover::before,
.ql-container.ql-bubble:not(.ql-disabled) a:hover::after {
visibility: visible;
}
================================================
FILE: public/admin-panel/assets/libs/quill/dist/quill.core.css
================================================
/*!
* Quill Editor v1.3.6
* https://quilljs.com/
* Copyright (c) 2014, Jason Chen
* Copyright (c) 2013, salesforce.com
*/
.ql-container {
box-sizing: border-box;
font-family: Helvetica, Arial, sans-serif;
font-size: 13px;
height: 100%;
margin: 0px;
position: relative;
}
.ql-container.ql-disabled .ql-tooltip {
visibility: hidden;
}
.ql-container.ql-disabled .ql-editor ul[data-checked] > li::before {
pointer-events: none;
}
.ql-clipboard {
left: -100000px;
height: 1px;
overflow-y: hidden;
position: absolute;
top: 50%;
}
.ql-clipboard p {
margin: 0;
padding: 0;
}
.ql-editor {
box-sizing: border-box;
line-height: 1.42;
height: 100%;
outline: none;
overflow-y: auto;
padding: 12px 15px;
tab-size: 4;
-moz-tab-size: 4;
text-align: left;
white-space: pre-wrap;
word-wrap: break-word;
}
.ql-editor > * {
cursor: text;
}
.ql-editor p,
.ql-editor ol,
.ql-editor ul,
.ql-editor pre,
.ql-editor blockquote,
.ql-editor h1,
.ql-editor h2,
.ql-editor h3,
.ql-editor h4,
.ql-editor h5,
.ql-editor h6 {
margin: 0;
padding: 0;
counter-reset: list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9;
}
.ql-editor ol,
.ql-editor ul {
padding-left: 1.5em;
}
.ql-editor ol > li,
.ql-editor ul > li {
list-style-type: none;
}
.ql-editor ul > li::before {
content: '\2022';
}
.ql-editor ul[data-checked=true],
.ql-editor ul[data-checked=false] {
pointer-events: none;
}
.ql-editor ul[data-checked=true] > li *,
.ql-editor ul[data-checked=false] > li * {
pointer-events: all;
}
.ql-editor ul[data-checked=true] > li::before,
.ql-editor ul[data-checked=false] > li::before {
color: #777;
cursor: pointer;
pointer-events: all;
}
.ql-editor ul[data-checked=true] > li::before {
content: '\2611';
}
.ql-editor ul[data-checked=false] > li::before {
content: '\2610';
}
.ql-editor li::before {
display: inline-block;
white-space: nowrap;
width: 1.2em;
}
.ql-editor li:not(.ql-direction-rtl)::before {
margin-left: -1.5em;
margin-right: 0.3em;
text-align: right;
}
.ql-editor li.ql-direction-rtl::before {
margin-left: 0.3em;
margin-right: -1.5em;
}
.ql-editor ol li:not(.ql-direction-rtl),
.ql-editor ul li:not(.ql-direction-rtl) {
padding-left: 1.5em;
}
.ql-editor ol li.ql-direction-rtl,
.ql-editor ul li.ql-direction-rtl {
padding-right: 1.5em;
}
.ql-editor ol li {
counter-reset: list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9;
counter-increment: list-0;
}
.ql-editor ol li:before {
content: counter(list-0, decimal) '. ';
}
.ql-editor ol li.ql-indent-1 {
counter-increment: list-1;
}
.ql-editor ol li.ql-indent-1:before {
content: counter(list-1, lower-alpha) '. ';
}
.ql-editor ol li.ql-indent-1 {
counter-reset: list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9;
}
.ql-editor ol li.ql-indent-2 {
counter-increment: list-2;
}
.ql-editor ol li.ql-indent-2:before {
content: counter(list-2, lower-roman) '. ';
}
.ql-editor ol li.ql-indent-2 {
counter-reset: list-3 list-4 list-5 list-6 list-7 list-8 list-9;
}
.ql-editor ol li.ql-indent-3 {
counter-increment: list-3;
}
.ql-editor ol li.ql-indent-3:before {
content: counter(list-3, decimal) '. ';
}
.ql-editor ol li.ql-indent-3 {
counter-reset: list-4 list-5 list-6 list-7 list-8 list-9;
}
.ql-editor ol li.ql-indent-4 {
counter-increment: list-4;
}
.ql-editor ol li.ql-indent-4:before {
content: counter(list-4, lower-alpha) '. ';
}
.ql-editor ol li.ql-indent-4 {
counter-reset: list-5 list-6 list-7 list-8 list-9;
}
.ql-editor ol li.ql-indent-5 {
counter-increment: list-5;
}
.ql-editor ol li.ql-indent-5:before {
content: counter(list-5, lower-roman) '. ';
}
.ql-editor ol li.ql-indent-5 {
counter-reset: list-6 list-7 list-8 list-9;
}
.ql-editor ol li.ql-indent-6 {
counter-increment: list-6;
}
.ql-editor ol li.ql-indent-6:before {
content: counter(list-6, decimal) '. ';
}
.ql-editor ol li.ql-indent-6 {
counter-reset: list-7 list-8 list-9;
}
.ql-editor ol li.ql-indent-7 {
counter-increment: list-7;
}
.ql-editor ol li.ql-indent-7:before {
content: counter(list-7, lower-alpha) '. ';
}
.ql-editor ol li.ql-indent-7 {
counter-reset: list-8 list-9;
}
.ql-editor ol li.ql-indent-8 {
counter-increment: list-8;
}
.ql-editor ol li.ql-indent-8:before {
content: counter(list-8, lower-roman) '. ';
}
.ql-editor ol li.ql-indent-8 {
counter-reset: list-9;
}
.ql-editor ol li.ql-indent-9 {
counter-increment: list-9;
}
.ql-editor ol li.ql-indent-9:before {
content: counter(list-9, decimal) '. ';
}
.ql-editor .ql-indent-1:not(.ql-direction-rtl) {
padding-left: 3em;
}
.ql-editor li.ql-indent-1:not(.ql-direction-rtl) {
padding-left: 4.5em;
}
.ql-editor .ql-indent-1.ql-direction-rtl.ql-align-right {
padding-right: 3em;
}
.ql-editor li.ql-indent-1.ql-direction-rtl.ql-align-right {
padding-right: 4.5em;
}
.ql-editor .ql-indent-2:not(.ql-direction-rtl) {
padding-left: 6em;
}
.ql-editor li.ql-indent-2:not(.ql-direction-rtl) {
padding-left: 7.5em;
}
.ql-editor .ql-indent-2.ql-direction-rtl.ql-align-right {
padding-right: 6em;
}
.ql-editor li.ql-indent-2.ql-direction-rtl.ql-align-right {
padding-right: 7.5em;
}
.ql-editor .ql-indent-3:not(.ql-direction-rtl) {
padding-left: 9em;
}
.ql-editor li.ql-indent-3:not(.ql-direction-rtl) {
padding-left: 10.5em;
}
.ql-editor .ql-indent-3.ql-direction-rtl.ql-align-right {
padding-right: 9em;
}
.ql-editor li.ql-indent-3.ql-direction-rtl.ql-align-right {
padding-right: 10.5em;
}
.ql-editor .ql-indent-4:not(.ql-direction-rtl) {
padding-left: 12em;
}
.ql-editor li.ql-indent-4:not(.ql-direction-rtl) {
padding-left: 13.5em;
}
.ql-editor .ql-indent-4.ql-direction-rtl.ql-align-right {
padding-right: 12em;
}
.ql-editor li.ql-indent-4.ql-direction-rtl.ql-align-right {
padding-right: 13.5em;
}
.ql-editor .ql-indent-5:not(.ql-direction-rtl) {
padding-left: 15em;
}
.ql-editor li.ql-indent-5:not(.ql-direction-rtl) {
padding-left: 16.5em;
}
.ql-editor .ql-indent-5.ql-direction-rtl.ql-align-right {
padding-right: 15em;
}
.ql-editor li.ql-indent-5.ql-direction-rtl.ql-align-right {
padding-right: 16.5em;
}
.ql-editor .ql-indent-6:not(.ql-direction-rtl) {
padding-left: 18em;
}
.ql-editor li.ql-indent-6:not(.ql-direction-rtl) {
padding-left: 19.5em;
}
.ql-editor .ql-indent-6.ql-direction-rtl.ql-align-right {
padding-right: 18em;
}
.ql-editor li.ql-indent-6.ql-direction-rtl.ql-align-right {
padding-right: 19.5em;
}
.ql-editor .ql-indent-7:not(.ql-direction-rtl) {
padding-left: 21em;
}
.ql-editor li.ql-indent-7:not(.ql-direction-rtl) {
padding-left: 22.5em;
}
.ql-editor .ql-indent-7.ql-direction-rtl.ql-align-right {
padding-right: 21em;
}
.ql-editor li.ql-indent-7.ql-direction-rtl.ql-align-right {
padding-right: 22.5em;
}
.ql-editor .ql-indent-8:not(.ql-direction-rtl) {
padding-left: 24em;
}
.ql-editor li.ql-indent-8:not(.ql-direction-rtl) {
padding-left: 25.5em;
}
.ql-editor .ql-indent-8.ql-direction-rtl.ql-align-right {
padding-right: 24em;
}
.ql-editor li.ql-indent-8.ql-direction-rtl.ql-align-right {
padding-right: 25.5em;
}
.ql-editor .ql-indent-9:not(.ql-direction-rtl) {
padding-left: 27em;
}
.ql-editor li.ql-indent-9:not(.ql-direction-rtl) {
padding-left: 28.5em;
}
.ql-editor .ql-indent-9.ql-direction-rtl.ql-align-right {
padding-right: 27em;
}
.ql-editor li.ql-indent-9.ql-direction-rtl.ql-align-right {
padding-right: 28.5em;
}
.ql-editor .ql-video {
display: block;
max-width: 100%;
}
.ql-editor .ql-video.ql-align-center {
margin: 0 auto;
}
.ql-editor .ql-video.ql-align-right {
margin: 0 0 0 auto;
}
.ql-editor .ql-bg-black {
background-color: #000;
}
.ql-editor .ql-bg-red {
background-color: #e60000;
}
.ql-editor .ql-bg-orange {
background-color: #f90;
}
.ql-editor .ql-bg-yellow {
background-color: #ff0;
}
.ql-editor .ql-bg-green {
background-color: #008a00;
}
.ql-editor .ql-bg-blue {
background-color: #06c;
}
.ql-editor .ql-bg-purple {
background-color: #93f;
}
.ql-editor .ql-color-white {
color: #fff;
}
.ql-editor .ql-color-red {
color: #e60000;
}
.ql-editor .ql-color-orange {
color: #f90;
}
.ql-editor .ql-color-yellow {
color: #ff0;
}
.ql-editor .ql-color-green {
color: #008a00;
}
.ql-editor .ql-color-blue {
color: #06c;
}
.ql-editor .ql-color-purple {
color: #93f;
}
.ql-editor .ql-font-serif {
font-family: Georgia, Times New Roman, serif;
}
.ql-editor .ql-font-monospace {
font-family: Monaco, Courier New, monospace;
}
.ql-editor .ql-size-small {
font-size: 0.75em;
}
.ql-editor .ql-size-large {
font-size: 1.5em;
}
.ql-editor .ql-size-huge {
font-size: 2.5em;
}
.ql-editor .ql-direction-rtl {
direction: rtl;
text-align: inherit;
}
.ql-editor .ql-align-center {
text-align: center;
}
.ql-editor .ql-align-justify {
text-align: justify;
}
.ql-editor .ql-align-right {
text-align: right;
}
.ql-editor.ql-blank::before {
color: rgba(0,0,0,0.6);
content: attr(data-placeholder);
font-style: italic;
left: 15px;
pointer-events: none;
position: absolute;
right: 15px;
}
================================================
FILE: public/admin-panel/assets/libs/quill/dist/quill.core.js
================================================
/*!
* Quill Editor v1.3.6
* https://quilljs.com/
* Copyright (c) 2014, Jason Chen
* Copyright (c) 2013, salesforce.com
*/
(function webpackUniversalModuleDefinition(root, factory) {
if(typeof exports === 'object' && typeof module === 'object')
module.exports = factory();
else if(typeof define === 'function' && define.amd)
define([], factory);
else if(typeof exports === 'object')
exports["Quill"] = factory();
else
root["Quill"] = factory();
})(typeof self !== 'undefined' ? self : this, function() {
return /******/ (function(modules) { // webpackBootstrap
/******/ // The module cache
/******/ var installedModules = {};
/******/
/******/ // The require function
/******/ function __webpack_require__(moduleId) {
/******/
/******/ // Check if module is in cache
/******/ if(installedModules[moduleId]) {
/******/ return installedModules[moduleId].exports;
/******/ }
/******/ // Create a new module (and put it into the cache)
/******/ var module = installedModules[moduleId] = {
/******/ i: moduleId,
/******/ l: false,
/******/ exports: {}
/******/ };
/******/
/******/ // Execute the module function
/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
/******/
/******/ // Flag the module as loaded
/******/ module.l = true;
/******/
/******/ // Return the exports of the module
/******/ return module.exports;
/******/ }
/******/
/******/
/******/ // expose the modules object (__webpack_modules__)
/******/ __webpack_require__.m = modules;
/******/
/******/ // expose the module cache
/******/ __webpack_require__.c = installedModules;
/******/
/******/ // define getter function for harmony exports
/******/ __webpack_require__.d = function(exports, name, getter) {
/******/ if(!__webpack_require__.o(exports, name)) {
/******/ Object.defineProperty(exports, name, {
/******/ configurable: false,
/******/ enumerable: true,
/******/ get: getter
/******/ });
/******/ }
/******/ };
/******/
/******/ // getDefaultExport function for compatibility with non-harmony modules
/******/ __webpack_require__.n = function(module) {
/******/ var getter = module && module.__esModule ?
/******/ function getDefault() { return module['default']; } :
/******/ function getModuleExports() { return module; };
/******/ __webpack_require__.d(getter, 'a', getter);
/******/ return getter;
/******/ };
/******/
/******/ // Object.prototype.hasOwnProperty.call
/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
/******/
/******/ // __webpack_public_path__
/******/ __webpack_require__.p = "";
/******/
/******/ // Load entry module and return exports
/******/ return __webpack_require__(__webpack_require__.s = 110);
/******/ })
/************************************************************************/
/******/ ([
/* 0 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var container_1 = __webpack_require__(17);
var format_1 = __webpack_require__(18);
var leaf_1 = __webpack_require__(19);
var scroll_1 = __webpack_require__(45);
var inline_1 = __webpack_require__(46);
var block_1 = __webpack_require__(47);
var embed_1 = __webpack_require__(48);
var text_1 = __webpack_require__(49);
var attributor_1 = __webpack_require__(12);
var class_1 = __webpack_require__(32);
var style_1 = __webpack_require__(33);
var store_1 = __webpack_require__(31);
var Registry = __webpack_require__(1);
var Parchment = {
Scope: Registry.Scope,
create: Registry.create,
find: Registry.find,
query: Registry.query,
register: Registry.register,
Container: container_1.default,
Format: format_1.default,
Leaf: leaf_1.default,
Embed: embed_1.default,
Scroll: scroll_1.default,
Block: block_1.default,
Inline: inline_1.default,
Text: text_1.default,
Attributor: {
Attribute: attributor_1.default,
Class: class_1.default,
Style: style_1.default,
Store: store_1.default,
},
};
exports.default = Parchment;
/***/ }),
/* 1 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var __extends = (this && this.__extends) || (function () {
var extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
return function (d, b) {
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
Object.defineProperty(exports, "__esModule", { value: true });
var ParchmentError = /** @class */ (function (_super) {
__extends(ParchmentError, _super);
function ParchmentError(message) {
var _this = this;
message = '[Parchment] ' + message;
_this = _super.call(this, message) || this;
_this.message = message;
_this.name = _this.constructor.name;
return _this;
}
return ParchmentError;
}(Error));
exports.ParchmentError = ParchmentError;
var attributes = {};
var classes = {};
var tags = {};
var types = {};
exports.DATA_KEY = '__blot';
var Scope;
(function (Scope) {
Scope[Scope["TYPE"] = 3] = "TYPE";
Scope[Scope["LEVEL"] = 12] = "LEVEL";
Scope[Scope["ATTRIBUTE"] = 13] = "ATTRIBUTE";
Scope[Scope["BLOT"] = 14] = "BLOT";
Scope[Scope["INLINE"] = 7] = "INLINE";
Scope[Scope["BLOCK"] = 11] = "BLOCK";
Scope[Scope["BLOCK_BLOT"] = 10] = "BLOCK_BLOT";
Scope[Scope["INLINE_BLOT"] = 6] = "INLINE_BLOT";
Scope[Scope["BLOCK_ATTRIBUTE"] = 9] = "BLOCK_ATTRIBUTE";
Scope[Scope["INLINE_ATTRIBUTE"] = 5] = "INLINE_ATTRIBUTE";
Scope[Scope["ANY"] = 15] = "ANY";
})(Scope = exports.Scope || (exports.Scope = {}));
function create(input, value) {
var match = query(input);
if (match == null) {
throw new ParchmentError("Unable to create " + input + " blot");
}
var BlotClass = match;
var node =
// @ts-ignore
input instanceof Node || input['nodeType'] === Node.TEXT_NODE ? input : BlotClass.create(value);
return new BlotClass(node, value);
}
exports.create = create;
function find(node, bubble) {
if (bubble === void 0) { bubble = false; }
if (node == null)
return null;
// @ts-ignore
if (node[exports.DATA_KEY] != null)
return node[exports.DATA_KEY].blot;
if (bubble)
return find(node.parentNode, bubble);
return null;
}
exports.find = find;
function query(query, scope) {
if (scope === void 0) { scope = Scope.ANY; }
var match;
if (typeof query === 'string') {
match = types[query] || attributes[query];
// @ts-ignore
}
else if (query instanceof Text || query['nodeType'] === Node.TEXT_NODE) {
match = types['text'];
}
else if (typeof query === 'number') {
if (query & Scope.LEVEL & Scope.BLOCK) {
match = types['block'];
}
else if (query & Scope.LEVEL & Scope.INLINE) {
match = types['inline'];
}
}
else if (query instanceof HTMLElement) {
var names = (query.getAttribute('class') || '').split(/\s+/);
for (var i in names) {
match = classes[names[i]];
if (match)
break;
}
match = match || tags[query.tagName];
}
if (match == null)
return null;
// @ts-ignore
if (scope & Scope.LEVEL & match.scope && scope & Scope.TYPE & match.scope)
return match;
return null;
}
exports.query = query;
function register() {
var Definitions = [];
for (var _i = 0; _i < arguments.length; _i++) {
Definitions[_i] = arguments[_i];
}
if (Definitions.length > 1) {
return Definitions.map(function (d) {
return register(d);
});
}
var Definition = Definitions[0];
if (typeof Definition.blotName !== 'string' && typeof Definition.attrName !== 'string') {
throw new ParchmentError('Invalid definition');
}
else if (Definition.blotName === 'abstract') {
throw new ParchmentError('Cannot register abstract class');
}
types[Definition.blotName || Definition.attrName] = Definition;
if (typeof Definition.keyName === 'string') {
attributes[Definition.keyName] = Definition;
}
else {
if (Definition.className != null) {
classes[Definition.className] = Definition;
}
if (Definition.tagName != null) {
if (Array.isArray(Definition.tagName)) {
Definition.tagName = Definition.tagName.map(function (tagName) {
return tagName.toUpperCase();
});
}
else {
Definition.tagName = Definition.tagName.toUpperCase();
}
var tagNames = Array.isArray(Definition.tagName) ? Definition.tagName : [Definition.tagName];
tagNames.forEach(function (tag) {
if (tags[tag] == null || Definition.className == null) {
tags[tag] = Definition;
}
});
}
}
return Definition;
}
exports.register = register;
/***/ }),
/* 2 */
/***/ (function(module, exports, __webpack_require__) {
var diff = __webpack_require__(51);
var equal = __webpack_require__(11);
var extend = __webpack_require__(3);
var op = __webpack_require__(20);
var NULL_CHARACTER = String.fromCharCode(0); // Placeholder char for embed in diff()
var Delta = function (ops) {
// Assume we are given a well formed ops
if (Array.isArray(ops)) {
this.ops = ops;
} else if (ops != null && Array.isArray(ops.ops)) {
this.ops = ops.ops;
} else {
this.ops = [];
}
};
Delta.prototype.insert = function (text, attributes) {
var newOp = {};
if (text.length === 0) return this;
newOp.insert = text;
if (attributes != null && typeof attributes === 'object' && Object.keys(attributes).length > 0) {
newOp.attributes = attributes;
}
return this.push(newOp);
};
Delta.prototype['delete'] = function (length) {
if (length <= 0) return this;
return this.push({ 'delete': length });
};
Delta.prototype.retain = function (length, attributes) {
if (length <= 0) return this;
var newOp = { retain: length };
if (attributes != null && typeof attributes === 'object' && Object.keys(attributes).length > 0) {
newOp.attributes = attributes;
}
return this.push(newOp);
};
Delta.prototype.push = function (newOp) {
var index = this.ops.length;
var lastOp = this.ops[index - 1];
newOp = extend(true, {}, newOp);
if (typeof lastOp === 'object') {
if (typeof newOp['delete'] === 'number' && typeof lastOp['delete'] === 'number') {
this.ops[index - 1] = { 'delete': lastOp['delete'] + newOp['delete'] };
return this;
}
// Since it does not matter if we insert before or after deleting at the same index,
// always prefer to insert first
if (typeof lastOp['delete'] === 'number' && newOp.insert != null) {
index -= 1;
lastOp = this.ops[index - 1];
if (typeof lastOp !== 'object') {
this.ops.unshift(newOp);
return this;
}
}
if (equal(newOp.attributes, lastOp.attributes)) {
if (typeof newOp.insert === 'string' && typeof lastOp.insert === 'string') {
this.ops[index - 1] = { insert: lastOp.insert + newOp.insert };
if (typeof newOp.attributes === 'object') this.ops[index - 1].attributes = newOp.attributes
return this;
} else if (typeof newOp.retain === 'number' && typeof lastOp.retain === 'number') {
this.ops[index - 1] = { retain: lastOp.retain + newOp.retain };
if (typeof newOp.attributes === 'object') this.ops[index - 1].attributes = newOp.attributes
return this;
}
}
}
if (index === this.ops.length) {
this.ops.push(newOp);
} else {
this.ops.splice(index, 0, newOp);
}
return this;
};
Delta.prototype.chop = function () {
var lastOp = this.ops[this.ops.length - 1];
if (lastOp && lastOp.retain && !lastOp.attributes) {
this.ops.pop();
}
return this;
};
Delta.prototype.filter = function (predicate) {
return this.ops.filter(predicate);
};
Delta.prototype.forEach = function (predicate) {
this.ops.forEach(predicate);
};
Delta.prototype.map = function (predicate) {
return this.ops.map(predicate);
};
Delta.prototype.partition = function (predicate) {
var passed = [], failed = [];
this.forEach(function(op) {
var target = predicate(op) ? passed : failed;
target.push(op);
});
return [passed, failed];
};
Delta.prototype.reduce = function (predicate, initial) {
return this.ops.reduce(predicate, initial);
};
Delta.prototype.changeLength = function () {
return this.reduce(function (length, elem) {
if (elem.insert) {
return length + op.length(elem);
} else if (elem.delete) {
return length - elem.delete;
}
return length;
}, 0);
};
Delta.prototype.length = function () {
return this.reduce(function (length, elem) {
return length + op.length(elem);
}, 0);
};
Delta.prototype.slice = function (start, end) {
start = start || 0;
if (typeof end !== 'number') end = Infinity;
var ops = [];
var iter = op.iterator(this.ops);
var index = 0;
while (index < end && iter.hasNext()) {
var nextOp;
if (index < start) {
nextOp = iter.next(start - index);
} else {
nextOp = iter.next(end - index);
ops.push(nextOp);
}
index += op.length(nextOp);
}
return new Delta(ops);
};
Delta.prototype.compose = function (other) {
var thisIter = op.iterator(this.ops);
var otherIter = op.iterator(other.ops);
var delta = new Delta();
while (thisIter.hasNext() || otherIter.hasNext()) {
if (otherIter.peekType() === 'insert') {
delta.push(otherIter.next());
} else if (thisIter.peekType() === 'delete') {
delta.push(thisIter.next());
} else {
var length = Math.min(thisIter.peekLength(), otherIter.peekLength());
var thisOp = thisIter.next(length);
var otherOp = otherIter.next(length);
if (typeof otherOp.retain === 'number') {
var newOp = {};
if (typeof thisOp.retain === 'number') {
newOp.retain = length;
} else {
newOp.insert = thisOp.insert;
}
// Preserve null when composing with a retain, otherwise remove it for inserts
var attributes = op.attributes.compose(thisOp.attributes, otherOp.attributes, typeof thisOp.retain === 'number');
if (attributes) newOp.attributes = attributes;
delta.push(newOp);
// Other op should be delete, we could be an insert or retain
// Insert + delete cancels out
} else if (typeof otherOp['delete'] === 'number' && typeof thisOp.retain === 'number') {
delta.push(otherOp);
}
}
}
return delta.chop();
};
Delta.prototype.concat = function (other) {
var delta = new Delta(this.ops.slice());
if (other.ops.length > 0) {
delta.push(other.ops[0]);
delta.ops = delta.ops.concat(other.ops.slice(1));
}
return delta;
};
Delta.prototype.diff = function (other, index) {
if (this.ops === other.ops) {
return new Delta();
}
var strings = [this, other].map(function (delta) {
return delta.map(function (op) {
if (op.insert != null) {
return typeof op.insert === 'string' ? op.insert : NULL_CHARACTER;
}
var prep = (delta === other) ? 'on' : 'with';
throw new Error('diff() called ' + prep + ' non-document');
}).join('');
});
var delta = new Delta();
var diffResult = diff(strings[0], strings[1], index);
var thisIter = op.iterator(this.ops);
var otherIter = op.iterator(other.ops);
diffResult.forEach(function (component) {
var length = component[1].length;
while (length > 0) {
var opLength = 0;
switch (component[0]) {
case diff.INSERT:
opLength = Math.min(otherIter.peekLength(), length);
delta.push(otherIter.next(opLength));
break;
case diff.DELETE:
opLength = Math.min(length, thisIter.peekLength());
thisIter.next(opLength);
delta['delete'](opLength);
break;
case diff.EQUAL:
opLength = Math.min(thisIter.peekLength(), otherIter.peekLength(), length);
var thisOp = thisIter.next(opLength);
var otherOp = otherIter.next(opLength);
if (equal(thisOp.insert, otherOp.insert)) {
delta.retain(opLength, op.attributes.diff(thisOp.attributes, otherOp.attributes));
} else {
delta.push(otherOp)['delete'](opLength);
}
break;
}
length -= opLength;
}
});
return delta.chop();
};
Delta.prototype.eachLine = function (predicate, newline) {
newline = newline || '\n';
var iter = op.iterator(this.ops);
var line = new Delta();
var i = 0;
while (iter.hasNext()) {
if (iter.peekType() !== 'insert') return;
var thisOp = iter.peek();
var start = op.length(thisOp) - iter.peekLength();
var index = typeof thisOp.insert === 'string' ?
thisOp.insert.indexOf(newline, start) - start : -1;
if (index < 0) {
line.push(iter.next());
} else if (index > 0) {
line.push(iter.next(index));
} else {
if (predicate(line, iter.next(1).attributes || {}, i) === false) {
return;
}
i += 1;
line = new Delta();
}
}
if (line.length() > 0) {
predicate(line, {}, i);
}
};
Delta.prototype.transform = function (other, priority) {
priority = !!priority;
if (typeof other === 'number') {
return this.transformPosition(other, priority);
}
var thisIter = op.iterator(this.ops);
var otherIter = op.iterator(other.ops);
var delta = new Delta();
while (thisIter.hasNext() || otherIter.hasNext()) {
if (thisIter.peekType() === 'insert' && (priority || otherIter.peekType() !== 'insert')) {
delta.retain(op.length(thisIter.next()));
} else if (otherIter.peekType() === 'insert') {
delta.push(otherIter.next());
} else {
var length = Math.min(thisIter.peekLength(), otherIter.peekLength());
var thisOp = thisIter.next(length);
var otherOp = otherIter.next(length);
if (thisOp['delete']) {
// Our delete either makes their delete redundant or removes their retain
continue;
} else if (otherOp['delete']) {
delta.push(otherOp);
} else {
// We retain either their retain or insert
delta.retain(length, op.attributes.transform(thisOp.attributes, otherOp.attributes, priority));
}
}
}
return delta.chop();
};
Delta.prototype.transformPosition = function (index, priority) {
priority = !!priority;
var thisIter = op.iterator(this.ops);
var offset = 0;
while (thisIter.hasNext() && offset <= index) {
var length = thisIter.peekLength();
var nextType = thisIter.peekType();
thisIter.next();
if (nextType === 'delete') {
index -= Math.min(length, index - offset);
continue;
} else if (nextType === 'insert' && (offset < index || !priority)) {
index += length;
}
offset += length;
}
return index;
};
module.exports = Delta;
/***/ }),
/* 3 */
/***/ (function(module, exports) {
'use strict';
var hasOwn = Object.prototype.hasOwnProperty;
var toStr = Object.prototype.toString;
var isArray = function isArray(arr) {
if (typeof Array.isArray === 'function') {
return Array.isArray(arr);
}
return toStr.call(arr) === '[object Array]';
};
var isPlainObject = function isPlainObject(obj) {
if (!obj || toStr.call(obj) !== '[object Object]') {
return false;
}
var hasOwnConstructor = hasOwn.call(obj, 'constructor');
var hasIsPrototypeOf = obj.constructor && obj.constructor.prototype && hasOwn.call(obj.constructor.prototype, 'isPrototypeOf');
// Not own constructor property must be Object
if (obj.constructor && !hasOwnConstructor && !hasIsPrototypeOf) {
return false;
}
// Own properties are enumerated firstly, so to speed up,
// if last one is own, then all properties are own.
var key;
for (key in obj) { /**/ }
return typeof key === 'undefined' || hasOwn.call(obj, key);
};
module.exports = function extend() {
var options, name, src, copy, copyIsArray, clone;
var target = arguments[0];
var i = 1;
var length = arguments.length;
var deep = false;
// Handle a deep copy situation
if (typeof target === 'boolean') {
deep = target;
target = arguments[1] || {};
// skip the boolean and the target
i = 2;
}
if (target == null || (typeof target !== 'object' && typeof target !== 'function')) {
target = {};
}
for (; i < length; ++i) {
options = arguments[i];
// Only deal with non-null/undefined values
if (options != null) {
// Extend the base object
for (name in options) {
src = target[name];
copy = options[name];
// Prevent never-ending loop
if (target !== copy) {
// Recurse if we're merging plain objects or arrays
if (deep && copy && (isPlainObject(copy) || (copyIsArray = isArray(copy)))) {
if (copyIsArray) {
copyIsArray = false;
clone = src && isArray(src) ? src : [];
} else {
clone = src && isPlainObject(src) ? src : {};
}
// Never move original objects, clone them
target[name] = extend(deep, clone, copy);
// Don't bring in undefined values
} else if (typeof copy !== 'undefined') {
target[name] = copy;
}
}
}
}
}
// Return the modified object
return target;
};
/***/ }),
/* 4 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = exports.BlockEmbed = exports.bubbleFormats = undefined;
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
var _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if ("value" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };
var _extend = __webpack_require__(3);
var _extend2 = _interopRequireDefault(_extend);
var _quillDelta = __webpack_require__(2);
var _quillDelta2 = _interopRequireDefault(_quillDelta);
var _parchment = __webpack_require__(0);
var _parchment2 = _interopRequireDefault(_parchment);
var _break = __webpack_require__(16);
var _break2 = _interopRequireDefault(_break);
var _inline = __webpack_require__(6);
var _inline2 = _interopRequireDefault(_inline);
var _text = __webpack_require__(7);
var _text2 = _interopRequireDefault(_text);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
var NEWLINE_LENGTH = 1;
var BlockEmbed = function (_Parchment$Embed) {
_inherits(BlockEmbed, _Parchment$Embed);
function BlockEmbed() {
_classCallCheck(this, BlockEmbed);
return _possibleConstructorReturn(this, (BlockEmbed.__proto__ || Object.getPrototypeOf(BlockEmbed)).apply(this, arguments));
}
_createClass(BlockEmbed, [{
key: 'attach',
value: function attach() {
_get(BlockEmbed.prototype.__proto__ || Object.getPrototypeOf(BlockEmbed.prototype), 'attach', this).call(this);
this.attributes = new _parchment2.default.Attributor.Store(this.domNode);
}
}, {
key: 'delta',
value: function delta() {
return new _quillDelta2.default().insert(this.value(), (0, _extend2.default)(this.formats(), this.attributes.values()));
}
}, {
key: 'format',
value: function format(name, value) {
var attribute = _parchment2.default.query(name, _parchment2.default.Scope.BLOCK_ATTRIBUTE);
if (attribute != null) {
this.attributes.attribute(attribute, value);
}
}
}, {
key: 'formatAt',
value: function formatAt(index, length, name, value) {
this.format(name, value);
}
}, {
key: 'insertAt',
value: function insertAt(index, value, def) {
if (typeof value === 'string' && value.endsWith('\n')) {
var block = _parchment2.default.create(Block.blotName);
this.parent.insertBefore(block, index === 0 ? this : this.next);
block.insertAt(0, value.slice(0, -1));
} else {
_get(BlockEmbed.prototype.__proto__ || Object.getPrototypeOf(BlockEmbed.prototype), 'insertAt', this).call(this, index, value, def);
}
}
}]);
return BlockEmbed;
}(_parchment2.default.Embed);
BlockEmbed.scope = _parchment2.default.Scope.BLOCK_BLOT;
// It is important for cursor behavior BlockEmbeds use tags that are block level elements
var Block = function (_Parchment$Block) {
_inherits(Block, _Parchment$Block);
function Block(domNode) {
_classCallCheck(this, Block);
var _this2 = _possibleConstructorReturn(this, (Block.__proto__ || Object.getPrototypeOf(Block)).call(this, domNode));
_this2.cache = {};
return _this2;
}
_createClass(Block, [{
key: 'delta',
value: function delta() {
if (this.cache.delta == null) {
this.cache.delta = this.descendants(_parchment2.default.Leaf).reduce(function (delta, leaf) {
if (leaf.length() === 0) {
return delta;
} else {
return delta.insert(leaf.value(), bubbleFormats(leaf));
}
}, new _quillDelta2.default()).insert('\n', bubbleFormats(this));
}
return this.cache.delta;
}
}, {
key: 'deleteAt',
value: function deleteAt(index, length) {
_get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'deleteAt', this).call(this, index, length);
this.cache = {};
}
}, {
key: 'formatAt',
value: function formatAt(index, length, name, value) {
if (length <= 0) return;
if (_parchment2.default.query(name, _parchment2.default.Scope.BLOCK)) {
if (index + length === this.length()) {
this.format(name, value);
}
} else {
_get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'formatAt', this).call(this, index, Math.min(length, this.length() - index - 1), name, value);
}
this.cache = {};
}
}, {
key: 'insertAt',
value: function insertAt(index, value, def) {
if (def != null) return _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'insertAt', this).call(this, index, value, def);
if (value.length === 0) return;
var lines = value.split('\n');
var text = lines.shift();
if (text.length > 0) {
if (index < this.length() - 1 || this.children.tail == null) {
_get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'insertAt', this).call(this, Math.min(index, this.length() - 1), text);
} else {
this.children.tail.insertAt(this.children.tail.length(), text);
}
this.cache = {};
}
var block = this;
lines.reduce(function (index, line) {
block = block.split(index, true);
block.insertAt(0, line);
return line.length;
}, index + text.length);
}
}, {
key: 'insertBefore',
value: function insertBefore(blot, ref) {
var head = this.children.head;
_get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'insertBefore', this).call(this, blot, ref);
if (head instanceof _break2.default) {
head.remove();
}
this.cache = {};
}
}, {
key: 'length',
value: function length() {
if (this.cache.length == null) {
this.cache.length = _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'length', this).call(this) + NEWLINE_LENGTH;
}
return this.cache.length;
}
}, {
key: 'moveChildren',
value: function moveChildren(target, ref) {
_get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'moveChildren', this).call(this, target, ref);
this.cache = {};
}
}, {
key: 'optimize',
value: function optimize(context) {
_get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'optimize', this).call(this, context);
this.cache = {};
}
}, {
key: 'path',
value: function path(index) {
return _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'path', this).call(this, index, true);
}
}, {
key: 'removeChild',
value: function removeChild(child) {
_get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'removeChild', this).call(this, child);
this.cache = {};
}
}, {
key: 'split',
value: function split(index) {
var force = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
if (force && (index === 0 || index >= this.length() - NEWLINE_LENGTH)) {
var clone = this.clone();
if (index === 0) {
this.parent.insertBefore(clone, this);
return this;
} else {
this.parent.insertBefore(clone, this.next);
return clone;
}
} else {
var next = _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'split', this).call(this, index, force);
this.cache = {};
return next;
}
}
}]);
return Block;
}(_parchment2.default.Block);
Block.blotName = 'block';
Block.tagName = 'P';
Block.defaultChild = 'break';
Block.allowedChildren = [_inline2.default, _parchment2.default.Embed, _text2.default];
function bubbleFormats(blot) {
var formats = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
if (blot == null) return formats;
if (typeof blot.formats === 'function') {
formats = (0, _extend2.default)(formats, blot.formats());
}
if (blot.parent == null || blot.parent.blotName == 'scroll' || blot.parent.statics.scope !== blot.statics.scope) {
return formats;
}
return bubbleFormats(blot.parent, formats);
}
exports.bubbleFormats = bubbleFormats;
exports.BlockEmbed = BlockEmbed;
exports.default = Block;
/***/ }),
/* 5 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = exports.overload = exports.expandConfig = undefined;
var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }();
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
__webpack_require__(50);
var _quillDelta = __webpack_require__(2);
var _quillDelta2 = _interopRequireDefault(_quillDelta);
var _editor = __webpack_require__(14);
var _editor2 = _interopRequireDefault(_editor);
var _emitter3 = __webpack_require__(8);
var _emitter4 = _interopRequireDefault(_emitter3);
var _module = __webpack_require__(9);
var _module2 = _interopRequireDefault(_module);
var _parchment = __webpack_require__(0);
var _parchment2 = _interopRequireDefault(_parchment);
var _selection = __webpack_require__(15);
var _selection2 = _interopRequireDefault(_selection);
var _extend = __webpack_require__(3);
var _extend2 = _interopRequireDefault(_extend);
var _logger = __webpack_require__(10);
var _logger2 = _interopRequireDefault(_logger);
var _theme = __webpack_require__(34);
var _theme2 = _interopRequireDefault(_theme);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
var debug = (0, _logger2.default)('quill');
var Quill = function () {
_createClass(Quill, null, [{
key: 'debug',
value: function debug(limit) {
if (limit === true) {
limit = 'log';
}
_logger2.default.level(limit);
}
}, {
key: 'find',
value: function find(node) {
return node.__quill || _parchment2.default.find(node);
}
}, {
key: 'import',
value: function _import(name) {
if (this.imports[name] == null) {
debug.error('Cannot import ' + name + '. Are you sure it was registered?');
}
return this.imports[name];
}
}, {
key: 'register',
value: function register(path, target) {
var _this = this;
var overwrite = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
if (typeof path !== 'string') {
var name = path.attrName || path.blotName;
if (typeof name === 'string') {
// register(Blot | Attributor, overwrite)
this.register('formats/' + name, path, target);
} else {
Object.keys(path).forEach(function (key) {
_this.register(key, path[key], target);
});
}
} else {
if (this.imports[path] != null && !overwrite) {
debug.warn('Overwriting ' + path + ' with', target);
}
this.imports[path] = target;
if ((path.startsWith('blots/') || path.startsWith('formats/')) && target.blotName !== 'abstract') {
_parchment2.default.register(target);
} else if (path.startsWith('modules') && typeof target.register === 'function') {
target.register();
}
}
}
}]);
function Quill(container) {
var _this2 = this;
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
_classCallCheck(this, Quill);
this.options = expandConfig(container, options);
this.container = this.options.container;
if (this.container == null) {
return debug.error('Invalid Quill container', container);
}
if (this.options.debug) {
Quill.debug(this.options.debug);
}
var html = this.container.innerHTML.trim();
this.container.classList.add('ql-container');
this.container.innerHTML = '';
this.container.__quill = this;
this.root = this.addContainer('ql-editor');
this.root.classList.add('ql-blank');
this.root.setAttribute('data-gramm', false);
this.scrollingContainer = this.options.scrollingContainer || this.root;
this.emitter = new _emitter4.default();
this.scroll = _parchment2.default.create(this.root, {
emitter: this.emitter,
whitelist: this.options.formats
});
this.editor = new _editor2.default(this.scroll);
this.selection = new _selection2.default(this.scroll, this.emitter);
this.theme = new this.options.theme(this, this.options);
this.keyboard = this.theme.addModule('keyboard');
this.clipboard = this.theme.addModule('clipboard');
this.history = this.theme.addModule('history');
this.theme.init();
this.emitter.on(_emitter4.default.events.EDITOR_CHANGE, function (type) {
if (type === _emitter4.default.events.TEXT_CHANGE) {
_this2.root.classList.toggle('ql-blank', _this2.editor.isBlank());
}
});
this.emitter.on(_emitter4.default.events.SCROLL_UPDATE, function (source, mutations) {
var range = _this2.selection.lastRange;
var index = range && range.length === 0 ? range.index : undefined;
modify.call(_this2, function () {
return _this2.editor.update(null, mutations, index);
}, source);
});
var contents = this.clipboard.convert('');
this.setContents(contents);
this.history.clear();
if (this.options.placeholder) {
this.root.setAttribute('data-placeholder', this.options.placeholder);
}
if (this.options.readOnly) {
this.disable();
}
}
_createClass(Quill, [{
key: 'addContainer',
value: function addContainer(container) {
var refNode = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
if (typeof container === 'string') {
var className = container;
container = document.createElement('div');
container.classList.add(className);
}
this.container.insertBefore(container, refNode);
return container;
}
}, {
key: 'blur',
value: function blur() {
this.selection.setRange(null);
}
}, {
key: 'deleteText',
value: function deleteText(index, length, source) {
var _this3 = this;
var _overload = overload(index, length, source);
var _overload2 = _slicedToArray(_overload, 4);
index = _overload2[0];
length = _overload2[1];
source = _overload2[3];
return modify.call(this, function () {
return _this3.editor.deleteText(index, length);
}, source, index, -1 * length);
}
}, {
key: 'disable',
value: function disable() {
this.enable(false);
}
}, {
key: 'enable',
value: function enable() {
var enabled = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
this.scroll.enable(enabled);
this.container.classList.toggle('ql-disabled', !enabled);
}
}, {
key: 'focus',
value: function focus() {
var scrollTop = this.scrollingContainer.scrollTop;
this.selection.focus();
this.scrollingContainer.scrollTop = scrollTop;
this.scrollIntoView();
}
}, {
key: 'format',
value: function format(name, value) {
var _this4 = this;
var source = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : _emitter4.default.sources.API;
return modify.call(this, function () {
var range = _this4.getSelection(true);
var change = new _quillDelta2.default();
if (range == null) {
return change;
} else if (_parchment2.default.query(name, _parchment2.default.Scope.BLOCK)) {
change = _this4.editor.formatLine(range.index, range.length, _defineProperty({}, name, value));
} else if (range.length === 0) {
_this4.selection.format(name, value);
return change;
} else {
change = _this4.editor.formatText(range.index, range.length, _defineProperty({}, name, value));
}
_this4.setSelection(range, _emitter4.default.sources.SILENT);
return change;
}, source);
}
}, {
key: 'formatLine',
value: function formatLine(index, length, name, value, source) {
var _this5 = this;
var formats = void 0;
var _overload3 = overload(index, length, name, value, source);
var _overload4 = _slicedToArray(_overload3, 4);
index = _overload4[0];
length = _overload4[1];
formats = _overload4[2];
source = _overload4[3];
return modify.call(this, function () {
return _this5.editor.formatLine(index, length, formats);
}, source, index, 0);
}
}, {
key: 'formatText',
value: function formatText(index, length, name, value, source) {
var _this6 = this;
var formats = void 0;
var _overload5 = overload(index, length, name, value, source);
var _overload6 = _slicedToArray(_overload5, 4);
index = _overload6[0];
length = _overload6[1];
formats = _overload6[2];
source = _overload6[3];
return modify.call(this, function () {
return _this6.editor.formatText(index, length, formats);
}, source, index, 0);
}
}, {
key: 'getBounds',
value: function getBounds(index) {
var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
var bounds = void 0;
if (typeof index === 'number') {
bounds = this.selection.getBounds(index, length);
} else {
bounds = this.selection.getBounds(index.index, index.length);
}
var containerBounds = this.container.getBoundingClientRect();
return {
bottom: bounds.bottom - containerBounds.top,
height: bounds.height,
left: bounds.left - containerBounds.left,
right: bounds.right - containerBounds.left,
top: bounds.top - containerBounds.top,
width: bounds.width
};
}
}, {
key: 'getContents',
value: function getContents() {
var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.getLength() - index;
var _overload7 = overload(index, length);
var _overload8 = _slicedToArray(_overload7, 2);
index = _overload8[0];
length = _overload8[1];
return this.editor.getContents(index, length);
}
}, {
key: 'getFormat',
value: function getFormat() {
var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.getSelection(true);
var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
if (typeof index === 'number') {
return this.editor.getFormat(index, length);
} else {
return this.editor.getFormat(index.index, index.length);
}
}
}, {
key: 'getIndex',
value: function getIndex(blot) {
return blot.offset(this.scroll);
}
}, {
key: 'getLength',
value: function getLength() {
return this.scroll.length();
}
}, {
key: 'getLeaf',
value: function getLeaf(index) {
return this.scroll.leaf(index);
}
}, {
key: 'getLine',
value: function getLine(index) {
return this.scroll.line(index);
}
}, {
key: 'getLines',
value: function getLines() {
var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : Number.MAX_VALUE;
if (typeof index !== 'number') {
return this.scroll.lines(index.index, index.length);
} else {
return this.scroll.lines(index, length);
}
}
}, {
key: 'getModule',
value: function getModule(name) {
return this.theme.modules[name];
}
}, {
key: 'getSelection',
value: function getSelection() {
var focus = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
if (focus) this.focus();
this.update(); // Make sure we access getRange with editor in consistent state
return this.selection.getRange()[0];
}
}, {
key: 'getText',
value: function getText() {
var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.getLength() - index;
var _overload9 = overload(index, length);
var _overload10 = _slicedToArray(_overload9, 2);
index = _overload10[0];
length = _overload10[1];
return this.editor.getText(index, length);
}
}, {
key: 'hasFocus',
value: function hasFocus() {
return this.selection.hasFocus();
}
}, {
key: 'insertEmbed',
value: function insertEmbed(index, embed, value) {
var _this7 = this;
var source = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : Quill.sources.API;
return modify.call(this, function () {
return _this7.editor.insertEmbed(index, embed, value);
}, source, index);
}
}, {
key: 'insertText',
value: function insertText(index, text, name, value, source) {
var _this8 = this;
var formats = void 0;
var _overload11 = overload(index, 0, name, value, source);
var _overload12 = _slicedToArray(_overload11, 4);
index = _overload12[0];
formats = _overload12[2];
source = _overload12[3];
return modify.call(this, function () {
return _this8.editor.insertText(index, text, formats);
}, source, index, text.length);
}
}, {
key: 'isEnabled',
value: function isEnabled() {
return !this.container.classList.contains('ql-disabled');
}
}, {
key: 'off',
value: function off() {
return this.emitter.off.apply(this.emitter, arguments);
}
}, {
key: 'on',
value: function on() {
return this.emitter.on.apply(this.emitter, arguments);
}
}, {
key: 'once',
value: function once() {
return this.emitter.once.apply(this.emitter, arguments);
}
}, {
key: 'pasteHTML',
value: function pasteHTML(index, html, source) {
this.clipboard.dangerouslyPasteHTML(index, html, source);
}
}, {
key: 'removeFormat',
value: function removeFormat(index, length, source) {
var _this9 = this;
var _overload13 = overload(index, length, source);
var _overload14 = _slicedToArray(_overload13, 4);
index = _overload14[0];
length = _overload14[1];
source = _overload14[3];
return modify.call(this, function () {
return _this9.editor.removeFormat(index, length);
}, source, index);
}
}, {
key: 'scrollIntoView',
value: function scrollIntoView() {
this.selection.scrollIntoView(this.scrollingContainer);
}
}, {
key: 'setContents',
value: function setContents(delta) {
var _this10 = this;
var source = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _emitter4.default.sources.API;
return modify.call(this, function () {
delta = new _quillDelta2.default(delta);
var length = _this10.getLength();
var deleted = _this10.editor.deleteText(0, length);
var applied = _this10.editor.applyDelta(delta);
var lastOp = applied.ops[applied.ops.length - 1];
if (lastOp != null && typeof lastOp.insert === 'string' && lastOp.insert[lastOp.insert.length - 1] === '\n') {
_this10.editor.deleteText(_this10.getLength() - 1, 1);
applied.delete(1);
}
var ret = deleted.compose(applied);
return ret;
}, source);
}
}, {
key: 'setSelection',
value: function setSelection(index, length, source) {
if (index == null) {
this.selection.setRange(null, length || Quill.sources.API);
} else {
var _overload15 = overload(index, length, source);
var _overload16 = _slicedToArray(_overload15, 4);
index = _overload16[0];
length = _overload16[1];
source = _overload16[3];
this.selection.setRange(new _selection.Range(index, length), source);
if (source !== _emitter4.default.sources.SILENT) {
this.selection.scrollIntoView(this.scrollingContainer);
}
}
}
}, {
key: 'setText',
value: function setText(text) {
var source = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _emitter4.default.sources.API;
var delta = new _quillDelta2.default().insert(text);
return this.setContents(delta, source);
}
}, {
key: 'update',
value: function update() {
var source = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _emitter4.default.sources.USER;
var change = this.scroll.update(source); // Will update selection before selection.update() does if text changes
this.selection.update(source);
return change;
}
}, {
key: 'updateContents',
value: function updateContents(delta) {
var _this11 = this;
var source = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _emitter4.default.sources.API;
return modify.call(this, function () {
delta = new _quillDelta2.default(delta);
return _this11.editor.applyDelta(delta, source);
}, source, true);
}
}]);
return Quill;
}();
Quill.DEFAULTS = {
bounds: null,
formats: null,
modules: {},
placeholder: '',
readOnly: false,
scrollingContainer: null,
strict: true,
theme: 'default'
};
Quill.events = _emitter4.default.events;
Quill.sources = _emitter4.default.sources;
// eslint-disable-next-line no-undef
Quill.version = false ? 'dev' : "1.3.6";
Quill.imports = {
'delta': _quillDelta2.default,
'parchment': _parchment2.default,
'core/module': _module2.default,
'core/theme': _theme2.default
};
function expandConfig(container, userConfig) {
userConfig = (0, _extend2.default)(true, {
container: container,
modules: {
clipboard: true,
keyboard: true,
history: true
}
}, userConfig);
if (!userConfig.theme || userConfig.theme === Quill.DEFAULTS.theme) {
userConfig.theme = _theme2.default;
} else {
userConfig.theme = Quill.import('themes/' + userConfig.theme);
if (userConfig.theme == null) {
throw new Error('Invalid theme ' + userConfig.theme + '. Did you register it?');
}
}
var themeConfig = (0, _extend2.default)(true, {}, userConfig.theme.DEFAULTS);
[themeConfig, userConfig].forEach(function (config) {
config.modules = config.modules || {};
Object.keys(config.modules).forEach(function (module) {
if (config.modules[module] === true) {
config.modules[module] = {};
}
});
});
var moduleNames = Object.keys(themeConfig.modules).concat(Object.keys(userConfig.modules));
var moduleConfig = moduleNames.reduce(function (config, name) {
var moduleClass = Quill.import('modules/' + name);
if (moduleClass == null) {
debug.error('Cannot load ' + name + ' module. Are you sure you registered it?');
} else {
config[name] = moduleClass.DEFAULTS || {};
}
return config;
}, {});
// Special case toolbar shorthand
if (userConfig.modules != null && userConfig.modules.toolbar && userConfig.modules.toolbar.constructor !== Object) {
userConfig.modules.toolbar = {
container: userConfig.modules.toolbar
};
}
userConfig = (0, _extend2.default)(true, {}, Quill.DEFAULTS, { modules: moduleConfig }, themeConfig, userConfig);
['bounds', 'container', 'scrollingContainer'].forEach(function (key) {
if (typeof userConfig[key] === 'string') {
userConfig[key] = document.querySelector(userConfig[key]);
}
});
userConfig.modules = Object.keys(userConfig.modules).reduce(function (config, name) {
if (userConfig.modules[name]) {
config[name] = userConfig.modules[name];
}
return config;
}, {});
return userConfig;
}
// Handle selection preservation and TEXT_CHANGE emission
// common to modification APIs
function modify(modifier, source, index, shift) {
if (this.options.strict && !this.isEnabled() && source === _emitter4.default.sources.USER) {
return new _quillDelta2.default();
}
var range = index == null ? null : this.getSelection();
var oldDelta = this.editor.delta;
var change = modifier();
if (range != null) {
if (index === true) index = range.index;
if (shift == null) {
range = shiftRange(range, change, source);
} else if (shift !== 0) {
range = shiftRange(range, index, shift, source);
}
this.setSelection(range, _emitter4.default.sources.SILENT);
}
if (change.length() > 0) {
var _emitter;
var args = [_emitter4.default.events.TEXT_CHANGE, change, oldDelta, source];
(_emitter = this.emitter).emit.apply(_emitter, [_emitter4.default.events.EDITOR_CHANGE].concat(args));
if (source !== _emitter4.default.sources.SILENT) {
var _emitter2;
(_emitter2 = this.emitter).emit.apply(_emitter2, args);
}
}
return change;
}
function overload(index, length, name, value, source) {
var formats = {};
if (typeof index.index === 'number' && typeof index.length === 'number') {
// Allow for throwaway end (used by insertText/insertEmbed)
if (typeof length !== 'number') {
source = value, value = name, name = length, length = index.length, index = index.index;
} else {
length = index.length, index = index.index;
}
} else if (typeof length !== 'number') {
source = value, value = name, name = length, length = 0;
}
// Handle format being object, two format name/value strings or excluded
if ((typeof name === 'undefined' ? 'undefined' : _typeof(name)) === 'object') {
formats = name;
source = value;
} else if (typeof name === 'string') {
if (value != null) {
formats[name] = value;
} else {
source = name;
}
}
// Handle optional source
source = source || _emitter4.default.sources.API;
return [index, length, formats, source];
}
function shiftRange(range, index, length, source) {
if (range == null) return null;
var start = void 0,
end = void 0;
if (index instanceof _quillDelta2.default) {
var _map = [range.index, range.index + range.length].map(function (pos) {
return index.transformPosition(pos, source !== _emitter4.default.sources.USER);
});
var _map2 = _slicedToArray(_map, 2);
start = _map2[0];
end = _map2[1];
} else {
var _map3 = [range.index, range.index + range.length].map(function (pos) {
if (pos < index || pos === index && source === _emitter4.default.sources.USER) return pos;
if (length >= 0) {
return pos + length;
} else {
return Math.max(index, pos + length);
}
});
var _map4 = _slicedToArray(_map3, 2);
start = _map4[0];
end = _map4[1];
}
return new _selection.Range(start, end - start);
}
exports.expandConfig = expandConfig;
exports.overload = overload;
exports.default = Quill;
/***/ }),
/* 6 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
var _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if ("value" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };
var _text = __webpack_require__(7);
var _text2 = _interopRequireDefault(_text);
var _parchment = __webpack_require__(0);
var _parchment2 = _interopRequireDefault(_parchment);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
var Inline = function (_Parchment$Inline) {
_inherits(Inline, _Parchment$Inline);
function Inline() {
_classCallCheck(this, Inline);
return _possibleConstructorReturn(this, (Inline.__proto__ || Object.getPrototypeOf(Inline)).apply(this, arguments));
}
_createClass(Inline, [{
key: 'formatAt',
value: function formatAt(index, length, name, value) {
if (Inline.compare(this.statics.blotName, name) < 0 && _parchment2.default.query(name, _parchment2.default.Scope.BLOT)) {
var blot = this.isolate(index, length);
if (value) {
blot.wrap(name, value);
}
} else {
_get(Inline.prototype.__proto__ || Object.getPrototypeOf(Inline.prototype), 'formatAt', this).call(this, index, length, name, value);
}
}
}, {
key: 'optimize',
value: function optimize(context) {
_get(Inline.prototype.__proto__ || Object.getPrototypeOf(Inline.prototype), 'optimize', this).call(this, context);
if (this.parent instanceof Inline && Inline.compare(this.statics.blotName, this.parent.statics.blotName) > 0) {
var parent = this.parent.isolate(this.offset(), this.length());
this.moveChildren(parent);
parent.wrap(this);
}
}
}], [{
key: 'compare',
value: function compare(self, other) {
var selfIndex = Inline.order.indexOf(self);
var otherIndex = Inline.order.indexOf(other);
if (selfIndex >= 0 || otherIndex >= 0) {
return selfIndex - otherIndex;
} else if (self === other) {
return 0;
} else if (self < other) {
return -1;
} else {
return 1;
}
}
}]);
return Inline;
}(_parchment2.default.Inline);
Inline.allowedChildren = [Inline, _parchment2.default.Embed, _text2.default];
// Lower index means deeper in the DOM tree, since not found (-1) is for embeds
Inline.order = ['cursor', 'inline', // Must be lower
'underline', 'strike', 'italic', 'bold', 'script', 'link', 'code' // Must be higher
];
exports.default = Inline;
/***/ }),
/* 7 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
var _parchment = __webpack_require__(0);
var _parchment2 = _interopRequireDefault(_parchment);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
var TextBlot = function (_Parchment$Text) {
_inherits(TextBlot, _Parchment$Text);
function TextBlot() {
_classCallCheck(this, TextBlot);
return _possibleConstructorReturn(this, (TextBlot.__proto__ || Object.getPrototypeOf(TextBlot)).apply(this, arguments));
}
return TextBlot;
}(_parchment2.default.Text);
exports.default = TextBlot;
/***/ }),
/* 8 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
var _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if ("value" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };
var _eventemitter = __webpack_require__(54);
var _eventemitter2 = _interopRequireDefault(_eventemitter);
var _logger = __webpack_require__(10);
var _logger2 = _interopRequireDefault(_logger);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
var debug = (0, _logger2.default)('quill:events');
var EVENTS = ['selectionchange', 'mousedown', 'mouseup', 'click'];
EVENTS.forEach(function (eventName) {
document.addEventListener(eventName, function () {
for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
[].slice.call(document.querySelectorAll('.ql-container')).forEach(function (node) {
// TODO use WeakMap
if (node.__quill && node.__quill.emitter) {
var _node$__quill$emitter;
(_node$__quill$emitter = node.__quill.emitter).handleDOM.apply(_node$__quill$emitter, args);
}
});
});
});
var Emitter = function (_EventEmitter) {
_inherits(Emitter, _EventEmitter);
function Emitter() {
_classCallCheck(this, Emitter);
var _this = _possibleConstructorReturn(this, (Emitter.__proto__ || Object.getPrototypeOf(Emitter)).call(this));
_this.listeners = {};
_this.on('error', debug.error);
return _this;
}
_createClass(Emitter, [{
key: 'emit',
value: function emit() {
debug.log.apply(debug, arguments);
_get(Emitter.prototype.__proto__ || Object.getPrototypeOf(Emitter.prototype), 'emit', this).apply(this, arguments);
}
}, {
key: 'handleDOM',
value: function handleDOM(event) {
for (var _len2 = arguments.length, args = Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
args[_key2 - 1] = arguments[_key2];
}
(this.listeners[event.type] || []).forEach(function (_ref) {
var node = _ref.node,
handler = _ref.handler;
if (event.target === node || node.contains(event.target)) {
handler.apply(undefined, [event].concat(args));
}
});
}
}, {
key: 'listenDOM',
value: function listenDOM(eventName, node, handler) {
if (!this.listeners[eventName]) {
this.listeners[eventName] = [];
}
this.listeners[eventName].push({ node: node, handler: handler });
}
}]);
return Emitter;
}(_eventemitter2.default);
Emitter.events = {
EDITOR_CHANGE: 'editor-change',
SCROLL_BEFORE_UPDATE: 'scroll-before-update',
SCROLL_OPTIMIZE: 'scroll-optimize',
SCROLL_UPDATE: 'scroll-update',
SELECTION_CHANGE: 'selection-change',
TEXT_CHANGE: 'text-change'
};
Emitter.sources = {
API: 'api',
SILENT: 'silent',
USER: 'user'
};
exports.default = Emitter;
/***/ }),
/* 9 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
var Module = function Module(quill) {
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
_classCallCheck(this, Module);
this.quill = quill;
this.options = options;
};
Module.DEFAULTS = {};
exports.default = Module;
/***/ }),
/* 10 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
var levels = ['error', 'warn', 'log', 'info'];
var level = 'warn';
function debug(method) {
if (levels.indexOf(method) <= levels.indexOf(level)) {
var _console;
for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
args[_key - 1] = arguments[_key];
}
(_console = console)[method].apply(_console, args); // eslint-disable-line no-console
}
}
function namespace(ns) {
return levels.reduce(function (logger, method) {
logger[method] = debug.bind(console, method, ns);
return logger;
}, {});
}
debug.level = namespace.level = function (newLevel) {
level = newLevel;
};
exports.default = namespace;
/***/ }),
/* 11 */
/***/ (function(module, exports, __webpack_require__) {
var pSlice = Array.prototype.slice;
var objectKeys = __webpack_require__(52);
var isArguments = __webpack_require__(53);
var deepEqual = module.exports = function (actual, expected, opts) {
if (!opts) opts = {};
// 7.1. All identical values are equivalent, as determined by ===.
if (actual === expected) {
return true;
} else if (actual instanceof Date && expected instanceof Date) {
return actual.getTime() === expected.getTime();
// 7.3. Other pairs that do not both pass typeof value == 'object',
// equivalence is determined by ==.
} else if (!actual || !expected || typeof actual != 'object' && typeof expected != 'object') {
return opts.strict ? actual === expected : actual == expected;
// 7.4. For all other Object pairs, including Array objects, equivalence is
// determined by having the same number of owned properties (as verified
// with Object.prototype.hasOwnProperty.call), the same set of keys
// (although not necessarily the same order), equivalent values for every
// corresponding key, and an identical 'prototype' property. Note: this
// accounts for both named and indexed properties on Arrays.
} else {
return objEquiv(actual, expected, opts);
}
}
function isUndefinedOrNull(value) {
return value === null || value === undefined;
}
function isBuffer (x) {
if (!x || typeof x !== 'object' || typeof x.length !== 'number') return false;
if (typeof x.copy !== 'function' || typeof x.slice !== 'function') {
return false;
}
if (x.length > 0 && typeof x[0] !== 'number') return false;
return true;
}
function objEquiv(a, b, opts) {
var i, key;
if (isUndefinedOrNull(a) || isUndefinedOrNull(b))
return false;
// an identical 'prototype' property.
if (a.prototype !== b.prototype) return false;
//~~~I've managed to break Object.keys through screwy arguments passing.
// Converting to array solves the problem.
if (isArguments(a)) {
if (!isArguments(b)) {
return false;
}
a = pSlice.call(a);
b = pSlice.call(b);
return deepEqual(a, b, opts);
}
if (isBuffer(a)) {
if (!isBuffer(b)) {
return false;
}
if (a.length !== b.length) return false;
for (i = 0; i < a.length; i++) {
if (a[i] !== b[i]) return false;
}
return true;
}
try {
var ka = objectKeys(a),
kb = objectKeys(b);
} catch (e) {//happens when one is a string literal and the other isn't
return false;
}
// having the same number of owned properties (keys incorporates
// hasOwnProperty)
if (ka.length != kb.length)
return false;
//the same set of keys (although not necessarily the same order),
ka.sort();
kb.sort();
//~~~cheap key test
for (i = ka.length - 1; i >= 0; i--) {
if (ka[i] != kb[i])
return false;
}
//equivalent values for every corresponding key, and
//~~~possibly expensive deep test
for (i = ka.length - 1; i >= 0; i--) {
key = ka[i];
if (!deepEqual(a[key], b[key], opts)) return false;
}
return typeof a === typeof b;
}
/***/ }),
/* 12 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var Registry = __webpack_require__(1);
var Attributor = /** @class */ (function () {
function Attributor(attrName, keyName, options) {
if (options === void 0) { options = {}; }
this.attrName = attrName;
this.keyName = keyName;
var attributeBit = Registry.Scope.TYPE & Registry.Scope.ATTRIBUTE;
if (options.scope != null) {
// Ignore type bits, force attribute bit
this.scope = (options.scope & Registry.Scope.LEVEL) | attributeBit;
}
else {
this.scope = Registry.Scope.ATTRIBUTE;
}
if (options.whitelist != null)
this.whitelist = options.whitelist;
}
Attributor.keys = function (node) {
return [].map.call(node.attributes, function (item) {
return item.name;
});
};
Attributor.prototype.add = function (node, value) {
if (!this.canAdd(node, value))
return false;
node.setAttribute(this.keyName, value);
return true;
};
Attributor.prototype.canAdd = function (node, value) {
var match = Registry.query(node, Registry.Scope.BLOT & (this.scope | Registry.Scope.TYPE));
if (match == null)
return false;
if (this.whitelist == null)
return true;
if (typeof value === 'string') {
return this.whitelist.indexOf(value.replace(/["']/g, '')) > -1;
}
else {
return this.whitelist.indexOf(value) > -1;
}
};
Attributor.prototype.remove = function (node) {
node.removeAttribute(this.keyName);
};
Attributor.prototype.value = function (node) {
var value = node.getAttribute(this.keyName);
if (this.canAdd(node, value) && value) {
return value;
}
return '';
};
return Attributor;
}());
exports.default = Attributor;
/***/ }),
/* 13 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = exports.Code = undefined;
var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }();
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
var _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if ("value" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };
var _quillDelta = __webpack_require__(2);
var _quillDelta2 = _interopRequireDefault(_quillDelta);
var _parchment = __webpack_require__(0);
var _parchment2 = _interopRequireDefault(_parchment);
var _block = __webpack_require__(4);
var _block2 = _interopRequireDefault(_block);
var _inline = __webpack_require__(6);
var _inline2 = _interopRequireDefault(_inline);
var _text = __webpack_require__(7);
var _text2 = _interopRequireDefault(_text);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
var Code = function (_Inline) {
_inherits(Code, _Inline);
function Code() {
_classCallCheck(this, Code);
return _possibleConstructorReturn(this, (Code.__proto__ || Object.getPrototypeOf(Code)).apply(this, arguments));
}
return Code;
}(_inline2.default);
Code.blotName = 'code';
Code.tagName = 'CODE';
var CodeBlock = function (_Block) {
_inherits(CodeBlock, _Block);
function CodeBlock() {
_classCallCheck(this, CodeBlock);
return _possibleConstructorReturn(this, (CodeBlock.__proto__ || Object.getPrototypeOf(CodeBlock)).apply(this, arguments));
}
_createClass(CodeBlock, [{
key: 'delta',
value: function delta() {
var _this3 = this;
var text = this.domNode.textContent;
if (text.endsWith('\n')) {
// Should always be true
text = text.slice(0, -1);
}
return text.split('\n').reduce(function (delta, frag) {
return delta.insert(frag).insert('\n', _this3.formats());
}, new _quillDelta2.default());
}
}, {
key: 'format',
value: function format(name, value) {
if (name === this.statics.blotName && value) return;
var _descendant = this.descendant(_text2.default, this.length() - 1),
_descendant2 = _slicedToArray(_descendant, 1),
text = _descendant2[0];
if (text != null) {
text.deleteAt(text.length() - 1, 1);
}
_get(CodeBlock.prototype.__proto__ || Object.getPrototypeOf(CodeBlock.prototype), 'format', this).call(this, name, value);
}
}, {
key: 'formatAt',
value: function formatAt(index, length, name, value) {
if (length === 0) return;
if (_parchment2.default.query(name, _parchment2.default.Scope.BLOCK) == null || name === this.statics.blotName && value === this.statics.formats(this.domNode)) {
return;
}
var nextNewline = this.newlineIndex(index);
if (nextNewline < 0 || nextNewline >= index + length) return;
var prevNewline = this.newlineIndex(index, true) + 1;
var isolateLength = nextNewline - prevNewline + 1;
var blot = this.isolate(prevNewline, isolateLength);
var next = blot.next;
blot.format(name, value);
if (next instanceof CodeBlock) {
next.formatAt(0, index - prevNewline + length - isolateLength, name, value);
}
}
}, {
key: 'insertAt',
value: function insertAt(index, value, def) {
if (def != null) return;
var _descendant3 = this.descendant(_text2.default, index),
_descendant4 = _slicedToArray(_descendant3, 2),
text = _descendant4[0],
offset = _descendant4[1];
text.insertAt(offset, value);
}
}, {
key: 'length',
value: function length() {
var length = this.domNode.textContent.length;
if (!this.domNode.textContent.endsWith('\n')) {
return length + 1;
}
return length;
}
}, {
key: 'newlineIndex',
value: function newlineIndex(searchIndex) {
var reverse = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
if (!reverse) {
var offset = this.domNode.textContent.slice(searchIndex).indexOf('\n');
return offset > -1 ? searchIndex + offset : -1;
} else {
return this.domNode.textContent.slice(0, searchIndex).lastIndexOf('\n');
}
}
}, {
key: 'optimize',
value: function optimize(context) {
if (!this.domNode.textContent.endsWith('\n')) {
this.appendChild(_parchment2.default.create('text', '\n'));
}
_get(CodeBlock.prototype.__proto__ || Object.getPrototypeOf(CodeBlock.prototype), 'optimize', this).call(this, context);
var next = this.next;
if (next != null && next.prev === this && next.statics.blotName === this.statics.blotName && this.statics.formats(this.domNode) === next.statics.formats(next.domNode)) {
next.optimize(context);
next.moveChildren(this);
next.remove();
}
}
}, {
key: 'replace',
value: function replace(target) {
_get(CodeBlock.prototype.__proto__ || Object.getPrototypeOf(CodeBlock.prototype), 'replace', this).call(this, target);
[].slice.call(this.domNode.querySelectorAll('*')).forEach(function (node) {
var blot = _parchment2.default.find(node);
if (blot == null) {
node.parentNode.removeChild(node);
} else if (blot instanceof _parchment2.default.Embed) {
blot.remove();
} else {
blot.unwrap();
}
});
}
}], [{
key: 'create',
value: function create(value) {
var domNode = _get(CodeBlock.__proto__ || Object.getPrototypeOf(CodeBlock), 'create', this).call(this, value);
domNode.setAttribute('spellcheck', false);
return domNode;
}
}, {
key: 'formats',
value: function formats() {
return true;
}
}]);
return CodeBlock;
}(_block2.default);
CodeBlock.blotName = 'code-block';
CodeBlock.tagName = 'PRE';
CodeBlock.TAB = ' ';
exports.Code = Code;
exports.default = CodeBlock;
/***/ }),
/* 14 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }();
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
var _quillDelta = __webpack_require__(2);
var _quillDelta2 = _interopRequireDefault(_quillDelta);
var _op = __webpack_require__(20);
var _op2 = _interopRequireDefault(_op);
var _parchment = __webpack_require__(0);
var _parchment2 = _interopRequireDefault(_parchment);
var _code = __webpack_require__(13);
var _code2 = _interopRequireDefault(_code);
var _cursor = __webpack_require__(24);
var _cursor2 = _interopRequireDefault(_cursor);
var _block = __webpack_require__(4);
var _block2 = _interopRequireDefault(_block);
var _break = __webpack_require__(16);
var _break2 = _interopRequireDefault(_break);
var _clone = __webpack_require__(21);
var _clone2 = _interopRequireDefault(_clone);
var _deepEqual = __webpack_require__(11);
var _deepEqual2 = _interopRequireDefault(_deepEqual);
var _extend = __webpack_require__(3);
var _extend2 = _interopRequireDefault(_extend);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
var ASCII = /^[ -~]*$/;
var Editor = function () {
function Editor(scroll) {
_classCallCheck(this, Editor);
this.scroll = scroll;
this.delta = this.getDelta();
}
_createClass(Editor, [{
key: 'applyDelta',
value: function applyDelta(delta) {
var _this = this;
var consumeNextNewline = false;
this.scroll.update();
var scrollLength = this.scroll.length();
this.scroll.batchStart();
delta = normalizeDelta(delta);
delta.reduce(function (index, op) {
var length = op.retain || op.delete || op.insert.length || 1;
var attributes = op.attributes || {};
if (op.insert != null) {
if (typeof op.insert === 'string') {
var text = op.insert;
if (text.endsWith('\n') && consumeNextNewline) {
consumeNextNewline = false;
text = text.slice(0, -1);
}
if (index >= scrollLength && !text.endsWith('\n')) {
consumeNextNewline = true;
}
_this.scroll.insertAt(index, text);
var _scroll$line = _this.scroll.line(index),
_scroll$line2 = _slicedToArray(_scroll$line, 2),
line = _scroll$line2[0],
offset = _scroll$line2[1];
var formats = (0, _extend2.default)({}, (0, _block.bubbleFormats)(line));
if (line instanceof _block2.default) {
var _line$descendant = line.descendant(_parchment2.default.Leaf, offset),
_line$descendant2 = _slicedToArray(_line$descendant, 1),
leaf = _line$descendant2[0];
formats = (0, _extend2.default)(formats, (0, _block.bubbleFormats)(leaf));
}
attributes = _op2.default.attributes.diff(formats, attributes) || {};
} else if (_typeof(op.insert) === 'object') {
var key = Object.keys(op.insert)[0]; // There should only be one key
if (key == null) return index;
_this.scroll.insertAt(index, key, op.insert[key]);
}
scrollLength += length;
}
Object.keys(attributes).forEach(function (name) {
_this.scroll.formatAt(index, length, name, attributes[name]);
});
return index + length;
}, 0);
delta.reduce(function (index, op) {
if (typeof op.delete === 'number') {
_this.scroll.deleteAt(index, op.delete);
return index;
}
return index + (op.retain || op.insert.length || 1);
}, 0);
this.scroll.batchEnd();
return this.update(delta);
}
}, {
key: 'deleteText',
value: function deleteText(index, length) {
this.scroll.deleteAt(index, length);
return this.update(new _quillDelta2.default().retain(index).delete(length));
}
}, {
key: 'formatLine',
value: function formatLine(index, length) {
var _this2 = this;
var formats = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
this.scroll.update();
Object.keys(formats).forEach(function (format) {
if (_this2.scroll.whitelist != null && !_this2.scroll.whitelist[format]) return;
var lines = _this2.scroll.lines(index, Math.max(length, 1));
var lengthRemaining = length;
lines.forEach(function (line) {
var lineLength = line.length();
if (!(line instanceof _code2.default)) {
line.format(format, formats[format]);
} else {
var codeIndex = index - line.offset(_this2.scroll);
var codeLength = line.newlineIndex(codeIndex + lengthRemaining) - codeIndex + 1;
line.formatAt(codeIndex, codeLength, format, formats[format]);
}
lengthRemaining -= lineLength;
});
});
this.scroll.optimize();
return this.update(new _quillDelta2.default().retain(index).retain(length, (0, _clone2.default)(formats)));
}
}, {
key: 'formatText',
value: function formatText(index, length) {
var _this3 = this;
var formats = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
Object.keys(formats).forEach(function (format) {
_this3.scroll.formatAt(index, length, format, formats[format]);
});
return this.update(new _quillDelta2.default().retain(index).retain(length, (0, _clone2.default)(formats)));
}
}, {
key: 'getContents',
value: function getContents(index, length) {
return this.delta.slice(index, index + length);
}
}, {
key: 'getDelta',
value: function getDelta() {
return this.scroll.lines().reduce(function (delta, line) {
return delta.concat(line.delta());
}, new _quillDelta2.default());
}
}, {
key: 'getFormat',
value: function getFormat(index) {
var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
var lines = [],
leaves = [];
if (length === 0) {
this.scroll.path(index).forEach(function (path) {
var _path = _slicedToArray(path, 1),
blot = _path[0];
if (blot instanceof _block2.default) {
lines.push(blot);
} else if (blot instanceof _parchment2.default.Leaf) {
leaves.push(blot);
}
});
} else {
lines = this.scroll.lines(index, length);
leaves = this.scroll.descendants(_parchment2.default.Leaf, index, length);
}
var formatsArr = [lines, leaves].map(function (blots) {
if (blots.length === 0) return {};
var formats = (0, _block.bubbleFormats)(blots.shift());
while (Object.keys(formats).length > 0) {
var blot = blots.shift();
if (blot == null) return formats;
formats = combineFormats((0, _block.bubbleFormats)(blot), formats);
}
return formats;
});
return _extend2.default.apply(_extend2.default, formatsArr);
}
}, {
key: 'getText',
value: function getText(index, length) {
return this.getContents(index, length).filter(function (op) {
return typeof op.insert === 'string';
}).map(function (op) {
return op.insert;
}).join('');
}
}, {
key: 'insertEmbed',
value: function insertEmbed(index, embed, value) {
this.scroll.insertAt(index, embed, value);
return this.update(new _quillDelta2.default().retain(index).insert(_defineProperty({}, embed, value)));
}
}, {
key: 'insertText',
value: function insertText(index, text) {
var _this4 = this;
var formats = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
text = text.replace(/\r\n/g, '\n').replace(/\r/g, '\n');
this.scroll.insertAt(index, text);
Object.keys(formats).forEach(function (format) {
_this4.scroll.formatAt(index, text.length, format, formats[format]);
});
return this.update(new _quillDelta2.default().retain(index).insert(text, (0, _clone2.default)(formats)));
}
}, {
key: 'isBlank',
value: function isBlank() {
if (this.scroll.children.length == 0) return true;
if (this.scroll.children.length > 1) return false;
var block = this.scroll.children.head;
if (block.statics.blotName !== _block2.default.blotName) return false;
if (block.children.length > 1) return false;
return block.children.head instanceof _break2.default;
}
}, {
key: 'removeFormat',
value: function removeFormat(index, length) {
var text = this.getText(index, length);
var _scroll$line3 = this.scroll.line(index + length),
_scroll$line4 = _slicedToArray(_scroll$line3, 2),
line = _scroll$line4[0],
offset = _scroll$line4[1];
var suffixLength = 0,
suffix = new _quillDelta2.default();
if (line != null) {
if (!(line instanceof _code2.default)) {
suffixLength = line.length() - offset;
} else {
suffixLength = line.newlineIndex(offset) - offset + 1;
}
suffix = line.delta().slice(offset, offset + suffixLength - 1).insert('\n');
}
var contents = this.getContents(index, length + suffixLength);
var diff = contents.diff(new _quillDelta2.default().insert(text).concat(suffix));
var delta = new _quillDelta2.default().retain(index).concat(diff);
return this.applyDelta(delta);
}
}, {
key: 'update',
value: function update(change) {
var mutations = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
var cursorIndex = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : undefined;
var oldDelta = this.delta;
if (mutations.length === 1 && mutations[0].type === 'characterData' && mutations[0].target.data.match(ASCII) && _parchment2.default.find(mutations[0].target)) {
// Optimization for character changes
var textBlot = _parchment2.default.find(mutations[0].target);
var formats = (0, _block.bubbleFormats)(textBlot);
var index = textBlot.offset(this.scroll);
var oldValue = mutations[0].oldValue.replace(_cursor2.default.CONTENTS, '');
var oldText = new _quillDelta2.default().insert(oldValue);
var newText = new _quillDelta2.default().insert(textBlot.value());
var diffDelta = new _quillDelta2.default().retain(index).concat(oldText.diff(newText, cursorIndex));
change = diffDelta.reduce(function (delta, op) {
if (op.insert) {
return delta.insert(op.insert, formats);
} else {
return delta.push(op);
}
}, new _quillDelta2.default());
this.delta = oldDelta.compose(change);
} else {
this.delta = this.getDelta();
if (!change || !(0, _deepEqual2.default)(oldDelta.compose(change), this.delta)) {
change = oldDelta.diff(this.delta, cursorIndex);
}
}
return change;
}
}]);
return Editor;
}();
function combineFormats(formats, combined) {
return Object.keys(combined).reduce(function (merged, name) {
if (formats[name] == null) return merged;
if (combined[name] === formats[name]) {
merged[name] = combined[name];
} else if (Array.isArray(combined[name])) {
if (combined[name].indexOf(formats[name]) < 0) {
merged[name] = combined[name].concat([formats[name]]);
}
} else {
merged[name] = [combined[name], formats[name]];
}
return merged;
}, {});
}
function normalizeDelta(delta) {
return delta.reduce(function (delta, op) {
if (op.insert === 1) {
var attributes = (0, _clone2.default)(op.attributes);
delete attributes['image'];
return delta.insert({ image: op.attributes.image }, attributes);
}
if (op.attributes != null && (op.attributes.list === true || op.attributes.bullet === true)) {
op = (0, _clone2.default)(op);
if (op.attributes.list) {
op.attributes.list = 'ordered';
} else {
op.attributes.list = 'bullet';
delete op.attributes.bullet;
}
}
if (typeof op.insert === 'string') {
var text = op.insert.replace(/\r\n/g, '\n').replace(/\r/g, '\n');
return delta.insert(text, op.attributes);
}
return delta.push(op);
}, new _quillDelta2.default());
}
exports.default = Editor;
/***/ }),
/* 15 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = exports.Range = undefined;
var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }();
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
var _parchment = __webpack_require__(0);
var _parchment2 = _interopRequireDefault(_parchment);
var _clone = __webpack_require__(21);
var _clone2 = _interopRequireDefault(_clone);
var _deepEqual = __webpack_require__(11);
var _deepEqual2 = _interopRequireDefault(_deepEqual);
var _emitter3 = __webpack_require__(8);
var _emitter4 = _interopRequireDefault(_emitter3);
var _logger = __webpack_require__(10);
var _logger2 = _interopRequireDefault(_logger);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
var debug = (0, _logger2.default)('quill:selection');
var Range = function Range(index) {
var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
_classCallCheck(this, Range);
this.index = index;
this.length = length;
};
var Selection = function () {
function Selection(scroll, emitter) {
var _this = this;
_classCallCheck(this, Selection);
this.emitter = emitter;
this.scroll = scroll;
this.composing = false;
this.mouseDown = false;
this.root = this.scroll.domNode;
this.cursor = _parchment2.default.create('cursor', this);
// savedRange is last non-null range
this.lastRange = this.savedRange = new Range(0, 0);
this.handleComposition();
this.handleDragging();
this.emitter.listenDOM('selectionchange', document, function () {
if (!_this.mouseDown) {
setTimeout(_this.update.bind(_this, _emitter4.default.sources.USER), 1);
}
});
this.emitter.on(_emitter4.default.events.EDITOR_CHANGE, function (type, delta) {
if (type === _emitter4.default.events.TEXT_CHANGE && delta.length() > 0) {
_this.update(_emitter4.default.sources.SILENT);
}
});
this.emitter.on(_emitter4.default.events.SCROLL_BEFORE_UPDATE, function () {
if (!_this.hasFocus()) return;
var native = _this.getNativeRange();
if (native == null) return;
if (native.start.node === _this.cursor.textNode) return; // cursor.restore() will handle
// TODO unclear if this has negative side effects
_this.emitter.once(_emitter4.default.events.SCROLL_UPDATE, function () {
try {
_this.setNativeRange(native.start.node, native.start.offset, native.end.node, native.end.offset);
} catch (ignored) {}
});
});
this.emitter.on(_emitter4.default.events.SCROLL_OPTIMIZE, function (mutations, context) {
if (context.range) {
var _context$range = context.range,
startNode = _context$range.startNode,
startOffset = _context$range.startOffset,
endNode = _context$range.endNode,
endOffset = _context$range.endOffset;
_this.setNativeRange(startNode, startOffset, endNode, endOffset);
}
});
this.update(_emitter4.default.sources.SILENT);
}
_createClass(Selection, [{
key: 'handleComposition',
value: function handleComposition() {
var _this2 = this;
this.root.addEventListener('compositionstart', function () {
_this2.composing = true;
});
this.root.addEventListener('compositionend', function () {
_this2.composing = false;
if (_this2.cursor.parent) {
var range = _this2.cursor.restore();
if (!range) return;
setTimeout(function () {
_this2.setNativeRange(range.startNode, range.startOffset, range.endNode, range.endOffset);
}, 1);
}
});
}
}, {
key: 'handleDragging',
value: function handleDragging() {
var _this3 = this;
this.emitter.listenDOM('mousedown', document.body, function () {
_this3.mouseDown = true;
});
this.emitter.listenDOM('mouseup', document.body, function () {
_this3.mouseDown = false;
_this3.update(_emitter4.default.sources.USER);
});
}
}, {
key: 'focus',
value: function focus() {
if (this.hasFocus()) return;
this.root.focus();
this.setRange(this.savedRange);
}
}, {
key: 'format',
value: function format(_format, value) {
if (this.scroll.whitelist != null && !this.scroll.whitelist[_format]) return;
this.scroll.update();
var nativeRange = this.getNativeRange();
if (nativeRange == null || !nativeRange.native.collapsed || _parchment2.default.query(_format, _parchment2.default.Scope.BLOCK)) return;
if (nativeRange.start.node !== this.cursor.textNode) {
var blot = _parchment2.default.find(nativeRange.start.node, false);
if (blot == null) return;
// TODO Give blot ability to not split
if (blot instanceof _parchment2.default.Leaf) {
var after = blot.split(nativeRange.start.offset);
blot.parent.insertBefore(this.cursor, after);
} else {
blot.insertBefore(this.cursor, nativeRange.start.node); // Should never happen
}
this.cursor.attach();
}
this.cursor.format(_format, value);
this.scroll.optimize();
this.setNativeRange(this.cursor.textNode, this.cursor.textNode.data.length);
this.update();
}
}, {
key: 'getBounds',
value: function getBounds(index) {
var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
var scrollLength = this.scroll.length();
index = Math.min(index, scrollLength - 1);
length = Math.min(index + length, scrollLength - 1) - index;
var node = void 0,
_scroll$leaf = this.scroll.leaf(index),
_scroll$leaf2 = _slicedToArray(_scroll$leaf, 2),
leaf = _scroll$leaf2[0],
offset = _scroll$leaf2[1];
if (leaf == null) return null;
var _leaf$position = leaf.position(offset, true);
var _leaf$position2 = _slicedToArray(_leaf$position, 2);
node = _leaf$position2[0];
offset = _leaf$position2[1];
var range = document.createRange();
if (length > 0) {
range.setStart(node, offset);
var _scroll$leaf3 = this.scroll.leaf(index + length);
var _scroll$leaf4 = _slicedToArray(_scroll$leaf3, 2);
leaf = _scroll$leaf4[0];
offset = _scroll$leaf4[1];
if (leaf == null) return null;
var _leaf$position3 = leaf.position(offset, true);
var _leaf$position4 = _slicedToArray(_leaf$position3, 2);
node = _leaf$position4[0];
offset = _leaf$position4[1];
range.setEnd(node, offset);
return range.getBoundingClientRect();
} else {
var side = 'left';
var rect = void 0;
if (node instanceof Text) {
if (offset < node.data.length) {
range.setStart(node, offset);
range.setEnd(node, offset + 1);
} else {
range.setStart(node, offset - 1);
range.setEnd(node, offset);
side = 'right';
}
rect = range.getBoundingClientRect();
} else {
rect = leaf.domNode.getBoundingClientRect();
if (offset > 0) side = 'right';
}
return {
bottom: rect.top + rect.height,
height: rect.height,
left: rect[side],
right: rect[side],
top: rect.top,
width: 0
};
}
}
}, {
key: 'getNativeRange',
value: function getNativeRange() {
var selection = document.getSelection();
if (selection == null || selection.rangeCount <= 0) return null;
var nativeRange = selection.getRangeAt(0);
if (nativeRange == null) return null;
var range = this.normalizeNative(nativeRange);
debug.info('getNativeRange', range);
return range;
}
}, {
key: 'getRange',
value: function getRange() {
var normalized = this.getNativeRange();
if (normalized == null) return [null, null];
var range = this.normalizedToRange(normalized);
return [range, normalized];
}
}, {
key: 'hasFocus',
value: function hasFocus() {
return document.activeElement === this.root;
}
}, {
key: 'normalizedToRange',
value: function normalizedToRange(range) {
var _this4 = this;
var positions = [[range.start.node, range.start.offset]];
if (!range.native.collapsed) {
positions.push([range.end.node, range.end.offset]);
}
var indexes = positions.map(function (position) {
var _position = _slicedToArray(position, 2),
node = _position[0],
offset = _position[1];
var blot = _parchment2.default.find(node, true);
var index = blot.offset(_this4.scroll);
if (offset === 0) {
return index;
} else if (blot instanceof _parchment2.default.Container) {
return index + blot.length();
} else {
return index + blot.index(node, offset);
}
});
var end = Math.min(Math.max.apply(Math, _toConsumableArray(indexes)), this.scroll.length() - 1);
var start = Math.min.apply(Math, [end].concat(_toConsumableArray(indexes)));
return new Range(start, end - start);
}
}, {
key: 'normalizeNative',
value: function normalizeNative(nativeRange) {
if (!contains(this.root, nativeRange.startContainer) || !nativeRange.collapsed && !contains(this.root, nativeRange.endContainer)) {
return null;
}
var range = {
start: { node: nativeRange.startContainer, offset: nativeRange.startOffset },
end: { node: nativeRange.endContainer, offset: nativeRange.endOffset },
native: nativeRange
};
[range.start, range.end].forEach(function (position) {
var node = position.node,
offset = position.offset;
while (!(node instanceof Text) && node.childNodes.length > 0) {
if (node.childNodes.length > offset) {
node = node.childNodes[offset];
offset = 0;
} else if (node.childNodes.length === offset) {
node = node.lastChild;
offset = node instanceof Text ? node.data.length : node.childNodes.length + 1;
} else {
break;
}
}
position.node = node, position.offset = offset;
});
return range;
}
}, {
key: 'rangeToNative',
value: function rangeToNative(range) {
var _this5 = this;
var indexes = range.collapsed ? [range.index] : [range.index, range.index + range.length];
var args = [];
var scrollLength = this.scroll.length();
indexes.forEach(function (index, i) {
index = Math.min(scrollLength - 1, index);
var node = void 0,
_scroll$leaf5 = _this5.scroll.leaf(index),
_scroll$leaf6 = _slicedToArray(_scroll$leaf5, 2),
leaf = _scroll$leaf6[0],
offset = _scroll$leaf6[1];
var _leaf$position5 = leaf.position(offset, i !== 0);
var _leaf$position6 = _slicedToArray(_leaf$position5, 2);
node = _leaf$position6[0];
offset = _leaf$position6[1];
args.push(node, offset);
});
if (args.length < 2) {
args = args.concat(args);
}
return args;
}
}, {
key: 'scrollIntoView',
value: function scrollIntoView(scrollingContainer) {
var range = this.lastRange;
if (range == null) return;
var bounds = this.getBounds(range.index, range.length);
if (bounds == null) return;
var limit = this.scroll.length() - 1;
var _scroll$line = this.scroll.line(Math.min(range.index, limit)),
_scroll$line2 = _slicedToArray(_scroll$line, 1),
first = _scroll$line2[0];
var last = first;
if (range.length > 0) {
var _scroll$line3 = this.scroll.line(Math.min(range.index + range.length, limit));
var _scroll$line4 = _slicedToArray(_scroll$line3, 1);
last = _scroll$line4[0];
}
if (first == null || last == null) return;
var scrollBounds = scrollingContainer.getBoundingClientRect();
if (bounds.top < scrollBounds.top) {
scrollingContainer.scrollTop -= scrollBounds.top - bounds.top;
} else if (bounds.bottom > scrollBounds.bottom) {
scrollingContainer.scrollTop += bounds.bottom - scrollBounds.bottom;
}
}
}, {
key: 'setNativeRange',
value: function setNativeRange(startNode, startOffset) {
var endNode = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : startNode;
var endOffset = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : startOffset;
var force = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;
debug.info('setNativeRange', startNode, startOffset, endNode, endOffset);
if (startNode != null && (this.root.parentNode == null || startNode.parentNode == null || endNode.parentNode == null)) {
return;
}
var selection = document.getSelection();
if (selection == null) return;
if (startNode != null) {
if (!this.hasFocus()) this.root.focus();
var native = (this.getNativeRange() || {}).native;
if (native == null || force || startNode !== native.startContainer || startOffset !== native.startOffset || endNode !== native.endContainer || endOffset !== native.endOffset) {
if (startNode.tagName == "BR") {
startOffset = [].indexOf.call(startNode.parentNode.childNodes, startNode);
startNode = startNode.parentNode;
}
if (endNode.tagName == "BR") {
endOffset = [].indexOf.call(endNode.parentNode.childNodes, endNode);
endNode = endNode.parentNode;
}
var range = document.createRange();
range.setStart(startNode, startOffset);
range.setEnd(endNode, endOffset);
selection.removeAllRanges();
selection.addRange(range);
}
} else {
selection.removeAllRanges();
this.root.blur();
document.body.focus(); // root.blur() not enough on IE11+Travis+SauceLabs (but not local VMs)
}
}
}, {
key: 'setRange',
value: function setRange(range) {
var force = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
var source = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : _emitter4.default.sources.API;
if (typeof force === 'string') {
source = force;
force = false;
}
debug.info('setRange', range);
if (range != null) {
var args = this.rangeToNative(range);
this.setNativeRange.apply(this, _toConsumableArray(args).concat([force]));
} else {
this.setNativeRange(null);
}
this.update(source);
}
}, {
key: 'update',
value: function update() {
var source = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _emitter4.default.sources.USER;
var oldRange = this.lastRange;
var _getRange = this.getRange(),
_getRange2 = _slicedToArray(_getRange, 2),
lastRange = _getRange2[0],
nativeRange = _getRange2[1];
this.lastRange = lastRange;
if (this.lastRange != null) {
this.savedRange = this.lastRange;
}
if (!(0, _deepEqual2.default)(oldRange, this.lastRange)) {
var _emitter;
if (!this.composing && nativeRange != null && nativeRange.native.collapsed && nativeRange.start.node !== this.cursor.textNode) {
this.cursor.restore();
}
var args = [_emitter4.default.events.SELECTION_CHANGE, (0, _clone2.default)(this.lastRange), (0, _clone2.default)(oldRange), source];
(_emitter = this.emitter).emit.apply(_emitter, [_emitter4.default.events.EDITOR_CHANGE].concat(args));
if (source !== _emitter4.default.sources.SILENT) {
var _emitter2;
(_emitter2 = this.emitter).emit.apply(_emitter2, args);
}
}
}
}]);
return Selection;
}();
function contains(parent, descendant) {
try {
// Firefox inserts inaccessible nodes around video elements
descendant.parentNode;
} catch (e) {
return false;
}
// IE11 has bug with Text nodes
// https://connect.microsoft.com/IE/feedback/details/780874/node-contains-is-incorrect
if (descendant instanceof Text) {
descendant = descendant.parentNode;
}
return parent.contains(descendant);
}
exports.Range = Range;
exports.default = Selection;
/***/ }),
/* 16 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
var _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if ("value" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };
var _parchment = __webpack_require__(0);
var _parchment2 = _interopRequireDefault(_parchment);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
var Break = function (_Parchment$Embed) {
_inherits(Break, _Parchment$Embed);
function Break() {
_classCallCheck(this, Break);
return _possibleConstructorReturn(this, (Break.__proto__ || Object.getPrototypeOf(Break)).apply(this, arguments));
}
_createClass(Break, [{
key: 'insertInto',
value: function insertInto(parent, ref) {
if (parent.children.length === 0) {
_get(Break.prototype.__proto__ || Object.getPrototypeOf(Break.prototype), 'insertInto', this).call(this, parent, ref);
} else {
this.remove();
}
}
}, {
key: 'length',
value: function length() {
return 0;
}
}, {
key: 'value',
value: function value() {
return '';
}
}], [{
key: 'value',
value: function value() {
return undefined;
}
}]);
return Break;
}(_parchment2.default.Embed);
Break.blotName = 'break';
Break.tagName = 'BR';
exports.default = Break;
/***/ }),
/* 17 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var __extends = (this && this.__extends) || (function () {
var extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
return function (d, b) {
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
Object.defineProperty(exports, "__esModule", { value: true });
var linked_list_1 = __webpack_require__(44);
var shadow_1 = __webpack_require__(30);
var Registry = __webpack_require__(1);
var ContainerBlot = /** @class */ (function (_super) {
__extends(ContainerBlot, _super);
function ContainerBlot(domNode) {
var _this = _super.call(this, domNode) || this;
_this.build();
return _this;
}
ContainerBlot.prototype.appendChild = function (other) {
this.insertBefore(other);
};
ContainerBlot.prototype.attach = function () {
_super.prototype.attach.call(this);
this.children.forEach(function (child) {
child.attach();
});
};
ContainerBlot.prototype.build = function () {
var _this = this;
this.children = new linked_list_1.default();
// Need to be reversed for if DOM nodes already in order
[].slice
.call(this.domNode.childNodes)
.reverse()
.forEach(function (node) {
try {
var child = makeBlot(node);
_this.insertBefore(child, _this.children.head || undefined);
}
catch (err) {
if (err instanceof Registry.ParchmentError)
return;
else
throw err;
}
});
};
ContainerBlot.prototype.deleteAt = function (index, length) {
if (index === 0 && length === this.length()) {
return this.remove();
}
this.children.forEachAt(index, length, function (child, offset, length) {
child.deleteAt(offset, length);
});
};
ContainerBlot.prototype.descendant = function (criteria, index) {
var _a = this.children.find(index), child = _a[0], offset = _a[1];
if ((criteria.blotName == null && criteria(child)) ||
(criteria.blotName != null && child instanceof criteria)) {
return [child, offset];
}
else if (child instanceof ContainerBlot) {
return child.descendant(criteria, offset);
}
else {
return [null, -1];
}
};
ContainerBlot.prototype.descendants = function (criteria, index, length) {
if (index === void 0) { index = 0; }
if (length === void 0) { length = Number.MAX_VALUE; }
var descendants = [];
var lengthLeft = length;
this.children.forEachAt(index, length, function (child, index, length) {
if ((criteria.blotName == null && criteria(child)) ||
(criteria.blotName != null && child instanceof criteria)) {
descendants.push(child);
}
if (child instanceof ContainerBlot) {
descendants = descendants.concat(child.descendants(criteria, index, lengthLeft));
}
lengthLeft -= length;
});
return descendants;
};
ContainerBlot.prototype.detach = function () {
this.children.forEach(function (child) {
child.detach();
});
_super.prototype.detach.call(this);
};
ContainerBlot.prototype.formatAt = function (index, length, name, value) {
this.children.forEachAt(index, length, function (child, offset, length) {
child.formatAt(offset, length, name, value);
});
};
ContainerBlot.prototype.insertAt = function (index, value, def) {
var _a = this.children.find(index), child = _a[0], offset = _a[1];
if (child) {
child.insertAt(offset, value, def);
}
else {
var blot = def == null ? Registry.create('text', value) : Registry.create(value, def);
this.appendChild(blot);
}
};
ContainerBlot.prototype.insertBefore = function (childBlot, refBlot) {
if (this.statics.allowedChildren != null &&
!this.statics.allowedChildren.some(function (child) {
return childBlot instanceof child;
})) {
throw new Registry.ParchmentError("Cannot insert " + childBlot.statics.blotName + " into " + this.statics.blotName);
}
childBlot.insertInto(this, refBlot);
};
ContainerBlot.prototype.length = function () {
return this.children.reduce(function (memo, child) {
return memo + child.length();
}, 0);
};
ContainerBlot.prototype.moveChildren = function (targetParent, refNode) {
this.children.forEach(function (child) {
targetParent.insertBefore(child, refNode);
});
};
ContainerBlot.prototype.optimize = function (context) {
_super.prototype.optimize.call(this, context);
if (this.children.length === 0) {
if (this.statics.defaultChild != null) {
var child = Registry.create(this.statics.defaultChild);
this.appendChild(child);
child.optimize(context);
}
else {
this.remove();
}
}
};
ContainerBlot.prototype.path = function (index, inclusive) {
if (inclusive === void 0) { inclusive = false; }
var _a = this.children.find(index, inclusive), child = _a[0], offset = _a[1];
var position = [[this, index]];
if (child instanceof ContainerBlot) {
return position.concat(child.path(offset, inclusive));
}
else if (child != null) {
position.push([child, offset]);
}
return position;
};
ContainerBlot.prototype.removeChild = function (child) {
this.children.remove(child);
};
ContainerBlot.prototype.replace = function (target) {
if (target instanceof ContainerBlot) {
target.moveChildren(this);
}
_super.prototype.replace.call(this, target);
};
ContainerBlot.prototype.split = function (index, force) {
if (force === void 0) { force = false; }
if (!force) {
if (index === 0)
return this;
if (index === this.length())
return this.next;
}
var after = this.clone();
this.parent.insertBefore(after, this.next);
this.children.forEachAt(index, this.length(), function (child, offset, length) {
child = child.split(offset, force);
after.appendChild(child);
});
return after;
};
ContainerBlot.prototype.unwrap = function () {
this.moveChildren(this.parent, this.next);
this.remove();
};
ContainerBlot.prototype.update = function (mutations, context) {
var _this = this;
var addedNodes = [];
var removedNodes = [];
mutations.forEach(function (mutation) {
if (mutation.target === _this.domNode && mutation.type === 'childList') {
addedNodes.push.apply(addedNodes, mutation.addedNodes);
removedNodes.push.apply(removedNodes, mutation.removedNodes);
}
});
removedNodes.forEach(function (node) {
// Check node has actually been removed
// One exception is Chrome does not immediately remove IFRAMEs
// from DOM but MutationRecord is correct in its reported removal
if (node.parentNode != null &&
// @ts-ignore
node.tagName !== 'IFRAME' &&
document.body.compareDocumentPosition(node) & Node.DOCUMENT_POSITION_CONTAINED_BY) {
return;
}
var blot = Registry.find(node);
if (blot == null)
return;
if (blot.domNode.parentNode == null || blot.domNode.parentNode === _this.domNode) {
blot.detach();
}
});
addedNodes
.filter(function (node) {
return node.parentNode == _this.domNode;
})
.sort(function (a, b) {
if (a === b)
return 0;
if (a.compareDocumentPosition(b) & Node.DOCUMENT_POSITION_FOLLOWING) {
return 1;
}
return -1;
})
.forEach(function (node) {
var refBlot = null;
if (node.nextSibling != null) {
refBlot = Registry.find(node.nextSibling);
}
var blot = makeBlot(node);
if (blot.next != refBlot || blot.next == null) {
if (blot.parent != null) {
blot.parent.removeChild(_this);
}
_this.insertBefore(blot, refBlot || undefined);
}
});
};
return ContainerBlot;
}(shadow_1.default));
function makeBlot(node) {
var blot = Registry.find(node);
if (blot == null) {
try {
blot = Registry.create(node);
}
catch (e) {
blot = Registry.create(Registry.Scope.INLINE);
[].slice.call(node.childNodes).forEach(function (child) {
// @ts-ignore
blot.domNode.appendChild(child);
});
if (node.parentNode) {
node.parentNode.replaceChild(blot.domNode, node);
}
blot.attach();
}
}
return blot;
}
exports.default = ContainerBlot;
/***/ }),
/* 18 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var __extends = (this && this.__extends) || (function () {
var extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
return function (d, b) {
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
Object.defineProperty(exports, "__esModule", { value: true });
var attributor_1 = __webpack_require__(12);
var store_1 = __webpack_require__(31);
var container_1 = __webpack_require__(17);
var Registry = __webpack_require__(1);
var FormatBlot = /** @class */ (function (_super) {
__extends(FormatBlot, _super);
function FormatBlot(domNode) {
var _this = _super.call(this, domNode) || this;
_this.attributes = new store_1.default(_this.domNode);
return _this;
}
FormatBlot.formats = function (domNode) {
if (typeof this.tagName === 'string') {
return true;
}
else if (Array.isArray(this.tagName)) {
return domNode.tagName.toLowerCase();
}
return undefined;
};
FormatBlot.prototype.format = function (name, value) {
var format = Registry.query(name);
if (format instanceof attributor_1.default) {
this.attributes.attribute(format, value);
}
else if (value) {
if (format != null && (name !== this.statics.blotName || this.formats()[name] !== value)) {
this.replaceWith(name, value);
}
}
};
FormatBlot.prototype.formats = function () {
var formats = this.attributes.values();
var format = this.statics.formats(this.domNode);
if (format != null) {
formats[this.statics.blotName] = format;
}
return formats;
};
FormatBlot.prototype.replaceWith = function (name, value) {
var replacement = _super.prototype.replaceWith.call(this, name, value);
this.attributes.copy(replacement);
return replacement;
};
FormatBlot.prototype.update = function (mutations, context) {
var _this = this;
_super.prototype.update.call(this, mutations, context);
if (mutations.some(function (mutation) {
return mutation.target === _this.domNode && mutation.type === 'attributes';
})) {
this.attributes.build();
}
};
FormatBlot.prototype.wrap = function (name, value) {
var wrapper = _super.prototype.wrap.call(this, name, value);
if (wrapper instanceof FormatBlot && wrapper.statics.scope === this.statics.scope) {
this.attributes.move(wrapper);
}
return wrapper;
};
return FormatBlot;
}(container_1.default));
exports.default = FormatBlot;
/***/ }),
/* 19 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var __extends = (this && this.__extends) || (function () {
var extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
return function (d, b) {
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
Object.defineProperty(exports, "__esModule", { value: true });
var shadow_1 = __webpack_require__(30);
var Registry = __webpack_require__(1);
var LeafBlot = /** @class */ (function (_super) {
__extends(LeafBlot, _super);
function LeafBlot() {
return _super !== null && _super.apply(this, arguments) || this;
}
LeafBlot.value = function (domNode) {
return true;
};
LeafBlot.prototype.index = function (node, offset) {
if (this.domNode === node ||
this.domNode.compareDocumentPosition(node) & Node.DOCUMENT_POSITION_CONTAINED_BY) {
return Math.min(offset, 1);
}
return -1;
};
LeafBlot.prototype.position = function (index, inclusive) {
var offset = [].indexOf.call(this.parent.domNode.childNodes, this.domNode);
if (index > 0)
offset += 1;
return [this.parent.domNode, offset];
};
LeafBlot.prototype.value = function () {
return _a = {}, _a[this.statics.blotName] = this.statics.value(this.domNode) || true, _a;
var _a;
};
LeafBlot.scope = Registry.Scope.INLINE_BLOT;
return LeafBlot;
}(shadow_1.default));
exports.default = LeafBlot;
/***/ }),
/* 20 */
/***/ (function(module, exports, __webpack_require__) {
var equal = __webpack_require__(11);
var extend = __webpack_require__(3);
var lib = {
attributes: {
compose: function (a, b, keepNull) {
if (typeof a !== 'object') a = {};
if (typeof b !== 'object') b = {};
var attributes = extend(true, {}, b);
if (!keepNull) {
attributes = Object.keys(attributes).reduce(function (copy, key) {
if (attributes[key] != null) {
copy[key] = attributes[key];
}
return copy;
}, {});
}
for (var key in a) {
if (a[key] !== undefined && b[key] === undefined) {
attributes[key] = a[key];
}
}
return Object.keys(attributes).length > 0 ? attributes : undefined;
},
diff: function(a, b) {
if (typeof a !== 'object') a = {};
if (typeof b !== 'object') b = {};
var attributes = Object.keys(a).concat(Object.keys(b)).reduce(function (attributes, key) {
if (!equal(a[key], b[key])) {
attributes[key] = b[key] === undefined ? null : b[key];
}
return attributes;
}, {});
return Object.keys(attributes).length > 0 ? attributes : undefined;
},
transform: function (a, b, priority) {
if (typeof a !== 'object') return b;
if (typeof b !== 'object') return undefined;
if (!priority) return b; // b simply overwrites us without priority
var attributes = Object.keys(b).reduce(function (attributes, key) {
if (a[key] === undefined) attributes[key] = b[key]; // null is a valid value
return attributes;
}, {});
return Object.keys(attributes).length > 0 ? attributes : undefined;
}
},
iterator: function (ops) {
return new Iterator(ops);
},
length: function (op) {
if (typeof op['delete'] === 'number') {
return op['delete'];
} else if (typeof op.retain === 'number') {
return op.retain;
} else {
return typeof op.insert === 'string' ? op.insert.length : 1;
}
}
};
function Iterator(ops) {
this.ops = ops;
this.index = 0;
this.offset = 0;
};
Iterator.prototype.hasNext = function () {
return this.peekLength() < Infinity;
};
Iterator.prototype.next = function (length) {
if (!length) length = Infinity;
var nextOp = this.ops[this.index];
if (nextOp) {
var offset = this.offset;
var opLength = lib.length(nextOp)
if (length >= opLength - offset) {
length = opLength - offset;
this.index += 1;
this.offset = 0;
} else {
this.offset += length;
}
if (typeof nextOp['delete'] === 'number') {
return { 'delete': length };
} else {
var retOp = {};
if (nextOp.attributes) {
retOp.attributes = nextOp.attributes;
}
if (typeof nextOp.retain === 'number') {
retOp.retain = length;
} else if (typeof nextOp.insert === 'string') {
retOp.insert = nextOp.insert.substr(offset, length);
} else {
// offset should === 0, length should === 1
retOp.insert = nextOp.insert;
}
return retOp;
}
} else {
return { retain: Infinity };
}
};
Iterator.prototype.peek = function () {
return this.ops[this.index];
};
Iterator.prototype.peekLength = function () {
if (this.ops[this.index]) {
// Should never return 0 if our index is being managed correctly
return lib.length(this.ops[this.index]) - this.offset;
} else {
return Infinity;
}
};
Iterator.prototype.peekType = function () {
if (this.ops[this.index]) {
if (typeof this.ops[this.index]['delete'] === 'number') {
return 'delete';
} else if (typeof this.ops[this.index].retain === 'number') {
return 'retain';
} else {
return 'insert';
}
}
return 'retain';
};
module.exports = lib;
/***/ }),
/* 21 */
/***/ (function(module, exports) {
var clone = (function() {
'use strict';
function _instanceof(obj, type) {
return type != null && obj instanceof type;
}
var nativeMap;
try {
nativeMap = Map;
} catch(_) {
// maybe a reference error because no `Map`. Give it a dummy value that no
// value will ever be an instanceof.
nativeMap = function() {};
}
var nativeSet;
try {
nativeSet = Set;
} catch(_) {
nativeSet = function() {};
}
var nativePromise;
try {
nativePromise = Promise;
} catch(_) {
nativePromise = function() {};
}
/**
* Clones (copies) an Object using deep copying.
*
* This function supports circular references by default, but if you are certain
* there are no circular references in your object, you can save some CPU time
* by calling clone(obj, false).
*
* Caution: if `circular` is false and `parent` contains circular references,
* your program may enter an infinite loop and crash.
*
* @param `parent` - the object to be cloned
* @param `circular` - set to true if the object to be cloned may contain
* circular references. (optional - true by default)
* @param `depth` - set to a number if the object is only to be cloned to
* a particular depth. (optional - defaults to Infinity)
* @param `prototype` - sets the prototype to be used when cloning an object.
* (optional - defaults to parent prototype).
* @param `includeNonEnumerable` - set to true if the non-enumerable properties
* should be cloned as well. Non-enumerable properties on the prototype
* chain will be ignored. (optional - false by default)
*/
function clone(parent, circular, depth, prototype, includeNonEnumerable) {
if (typeof circular === 'object') {
depth = circular.depth;
prototype = circular.prototype;
includeNonEnumerable = circular.includeNonEnumerable;
circular = circular.circular;
}
// maintain two arrays for circular references, where corresponding parents
// and children have the same index
var allParents = [];
var allChildren = [];
var useBuffer = typeof Buffer != 'undefined';
if (typeof circular == 'undefined')
circular = true;
if (typeof depth == 'undefined')
depth = Infinity;
// recurse this function so we don't reset allParents and allChildren
function _clone(parent, depth) {
// cloning null always returns null
if (parent === null)
return null;
if (depth === 0)
return parent;
var child;
var proto;
if (typeof parent != 'object') {
return parent;
}
if (_instanceof(parent, nativeMap)) {
child = new nativeMap();
} else if (_instanceof(parent, nativeSet)) {
child = new nativeSet();
} else if (_instanceof(parent, nativePromise)) {
child = new nativePromise(function (resolve, reject) {
parent.then(function(value) {
resolve(_clone(value, depth - 1));
}, function(err) {
reject(_clone(err, depth - 1));
});
});
} else if (clone.__isArray(parent)) {
child = [];
} else if (clone.__isRegExp(parent)) {
child = new RegExp(parent.source, __getRegExpFlags(parent));
if (parent.lastIndex) child.lastIndex = parent.lastIndex;
} else if (clone.__isDate(parent)) {
child = new Date(parent.getTime());
} else if (useBuffer && Buffer.isBuffer(parent)) {
child = new Buffer(parent.length);
parent.copy(child);
return child;
} else if (_instanceof(parent, Error)) {
child = Object.create(parent);
} else {
if (typeof prototype == 'undefined') {
proto = Object.getPrototypeOf(parent);
child = Object.create(proto);
}
else {
child = Object.create(prototype);
proto = prototype;
}
}
if (circular) {
var index = allParents.indexOf(parent);
if (index != -1) {
return allChildren[index];
}
allParents.push(parent);
allChildren.push(child);
}
if (_instanceof(parent, nativeMap)) {
parent.forEach(function(value, key) {
var keyChild = _clone(key, depth - 1);
var valueChild = _clone(value, depth - 1);
child.set(keyChild, valueChild);
});
}
if (_instanceof(parent, nativeSet)) {
parent.forEach(function(value) {
var entryChild = _clone(value, depth - 1);
child.add(entryChild);
});
}
for (var i in parent) {
var attrs;
if (proto) {
attrs = Object.getOwnPropertyDescriptor(proto, i);
}
if (attrs && attrs.set == null) {
continue;
}
child[i] = _clone(parent[i], depth - 1);
}
if (Object.getOwnPropertySymbols) {
var symbols = Object.getOwnPropertySymbols(parent);
for (var i = 0; i < symbols.length; i++) {
// Don't need to worry about cloning a symbol because it is a primitive,
// like a number or string.
var symbol = symbols[i];
var descriptor = Object.getOwnPropertyDescriptor(parent, symbol);
if (descriptor && !descriptor.enumerable && !includeNonEnumerable) {
continue;
}
child[symbol] = _clone(parent[symbol], depth - 1);
if (!descriptor.enumerable) {
Object.defineProperty(child, symbol, {
enumerable: false
});
}
}
}
if (includeNonEnumerable) {
var allPropertyNames = Object.getOwnPropertyNames(parent);
for (var i = 0; i < allPropertyNames.length; i++) {
var propertyName = allPropertyNames[i];
var descriptor = Object.getOwnPropertyDescriptor(parent, propertyName);
if (descriptor && descriptor.enumerable) {
continue;
}
child[propertyName] = _clone(parent[propertyName], depth - 1);
Object.defineProperty(child, propertyName, {
enumerable: false
});
}
}
return child;
}
return _clone(parent, depth);
}
/**
* Simple flat clone using prototype, accepts only objects, usefull for property
* override on FLAT configuration object (no nested props).
*
* USE WITH CAUTION! This may not behave as you wish if you do not know how this
* works.
*/
clone.clonePrototype = function clonePrototype(parent) {
if (parent === null)
return null;
var c = function () {};
c.prototype = parent;
return new c();
};
// private utility functions
function __objToStr(o) {
return Object.prototype.toString.call(o);
}
clone.__objToStr = __objToStr;
function __isDate(o) {
return typeof o === 'object' && __objToStr(o) === '[object Date]';
}
clone.__isDate = __isDate;
function __isArray(o) {
return typeof o === 'object' && __objToStr(o) === '[object Array]';
}
clone.__isArray = __isArray;
function __isRegExp(o) {
return typeof o === 'object' && __objToStr(o) === '[object RegExp]';
}
clone.__isRegExp = __isRegExp;
function __getRegExpFlags(re) {
var flags = '';
if (re.global) flags += 'g';
if (re.ignoreCase) flags += 'i';
if (re.multiline) flags += 'm';
return flags;
}
clone.__getRegExpFlags = __getRegExpFlags;
return clone;
})();
if (typeof module === 'object' && module.exports) {
module.exports = clone;
}
/***/ }),
/* 22 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }();
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
var _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if ("value" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };
var _parchment = __webpack_require__(0);
var _parchment2 = _interopRequireDefault(_parchment);
var _emitter = __webpack_require__(8);
var _emitter2 = _interopRequireDefault(_emitter);
var _block = __webpack_require__(4);
var _block2 = _interopRequireDefault(_block);
var _break = __webpack_require__(16);
var _break2 = _interopRequireDefault(_break);
var _code = __webpack_require__(13);
var _code2 = _interopRequireDefault(_code);
var _container = __webpack_require__(25);
var _container2 = _interopRequireDefault(_container);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
function isLine(blot) {
return blot instanceof _block2.default || blot instanceof _block.BlockEmbed;
}
var Scroll = function (_Parchment$Scroll) {
_inherits(Scroll, _Parchment$Scroll);
function Scroll(domNode, config) {
_classCallCheck(this, Scroll);
var _this = _possibleConstructorReturn(this, (Scroll.__proto__ || Object.getPrototypeOf(Scroll)).call(this, domNode));
_this.emitter = config.emitter;
if (Array.isArray(config.whitelist)) {
_this.whitelist = config.whitelist.reduce(function (whitelist, format) {
whitelist[format] = true;
return whitelist;
}, {});
}
// Some reason fixes composition issues with character languages in Windows/Chrome, Safari
_this.domNode.addEventListener('DOMNodeInserted', function () {});
_this.optimize();
_this.enable();
return _this;
}
_createClass(Scroll, [{
key: 'batchStart',
value: function batchStart() {
this.batch = true;
}
}, {
key: 'batchEnd',
value: function batchEnd() {
this.batch = false;
this.optimize();
}
}, {
key: 'deleteAt',
value: function deleteAt(index, length) {
var _line = this.line(index),
_line2 = _slicedToArray(_line, 2),
first = _line2[0],
offset = _line2[1];
var _line3 = this.line(index + length),
_line4 = _slicedToArray(_line3, 1),
last = _line4[0];
_get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'deleteAt', this).call(this, index, length);
if (last != null && first !== last && offset > 0) {
if (first instanceof _block.BlockEmbed || last instanceof _block.BlockEmbed) {
this.optimize();
return;
}
if (first instanceof _code2.default) {
var newlineIndex = first.newlineIndex(first.length(), true);
if (newlineIndex > -1) {
first = first.split(newlineIndex + 1);
if (first === last) {
this.optimize();
return;
}
}
} else if (last instanceof _code2.default) {
var _newlineIndex = last.newlineIndex(0);
if (_newlineIndex > -1) {
last.split(_newlineIndex + 1);
}
}
var ref = last.children.head instanceof _break2.default ? null : last.children.head;
first.moveChildren(last, ref);
first.remove();
}
this.optimize();
}
}, {
key: 'enable',
value: function enable() {
var enabled = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
this.domNode.setAttribute('contenteditable', enabled);
}
}, {
key: 'formatAt',
value: function formatAt(index, length, format, value) {
if (this.whitelist != null && !this.whitelist[format]) return;
_get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'formatAt', this).call(this, index, length, format, value);
this.optimize();
}
}, {
key: 'insertAt',
value: function insertAt(index, value, def) {
if (def != null && this.whitelist != null && !this.whitelist[value]) return;
if (index >= this.length()) {
if (def == null || _parchment2.default.query(value, _parchment2.default.Scope.BLOCK) == null) {
var blot = _parchment2.default.create(this.statics.defaultChild);
this.appendChild(blot);
if (def == null && value.endsWith('\n')) {
value = value.slice(0, -1);
}
blot.insertAt(0, value, def);
} else {
var embed = _parchment2.default.create(value, def);
this.appendChild(embed);
}
} else {
_get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'insertAt', this).call(this, index, value, def);
}
this.optimize();
}
}, {
key: 'insertBefore',
value: function insertBefore(blot, ref) {
if (blot.statics.scope === _parchment2.default.Scope.INLINE_BLOT) {
var wrapper = _parchment2.default.create(this.statics.defaultChild);
wrapper.appendChild(blot);
blot = wrapper;
}
_get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'insertBefore', this).call(this, blot, ref);
}
}, {
key: 'leaf',
value: function leaf(index) {
return this.path(index).pop() || [null, -1];
}
}, {
key: 'line',
value: function line(index) {
if (index === this.length()) {
return this.line(index - 1);
}
return this.descendant(isLine, index);
}
}, {
key: 'lines',
value: function lines() {
var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : Number.MAX_VALUE;
var getLines = function getLines(blot, index, length) {
var lines = [],
lengthLeft = length;
blot.children.forEachAt(index, length, function (child, index, length) {
if (isLine(child)) {
lines.push(child);
} else if (child instanceof _parchment2.default.Container) {
lines = lines.concat(getLines(child, index, lengthLeft));
}
lengthLeft -= length;
});
return lines;
};
return getLines(this, index, length);
}
}, {
key: 'optimize',
value: function optimize() {
var mutations = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
var context = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
if (this.batch === true) return;
_get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'optimize', this).call(this, mutations, context);
if (mutations.length > 0) {
this.emitter.emit(_emitter2.default.events.SCROLL_OPTIMIZE, mutations, context);
}
}
}, {
key: 'path',
value: function path(index) {
return _get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'path', this).call(this, index).slice(1); // Exclude self
}
}, {
key: 'update',
value: function update(mutations) {
if (this.batch === true) return;
var source = _emitter2.default.sources.USER;
if (typeof mutations === 'string') {
source = mutations;
}
if (!Array.isArray(mutations)) {
mutations = this.observer.takeRecords();
}
if (mutations.length > 0) {
this.emitter.emit(_emitter2.default.events.SCROLL_BEFORE_UPDATE, source, mutations);
}
_get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'update', this).call(this, mutations.concat([])); // pass copy
if (mutations.length > 0) {
this.emitter.emit(_emitter2.default.events.SCROLL_UPDATE, source, mutations);
}
}
}]);
return Scroll;
}(_parchment2.default.Scroll);
Scroll.blotName = 'scroll';
Scroll.className = 'ql-editor';
Scroll.tagName = 'DIV';
Scroll.defaultChild = 'block';
Scroll.allowedChildren = [_block2.default, _block.BlockEmbed, _container2.default];
exports.default = Scroll;
/***/ }),
/* 23 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.SHORTKEY = exports.default = undefined;
var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }();
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
var _clone = __webpack_require__(21);
var _clone2 = _interopRequireDefault(_clone);
var _deepEqual = __webpack_require__(11);
var _deepEqual2 = _interopRequireDefault(_deepEqual);
var _extend = __webpack_require__(3);
var _extend2 = _interopRequireDefault(_extend);
var _quillDelta = __webpack_require__(2);
var _quillDelta2 = _interopRequireDefault(_quillDelta);
var _op = __webpack_require__(20);
var _op2 = _interopRequireDefault(_op);
var _parchment = __webpack_require__(0);
var _parchment2 = _interopRequireDefault(_parchment);
var _quill = __webpack_require__(5);
var _quill2 = _interopRequireDefault(_quill);
var _logger = __webpack_require__(10);
var _logger2 = _interopRequireDefault(_logger);
var _module = __webpack_require__(9);
var _module2 = _interopRequireDefault(_module);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
var debug = (0, _logger2.default)('quill:keyboard');
var SHORTKEY = /Mac/i.test(navigator.platform) ? 'metaKey' : 'ctrlKey';
var Keyboard = function (_Module) {
_inherits(Keyboard, _Module);
_createClass(Keyboard, null, [{
key: 'match',
value: function match(evt, binding) {
binding = normalize(binding);
if (['altKey', 'ctrlKey', 'metaKey', 'shiftKey'].some(function (key) {
return !!binding[key] !== evt[key] && binding[key] !== null;
})) {
return false;
}
return binding.key === (evt.which || evt.keyCode);
}
}]);
function Keyboard(quill, options) {
_classCallCheck(this, Keyboard);
var _this = _possibleConstructorReturn(this, (Keyboard.__proto__ || Object.getPrototypeOf(Keyboard)).call(this, quill, options));
_this.bindings = {};
Object.keys(_this.options.bindings).forEach(function (name) {
if (name === 'list autofill' && quill.scroll.whitelist != null && !quill.scroll.whitelist['list']) {
return;
}
if (_this.options.bindings[name]) {
_this.addBinding(_this.options.bindings[name]);
}
});
_this.addBinding({ key: Keyboard.keys.ENTER, shiftKey: null }, handleEnter);
_this.addBinding({ key: Keyboard.keys.ENTER, metaKey: null, ctrlKey: null, altKey: null }, function () {});
if (/Firefox/i.test(navigator.userAgent)) {
// Need to handle delete and backspace for Firefox in the general case #1171
_this.addBinding({ key: Keyboard.keys.BACKSPACE }, { collapsed: true }, handleBackspace);
_this.addBinding({ key: Keyboard.keys.DELETE }, { collapsed: true }, handleDelete);
} else {
_this.addBinding({ key: Keyboard.keys.BACKSPACE }, { collapsed: true, prefix: /^.?$/ }, handleBackspace);
_this.addBinding({ key: Keyboard.keys.DELETE }, { collapsed: true, suffix: /^.?$/ }, handleDelete);
}
_this.addBinding({ key: Keyboard.keys.BACKSPACE }, { collapsed: false }, handleDeleteRange);
_this.addBinding({ key: Keyboard.keys.DELETE }, { collapsed: false }, handleDeleteRange);
_this.addBinding({ key: Keyboard.keys.BACKSPACE, altKey: null, ctrlKey: null, metaKey: null, shiftKey: null }, { collapsed: true, offset: 0 }, handleBackspace);
_this.listen();
return _this;
}
_createClass(Keyboard, [{
key: 'addBinding',
value: function addBinding(key) {
var context = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
var handler = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
var binding = normalize(key);
if (binding == null || binding.key == null) {
return debug.warn('Attempted to add invalid keyboard binding', binding);
}
if (typeof context === 'function') {
context = { handler: context };
}
if (typeof handler === 'function') {
handler = { handler: handler };
}
binding = (0, _extend2.default)(binding, context, handler);
this.bindings[binding.key] = this.bindings[binding.key] || [];
this.bindings[binding.key].push(binding);
}
}, {
key: 'listen',
value: function listen() {
var _this2 = this;
this.quill.root.addEventListener('keydown', function (evt) {
if (evt.defaultPrevented) return;
var which = evt.which || evt.keyCode;
var bindings = (_this2.bindings[which] || []).filter(function (binding) {
return Keyboard.match(evt, binding);
});
if (bindings.length === 0) return;
var range = _this2.quill.getSelection();
if (range == null || !_this2.quill.hasFocus()) return;
var _quill$getLine = _this2.quill.getLine(range.index),
_quill$getLine2 = _slicedToArray(_quill$getLine, 2),
line = _quill$getLine2[0],
offset = _quill$getLine2[1];
var _quill$getLeaf = _this2.quill.getLeaf(range.index),
_quill$getLeaf2 = _slicedToArray(_quill$getLeaf, 2),
leafStart = _quill$getLeaf2[0],
offsetStart = _quill$getLeaf2[1];
var _ref = range.length === 0 ? [leafStart, offsetStart] : _this2.quill.getLeaf(range.index + range.length),
_ref2 = _slicedToArray(_ref, 2),
leafEnd = _ref2[0],
offsetEnd = _ref2[1];
var prefixText = leafStart instanceof _parchment2.default.Text ? leafStart.value().slice(0, offsetStart) : '';
var suffixText = leafEnd instanceof _parchment2.default.Text ? leafEnd.value().slice(offsetEnd) : '';
var curContext = {
collapsed: range.length === 0,
empty: range.length === 0 && line.length() <= 1,
format: _this2.quill.getFormat(range),
offset: offset,
prefix: prefixText,
suffix: suffixText
};
var prevented = bindings.some(function (binding) {
if (binding.collapsed != null && binding.collapsed !== curContext.collapsed) return false;
if (binding.empty != null && binding.empty !== curContext.empty) return false;
if (binding.offset != null && binding.offset !== curContext.offset) return false;
if (Array.isArray(binding.format)) {
// any format is present
if (binding.format.every(function (name) {
return curContext.format[name] == null;
})) {
return false;
}
} else if (_typeof(binding.format) === 'object') {
// all formats must match
if (!Object.keys(binding.format).every(function (name) {
if (binding.format[name] === true) return curContext.format[name] != null;
if (binding.format[name] === false) return curContext.format[name] == null;
return (0, _deepEqual2.default)(binding.format[name], curContext.format[name]);
})) {
return false;
}
}
if (binding.prefix != null && !binding.prefix.test(curContext.prefix)) return false;
if (binding.suffix != null && !binding.suffix.test(curContext.suffix)) return false;
return binding.handler.call(_this2, range, curContext) !== true;
});
if (prevented) {
evt.preventDefault();
}
});
}
}]);
return Keyboard;
}(_module2.default);
Keyboard.keys = {
BACKSPACE: 8,
TAB: 9,
ENTER: 13,
ESCAPE: 27,
LEFT: 37,
UP: 38,
RIGHT: 39,
DOWN: 40,
DELETE: 46
};
Keyboard.DEFAULTS = {
bindings: {
'bold': makeFormatHandler('bold'),
'italic': makeFormatHandler('italic'),
'underline': makeFormatHandler('underline'),
'indent': {
// highlight tab or tab at beginning of list, indent or blockquote
key: Keyboard.keys.TAB,
format: ['blockquote', 'indent', 'list'],
handler: function handler(range, context) {
if (context.collapsed && context.offset !== 0) return true;
this.quill.format('indent', '+1', _quill2.default.sources.USER);
}
},
'outdent': {
key: Keyboard.keys.TAB,
shiftKey: true,
format: ['blockquote', 'indent', 'list'],
// highlight tab or tab at beginning of list, indent or blockquote
handler: function handler(range, context) {
if (context.collapsed && context.offset !== 0) return true;
this.quill.format('indent', '-1', _quill2.default.sources.USER);
}
},
'outdent backspace': {
key: Keyboard.keys.BACKSPACE,
collapsed: true,
shiftKey: null,
metaKey: null,
ctrlKey: null,
altKey: null,
format: ['indent', 'list'],
offset: 0,
handler: function handler(range, context) {
if (context.format.indent != null) {
this.quill.format('indent', '-1', _quill2.default.sources.USER);
} else if (context.format.list != null) {
this.quill.format('list', false, _quill2.default.sources.USER);
}
}
},
'indent code-block': makeCodeBlockHandler(true),
'outdent code-block': makeCodeBlockHandler(false),
'remove tab': {
key: Keyboard.keys.TAB,
shiftKey: true,
collapsed: true,
prefix: /\t$/,
handler: function handler(range) {
this.quill.deleteText(range.index - 1, 1, _quill2.default.sources.USER);
}
},
'tab': {
key: Keyboard.keys.TAB,
handler: function handler(range) {
this.quill.history.cutoff();
var delta = new _quillDelta2.default().retain(range.index).delete(range.length).insert('\t');
this.quill.updateContents(delta, _quill2.default.sources.USER);
this.quill.history.cutoff();
this.quill.setSelection(range.index + 1, _quill2.default.sources.SILENT);
}
},
'list empty enter': {
key: Keyboard.keys.ENTER,
collapsed: true,
format: ['list'],
empty: true,
handler: function handler(range, context) {
this.quill.format('list', false, _quill2.default.sources.USER);
if (context.format.indent) {
this.quill.format('indent', false, _quill2.default.sources.USER);
}
}
},
'checklist enter': {
key: Keyboard.keys.ENTER,
collapsed: true,
format: { list: 'checked' },
handler: function handler(range) {
var _quill$getLine3 = this.quill.getLine(range.index),
_quill$getLine4 = _slicedToArray(_quill$getLine3, 2),
line = _quill$getLine4[0],
offset = _quill$getLine4[1];
var formats = (0, _extend2.default)({}, line.formats(), { list: 'checked' });
var delta = new _quillDelta2.default().retain(range.index).insert('\n', formats).retain(line.length() - offset - 1).retain(1, { list: 'unchecked' });
this.quill.updateContents(delta, _quill2.default.sources.USER);
this.quill.setSelection(range.index + 1, _quill2.default.sources.SILENT);
this.quill.scrollIntoView();
}
},
'header enter': {
key: Keyboard.keys.ENTER,
collapsed: true,
format: ['header'],
suffix: /^$/,
handler: function handler(range, context) {
var _quill$getLine5 = this.quill.getLine(range.index),
_quill$getLine6 = _slicedToArray(_quill$getLine5, 2),
line = _quill$getLine6[0],
offset = _quill$getLine6[1];
var delta = new _quillDelta2.default().retain(range.index).insert('\n', context.format).retain(line.length() - offset - 1).retain(1, { header: null });
this.quill.updateContents(delta, _quill2.default.sources.USER);
this.quill.setSelection(range.index + 1, _quill2.default.sources.SILENT);
this.quill.scrollIntoView();
}
},
'list autofill': {
key: ' ',
collapsed: true,
format: { list: false },
prefix: /^\s*?(\d+\.|-|\*|\[ ?\]|\[x\])$/,
handler: function handler(range, context) {
var length = context.prefix.length;
var _quill$getLine7 = this.quill.getLine(range.index),
_quill$getLine8 = _slicedToArray(_quill$getLine7, 2),
line = _quill$getLine8[0],
offset = _quill$getLine8[1];
if (offset > length) return true;
var value = void 0;
switch (context.prefix.trim()) {
case '[]':case '[ ]':
value = 'unchecked';
break;
case '[x]':
value = 'checked';
break;
case '-':case '*':
value = 'bullet';
break;
default:
value = 'ordered';
}
this.quill.insertText(range.index, ' ', _quill2.default.sources.USER);
this.quill.history.cutoff();
var delta = new _quillDelta2.default().retain(range.index - offset).delete(length + 1).retain(line.length() - 2 - offset).retain(1, { list: value });
this.quill.updateContents(delta, _quill2.default.sources.USER);
this.quill.history.cutoff();
this.quill.setSelection(range.index - length, _quill2.default.sources.SILENT);
}
},
'code exit': {
key: Keyboard.keys.ENTER,
collapsed: true,
format: ['code-block'],
prefix: /\n\n$/,
suffix: /^\s+$/,
handler: function handler(range) {
var _quill$getLine9 = this.quill.getLine(range.index),
_quill$getLine10 = _slicedToArray(_quill$getLine9, 2),
line = _quill$getLine10[0],
offset = _quill$getLine10[1];
var delta = new _quillDelta2.default().retain(range.index + line.length() - offset - 2).retain(1, { 'code-block': null }).delete(1);
this.quill.updateContents(delta, _quill2.default.sources.USER);
}
},
'embed left': makeEmbedArrowHandler(Keyboard.keys.LEFT, false),
'embed left shift': makeEmbedArrowHandler(Keyboard.keys.LEFT, true),
'embed right': makeEmbedArrowHandler(Keyboard.keys.RIGHT, false),
'embed right shift': makeEmbedArrowHandler(Keyboard.keys.RIGHT, true)
}
};
function makeEmbedArrowHandler(key, shiftKey) {
var _ref3;
var where = key === Keyboard.keys.LEFT ? 'prefix' : 'suffix';
return _ref3 = {
key: key,
shiftKey: shiftKey,
altKey: null
}, _defineProperty(_ref3, where, /^$/), _defineProperty(_ref3, 'handler', function handler(range) {
var index = range.index;
if (key === Keyboard.keys.RIGHT) {
index += range.length + 1;
}
var _quill$getLeaf3 = this.quill.getLeaf(index),
_quill$getLeaf4 = _slicedToArray(_quill$getLeaf3, 1),
leaf = _quill$getLeaf4[0];
if (!(leaf instanceof _parchment2.default.Embed)) return true;
if (key === Keyboard.keys.LEFT) {
if (shiftKey) {
this.quill.setSelection(range.index - 1, range.length + 1, _quill2.default.sources.USER);
} else {
this.quill.setSelection(range.index - 1, _quill2.default.sources.USER);
}
} else {
if (shiftKey) {
this.quill.setSelection(range.index, range.length + 1, _quill2.default.sources.USER);
} else {
this.quill.setSelection(range.index + range.length + 1, _quill2.default.sources.USER);
}
}
return false;
}), _ref3;
}
function handleBackspace(range, context) {
if (range.index === 0 || this.quill.getLength() <= 1) return;
var _quill$getLine11 = this.quill.getLine(range.index),
_quill$getLine12 = _slicedToArray(_quill$getLine11, 1),
line = _quill$getLine12[0];
var formats = {};
if (context.offset === 0) {
var _quill$getLine13 = this.quill.getLine(range.index - 1),
_quill$getLine14 = _slicedToArray(_quill$getLine13, 1),
prev = _quill$getLine14[0];
if (prev != null && prev.length() > 1) {
var curFormats = line.formats();
var prevFormats = this.quill.getFormat(range.index - 1, 1);
formats = _op2.default.attributes.diff(curFormats, prevFormats) || {};
}
}
// Check for astral symbols
var length = /[\uD800-\uDBFF][\uDC00-\uDFFF]$/.test(context.prefix) ? 2 : 1;
this.quill.deleteText(range.index - length, length, _quill2.default.sources.USER);
if (Object.keys(formats).length > 0) {
this.quill.formatLine(range.index - length, length, formats, _quill2.default.sources.USER);
}
this.quill.focus();
}
function handleDelete(range, context) {
// Check for astral symbols
var length = /^[\uD800-\uDBFF][\uDC00-\uDFFF]/.test(context.suffix) ? 2 : 1;
if (range.index >= this.quill.getLength() - length) return;
var formats = {},
nextLength = 0;
var _quill$getLine15 = this.quill.getLine(range.index),
_quill$getLine16 = _slicedToArray(_quill$getLine15, 1),
line = _quill$getLine16[0];
if (context.offset >= line.length() - 1) {
var _quill$getLine17 = this.quill.getLine(range.index + 1),
_quill$getLine18 = _slicedToArray(_quill$getLine17, 1),
next = _quill$getLine18[0];
if (next) {
var curFormats = line.formats();
var nextFormats = this.quill.getFormat(range.index, 1);
formats = _op2.default.attributes.diff(curFormats, nextFormats) || {};
nextLength = next.length();
}
}
this.quill.deleteText(range.index, length, _quill2.default.sources.USER);
if (Object.keys(formats).length > 0) {
this.quill.formatLine(range.index + nextLength - 1, length, formats, _quill2.default.sources.USER);
}
}
function handleDeleteRange(range) {
var lines = this.quill.getLines(range);
var formats = {};
if (lines.length > 1) {
var firstFormats = lines[0].formats();
var lastFormats = lines[lines.length - 1].formats();
formats = _op2.default.attributes.diff(lastFormats, firstFormats) || {};
}
this.quill.deleteText(range, _quill2.default.sources.USER);
if (Object.keys(formats).length > 0) {
this.quill.formatLine(range.index, 1, formats, _quill2.default.sources.USER);
}
this.quill.setSelection(range.index, _quill2.default.sources.SILENT);
this.quill.focus();
}
function handleEnter(range, context) {
var _this3 = this;
if (range.length > 0) {
this.quill.scroll.deleteAt(range.index, range.length); // So we do not trigger text-change
}
var lineFormats = Object.keys(context.format).reduce(function (lineFormats, format) {
if (_parchment2.default.query(format, _parchment2.default.Scope.BLOCK) && !Array.isArray(context.format[format])) {
lineFormats[format] = context.format[format];
}
return lineFormats;
}, {});
this.quill.insertText(range.index, '\n', lineFormats, _quill2.default.sources.USER);
// Earlier scroll.deleteAt might have messed up our selection,
// so insertText's built in selection preservation is not reliable
this.quill.setSelection(range.index + 1, _quill2.default.sources.SILENT);
this.quill.focus();
Object.keys(context.format).forEach(function (name) {
if (lineFormats[name] != null) return;
if (Array.isArray(context.format[name])) return;
if (name === 'link') return;
_this3.quill.format(name, context.format[name], _quill2.default.sources.USER);
});
}
function makeCodeBlockHandler(indent) {
return {
key: Keyboard.keys.TAB,
shiftKey: !indent,
format: { 'code-block': true },
handler: function handler(range) {
var CodeBlock = _parchment2.default.query('code-block');
var index = range.index,
length = range.length;
var _quill$scroll$descend = this.quill.scroll.descendant(CodeBlock, index),
_quill$scroll$descend2 = _slicedToArray(_quill$scroll$descend, 2),
block = _quill$scroll$descend2[0],
offset = _quill$scroll$descend2[1];
if (block == null) return;
var scrollIndex = this.quill.getIndex(block);
var start = block.newlineIndex(offset, true) + 1;
var end = block.newlineIndex(scrollIndex + offset + length);
var lines = block.domNode.textContent.slice(start, end).split('\n');
offset = 0;
lines.forEach(function (line, i) {
if (indent) {
block.insertAt(start + offset, CodeBlock.TAB);
offset += CodeBlock.TAB.length;
if (i === 0) {
index += CodeBlock.TAB.length;
} else {
length += CodeBlock.TAB.length;
}
} else if (line.startsWith(CodeBlock.TAB)) {
block.deleteAt(start + offset, CodeBlock.TAB.length);
offset -= CodeBlock.TAB.length;
if (i === 0) {
index -= CodeBlock.TAB.length;
} else {
length -= CodeBlock.TAB.length;
}
}
offset += line.length + 1;
});
this.quill.update(_quill2.default.sources.USER);
this.quill.setSelection(index, length, _quill2.default.sources.SILENT);
}
};
}
function makeFormatHandler(format) {
return {
key: format[0].toUpperCase(),
shortKey: true,
handler: function handler(range, context) {
this.quill.format(format, !context.format[format], _quill2.default.sources.USER);
}
};
}
function normalize(binding) {
if (typeof binding === 'string' || typeof binding === 'number') {
return normalize({ key: binding });
}
if ((typeof binding === 'undefined' ? 'undefined' : _typeof(binding)) === 'object') {
binding = (0, _clone2.default)(binding, false);
}
if (typeof binding.key === 'string') {
if (Keyboard.keys[binding.key.toUpperCase()] != null) {
binding.key = Keyboard.keys[binding.key.toUpperCase()];
} else if (binding.key.length === 1) {
binding.key = binding.key.toUpperCase().charCodeAt(0);
} else {
return null;
}
}
if (binding.shortKey) {
binding[SHORTKEY] = binding.shortKey;
delete binding.shortKey;
}
return binding;
}
exports.default = Keyboard;
exports.SHORTKEY = SHORTKEY;
/***/ }),
/* 24 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }();
var _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if ("value" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
var _parchment = __webpack_require__(0);
var _parchment2 = _interopRequireDefault(_parchment);
var _text = __webpack_require__(7);
var _text2 = _interopRequireDefault(_text);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
var Cursor = function (_Parchment$Embed) {
_inherits(Cursor, _Parchment$Embed);
_createClass(Cursor, null, [{
key: 'value',
value: function value() {
return undefined;
}
}]);
function Cursor(domNode, selection) {
_classCallCheck(this, Cursor);
var _this = _possibleConstructorReturn(this, (Cursor.__proto__ || Object.getPrototypeOf(Cursor)).call(this, domNode));
_this.selection = selection;
_this.textNode = document.createTextNode(Cursor.CONTENTS);
_this.domNode.appendChild(_this.textNode);
_this._length = 0;
return _this;
}
_createClass(Cursor, [{
key: 'detach',
value: function detach() {
// super.detach() will also clear domNode.__blot
if (this.parent != null) this.parent.removeChild(this);
}
}, {
key: 'format',
value: function format(name, value) {
if (this._length !== 0) {
return _get(Cursor.prototype.__proto__ || Object.getPrototypeOf(Cursor.prototype), 'format', this).call(this, name, value);
}
var target = this,
index = 0;
while (target != null && target.statics.scope !== _parchment2.default.Scope.BLOCK_BLOT) {
index += target.offset(target.parent);
target = target.parent;
}
if (target != null) {
this._length = Cursor.CONTENTS.length;
target.optimize();
target.formatAt(index, Cursor.CONTENTS.length, name, value);
this._length = 0;
}
}
}, {
key: 'index',
value: function index(node, offset) {
if (node === this.textNode) return 0;
return _get(Cursor.prototype.__proto__ || Object.getPrototypeOf(Cursor.prototype), 'index', this).call(this, node, offset);
}
}, {
key: 'length',
value: function length() {
return this._length;
}
}, {
key: 'position',
value: function position() {
return [this.textNode, this.textNode.data.length];
}
}, {
key: 'remove',
value: function remove() {
_get(Cursor.prototype.__proto__ || Object.getPrototypeOf(Cursor.prototype), 'remove', this).call(this);
this.parent = null;
}
}, {
key: 'restore',
value: function restore() {
if (this.selection.composing || this.parent == null) return;
var textNode = this.textNode;
var range = this.selection.getNativeRange();
var restoreText = void 0,
start = void 0,
end = void 0;
if (range != null && range.start.node === textNode && range.end.node === textNode) {
var _ref = [textNode, range.start.offset, range.end.offset];
restoreText = _ref[0];
start = _ref[1];
end = _ref[2];
}
// Link format will insert text outside of anchor tag
while (this.domNode.lastChild != null && this.domNode.lastChild !== this.textNode) {
this.domNode.parentNode.insertBefore(this.domNode.lastChild, this.domNode);
}
if (this.textNode.data !== Cursor.CONTENTS) {
var text = this.textNode.data.split(Cursor.CONTENTS).join('');
if (this.next instanceof _text2.default) {
restoreText = this.next.domNode;
this.next.insertAt(0, text);
this.textNode.data = Cursor.CONTENTS;
} else {
this.textNode.data = text;
this.parent.insertBefore(_parchment2.default.create(this.textNode), this);
this.textNode = document.createTextNode(Cursor.CONTENTS);
this.domNode.appendChild(this.textNode);
}
}
this.remove();
if (start != null) {
var _map = [start, end].map(function (offset) {
return Math.max(0, Math.min(restoreText.data.length, offset - 1));
});
var _map2 = _slicedToArray(_map, 2);
start = _map2[0];
end = _map2[1];
return {
startNode: restoreText,
startOffset: start,
endNode: restoreText,
endOffset: end
};
}
}
}, {
key: 'update',
value: function update(mutations, context) {
var _this2 = this;
if (mutations.some(function (mutation) {
return mutation.type === 'characterData' && mutation.target === _this2.textNode;
})) {
var range = this.restore();
if (range) context.range = range;
}
}
}, {
key: 'value',
value: function value() {
return '';
}
}]);
return Cursor;
}(_parchment2.default.Embed);
Cursor.blotName = 'cursor';
Cursor.className = 'ql-cursor';
Cursor.tagName = 'span';
Cursor.CONTENTS = '\uFEFF'; // Zero width no break space
exports.default = Cursor;
/***/ }),
/* 25 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
var _parchment = __webpack_require__(0);
var _parchment2 = _interopRequireDefault(_parchment);
var _block = __webpack_require__(4);
var _block2 = _interopRequireDefault(_block);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
var Container = function (_Parchment$Container) {
_inherits(Container, _Parchment$Container);
function Container() {
_classCallCheck(this, Container);
return _possibleConstructorReturn(this, (Container.__proto__ || Object.getPrototypeOf(Container)).apply(this, arguments));
}
return Container;
}(_parchment2.default.Container);
Container.allowedChildren = [_block2.default, _block.BlockEmbed, Container];
exports.default = Container;
/***/ }),
/* 26 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.ColorStyle = exports.ColorClass = exports.ColorAttributor = undefined;
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
var _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if ("value" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };
var _parchment = __webpack_require__(0);
var _parchment2 = _interopRequireDefault(_parchment);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
var ColorAttributor = function (_Parchment$Attributor) {
_inherits(ColorAttributor, _Parchment$Attributor);
function ColorAttributor() {
_classCallCheck(this, ColorAttributor);
return _possibleConstructorReturn(this, (ColorAttributor.__proto__ || Object.getPrototypeOf(ColorAttributor)).apply(this, arguments));
}
_createClass(ColorAttributor, [{
key: 'value',
value: function value(domNode) {
var value = _get(ColorAttributor.prototype.__proto__ || Object.getPrototypeOf(ColorAttributor.prototype), 'value', this).call(this, domNode);
if (!value.startsWith('rgb(')) return value;
value = value.replace(/^[^\d]+/, '').replace(/[^\d]+$/, '');
return '#' + value.split(',').map(function (component) {
return ('00' + parseInt(component).toString(16)).slice(-2);
}).join('');
}
}]);
return ColorAttributor;
}(_parchment2.default.Attributor.Style);
var ColorClass = new _parchment2.default.Attributor.Class('color', 'ql-color', {
scope: _parchment2.default.Scope.INLINE
});
var ColorStyle = new ColorAttributor('color', 'color', {
scope: _parchment2.default.Scope.INLINE
});
exports.ColorAttributor = ColorAttributor;
exports.ColorClass = ColorClass;
exports.ColorStyle = ColorStyle;
/***/ }),
/* 27 */,
/* 28 */,
/* 29 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
var _parchment = __webpack_require__(0);
var _parchment2 = _interopRequireDefault(_parchment);
var _quill = __webpack_require__(5);
var _quill2 = _interopRequireDefault(_quill);
var _block = __webpack_require__(4);
var _block2 = _interopRequireDefault(_block);
var _break = __webpack_require__(16);
var _break2 = _interopRequireDefault(_break);
var _container = __webpack_require__(25);
var _container2 = _interopRequireDefault(_container);
var _cursor = __webpack_require__(24);
var _cursor2 = _interopRequireDefault(_cursor);
var _embed = __webpack_require__(35);
var _embed2 = _interopRequireDefault(_embed);
var _inline = __webpack_require__(6);
var _inline2 = _interopRequireDefault(_inline);
var _scroll = __webpack_require__(22);
var _scroll2 = _interopRequireDefault(_scroll);
var _text = __webpack_require__(7);
var _text2 = _interopRequireDefault(_text);
var _clipboard = __webpack_require__(55);
var _clipboard2 = _interopRequireDefault(_clipboard);
var _history = __webpack_require__(42);
var _history2 = _interopRequireDefault(_history);
var _keyboard = __webpack_require__(23);
var _keyboard2 = _interopRequireDefault(_keyboard);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
_quill2.default.register({
'blots/block': _block2.default,
'blots/block/embed': _block.BlockEmbed,
'blots/break': _break2.default,
'blots/container': _container2.default,
'blots/cursor': _cursor2.default,
'blots/embed': _embed2.default,
'blots/inline': _inline2.default,
'blots/scroll': _scroll2.default,
'blots/text': _text2.default,
'modules/clipboard': _clipboard2.default,
'modules/history': _history2.default,
'modules/keyboard': _keyboard2.default
});
_parchment2.default.register(_block2.default, _break2.default, _cursor2.default, _inline2.default, _scroll2.default, _text2.default);
exports.default = _quill2.default;
/***/ }),
/* 30 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var Registry = __webpack_require__(1);
var ShadowBlot = /** @class */ (function () {
function ShadowBlot(domNode) {
this.domNode = domNode;
// @ts-ignore
this.domNode[Registry.DATA_KEY] = { blot: this };
}
Object.defineProperty(ShadowBlot.prototype, "statics", {
// Hack for accessing inherited static methods
get: function () {
return this.constructor;
},
enumerable: true,
configurable: true
});
ShadowBlot.create = function (value) {
if (this.tagName == null) {
throw new Registry.ParchmentError('Blot definition missing tagName');
}
var node;
if (Array.isArray(this.tagName)) {
if (typeof value === 'string') {
value = value.toUpperCase();
if (parseInt(value).toString() === value) {
value = parseInt(value);
}
}
if (typeof value === 'number') {
node = document.createElement(this.tagName[value - 1]);
}
else if (this.tagName.indexOf(value) > -1) {
node = document.createElement(value);
}
else {
node = document.createElement(this.tagName[0]);
}
}
else {
node = document.createElement(this.tagName);
}
if (this.className) {
node.classList.add(this.className);
}
return node;
};
ShadowBlot.prototype.attach = function () {
if (this.parent != null) {
this.scroll = this.parent.scroll;
}
};
ShadowBlot.prototype.clone = function () {
var domNode = this.domNode.cloneNode(false);
return Registry.create(domNode);
};
ShadowBlot.prototype.detach = function () {
if (this.parent != null)
this.parent.removeChild(this);
// @ts-ignore
delete this.domNode[Registry.DATA_KEY];
};
ShadowBlot.prototype.deleteAt = function (index, length) {
var blot = this.isolate(index, length);
blot.remove();
};
ShadowBlot.prototype.formatAt = function (index, length, name, value) {
var blot = this.isolate(index, length);
if (Registry.query(name, Registry.Scope.BLOT) != null && value) {
blot.wrap(name, value);
}
else if (Registry.query(name, Registry.Scope.ATTRIBUTE) != null) {
var parent = Registry.create(this.statics.scope);
blot.wrap(parent);
parent.format(name, value);
}
};
ShadowBlot.prototype.insertAt = function (index, value, def) {
var blot = def == null ? Registry.create('text', value) : Registry.create(value, def);
var ref = this.split(index);
this.parent.insertBefore(blot, ref);
};
ShadowBlot.prototype.insertInto = function (parentBlot, refBlot) {
if (refBlot === void 0) { refBlot = null; }
if (this.parent != null) {
this.parent.children.remove(this);
}
var refDomNode = null;
parentBlot.children.insertBefore(this, refBlot);
if (refBlot != null) {
refDomNode = refBlot.domNode;
}
if (this.domNode.parentNode != parentBlot.domNode ||
this.domNode.nextSibling != refDomNode) {
parentBlot.domNode.insertBefore(this.domNode, refDomNode);
}
this.parent = parentBlot;
this.attach();
};
ShadowBlot.prototype.isolate = function (index, length) {
var target = this.split(index);
target.split(length);
return target;
};
ShadowBlot.prototype.length = function () {
return 1;
};
ShadowBlot.prototype.offset = function (root) {
if (root === void 0) { root = this.parent; }
if (this.parent == null || this == root)
return 0;
return this.parent.children.offset(this) + this.parent.offset(root);
};
ShadowBlot.prototype.optimize = function (context) {
// TODO clean up once we use WeakMap
// @ts-ignore
if (this.domNode[Registry.DATA_KEY] != null) {
// @ts-ignore
delete this.domNode[Registry.DATA_KEY].mutations;
}
};
ShadowBlot.prototype.remove = function () {
if (this.domNode.parentNode != null) {
this.domNode.parentNode.removeChild(this.domNode);
}
this.detach();
};
ShadowBlot.prototype.replace = function (target) {
if (target.parent == null)
return;
target.parent.insertBefore(this, target.next);
target.remove();
};
ShadowBlot.prototype.replaceWith = function (name, value) {
var replacement = typeof name === 'string' ? Registry.create(name, value) : name;
replacement.replace(this);
return replacement;
};
ShadowBlot.prototype.split = function (index, force) {
return index === 0 ? this : this.next;
};
ShadowBlot.prototype.update = function (mutations, context) {
// Nothing to do by default
};
ShadowBlot.prototype.wrap = function (name, value) {
var wrapper = typeof name === 'string' ? Registry.create(name, value) : name;
if (this.parent != null) {
this.parent.insertBefore(wrapper, this.next);
}
wrapper.appendChild(this);
return wrapper;
};
ShadowBlot.blotName = 'abstract';
return ShadowBlot;
}());
exports.default = ShadowBlot;
/***/ }),
/* 31 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var attributor_1 = __webpack_require__(12);
var class_1 = __webpack_require__(32);
var style_1 = __webpack_require__(33);
var Registry = __webpack_require__(1);
var AttributorStore = /** @class */ (function () {
function AttributorStore(domNode) {
this.attributes = {};
this.domNode = domNode;
this.build();
}
AttributorStore.prototype.attribute = function (attribute, value) {
// verb
if (value) {
if (attribute.add(this.domNode, value)) {
if (attribute.value(this.domNode) != null) {
this.attributes[attribute.attrName] = attribute;
}
else {
delete this.attributes[attribute.attrName];
}
}
}
else {
attribute.remove(this.domNode);
delete this.attributes[attribute.attrName];
}
};
AttributorStore.prototype.build = function () {
var _this = this;
this.attributes = {};
var attributes = attributor_1.default.keys(this.domNode);
var classes = class_1.default.keys(this.domNode);
var styles = style_1.default.keys(this.domNode);
attributes
.concat(classes)
.concat(styles)
.forEach(function (name) {
var attr = Registry.query(name, Registry.Scope.ATTRIBUTE);
if (attr instanceof attributor_1.default) {
_this.attributes[attr.attrName] = attr;
}
});
};
AttributorStore.prototype.copy = function (target) {
var _this = this;
Object.keys(this.attributes).forEach(function (key) {
var value = _this.attributes[key].value(_this.domNode);
target.format(key, value);
});
};
AttributorStore.prototype.move = function (target) {
var _this = this;
this.copy(target);
Object.keys(this.attributes).forEach(function (key) {
_this.attributes[key].remove(_this.domNode);
});
this.attributes = {};
};
AttributorStore.prototype.values = function () {
var _this = this;
return Object.keys(this.attributes).reduce(function (attributes, name) {
attributes[name] = _this.attributes[name].value(_this.domNode);
return attributes;
}, {});
};
return AttributorStore;
}());
exports.default = AttributorStore;
/***/ }),
/* 32 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var __extends = (this && this.__extends) || (function () {
var extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
return function (d, b) {
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
Object.defineProperty(exports, "__esModule", { value: true });
var attributor_1 = __webpack_require__(12);
function match(node, prefix) {
var className = node.getAttribute('class') || '';
return className.split(/\s+/).filter(function (name) {
return name.indexOf(prefix + "-") === 0;
});
}
var ClassAttributor = /** @class */ (function (_super) {
__extends(ClassAttributor, _super);
function ClassAttributor() {
return _super !== null && _super.apply(this, arguments) || this;
}
ClassAttributor.keys = function (node) {
return (node.getAttribute('class') || '').split(/\s+/).map(function (name) {
return name
.split('-')
.slice(0, -1)
.join('-');
});
};
ClassAttributor.prototype.add = function (node, value) {
if (!this.canAdd(node, value))
return false;
this.remove(node);
node.classList.add(this.keyName + "-" + value);
return true;
};
ClassAttributor.prototype.remove = function (node) {
var matches = match(node, this.keyName);
matches.forEach(function (name) {
node.classList.remove(name);
});
if (node.classList.length === 0) {
node.removeAttribute('class');
}
};
ClassAttributor.prototype.value = function (node) {
var result = match(node, this.keyName)[0] || '';
var value = result.slice(this.keyName.length + 1); // +1 for hyphen
return this.canAdd(node, value) ? value : '';
};
return ClassAttributor;
}(attributor_1.default));
exports.default = ClassAttributor;
/***/ }),
/* 33 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var __extends = (this && this.__extends) || (function () {
var extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
return function (d, b) {
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
Object.defineProperty(exports, "__esModule", { value: true });
var attributor_1 = __webpack_require__(12);
function camelize(name) {
var parts = name.split('-');
var rest = parts
.slice(1)
.map(function (part) {
return part[0].toUpperCase() + part.slice(1);
})
.join('');
return parts[0] + rest;
}
var StyleAttributor = /** @class */ (function (_super) {
__extends(StyleAttributor, _super);
function StyleAttributor() {
return _super !== null && _super.apply(this, arguments) || this;
}
StyleAttributor.keys = function (node) {
return (node.getAttribute('style') || '').split(';').map(function (value) {
var arr = value.split(':');
return arr[0].trim();
});
};
StyleAttributor.prototype.add = function (node, value) {
if (!this.canAdd(node, value))
return false;
// @ts-ignore
node.style[camelize(this.keyName)] = value;
return true;
};
StyleAttributor.prototype.remove = function (node) {
// @ts-ignore
node.style[camelize(this.keyName)] = '';
if (!node.getAttribute('style')) {
node.removeAttribute('style');
}
};
StyleAttributor.prototype.value = function (node) {
// @ts-ignore
var value = node.style[camelize(this.keyName)];
return this.canAdd(node, value) ? value : '';
};
return StyleAttributor;
}(attributor_1.default));
exports.default = StyleAttributor;
/***/ }),
/* 34 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
var Theme = function () {
function Theme(quill, options) {
_classCallCheck(this, Theme);
this.quill = quill;
this.options = options;
this.modules = {};
}
_createClass(Theme, [{
key: 'init',
value: function init() {
var _this = this;
Object.keys(this.options.modules).forEach(function (name) {
if (_this.modules[name] == null) {
_this.addModule(name);
}
});
}
}, {
key: 'addModule',
value: function addModule(name) {
var moduleClass = this.quill.constructor.import('modules/' + name);
this.modules[name] = new moduleClass(this.quill, this.options.modules[name] || {});
return this.modules[name];
}
}]);
return Theme;
}();
Theme.DEFAULTS = {
modules: {}
};
Theme.themes = {
'default': Theme
};
exports.default = Theme;
/***/ }),
/* 35 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
var _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if ("value" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };
var _parchment = __webpack_require__(0);
var _parchment2 = _interopRequireDefault(_parchment);
var _text = __webpack_require__(7);
var _text2 = _interopRequireDefault(_text);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
var GUARD_TEXT = '\uFEFF';
var Embed = function (_Parchment$Embed) {
_inherits(Embed, _Parchment$Embed);
function Embed(node) {
_classCallCheck(this, Embed);
var _this = _possibleConstructorReturn(this, (Embed.__proto__ || Object.getPrototypeOf(Embed)).call(this, node));
_this.contentNode = document.createElement('span');
_this.contentNode.setAttribute('contenteditable', false);
[].slice.call(_this.domNode.childNodes).forEach(function (childNode) {
_this.contentNode.appendChild(childNode);
});
_this.leftGuard = document.createTextNode(GUARD_TEXT);
_this.rightGuard = document.createTextNode(GUARD_TEXT);
_this.domNode.appendChild(_this.leftGuard);
_this.domNode.appendChild(_this.contentNode);
_this.domNode.appendChild(_this.rightGuard);
return _this;
}
_createClass(Embed, [{
key: 'index',
value: function index(node, offset) {
if (node === this.leftGuard) return 0;
if (node === this.rightGuard) return 1;
return _get(Embed.prototype.__proto__ || Object.getPrototypeOf(Embed.prototype), 'index', this).call(this, node, offset);
}
}, {
key: 'restore',
value: function restore(node) {
var range = void 0,
textNode = void 0;
var text = node.data.split(GUARD_TEXT).join('');
if (node === this.leftGuard) {
if (this.prev instanceof _text2.default) {
var prevLength = this.prev.length();
this.prev.insertAt(prevLength, text);
range = {
startNode: this.prev.domNode,
startOffset: prevLength + text.length
};
} else {
textNode = document.createTextNode(text);
this.parent.insertBefore(_parchment2.default.create(textNode), this);
range = {
startNode: textNode,
startOffset: text.length
};
}
} else if (node === this.rightGuard) {
if (this.next instanceof _text2.default) {
this.next.insertAt(0, text);
range = {
startNode: this.next.domNode,
startOffset: text.length
};
} else {
textNode = document.createTextNode(text);
this.parent.insertBefore(_parchment2.default.create(textNode), this.next);
range = {
startNode: textNode,
startOffset: text.length
};
}
}
node.data = GUARD_TEXT;
return range;
}
}, {
key: 'update',
value: function update(mutations, context) {
var _this2 = this;
mutations.forEach(function (mutation) {
if (mutation.type === 'characterData' && (mutation.target === _this2.leftGuard || mutation.target === _this2.rightGuard)) {
var range = _this2.restore(mutation.target);
if (range) context.range = range;
}
});
}
}]);
return Embed;
}(_parchment2.default.Embed);
exports.default = Embed;
/***/ }),
/* 36 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.AlignStyle = exports.AlignClass = exports.AlignAttribute = undefined;
var _parchment = __webpack_require__(0);
var _parchment2 = _interopRequireDefault(_parchment);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var config = {
scope: _parchment2.default.Scope.BLOCK,
whitelist: ['right', 'center', 'justify']
};
var AlignAttribute = new _parchment2.default.Attributor.Attribute('align', 'align', config);
var AlignClass = new _parchment2.default.Attributor.Class('align', 'ql-align', config);
var AlignStyle = new _parchment2.default.Attributor.Style('align', 'text-align', config);
exports.AlignAttribute = AlignAttribute;
exports.AlignClass = AlignClass;
exports.AlignStyle = AlignStyle;
/***/ }),
/* 37 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.BackgroundStyle = exports.BackgroundClass = undefined;
var _parchment = __webpack_require__(0);
var _parchment2 = _interopRequireDefault(_parchment);
var _color = __webpack_require__(26);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var BackgroundClass = new _parchment2.default.Attributor.Class('background', 'ql-bg', {
scope: _parchment2.default.Scope.INLINE
});
var BackgroundStyle = new _color.ColorAttributor('background', 'background-color', {
scope: _parchment2.default.Scope.INLINE
});
exports.BackgroundClass = BackgroundClass;
exports.BackgroundStyle = BackgroundStyle;
/***/ }),
/* 38 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.DirectionStyle = exports.DirectionClass = exports.DirectionAttribute = undefined;
var _parchment = __webpack_require__(0);
var _parchment2 = _interopRequireDefault(_parchment);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var config = {
scope: _parchment2.default.Scope.BLOCK,
whitelist: ['rtl']
};
var DirectionAttribute = new _parchment2.default.Attributor.Attribute('direction', 'dir', config);
var DirectionClass = new _parchment2.default.Attributor.Class('direction', 'ql-direction', config);
var DirectionStyle = new _parchment2.default.Attributor.Style('direction', 'direction', config);
exports.DirectionAttribute = DirectionAttribute;
exports.DirectionClass = DirectionClass;
exports.DirectionStyle = DirectionStyle;
/***/ }),
/* 39 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.FontClass = exports.FontStyle = undefined;
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
var _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if ("value" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };
var _parchment = __webpack_require__(0);
var _parchment2 = _interopRequireDefault(_parchment);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
var config = {
scope: _parchment2.default.Scope.INLINE,
whitelist: ['serif', 'monospace']
};
var FontClass = new _parchment2.default.Attributor.Class('font', 'ql-font', config);
var FontStyleAttributor = function (_Parchment$Attributor) {
_inherits(FontStyleAttributor, _Parchment$Attributor);
function FontStyleAttributor() {
_classCallCheck(this, FontStyleAttributor);
return _possibleConstructorReturn(this, (FontStyleAttributor.__proto__ || Object.getPrototypeOf(FontStyleAttributor)).apply(this, arguments));
}
_createClass(FontStyleAttributor, [{
key: 'value',
value: function value(node) {
return _get(FontStyleAttributor.prototype.__proto__ || Object.getPrototypeOf(FontStyleAttributor.prototype), 'value', this).call(this, node).replace(/["']/g, '');
}
}]);
return FontStyleAttributor;
}(_parchment2.default.Attributor.Style);
var FontStyle = new FontStyleAttributor('font', 'font-family', config);
exports.FontStyle = FontStyle;
exports.FontClass = FontClass;
/***/ }),
/* 40 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.SizeStyle = exports.SizeClass = undefined;
var _parchment = __webpack_require__(0);
var _parchment2 = _interopRequireDefault(_parchment);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var SizeClass = new _parchment2.default.Attributor.Class('size', 'ql-size', {
scope: _parchment2.default.Scope.INLINE,
whitelist: ['small', 'large', 'huge']
});
var SizeStyle = new _parchment2.default.Attributor.Style('size', 'font-size', {
scope: _parchment2.default.Scope.INLINE,
whitelist: ['10px', '18px', '32px']
});
exports.SizeClass = SizeClass;
exports.SizeStyle = SizeStyle;
/***/ }),
/* 41 */,
/* 42 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.getLastChangeIndex = exports.default = undefined;
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
var _parchment = __webpack_require__(0);
var _parchment2 = _interopRequireDefault(_parchment);
var _quill = __webpack_require__(5);
var _quill2 = _interopRequireDefault(_quill);
var _module = __webpack_require__(9);
var _module2 = _interopRequireDefault(_module);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
var History = function (_Module) {
_inherits(History, _Module);
function History(quill, options) {
_classCallCheck(this, History);
var _this = _possibleConstructorReturn(this, (History.__proto__ || Object.getPrototypeOf(History)).call(this, quill, options));
_this.lastRecorded = 0;
_this.ignoreChange = false;
_this.clear();
_this.quill.on(_quill2.default.events.EDITOR_CHANGE, function (eventName, delta, oldDelta, source) {
if (eventName !== _quill2.default.events.TEXT_CHANGE || _this.ignoreChange) return;
if (!_this.options.userOnly || source === _quill2.default.sources.USER) {
_this.record(delta, oldDelta);
} else {
_this.transform(delta);
}
});
_this.quill.keyboard.addBinding({ key: 'Z', shortKey: true }, _this.undo.bind(_this));
_this.quill.keyboard.addBinding({ key: 'Z', shortKey: true, shiftKey: true }, _this.redo.bind(_this));
if (/Win/i.test(navigator.platform)) {
_this.quill.keyboard.addBinding({ key: 'Y', shortKey: true }, _this.redo.bind(_this));
}
return _this;
}
_createClass(History, [{
key: 'change',
value: function change(source, dest) {
if (this.stack[source].length === 0) return;
var delta = this.stack[source].pop();
this.stack[dest].push(delta);
this.lastRecorded = 0;
this.ignoreChange = true;
this.quill.updateContents(delta[source], _quill2.default.sources.USER);
this.ignoreChange = false;
var index = getLastChangeIndex(delta[source]);
this.quill.setSelection(index);
}
}, {
key: 'clear',
value: function clear() {
this.stack = { undo: [], redo: [] };
}
}, {
key: 'cutoff',
value: function cutoff() {
this.lastRecorded = 0;
}
}, {
key: 'record',
value: function record(changeDelta, oldDelta) {
if (changeDelta.ops.length === 0) return;
this.stack.redo = [];
var undoDelta = this.quill.getContents().diff(oldDelta);
var timestamp = Date.now();
if (this.lastRecorded + this.options.delay > timestamp && this.stack.undo.length > 0) {
var delta = this.stack.undo.pop();
undoDelta = undoDelta.compose(delta.undo);
changeDelta = delta.redo.compose(changeDelta);
} else {
this.lastRecorded = timestamp;
}
this.stack.undo.push({
redo: changeDelta,
undo: undoDelta
});
if (this.stack.undo.length > this.options.maxStack) {
this.stack.undo.shift();
}
}
}, {
key: 'redo',
value: function redo() {
this.change('redo', 'undo');
}
}, {
key: 'transform',
value: function transform(delta) {
this.stack.undo.forEach(function (change) {
change.undo = delta.transform(change.undo, true);
change.redo = delta.transform(change.redo, true);
});
this.stack.redo.forEach(function (change) {
change.undo = delta.transform(change.undo, true);
change.redo = delta.transform(change.redo, true);
});
}
}, {
key: 'undo',
value: function undo() {
this.change('undo', 'redo');
}
}]);
return History;
}(_module2.default);
History.DEFAULTS = {
delay: 1000,
maxStack: 100,
userOnly: false
};
function endsWithNewlineChange(delta) {
var lastOp = delta.ops[delta.ops.length - 1];
if (lastOp == null) return false;
if (lastOp.insert != null) {
return typeof lastOp.insert === 'string' && lastOp.insert.endsWith('\n');
}
if (lastOp.attributes != null) {
return Object.keys(lastOp.attributes).some(function (attr) {
return _parchment2.default.query(attr, _parchment2.default.Scope.BLOCK) != null;
});
}
return false;
}
function getLastChangeIndex(delta) {
var deleteLength = delta.reduce(function (length, op) {
length += op.delete || 0;
return length;
}, 0);
var changeIndex = delta.length() - deleteLength;
if (endsWithNewlineChange(delta)) {
changeIndex -= 1;
}
return changeIndex;
}
exports.default = History;
exports.getLastChangeIndex = getLastChangeIndex;
/***/ }),
/* 43 */,
/* 44 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var LinkedList = /** @class */ (function () {
function LinkedList() {
this.head = this.tail = null;
this.length = 0;
}
LinkedList.prototype.append = function () {
var nodes = [];
for (var _i = 0; _i < arguments.length; _i++) {
nodes[_i] = arguments[_i];
}
this.insertBefore(nodes[0], null);
if (nodes.length > 1) {
this.append.apply(this, nodes.slice(1));
}
};
LinkedList.prototype.contains = function (node) {
var cur, next = this.iterator();
while ((cur = next())) {
if (cur === node)
return true;
}
return false;
};
LinkedList.prototype.insertBefore = function (node, refNode) {
if (!node)
return;
node.next = refNode;
if (refNode != null) {
node.prev = refNode.prev;
if (refNode.prev != null) {
refNode.prev.next = node;
}
refNode.prev = node;
if (refNode === this.head) {
this.head = node;
}
}
else if (this.tail != null) {
this.tail.next = node;
node.prev = this.tail;
this.tail = node;
}
else {
node.prev = null;
this.head = this.tail = node;
}
this.length += 1;
};
LinkedList.prototype.offset = function (target) {
var index = 0, cur = this.head;
while (cur != null) {
if (cur === target)
return index;
index += cur.length();
cur = cur.next;
}
return -1;
};
LinkedList.prototype.remove = function (node) {
if (!this.contains(node))
return;
if (node.prev != null)
node.prev.next = node.next;
if (node.next != null)
node.next.prev = node.prev;
if (node === this.head)
this.head = node.next;
if (node === this.tail)
this.tail = node.prev;
this.length -= 1;
};
LinkedList.prototype.iterator = function (curNode) {
if (curNode === void 0) { curNode = this.head; }
// TODO use yield when we can
return function () {
var ret = curNode;
if (curNode != null)
curNode = curNode.next;
return ret;
};
};
LinkedList.prototype.find = function (index, inclusive) {
if (inclusive === void 0) { inclusive = false; }
var cur, next = this.iterator();
while ((cur = next())) {
var length = cur.length();
if (index < length ||
(inclusive && index === length && (cur.next == null || cur.next.length() !== 0))) {
return [cur, index];
}
index -= length;
}
return [null, 0];
};
LinkedList.prototype.forEach = function (callback) {
var cur, next = this.iterator();
while ((cur = next())) {
callback(cur);
}
};
LinkedList.prototype.forEachAt = function (index, length, callback) {
if (length <= 0)
return;
var _a = this.find(index), startNode = _a[0], offset = _a[1];
var cur, curIndex = index - offset, next = this.iterator(startNode);
while ((cur = next()) && curIndex < index + length) {
var curLength = cur.length();
if (index > curIndex) {
callback(cur, index - curIndex, Math.min(length, curIndex + curLength - index));
}
else {
callback(cur, 0, Math.min(curLength, index + length - curIndex));
}
curIndex += curLength;
}
};
LinkedList.prototype.map = function (callback) {
return this.reduce(function (memo, cur) {
memo.push(callback(cur));
return memo;
}, []);
};
LinkedList.prototype.reduce = function (callback, memo) {
var cur, next = this.iterator();
while ((cur = next())) {
memo = callback(memo, cur);
}
return memo;
};
return LinkedList;
}());
exports.default = LinkedList;
/***/ }),
/* 45 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var __extends = (this && this.__extends) || (function () {
var extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
return function (d, b) {
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
Object.defineProperty(exports, "__esModule", { value: true });
var container_1 = __webpack_require__(17);
var Registry = __webpack_require__(1);
var OBSERVER_CONFIG = {
attributes: true,
characterData: true,
characterDataOldValue: true,
childList: true,
subtree: true,
};
var MAX_OPTIMIZE_ITERATIONS = 100;
var ScrollBlot = /** @class */ (function (_super) {
__extends(ScrollBlot, _super);
function ScrollBlot(node) {
var _this = _super.call(this, node) || this;
_this.scroll = _this;
_this.observer = new MutationObserver(function (mutations) {
_this.update(mutations);
});
_this.observer.observe(_this.domNode, OBSERVER_CONFIG);
_this.attach();
return _this;
}
ScrollBlot.prototype.detach = function () {
_super.prototype.detach.call(this);
this.observer.disconnect();
};
ScrollBlot.prototype.deleteAt = function (index, length) {
this.update();
if (index === 0 && length === this.length()) {
this.children.forEach(function (child) {
child.remove();
});
}
else {
_super.prototype.deleteAt.call(this, index, length);
}
};
ScrollBlot.prototype.formatAt = function (index, length, name, value) {
this.update();
_super.prototype.formatAt.call(this, index, length, name, value);
};
ScrollBlot.prototype.insertAt = function (index, value, def) {
this.update();
_super.prototype.insertAt.call(this, index, value, def);
};
ScrollBlot.prototype.optimize = function (mutations, context) {
var _this = this;
if (mutations === void 0) { mutations = []; }
if (context === void 0) { context = {}; }
_super.prototype.optimize.call(this, context);
// We must modify mutations directly, cannot make copy and then modify
var records = [].slice.call(this.observer.takeRecords());
// Array.push currently seems to be implemented by a non-tail recursive function
// so we cannot just mutations.push.apply(mutations, this.observer.takeRecords());
while (records.length > 0)
mutations.push(records.pop());
// TODO use WeakMap
var mark = function (blot, markParent) {
if (markParent === void 0) { markParent = true; }
if (blot == null || blot === _this)
return;
if (blot.domNode.parentNode == null)
return;
// @ts-ignore
if (blot.domNode[Registry.DATA_KEY].mutations == null) {
// @ts-ignore
blot.domNode[Registry.DATA_KEY].mutations = [];
}
if (markParent)
mark(blot.parent);
};
var optimize = function (blot) {
// Post-order traversal
if (
// @ts-ignore
blot.domNode[Registry.DATA_KEY] == null ||
// @ts-ignore
blot.domNode[Registry.DATA_KEY].mutations == null) {
return;
}
if (blot instanceof container_1.default) {
blot.children.forEach(optimize);
}
blot.optimize(context);
};
var remaining = mutations;
for (var i = 0; remaining.length > 0; i += 1) {
if (i >= MAX_OPTIMIZE_ITERATIONS) {
throw new Error('[Parchment] Maximum optimize iterations reached');
}
remaining.forEach(function (mutation) {
var blot = Registry.find(mutation.target, true);
if (blot == null)
return;
if (blot.domNode === mutation.target) {
if (mutation.type === 'childList') {
mark(Registry.find(mutation.previousSibling, false));
[].forEach.call(mutation.addedNodes, function (node) {
var child = Registry.find(node, false);
mark(child, false);
if (child instanceof container_1.default) {
child.children.forEach(function (grandChild) {
mark(grandChild, false);
});
}
});
}
else if (mutation.type === 'attributes') {
mark(blot.prev);
}
}
mark(blot);
});
this.children.forEach(optimize);
remaining = [].slice.call(this.observer.takeRecords());
records = remaining.slice();
while (records.length > 0)
mutations.push(records.pop());
}
};
ScrollBlot.prototype.update = function (mutations, context) {
var _this = this;
if (context === void 0) { context = {}; }
mutations = mutations || this.observer.takeRecords();
// TODO use WeakMap
mutations
.map(function (mutation) {
var blot = Registry.find(mutation.target, true);
if (blot == null)
return null;
// @ts-ignore
if (blot.domNode[Registry.DATA_KEY].mutations == null) {
// @ts-ignore
blot.domNode[Registry.DATA_KEY].mutations = [mutation];
return blot;
}
else {
// @ts-ignore
blot.domNode[Registry.DATA_KEY].mutations.push(mutation);
return null;
}
})
.forEach(function (blot) {
if (blot == null ||
blot === _this ||
//@ts-ignore
blot.domNode[Registry.DATA_KEY] == null)
return;
// @ts-ignore
blot.update(blot.domNode[Registry.DATA_KEY].mutations || [], context);
});
// @ts-ignore
if (this.domNode[Registry.DATA_KEY].mutations != null) {
// @ts-ignore
_super.prototype.update.call(this, this.domNode[Registry.DATA_KEY].mutations, context);
}
this.optimize(mutations, context);
};
ScrollBlot.blotName = 'scroll';
ScrollBlot.defaultChild = 'block';
ScrollBlot.scope = Registry.Scope.BLOCK_BLOT;
ScrollBlot.tagName = 'DIV';
return ScrollBlot;
}(container_1.default));
exports.default = ScrollBlot;
/***/ }),
/* 46 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var __extends = (this && this.__extends) || (function () {
var extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
return function (d, b) {
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
Object.defineProperty(exports, "__esModule", { value: true });
var format_1 = __webpack_require__(18);
var Registry = __webpack_require__(1);
// Shallow object comparison
function isEqual(obj1, obj2) {
if (Object.keys(obj1).length !== Object.keys(obj2).length)
return false;
// @ts-ignore
for (var prop in obj1) {
// @ts-ignore
if (obj1[prop] !== obj2[prop])
return false;
}
return true;
}
var InlineBlot = /** @class */ (function (_super) {
__extends(InlineBlot, _super);
function InlineBlot() {
return _super !== null && _super.apply(this, arguments) || this;
}
InlineBlot.formats = function (domNode) {
if (domNode.tagName === InlineBlot.tagName)
return undefined;
return _super.formats.call(this, domNode);
};
InlineBlot.prototype.format = function (name, value) {
var _this = this;
if (name === this.statics.blotName && !value) {
this.children.forEach(function (child) {
if (!(child instanceof format_1.default)) {
child = child.wrap(InlineBlot.blotName, true);
}
_this.attributes.copy(child);
});
this.unwrap();
}
else {
_super.prototype.format.call(this, name, value);
}
};
InlineBlot.prototype.formatAt = function (index, length, name, value) {
if (this.formats()[name] != null || Registry.query(name, Registry.Scope.ATTRIBUTE)) {
var blot = this.isolate(index, length);
blot.format(name, value);
}
else {
_super.prototype.formatAt.call(this, index, length, name, value);
}
};
InlineBlot.prototype.optimize = function (context) {
_super.prototype.optimize.call(this, context);
var formats = this.formats();
if (Object.keys(formats).length === 0) {
return this.unwrap(); // unformatted span
}
var next = this.next;
if (next instanceof InlineBlot && next.prev === this && isEqual(formats, next.formats())) {
next.moveChildren(this);
next.remove();
}
};
InlineBlot.blotName = 'inline';
InlineBlot.scope = Registry.Scope.INLINE_BLOT;
InlineBlot.tagName = 'SPAN';
return InlineBlot;
}(format_1.default));
exports.default = InlineBlot;
/***/ }),
/* 47 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var __extends = (this && this.__extends) || (function () {
var extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
return function (d, b) {
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
Object.defineProperty(exports, "__esModule", { value: true });
var format_1 = __webpack_require__(18);
var Registry = __webpack_require__(1);
var BlockBlot = /** @class */ (function (_super) {
__extends(BlockBlot, _super);
function BlockBlot() {
return _super !== null && _super.apply(this, arguments) || this;
}
BlockBlot.formats = function (domNode) {
var tagName = Registry.query(BlockBlot.blotName).tagName;
if (domNode.tagName === tagName)
return undefined;
return _super.formats.call(this, domNode);
};
BlockBlot.prototype.format = function (name, value) {
if (Registry.query(name, Registry.Scope.BLOCK) == null) {
return;
}
else if (name === this.statics.blotName && !value) {
this.replaceWith(BlockBlot.blotName);
}
else {
_super.prototype.format.call(this, name, value);
}
};
BlockBlot.prototype.formatAt = function (index, length, name, value) {
if (Registry.query(name, Registry.Scope.BLOCK) != null) {
this.format(name, value);
}
else {
_super.prototype.formatAt.call(this, index, length, name, value);
}
};
BlockBlot.prototype.insertAt = function (index, value, def) {
if (def == null || Registry.query(value, Registry.Scope.INLINE) != null) {
// Insert text or inline
_super.prototype.insertAt.call(this, index, value, def);
}
else {
var after = this.split(index);
var blot = Registry.create(value, def);
after.parent.insertBefore(blot, after);
}
};
BlockBlot.prototype.update = function (mutations, context) {
if (navigator.userAgent.match(/Trident/)) {
this.build();
}
else {
_super.prototype.update.call(this, mutations, context);
}
};
BlockBlot.blotName = 'block';
BlockBlot.scope = Registry.Scope.BLOCK_BLOT;
BlockBlot.tagName = 'P';
return BlockBlot;
}(format_1.default));
exports.default = BlockBlot;
/***/ }),
/* 48 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var __extends = (this && this.__extends) || (function () {
var extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
return function (d, b) {
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
Object.defineProperty(exports, "__esModule", { value: true });
var leaf_1 = __webpack_require__(19);
var EmbedBlot = /** @class */ (function (_super) {
__extends(EmbedBlot, _super);
function EmbedBlot() {
return _super !== null && _super.apply(this, arguments) || this;
}
EmbedBlot.formats = function (domNode) {
return undefined;
};
EmbedBlot.prototype.format = function (name, value) {
// super.formatAt wraps, which is what we want in general,
// but this allows subclasses to overwrite for formats
// that just apply to particular embeds
_super.prototype.formatAt.call(this, 0, this.length(), name, value);
};
EmbedBlot.prototype.formatAt = function (index, length, name, value) {
if (index === 0 && length === this.length()) {
this.format(name, value);
}
else {
_super.prototype.formatAt.call(this, index, length, name, value);
}
};
EmbedBlot.prototype.formats = function () {
return this.statics.formats(this.domNode);
};
return EmbedBlot;
}(leaf_1.default));
exports.default = EmbedBlot;
/***/ }),
/* 49 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var __extends = (this && this.__extends) || (function () {
var extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
return function (d, b) {
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
Object.defineProperty(exports, "__esModule", { value: true });
var leaf_1 = __webpack_require__(19);
var Registry = __webpack_require__(1);
var TextBlot = /** @class */ (function (_super) {
__extends(TextBlot, _super);
function TextBlot(node) {
var _this = _super.call(this, node) || this;
_this.text = _this.statics.value(_this.domNode);
return _this;
}
TextBlot.create = function (value) {
return document.createTextNode(value);
};
TextBlot.value = function (domNode) {
var text = domNode.data;
// @ts-ignore
if (text['normalize'])
text = text['normalize']();
return text;
};
TextBlot.prototype.deleteAt = function (index, length) {
this.domNode.data = this.text = this.text.slice(0, index) + this.text.slice(index + length);
};
TextBlot.prototype.index = function (node, offset) {
if (this.domNode === node) {
return offset;
}
return -1;
};
TextBlot.prototype.insertAt = function (index, value, def) {
if (def == null) {
this.text = this.text.slice(0, index) + value + this.text.slice(index);
this.domNode.data = this.text;
}
else {
_super.prototype.insertAt.call(this, index, value, def);
}
};
TextBlot.prototype.length = function () {
return this.text.length;
};
TextBlot.prototype.optimize = function (context) {
_super.prototype.optimize.call(this, context);
this.text = this.statics.value(this.domNode);
if (this.text.length === 0) {
this.remove();
}
else if (this.next instanceof TextBlot && this.next.prev === this) {
this.insertAt(this.length(), this.next.value());
this.next.remove();
}
};
TextBlot.prototype.position = function (index, inclusive) {
if (inclusive === void 0) { inclusive = false; }
return [this.domNode, index];
};
TextBlot.prototype.split = function (index, force) {
if (force === void 0) { force = false; }
if (!force) {
if (index === 0)
return this;
if (index === this.length())
return this.next;
}
var after = Registry.create(this.domNode.splitText(index));
this.parent.insertBefore(after, this.next);
this.text = this.statics.value(this.domNode);
return after;
};
TextBlot.prototype.update = function (mutations, context) {
var _this = this;
if (mutations.some(function (mutation) {
return mutation.type === 'characterData' && mutation.target === _this.domNode;
})) {
this.text = this.statics.value(this.domNode);
}
};
TextBlot.prototype.value = function () {
return this.text;
};
TextBlot.blotName = 'text';
TextBlot.scope = Registry.Scope.INLINE_BLOT;
return TextBlot;
}(leaf_1.default));
exports.default = TextBlot;
/***/ }),
/* 50 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var elem = document.createElement('div');
elem.classList.toggle('test-class', false);
if (elem.classList.contains('test-class')) {
var _toggle = DOMTokenList.prototype.toggle;
DOMTokenList.prototype.toggle = function (token, force) {
if (arguments.length > 1 && !this.contains(token) === !force) {
return force;
} else {
return _toggle.call(this, token);
}
};
}
if (!String.prototype.startsWith) {
String.prototype.startsWith = function (searchString, position) {
position = position || 0;
return this.substr(position, searchString.length) === searchString;
};
}
if (!String.prototype.endsWith) {
String.prototype.endsWith = function (searchString, position) {
var subjectString = this.toString();
if (typeof position !== 'number' || !isFinite(position) || Math.floor(position) !== position || position > subjectString.length) {
position = subjectString.length;
}
position -= searchString.length;
var lastIndex = subjectString.indexOf(searchString, position);
return lastIndex !== -1 && lastIndex === position;
};
}
if (!Array.prototype.find) {
Object.defineProperty(Array.prototype, "find", {
value: function value(predicate) {
if (this === null) {
throw new TypeError('Array.prototype.find called on null or undefined');
}
if (typeof predicate !== 'function') {
throw new TypeError('predicate must be a function');
}
var list = Object(this);
var length = list.length >>> 0;
var thisArg = arguments[1];
var value;
for (var i = 0; i < length; i++) {
value = list[i];
if (predicate.call(thisArg, value, i, list)) {
return value;
}
}
return undefined;
}
});
}
document.addEventListener("DOMContentLoaded", function () {
// Disable resizing in Firefox
document.execCommand("enableObjectResizing", false, false);
// Disable automatic linkifying in IE11
document.execCommand("autoUrlDetect", false, false);
});
/***/ }),
/* 51 */
/***/ (function(module, exports) {
/**
* This library modifies the diff-patch-match library by Neil Fraser
* by removing the patch and match functionality and certain advanced
* options in the diff function. The original license is as follows:
*
* ===
*
* Diff Match and Patch
*
* Copyright 2006 Google Inc.
* http://code.google.com/p/google-diff-match-patch/
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/**
* The data structure representing a diff is an array of tuples:
* [[DIFF_DELETE, 'Hello'], [DIFF_INSERT, 'Goodbye'], [DIFF_EQUAL, ' world.']]
* which means: delete 'Hello', add 'Goodbye' and keep ' world.'
*/
var DIFF_DELETE = -1;
var DIFF_INSERT = 1;
var DIFF_EQUAL = 0;
/**
* Find the differences between two texts. Simplifies the problem by stripping
* any common prefix or suffix off the texts before diffing.
* @param {string} text1 Old string to be diffed.
* @param {string} text2 New string to be diffed.
* @param {Int} cursor_pos Expected edit position in text1 (optional)
* @return {Array} Array of diff tuples.
*/
function diff_main(text1, text2, cursor_pos) {
// Check for equality (speedup).
if (text1 == text2) {
if (text1) {
return [[DIFF_EQUAL, text1]];
}
return [];
}
// Check cursor_pos within bounds
if (cursor_pos < 0 || text1.length < cursor_pos) {
cursor_pos = null;
}
// Trim off common prefix (speedup).
var commonlength = diff_commonPrefix(text1, text2);
var commonprefix = text1.substring(0, commonlength);
text1 = text1.substring(commonlength);
text2 = text2.substring(commonlength);
// Trim off common suffix (speedup).
commonlength = diff_commonSuffix(text1, text2);
var commonsuffix = text1.substring(text1.length - commonlength);
text1 = text1.substring(0, text1.length - commonlength);
text2 = text2.substring(0, text2.length - commonlength);
// Compute the diff on the middle block.
var diffs = diff_compute_(text1, text2);
// Restore the prefix and suffix.
if (commonprefix) {
diffs.unshift([DIFF_EQUAL, commonprefix]);
}
if (commonsuffix) {
diffs.push([DIFF_EQUAL, commonsuffix]);
}
diff_cleanupMerge(diffs);
if (cursor_pos != null) {
diffs = fix_cursor(diffs, cursor_pos);
}
diffs = fix_emoji(diffs);
return diffs;
};
/**
* Find the differences between two texts. Assumes that the texts do not
* have any common prefix or suffix.
* @param {string} text1 Old string to be diffed.
* @param {string} text2 New string to be diffed.
* @return {Array} Array of diff tuples.
*/
function diff_compute_(text1, text2) {
var diffs;
if (!text1) {
// Just add some text (speedup).
return [[DIFF_INSERT, text2]];
}
if (!text2) {
// Just delete some text (speedup).
return [[DIFF_DELETE, text1]];
}
var longtext = text1.length > text2.length ? text1 : text2;
var shorttext = text1.length > text2.length ? text2 : text1;
var i = longtext.indexOf(shorttext);
if (i != -1) {
// Shorter text is inside the longer text (speedup).
diffs = [[DIFF_INSERT, longtext.substring(0, i)],
[DIFF_EQUAL, shorttext],
[DIFF_INSERT, longtext.substring(i + shorttext.length)]];
// Swap insertions for deletions if diff is reversed.
if (text1.length > text2.length) {
diffs[0][0] = diffs[2][0] = DIFF_DELETE;
}
return diffs;
}
if (shorttext.length == 1) {
// Single character string.
// After the previous speedup, the character can't be an equality.
return [[DIFF_DELETE, text1], [DIFF_INSERT, text2]];
}
// Check to see if the problem can be split in two.
var hm = diff_halfMatch_(text1, text2);
if (hm) {
// A half-match was found, sort out the return data.
var text1_a = hm[0];
var text1_b = hm[1];
var text2_a = hm[2];
var text2_b = hm[3];
var mid_common = hm[4];
// Send both pairs off for separate processing.
var diffs_a = diff_main(text1_a, text2_a);
var diffs_b = diff_main(text1_b, text2_b);
// Merge the results.
return diffs_a.concat([[DIFF_EQUAL, mid_common]], diffs_b);
}
return diff_bisect_(text1, text2);
};
/**
* Find the 'middle snake' of a diff, split the problem in two
* and return the recursively constructed diff.
* See Myers 1986 paper: An O(ND) Difference Algorithm and Its Variations.
* @param {string} text1 Old string to be diffed.
* @param {string} text2 New string to be diffed.
* @return {Array} Array of diff tuples.
* @private
*/
function diff_bisect_(text1, text2) {
// Cache the text lengths to prevent multiple calls.
var text1_length = text1.length;
var text2_length = text2.length;
var max_d = Math.ceil((text1_length + text2_length) / 2);
var v_offset = max_d;
var v_length = 2 * max_d;
var v1 = new Array(v_length);
var v2 = new Array(v_length);
// Setting all elements to -1 is faster in Chrome & Firefox than mixing
// integers and undefined.
for (var x = 0; x < v_length; x++) {
v1[x] = -1;
v2[x] = -1;
}
v1[v_offset + 1] = 0;
v2[v_offset + 1] = 0;
var delta = text1_length - text2_length;
// If the total number of characters is odd, then the front path will collide
// with the reverse path.
var front = (delta % 2 != 0);
// Offsets for start and end of k loop.
// Prevents mapping of space beyond the grid.
var k1start = 0;
var k1end = 0;
var k2start = 0;
var k2end = 0;
for (var d = 0; d < max_d; d++) {
// Walk the front path one step.
for (var k1 = -d + k1start; k1 <= d - k1end; k1 += 2) {
var k1_offset = v_offset + k1;
var x1;
if (k1 == -d || (k1 != d && v1[k1_offset - 1] < v1[k1_offset + 1])) {
x1 = v1[k1_offset + 1];
} else {
x1 = v1[k1_offset - 1] + 1;
}
var y1 = x1 - k1;
while (x1 < text1_length && y1 < text2_length &&
text1.charAt(x1) == text2.charAt(y1)) {
x1++;
y1++;
}
v1[k1_offset] = x1;
if (x1 > text1_length) {
// Ran off the right of the graph.
k1end += 2;
} else if (y1 > text2_length) {
// Ran off the bottom of the graph.
k1start += 2;
} else if (front) {
var k2_offset = v_offset + delta - k1;
if (k2_offset >= 0 && k2_offset < v_length && v2[k2_offset] != -1) {
// Mirror x2 onto top-left coordinate system.
var x2 = text1_length - v2[k2_offset];
if (x1 >= x2) {
// Overlap detected.
return diff_bisectSplit_(text1, text2, x1, y1);
}
}
}
}
// Walk the reverse path one step.
for (var k2 = -d + k2start; k2 <= d - k2end; k2 += 2) {
var k2_offset = v_offset + k2;
var x2;
if (k2 == -d || (k2 != d && v2[k2_offset - 1] < v2[k2_offset + 1])) {
x2 = v2[k2_offset + 1];
} else {
x2 = v2[k2_offset - 1] + 1;
}
var y2 = x2 - k2;
while (x2 < text1_length && y2 < text2_length &&
text1.charAt(text1_length - x2 - 1) ==
text2.charAt(text2_length - y2 - 1)) {
x2++;
y2++;
}
v2[k2_offset] = x2;
if (x2 > text1_length) {
// Ran off the left of the graph.
k2end += 2;
} else if (y2 > text2_length) {
// Ran off the top of the graph.
k2start += 2;
} else if (!front) {
var k1_offset = v_offset + delta - k2;
if (k1_offset >= 0 && k1_offset < v_length && v1[k1_offset] != -1) {
var x1 = v1[k1_offset];
var y1 = v_offset + x1 - k1_offset;
// Mirror x2 onto top-left coordinate system.
x2 = text1_length - x2;
if (x1 >= x2) {
// Overlap detected.
return diff_bisectSplit_(text1, text2, x1, y1);
}
}
}
}
}
// Diff took too long and hit the deadline or
// number of diffs equals number of characters, no commonality at all.
return [[DIFF_DELETE, text1], [DIFF_INSERT, text2]];
};
/**
* Given the location of the 'middle snake', split the diff in two parts
* and recurse.
* @param {string} text1 Old string to be diffed.
* @param {string} text2 New string to be diffed.
* @param {number} x Index of split point in text1.
* @param {number} y Index of split point in text2.
* @return {Array} Array of diff tuples.
*/
function diff_bisectSplit_(text1, text2, x, y) {
var text1a = text1.substring(0, x);
var text2a = text2.substring(0, y);
var text1b = text1.substring(x);
var text2b = text2.substring(y);
// Compute both diffs serially.
var diffs = diff_main(text1a, text2a);
var diffsb = diff_main(text1b, text2b);
return diffs.concat(diffsb);
};
/**
* Determine the common prefix of two strings.
* @param {string} text1 First string.
* @param {string} text2 Second string.
* @return {number} The number of characters common to the start of each
* string.
*/
function diff_commonPrefix(text1, text2) {
// Quick check for common null cases.
if (!text1 || !text2 || text1.charAt(0) != text2.charAt(0)) {
return 0;
}
// Binary search.
// Performance analysis: http://neil.fraser.name/news/2007/10/09/
var pointermin = 0;
var pointermax = Math.min(text1.length, text2.length);
var pointermid = pointermax;
var pointerstart = 0;
while (pointermin < pointermid) {
if (text1.substring(pointerstart, pointermid) ==
text2.substring(pointerstart, pointermid)) {
pointermin = pointermid;
pointerstart = pointermin;
} else {
pointermax = pointermid;
}
pointermid = Math.floor((pointermax - pointermin) / 2 + pointermin);
}
return pointermid;
};
/**
* Determine the common suffix of two strings.
* @param {string} text1 First string.
* @param {string} text2 Second string.
* @return {number} The number of characters common to the end of each string.
*/
function diff_commonSuffix(text1, text2) {
// Quick check for common null cases.
if (!text1 || !text2 ||
text1.charAt(text1.length - 1) != text2.charAt(text2.length - 1)) {
return 0;
}
// Binary search.
// Performance analysis: http://neil.fraser.name/news/2007/10/09/
var pointermin = 0;
var pointermax = Math.min(text1.length, text2.length);
var pointermid = pointermax;
var pointerend = 0;
while (pointermin < pointermid) {
if (text1.substring(text1.length - pointermid, text1.length - pointerend) ==
text2.substring(text2.length - pointermid, text2.length - pointerend)) {
pointermin = pointermid;
pointerend = pointermin;
} else {
pointermax = pointermid;
}
pointermid = Math.floor((pointermax - pointermin) / 2 + pointermin);
}
return pointermid;
};
/**
* Do the two texts share a substring which is at least half the length of the
* longer text?
* This speedup can produce non-minimal diffs.
* @param {string} text1 First string.
* @param {string} text2 Second string.
* @return {Array.} Five element Array, containing the prefix of
* text1, the suffix of text1, the prefix of text2, the suffix of
* text2 and the common middle. Or null if there was no match.
*/
function diff_halfMatch_(text1, text2) {
var longtext = text1.length > text2.length ? text1 : text2;
var shorttext = text1.length > text2.length ? text2 : text1;
if (longtext.length < 4 || shorttext.length * 2 < longtext.length) {
return null; // Pointless.
}
/**
* Does a substring of shorttext exist within longtext such that the substring
* is at least half the length of longtext?
* Closure, but does not reference any external variables.
* @param {string} longtext Longer string.
* @param {string} shorttext Shorter string.
* @param {number} i Start index of quarter length substring within longtext.
* @return {Array.} Five element Array, containing the prefix of
* longtext, the suffix of longtext, the prefix of shorttext, the suffix
* of shorttext and the common middle. Or null if there was no match.
* @private
*/
function diff_halfMatchI_(longtext, shorttext, i) {
// Start with a 1/4 length substring at position i as a seed.
var seed = longtext.substring(i, i + Math.floor(longtext.length / 4));
var j = -1;
var best_common = '';
var best_longtext_a, best_longtext_b, best_shorttext_a, best_shorttext_b;
while ((j = shorttext.indexOf(seed, j + 1)) != -1) {
var prefixLength = diff_commonPrefix(longtext.substring(i),
shorttext.substring(j));
var suffixLength = diff_commonSuffix(longtext.substring(0, i),
shorttext.substring(0, j));
if (best_common.length < suffixLength + prefixLength) {
best_common = shorttext.substring(j - suffixLength, j) +
shorttext.substring(j, j + prefixLength);
best_longtext_a = longtext.substring(0, i - suffixLength);
best_longtext_b = longtext.substring(i + prefixLength);
best_shorttext_a = shorttext.substring(0, j - suffixLength);
best_shorttext_b = shorttext.substring(j + prefixLength);
}
}
if (best_common.length * 2 >= longtext.length) {
return [best_longtext_a, best_longtext_b,
best_shorttext_a, best_shorttext_b, best_common];
} else {
return null;
}
}
// First check if the second quarter is the seed for a half-match.
var hm1 = diff_halfMatchI_(longtext, shorttext,
Math.ceil(longtext.length / 4));
// Check again based on the third quarter.
var hm2 = diff_halfMatchI_(longtext, shorttext,
Math.ceil(longtext.length / 2));
var hm;
if (!hm1 && !hm2) {
return null;
} else if (!hm2) {
hm = hm1;
} else if (!hm1) {
hm = hm2;
} else {
// Both matched. Select the longest.
hm = hm1[4].length > hm2[4].length ? hm1 : hm2;
}
// A half-match was found, sort out the return data.
var text1_a, text1_b, text2_a, text2_b;
if (text1.length > text2.length) {
text1_a = hm[0];
text1_b = hm[1];
text2_a = hm[2];
text2_b = hm[3];
} else {
text2_a = hm[0];
text2_b = hm[1];
text1_a = hm[2];
text1_b = hm[3];
}
var mid_common = hm[4];
return [text1_a, text1_b, text2_a, text2_b, mid_common];
};
/**
* Reorder and merge like edit sections. Merge equalities.
* Any edit section can move as long as it doesn't cross an equality.
* @param {Array} diffs Array of diff tuples.
*/
function diff_cleanupMerge(diffs) {
diffs.push([DIFF_EQUAL, '']); // Add a dummy entry at the end.
var pointer = 0;
var count_delete = 0;
var count_insert = 0;
var text_delete = '';
var text_insert = '';
var commonlength;
while (pointer < diffs.length) {
switch (diffs[pointer][0]) {
case DIFF_INSERT:
count_insert++;
text_insert += diffs[pointer][1];
pointer++;
break;
case DIFF_DELETE:
count_delete++;
text_delete += diffs[pointer][1];
pointer++;
break;
case DIFF_EQUAL:
// Upon reaching an equality, check for prior redundancies.
if (count_delete + count_insert > 1) {
if (count_delete !== 0 && count_insert !== 0) {
// Factor out any common prefixies.
commonlength = diff_commonPrefix(text_insert, text_delete);
if (commonlength !== 0) {
if ((pointer - count_delete - count_insert) > 0 &&
diffs[pointer - count_delete - count_insert - 1][0] ==
DIFF_EQUAL) {
diffs[pointer - count_delete - count_insert - 1][1] +=
text_insert.substring(0, commonlength);
} else {
diffs.splice(0, 0, [DIFF_EQUAL,
text_insert.substring(0, commonlength)]);
pointer++;
}
text_insert = text_insert.substring(commonlength);
text_delete = text_delete.substring(commonlength);
}
// Factor out any common suffixies.
commonlength = diff_commonSuffix(text_insert, text_delete);
if (commonlength !== 0) {
diffs[pointer][1] = text_insert.substring(text_insert.length -
commonlength) + diffs[pointer][1];
text_insert = text_insert.substring(0, text_insert.length -
commonlength);
text_delete = text_delete.substring(0, text_delete.length -
commonlength);
}
}
// Delete the offending records and add the merged ones.
if (count_delete === 0) {
diffs.splice(pointer - count_insert,
count_delete + count_insert, [DIFF_INSERT, text_insert]);
} else if (count_insert === 0) {
diffs.splice(pointer - count_delete,
count_delete + count_insert, [DIFF_DELETE, text_delete]);
} else {
diffs.splice(pointer - count_delete - count_insert,
count_delete + count_insert, [DIFF_DELETE, text_delete],
[DIFF_INSERT, text_insert]);
}
pointer = pointer - count_delete - count_insert +
(count_delete ? 1 : 0) + (count_insert ? 1 : 0) + 1;
} else if (pointer !== 0 && diffs[pointer - 1][0] == DIFF_EQUAL) {
// Merge this equality with the previous one.
diffs[pointer - 1][1] += diffs[pointer][1];
diffs.splice(pointer, 1);
} else {
pointer++;
}
count_insert = 0;
count_delete = 0;
text_delete = '';
text_insert = '';
break;
}
}
if (diffs[diffs.length - 1][1] === '') {
diffs.pop(); // Remove the dummy entry at the end.
}
// Second pass: look for single edits surrounded on both sides by equalities
// which can be shifted sideways to eliminate an equality.
// e.g: ABA C -> AB AC
var changes = false;
pointer = 1;
// Intentionally ignore the first and last element (don't need checking).
while (pointer < diffs.length - 1) {
if (diffs[pointer - 1][0] == DIFF_EQUAL &&
diffs[pointer + 1][0] == DIFF_EQUAL) {
// This is a single edit surrounded by equalities.
if (diffs[pointer][1].substring(diffs[pointer][1].length -
diffs[pointer - 1][1].length) == diffs[pointer - 1][1]) {
// Shift the edit over the previous equality.
diffs[pointer][1] = diffs[pointer - 1][1] +
diffs[pointer][1].substring(0, diffs[pointer][1].length -
diffs[pointer - 1][1].length);
diffs[pointer + 1][1] = diffs[pointer - 1][1] + diffs[pointer + 1][1];
diffs.splice(pointer - 1, 1);
changes = true;
} else if (diffs[pointer][1].substring(0, diffs[pointer + 1][1].length) ==
diffs[pointer + 1][1]) {
// Shift the edit over the next equality.
diffs[pointer - 1][1] += diffs[pointer + 1][1];
diffs[pointer][1] =
diffs[pointer][1].substring(diffs[pointer + 1][1].length) +
diffs[pointer + 1][1];
diffs.splice(pointer + 1, 1);
changes = true;
}
}
pointer++;
}
// If shifts were made, the diff needs reordering and another shift sweep.
if (changes) {
diff_cleanupMerge(diffs);
}
};
var diff = diff_main;
diff.INSERT = DIFF_INSERT;
diff.DELETE = DIFF_DELETE;
diff.EQUAL = DIFF_EQUAL;
module.exports = diff;
/*
* Modify a diff such that the cursor position points to the start of a change:
* E.g.
* cursor_normalize_diff([[DIFF_EQUAL, 'abc']], 1)
* => [1, [[DIFF_EQUAL, 'a'], [DIFF_EQUAL, 'bc']]]
* cursor_normalize_diff([[DIFF_INSERT, 'new'], [DIFF_DELETE, 'xyz']], 2)
* => [2, [[DIFF_INSERT, 'new'], [DIFF_DELETE, 'xy'], [DIFF_DELETE, 'z']]]
*
* @param {Array} diffs Array of diff tuples
* @param {Int} cursor_pos Suggested edit position. Must not be out of bounds!
* @return {Array} A tuple [cursor location in the modified diff, modified diff]
*/
function cursor_normalize_diff (diffs, cursor_pos) {
if (cursor_pos === 0) {
return [DIFF_EQUAL, diffs];
}
for (var current_pos = 0, i = 0; i < diffs.length; i++) {
var d = diffs[i];
if (d[0] === DIFF_DELETE || d[0] === DIFF_EQUAL) {
var next_pos = current_pos + d[1].length;
if (cursor_pos === next_pos) {
return [i + 1, diffs];
} else if (cursor_pos < next_pos) {
// copy to prevent side effects
diffs = diffs.slice();
// split d into two diff changes
var split_pos = cursor_pos - current_pos;
var d_left = [d[0], d[1].slice(0, split_pos)];
var d_right = [d[0], d[1].slice(split_pos)];
diffs.splice(i, 1, d_left, d_right);
return [i + 1, diffs];
} else {
current_pos = next_pos;
}
}
}
throw new Error('cursor_pos is out of bounds!')
}
/*
* Modify a diff such that the edit position is "shifted" to the proposed edit location (cursor_position).
*
* Case 1)
* Check if a naive shift is possible:
* [0, X], [ 1, Y] -> [ 1, Y], [0, X] (if X + Y === Y + X)
* [0, X], [-1, Y] -> [-1, Y], [0, X] (if X + Y === Y + X) - holds same result
* Case 2)
* Check if the following shifts are possible:
* [0, 'pre'], [ 1, 'prefix'] -> [ 1, 'pre'], [0, 'pre'], [ 1, 'fix']
* [0, 'pre'], [-1, 'prefix'] -> [-1, 'pre'], [0, 'pre'], [-1, 'fix']
* ^ ^
* d d_next
*
* @param {Array} diffs Array of diff tuples
* @param {Int} cursor_pos Suggested edit position. Must not be out of bounds!
* @return {Array} Array of diff tuples
*/
function fix_cursor (diffs, cursor_pos) {
var norm = cursor_normalize_diff(diffs, cursor_pos);
var ndiffs = norm[1];
var cursor_pointer = norm[0];
var d = ndiffs[cursor_pointer];
var d_next = ndiffs[cursor_pointer + 1];
if (d == null) {
// Text was deleted from end of original string,
// cursor is now out of bounds in new string
return diffs;
} else if (d[0] !== DIFF_EQUAL) {
// A modification happened at the cursor location.
// This is the expected outcome, so we can return the original diff.
return diffs;
} else {
if (d_next != null && d[1] + d_next[1] === d_next[1] + d[1]) {
// Case 1)
// It is possible to perform a naive shift
ndiffs.splice(cursor_pointer, 2, d_next, d)
return merge_tuples(ndiffs, cursor_pointer, 2)
} else if (d_next != null && d_next[1].indexOf(d[1]) === 0) {
// Case 2)
// d[1] is a prefix of d_next[1]
// We can assume that d_next[0] !== 0, since d[0] === 0
// Shift edit locations..
ndiffs.splice(cursor_pointer, 2, [d_next[0], d[1]], [0, d[1]]);
var suffix = d_next[1].slice(d[1].length);
if (suffix.length > 0) {
ndiffs.splice(cursor_pointer + 2, 0, [d_next[0], suffix]);
}
return merge_tuples(ndiffs, cursor_pointer, 3)
} else {
// Not possible to perform any modification
return diffs;
}
}
}
/*
* Check diff did not split surrogate pairs.
* Ex. [0, '\uD83D'], [-1, '\uDC36'], [1, '\uDC2F'] -> [-1, '\uD83D\uDC36'], [1, '\uD83D\uDC2F']
* '\uD83D\uDC36' === '🐶', '\uD83D\uDC2F' === '🐯'
*
* @param {Array} diffs Array of diff tuples
* @return {Array} Array of diff tuples
*/
function fix_emoji (diffs) {
var compact = false;
var starts_with_pair_end = function(str) {
return str.charCodeAt(0) >= 0xDC00 && str.charCodeAt(0) <= 0xDFFF;
}
var ends_with_pair_start = function(str) {
return str.charCodeAt(str.length-1) >= 0xD800 && str.charCodeAt(str.length-1) <= 0xDBFF;
}
for (var i = 2; i < diffs.length; i += 1) {
if (diffs[i-2][0] === DIFF_EQUAL && ends_with_pair_start(diffs[i-2][1]) &&
diffs[i-1][0] === DIFF_DELETE && starts_with_pair_end(diffs[i-1][1]) &&
diffs[i][0] === DIFF_INSERT && starts_with_pair_end(diffs[i][1])) {
compact = true;
diffs[i-1][1] = diffs[i-2][1].slice(-1) + diffs[i-1][1];
diffs[i][1] = diffs[i-2][1].slice(-1) + diffs[i][1];
diffs[i-2][1] = diffs[i-2][1].slice(0, -1);
}
}
if (!compact) {
return diffs;
}
var fixed_diffs = [];
for (var i = 0; i < diffs.length; i += 1) {
if (diffs[i][1].length > 0) {
fixed_diffs.push(diffs[i]);
}
}
return fixed_diffs;
}
/*
* Try to merge tuples with their neigbors in a given range.
* E.g. [0, 'a'], [0, 'b'] -> [0, 'ab']
*
* @param {Array} diffs Array of diff tuples.
* @param {Int} start Position of the first element to merge (diffs[start] is also merged with diffs[start - 1]).
* @param {Int} length Number of consecutive elements to check.
* @return {Array} Array of merged diff tuples.
*/
function merge_tuples (diffs, start, length) {
// Check from (start-1) to (start+length).
for (var i = start + length - 1; i >= 0 && i >= start - 1; i--) {
if (i + 1 < diffs.length) {
var left_d = diffs[i];
var right_d = diffs[i+1];
if (left_d[0] === right_d[1]) {
diffs.splice(i, 2, [left_d[0], left_d[1] + right_d[1]]);
}
}
}
return diffs;
}
/***/ }),
/* 52 */
/***/ (function(module, exports) {
exports = module.exports = typeof Object.keys === 'function'
? Object.keys : shim;
exports.shim = shim;
function shim (obj) {
var keys = [];
for (var key in obj) keys.push(key);
return keys;
}
/***/ }),
/* 53 */
/***/ (function(module, exports) {
var supportsArgumentsClass = (function(){
return Object.prototype.toString.call(arguments)
})() == '[object Arguments]';
exports = module.exports = supportsArgumentsClass ? supported : unsupported;
exports.supported = supported;
function supported(object) {
return Object.prototype.toString.call(object) == '[object Arguments]';
};
exports.unsupported = unsupported;
function unsupported(object){
return object &&
typeof object == 'object' &&
typeof object.length == 'number' &&
Object.prototype.hasOwnProperty.call(object, 'callee') &&
!Object.prototype.propertyIsEnumerable.call(object, 'callee') ||
false;
};
/***/ }),
/* 54 */
/***/ (function(module, exports) {
'use strict';
var has = Object.prototype.hasOwnProperty
, prefix = '~';
/**
* Constructor to create a storage for our `EE` objects.
* An `Events` instance is a plain object whose properties are event names.
*
* @constructor
* @api private
*/
function Events() {}
//
// We try to not inherit from `Object.prototype`. In some engines creating an
// instance in this way is faster than calling `Object.create(null)` directly.
// If `Object.create(null)` is not supported we prefix the event names with a
// character to make sure that the built-in object properties are not
// overridden or used as an attack vector.
//
if (Object.create) {
Events.prototype = Object.create(null);
//
// This hack is needed because the `__proto__` property is still inherited in
// some old browsers like Android 4, iPhone 5.1, Opera 11 and Safari 5.
//
if (!new Events().__proto__) prefix = false;
}
/**
* Representation of a single event listener.
*
* @param {Function} fn The listener function.
* @param {Mixed} context The context to invoke the listener with.
* @param {Boolean} [once=false] Specify if the listener is a one-time listener.
* @constructor
* @api private
*/
function EE(fn, context, once) {
this.fn = fn;
this.context = context;
this.once = once || false;
}
/**
* Minimal `EventEmitter` interface that is molded against the Node.js
* `EventEmitter` interface.
*
* @constructor
* @api public
*/
function EventEmitter() {
this._events = new Events();
this._eventsCount = 0;
}
/**
* Return an array listing the events for which the emitter has registered
* listeners.
*
* @returns {Array}
* @api public
*/
EventEmitter.prototype.eventNames = function eventNames() {
var names = []
, events
, name;
if (this._eventsCount === 0) return names;
for (name in (events = this._events)) {
if (has.call(events, name)) names.push(prefix ? name.slice(1) : name);
}
if (Object.getOwnPropertySymbols) {
return names.concat(Object.getOwnPropertySymbols(events));
}
return names;
};
/**
* Return the listeners registered for a given event.
*
* @param {String|Symbol} event The event name.
* @param {Boolean} exists Only check if there are listeners.
* @returns {Array|Boolean}
* @api public
*/
EventEmitter.prototype.listeners = function listeners(event, exists) {
var evt = prefix ? prefix + event : event
, available = this._events[evt];
if (exists) return !!available;
if (!available) return [];
if (available.fn) return [available.fn];
for (var i = 0, l = available.length, ee = new Array(l); i < l; i++) {
ee[i] = available[i].fn;
}
return ee;
};
/**
* Calls each of the listeners registered for a given event.
*
* @param {String|Symbol} event The event name.
* @returns {Boolean} `true` if the event had listeners, else `false`.
* @api public
*/
EventEmitter.prototype.emit = function emit(event, a1, a2, a3, a4, a5) {
var evt = prefix ? prefix + event : event;
if (!this._events[evt]) return false;
var listeners = this._events[evt]
, len = arguments.length
, args
, i;
if (listeners.fn) {
if (listeners.once) this.removeListener(event, listeners.fn, undefined, true);
switch (len) {
case 1: return listeners.fn.call(listeners.context), true;
case 2: return listeners.fn.call(listeners.context, a1), true;
case 3: return listeners.fn.call(listeners.context, a1, a2), true;
case 4: return listeners.fn.call(listeners.context, a1, a2, a3), true;
case 5: return listeners.fn.call(listeners.context, a1, a2, a3, a4), true;
case 6: return listeners.fn.call(listeners.context, a1, a2, a3, a4, a5), true;
}
for (i = 1, args = new Array(len -1); i < len; i++) {
args[i - 1] = arguments[i];
}
listeners.fn.apply(listeners.context, args);
} else {
var length = listeners.length
, j;
for (i = 0; i < length; i++) {
if (listeners[i].once) this.removeListener(event, listeners[i].fn, undefined, true);
switch (len) {
case 1: listeners[i].fn.call(listeners[i].context); break;
case 2: listeners[i].fn.call(listeners[i].context, a1); break;
case 3: listeners[i].fn.call(listeners[i].context, a1, a2); break;
case 4: listeners[i].fn.call(listeners[i].context, a1, a2, a3); break;
default:
if (!args) for (j = 1, args = new Array(len -1); j < len; j++) {
args[j - 1] = arguments[j];
}
listeners[i].fn.apply(listeners[i].context, args);
}
}
}
return true;
};
/**
* Add a listener for a given event.
*
* @param {String|Symbol} event The event name.
* @param {Function} fn The listener function.
* @param {Mixed} [context=this] The context to invoke the listener with.
* @returns {EventEmitter} `this`.
* @api public
*/
EventEmitter.prototype.on = function on(event, fn, context) {
var listener = new EE(fn, context || this)
, evt = prefix ? prefix + event : event;
if (!this._events[evt]) this._events[evt] = listener, this._eventsCount++;
else if (!this._events[evt].fn) this._events[evt].push(listener);
else this._events[evt] = [this._events[evt], listener];
return this;
};
/**
* Add a one-time listener for a given event.
*
* @param {String|Symbol} event The event name.
* @param {Function} fn The listener function.
* @param {Mixed} [context=this] The context to invoke the listener with.
* @returns {EventEmitter} `this`.
* @api public
*/
EventEmitter.prototype.once = function once(event, fn, context) {
var listener = new EE(fn, context || this, true)
, evt = prefix ? prefix + event : event;
if (!this._events[evt]) this._events[evt] = listener, this._eventsCount++;
else if (!this._events[evt].fn) this._events[evt].push(listener);
else this._events[evt] = [this._events[evt], listener];
return this;
};
/**
* Remove the listeners of a given event.
*
* @param {String|Symbol} event The event name.
* @param {Function} fn Only remove the listeners that match this function.
* @param {Mixed} context Only remove the listeners that have this context.
* @param {Boolean} once Only remove one-time listeners.
* @returns {EventEmitter} `this`.
* @api public
*/
EventEmitter.prototype.removeListener = function removeListener(event, fn, context, once) {
var evt = prefix ? prefix + event : event;
if (!this._events[evt]) return this;
if (!fn) {
if (--this._eventsCount === 0) this._events = new Events();
else delete this._events[evt];
return this;
}
var listeners = this._events[evt];
if (listeners.fn) {
if (
listeners.fn === fn
&& (!once || listeners.once)
&& (!context || listeners.context === context)
) {
if (--this._eventsCount === 0) this._events = new Events();
else delete this._events[evt];
}
} else {
for (var i = 0, events = [], length = listeners.length; i < length; i++) {
if (
listeners[i].fn !== fn
|| (once && !listeners[i].once)
|| (context && listeners[i].context !== context)
) {
events.push(listeners[i]);
}
}
//
// Reset the array, or remove it completely if we have no more listeners.
//
if (events.length) this._events[evt] = events.length === 1 ? events[0] : events;
else if (--this._eventsCount === 0) this._events = new Events();
else delete this._events[evt];
}
return this;
};
/**
* Remove all listeners, or those of the specified event.
*
* @param {String|Symbol} [event] The event name.
* @returns {EventEmitter} `this`.
* @api public
*/
EventEmitter.prototype.removeAllListeners = function removeAllListeners(event) {
var evt;
if (event) {
evt = prefix ? prefix + event : event;
if (this._events[evt]) {
if (--this._eventsCount === 0) this._events = new Events();
else delete this._events[evt];
}
} else {
this._events = new Events();
this._eventsCount = 0;
}
return this;
};
//
// Alias methods names because people roll like that.
//
EventEmitter.prototype.off = EventEmitter.prototype.removeListener;
EventEmitter.prototype.addListener = EventEmitter.prototype.on;
//
// This function doesn't apply anymore.
//
EventEmitter.prototype.setMaxListeners = function setMaxListeners() {
return this;
};
//
// Expose the prefix.
//
EventEmitter.prefixed = prefix;
//
// Allow `EventEmitter` to be imported as module namespace.
//
EventEmitter.EventEmitter = EventEmitter;
//
// Expose the module.
//
if ('undefined' !== typeof module) {
module.exports = EventEmitter;
}
/***/ }),
/* 55 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.matchText = exports.matchSpacing = exports.matchNewline = exports.matchBlot = exports.matchAttributor = exports.default = undefined;
var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }();
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
var _extend2 = __webpack_require__(3);
var _extend3 = _interopRequireDefault(_extend2);
var _quillDelta = __webpack_require__(2);
var _quillDelta2 = _interopRequireDefault(_quillDelta);
var _parchment = __webpack_require__(0);
var _parchment2 = _interopRequireDefault(_parchment);
var _quill = __webpack_require__(5);
var _quill2 = _interopRequireDefault(_quill);
var _logger = __webpack_require__(10);
var _logger2 = _interopRequireDefault(_logger);
var _module = __webpack_require__(9);
var _module2 = _interopRequireDefault(_module);
var _align = __webpack_require__(36);
var _background = __webpack_require__(37);
var _code = __webpack_require__(13);
var _code2 = _interopRequireDefault(_code);
var _color = __webpack_require__(26);
var _direction = __webpack_require__(38);
var _font = __webpack_require__(39);
var _size = __webpack_require__(40);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
var debug = (0, _logger2.default)('quill:clipboard');
var DOM_KEY = '__ql-matcher';
var CLIPBOARD_CONFIG = [[Node.TEXT_NODE, matchText], [Node.TEXT_NODE, matchNewline], ['br', matchBreak], [Node.ELEMENT_NODE, matchNewline], [Node.ELEMENT_NODE, matchBlot], [Node.ELEMENT_NODE, matchSpacing], [Node.ELEMENT_NODE, matchAttributor], [Node.ELEMENT_NODE, matchStyles], ['li', matchIndent], ['b', matchAlias.bind(matchAlias, 'bold')], ['i', matchAlias.bind(matchAlias, 'italic')], ['style', matchIgnore]];
var ATTRIBUTE_ATTRIBUTORS = [_align.AlignAttribute, _direction.DirectionAttribute].reduce(function (memo, attr) {
memo[attr.keyName] = attr;
return memo;
}, {});
var STYLE_ATTRIBUTORS = [_align.AlignStyle, _background.BackgroundStyle, _color.ColorStyle, _direction.DirectionStyle, _font.FontStyle, _size.SizeStyle].reduce(function (memo, attr) {
memo[attr.keyName] = attr;
return memo;
}, {});
var Clipboard = function (_Module) {
_inherits(Clipboard, _Module);
function Clipboard(quill, options) {
_classCallCheck(this, Clipboard);
var _this = _possibleConstructorReturn(this, (Clipboard.__proto__ || Object.getPrototypeOf(Clipboard)).call(this, quill, options));
_this.quill.root.addEventListener('paste', _this.onPaste.bind(_this));
_this.container = _this.quill.addContainer('ql-clipboard');
_this.container.setAttribute('contenteditable', true);
_this.container.setAttribute('tabindex', -1);
_this.matchers = [];
CLIPBOARD_CONFIG.concat(_this.options.matchers).forEach(function (_ref) {
var _ref2 = _slicedToArray(_ref, 2),
selector = _ref2[0],
matcher = _ref2[1];
if (!options.matchVisual && matcher === matchSpacing) return;
_this.addMatcher(selector, matcher);
});
return _this;
}
_createClass(Clipboard, [{
key: 'addMatcher',
value: function addMatcher(selector, matcher) {
this.matchers.push([selector, matcher]);
}
}, {
key: 'convert',
value: function convert(html) {
if (typeof html === 'string') {
this.container.innerHTML = html.replace(/\>\r?\n +\<'); // Remove spaces between tags
return this.convert();
}
var formats = this.quill.getFormat(this.quill.selection.savedRange.index);
if (formats[_code2.default.blotName]) {
var text = this.container.innerText;
this.container.innerHTML = '';
return new _quillDelta2.default().insert(text, _defineProperty({}, _code2.default.blotName, formats[_code2.default.blotName]));
}
var _prepareMatching = this.prepareMatching(),
_prepareMatching2 = _slicedToArray(_prepareMatching, 2),
elementMatchers = _prepareMatching2[0],
textMatchers = _prepareMatching2[1];
var delta = traverse(this.container, elementMatchers, textMatchers);
// Remove trailing newline
if (deltaEndsWith(delta, '\n') && delta.ops[delta.ops.length - 1].attributes == null) {
delta = delta.compose(new _quillDelta2.default().retain(delta.length() - 1).delete(1));
}
debug.log('convert', this.container.innerHTML, delta);
this.container.innerHTML = '';
return delta;
}
}, {
key: 'dangerouslyPasteHTML',
value: function dangerouslyPasteHTML(index, html) {
var source = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : _quill2.default.sources.API;
if (typeof index === 'string') {
this.quill.setContents(this.convert(index), html);
this.quill.setSelection(0, _quill2.default.sources.SILENT);
} else {
var paste = this.convert(html);
this.quill.updateContents(new _quillDelta2.default().retain(index).concat(paste), source);
this.quill.setSelection(index + paste.length(), _quill2.default.sources.SILENT);
}
}
}, {
key: 'onPaste',
value: function onPaste(e) {
var _this2 = this;
if (e.defaultPrevented || !this.quill.isEnabled()) return;
var range = this.quill.getSelection();
var delta = new _quillDelta2.default().retain(range.index);
var scrollTop = this.quill.scrollingContainer.scrollTop;
this.container.focus();
this.quill.selection.update(_quill2.default.sources.SILENT);
setTimeout(function () {
delta = delta.concat(_this2.convert()).delete(range.length);
_this2.quill.updateContents(delta, _quill2.default.sources.USER);
// range.length contributes to delta.length()
_this2.quill.setSelection(delta.length() - range.length, _quill2.default.sources.SILENT);
_this2.quill.scrollingContainer.scrollTop = scrollTop;
_this2.quill.focus();
}, 1);
}
}, {
key: 'prepareMatching',
value: function prepareMatching() {
var _this3 = this;
var elementMatchers = [],
textMatchers = [];
this.matchers.forEach(function (pair) {
var _pair = _slicedToArray(pair, 2),
selector = _pair[0],
matcher = _pair[1];
switch (selector) {
case Node.TEXT_NODE:
textMatchers.push(matcher);
break;
case Node.ELEMENT_NODE:
elementMatchers.push(matcher);
break;
default:
[].forEach.call(_this3.container.querySelectorAll(selector), function (node) {
// TODO use weakmap
node[DOM_KEY] = node[DOM_KEY] || [];
node[DOM_KEY].push(matcher);
});
break;
}
});
return [elementMatchers, textMatchers];
}
}]);
return Clipboard;
}(_module2.default);
Clipboard.DEFAULTS = {
matchers: [],
matchVisual: true
};
function applyFormat(delta, format, value) {
if ((typeof format === 'undefined' ? 'undefined' : _typeof(format)) === 'object') {
return Object.keys(format).reduce(function (delta, key) {
return applyFormat(delta, key, format[key]);
}, delta);
} else {
return delta.reduce(function (delta, op) {
if (op.attributes && op.attributes[format]) {
return delta.push(op);
} else {
return delta.insert(op.insert, (0, _extend3.default)({}, _defineProperty({}, format, value), op.attributes));
}
}, new _quillDelta2.default());
}
}
function computeStyle(node) {
if (node.nodeType !== Node.ELEMENT_NODE) return {};
var DOM_KEY = '__ql-computed-style';
return node[DOM_KEY] || (node[DOM_KEY] = window.getComputedStyle(node));
}
function deltaEndsWith(delta, text) {
var endText = "";
for (var i = delta.ops.length - 1; i >= 0 && endText.length < text.length; --i) {
var op = delta.ops[i];
if (typeof op.insert !== 'string') break;
endText = op.insert + endText;
}
return endText.slice(-1 * text.length) === text;
}
function isLine(node) {
if (node.childNodes.length === 0) return false; // Exclude embed blocks
var style = computeStyle(node);
return ['block', 'list-item'].indexOf(style.display) > -1;
}
function traverse(node, elementMatchers, textMatchers) {
// Post-order
if (node.nodeType === node.TEXT_NODE) {
return textMatchers.reduce(function (delta, matcher) {
return matcher(node, delta);
}, new _quillDelta2.default());
} else if (node.nodeType === node.ELEMENT_NODE) {
return [].reduce.call(node.childNodes || [], function (delta, childNode) {
var childrenDelta = traverse(childNode, elementMatchers, textMatchers);
if (childNode.nodeType === node.ELEMENT_NODE) {
childrenDelta = elementMatchers.reduce(function (childrenDelta, matcher) {
return matcher(childNode, childrenDelta);
}, childrenDelta);
childrenDelta = (childNode[DOM_KEY] || []).reduce(function (childrenDelta, matcher) {
return matcher(childNode, childrenDelta);
}, childrenDelta);
}
return delta.concat(childrenDelta);
}, new _quillDelta2.default());
} else {
return new _quillDelta2.default();
}
}
function matchAlias(format, node, delta) {
return applyFormat(delta, format, true);
}
function matchAttributor(node, delta) {
var attributes = _parchment2.default.Attributor.Attribute.keys(node);
var classes = _parchment2.default.Attributor.Class.keys(node);
var styles = _parchment2.default.Attributor.Style.keys(node);
var formats = {};
attributes.concat(classes).concat(styles).forEach(function (name) {
var attr = _parchment2.default.query(name, _parchment2.default.Scope.ATTRIBUTE);
if (attr != null) {
formats[attr.attrName] = attr.value(node);
if (formats[attr.attrName]) return;
}
attr = ATTRIBUTE_ATTRIBUTORS[name];
if (attr != null && (attr.attrName === name || attr.keyName === name)) {
formats[attr.attrName] = attr.value(node) || undefined;
}
attr = STYLE_ATTRIBUTORS[name];
if (attr != null && (attr.attrName === name || attr.keyName === name)) {
attr = STYLE_ATTRIBUTORS[name];
formats[attr.attrName] = attr.value(node) || undefined;
}
});
if (Object.keys(formats).length > 0) {
delta = applyFormat(delta, formats);
}
return delta;
}
function matchBlot(node, delta) {
var match = _parchment2.default.query(node);
if (match == null) return delta;
if (match.prototype instanceof _parchment2.default.Embed) {
var embed = {};
var value = match.value(node);
if (value != null) {
embed[match.blotName] = value;
delta = new _quillDelta2.default().insert(embed, match.formats(node));
}
} else if (typeof match.formats === 'function') {
delta = applyFormat(delta, match.blotName, match.formats(node));
}
return delta;
}
function matchBreak(node, delta) {
if (!deltaEndsWith(delta, '\n')) {
delta.insert('\n');
}
return delta;
}
function matchIgnore() {
return new _quillDelta2.default();
}
function matchIndent(node, delta) {
var match = _parchment2.default.query(node);
if (match == null || match.blotName !== 'list-item' || !deltaEndsWith(delta, '\n')) {
return delta;
}
var indent = -1,
parent = node.parentNode;
while (!parent.classList.contains('ql-clipboard')) {
if ((_parchment2.default.query(parent) || {}).blotName === 'list') {
indent += 1;
}
parent = parent.parentNode;
}
if (indent <= 0) return delta;
return delta.compose(new _quillDelta2.default().retain(delta.length() - 1).retain(1, { indent: indent }));
}
function matchNewline(node, delta) {
if (!deltaEndsWith(delta, '\n')) {
if (isLine(node) || delta.length() > 0 && node.nextSibling && isLine(node.nextSibling)) {
delta.insert('\n');
}
}
return delta;
}
function matchSpacing(node, delta) {
if (isLine(node) && node.nextElementSibling != null && !deltaEndsWith(delta, '\n\n')) {
var nodeHeight = node.offsetHeight + parseFloat(computeStyle(node).marginTop) + parseFloat(computeStyle(node).marginBottom);
if (node.nextElementSibling.offsetTop > node.offsetTop + nodeHeight * 1.5) {
delta.insert('\n');
}
}
return delta;
}
function matchStyles(node, delta) {
var formats = {};
var style = node.style || {};
if (style.fontStyle && computeStyle(node).fontStyle === 'italic') {
formats.italic = true;
}
if (style.fontWeight && (computeStyle(node).fontWeight.startsWith('bold') || parseInt(computeStyle(node).fontWeight) >= 700)) {
formats.bold = true;
}
if (Object.keys(formats).length > 0) {
delta = applyFormat(delta, formats);
}
if (parseFloat(style.textIndent || 0) > 0) {
// Could be 0.5in
delta = new _quillDelta2.default().insert('\t').concat(delta);
}
return delta;
}
function matchText(node, delta) {
var text = node.data;
// Word represents empty line with
if (node.parentNode.tagName === 'O:P') {
return delta.insert(text.trim());
}
if (text.trim().length === 0 && node.parentNode.classList.contains('ql-clipboard')) {
return delta;
}
if (!computeStyle(node.parentNode).whiteSpace.startsWith('pre')) {
// eslint-disable-next-line func-style
var replacer = function replacer(collapse, match) {
match = match.replace(/[^\u00a0]/g, ''); // \u00a0 is nbsp;
return match.length < 1 && collapse ? ' ' : match;
};
text = text.replace(/\r\n/g, ' ').replace(/\n/g, ' ');
text = text.replace(/\s\s+/g, replacer.bind(replacer, true)); // collapse whitespace
if (node.previousSibling == null && isLine(node.parentNode) || node.previousSibling != null && isLine(node.previousSibling)) {
text = text.replace(/^\s+/, replacer.bind(replacer, false));
}
if (node.nextSibling == null && isLine(node.parentNode) || node.nextSibling != null && isLine(node.nextSibling)) {
text = text.replace(/\s+$/, replacer.bind(replacer, false));
}
}
return delta.insert(text);
}
exports.default = Clipboard;
exports.matchAttributor = matchAttributor;
exports.matchBlot = matchBlot;
exports.matchNewline = matchNewline;
exports.matchSpacing = matchSpacing;
exports.matchText = matchText;
/***/ }),
/* 56 */,
/* 57 */,
/* 58 */,
/* 59 */,
/* 60 */,
/* 61 */,
/* 62 */,
/* 63 */,
/* 64 */,
/* 65 */,
/* 66 */,
/* 67 */,
/* 68 */,
/* 69 */,
/* 70 */,
/* 71 */,
/* 72 */,
/* 73 */,
/* 74 */,
/* 75 */,
/* 76 */,
/* 77 */,
/* 78 */,
/* 79 */,
/* 80 */,
/* 81 */,
/* 82 */,
/* 83 */,
/* 84 */,
/* 85 */,
/* 86 */,
/* 87 */,
/* 88 */,
/* 89 */,
/* 90 */,
/* 91 */,
/* 92 */,
/* 93 */,
/* 94 */,
/* 95 */,
/* 96 */,
/* 97 */,
/* 98 */,
/* 99 */,
/* 100 */,
/* 101 */,
/* 102 */,
/* 103 */,
/* 104 */,
/* 105 */,
/* 106 */,
/* 107 */,
/* 108 */,
/* 109 */,
/* 110 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(29);
/***/ })
/******/ ])["default"];
});
================================================
FILE: public/admin-panel/assets/libs/quill/dist/quill.snow.css
================================================
/*!
* Quill Editor v1.3.6
* https://quilljs.com/
* Copyright (c) 2014, Jason Chen
* Copyright (c) 2013, salesforce.com
*/
.ql-container {
box-sizing: border-box;
font-family: Helvetica, Arial, sans-serif;
font-size: 13px;
height: 100%;
margin: 0px;
position: relative;
}
.ql-container.ql-disabled .ql-tooltip {
visibility: hidden;
}
.ql-container.ql-disabled .ql-editor ul[data-checked] > li::before {
pointer-events: none;
}
.ql-clipboard {
left: -100000px;
height: 1px;
overflow-y: hidden;
position: absolute;
top: 50%;
}
.ql-clipboard p {
margin: 0;
padding: 0;
}
.ql-editor {
box-sizing: border-box;
line-height: 1.42;
height: 100%;
outline: none;
overflow-y: auto;
padding: 12px 15px;
tab-size: 4;
-moz-tab-size: 4;
text-align: left;
white-space: pre-wrap;
word-wrap: break-word;
}
.ql-editor > * {
cursor: text;
}
.ql-editor p,
.ql-editor ol,
.ql-editor ul,
.ql-editor pre,
.ql-editor blockquote,
.ql-editor h1,
.ql-editor h2,
.ql-editor h3,
.ql-editor h4,
.ql-editor h5,
.ql-editor h6 {
margin: 0;
padding: 0;
counter-reset: list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9;
}
.ql-editor ol,
.ql-editor ul {
padding-left: 1.5em;
}
.ql-editor ol > li,
.ql-editor ul > li {
list-style-type: none;
}
.ql-editor ul > li::before {
content: '\2022';
}
.ql-editor ul[data-checked=true],
.ql-editor ul[data-checked=false] {
pointer-events: none;
}
.ql-editor ul[data-checked=true] > li *,
.ql-editor ul[data-checked=false] > li * {
pointer-events: all;
}
.ql-editor ul[data-checked=true] > li::before,
.ql-editor ul[data-checked=false] > li::before {
color: #777;
cursor: pointer;
pointer-events: all;
}
.ql-editor ul[data-checked=true] > li::before {
content: '\2611';
}
.ql-editor ul[data-checked=false] > li::before {
content: '\2610';
}
.ql-editor li::before {
display: inline-block;
white-space: nowrap;
width: 1.2em;
}
.ql-editor li:not(.ql-direction-rtl)::before {
margin-left: -1.5em;
margin-right: 0.3em;
text-align: right;
}
.ql-editor li.ql-direction-rtl::before {
margin-left: 0.3em;
margin-right: -1.5em;
}
.ql-editor ol li:not(.ql-direction-rtl),
.ql-editor ul li:not(.ql-direction-rtl) {
padding-left: 1.5em;
}
.ql-editor ol li.ql-direction-rtl,
.ql-editor ul li.ql-direction-rtl {
padding-right: 1.5em;
}
.ql-editor ol li {
counter-reset: list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9;
counter-increment: list-0;
}
.ql-editor ol li:before {
content: counter(list-0, decimal) '. ';
}
.ql-editor ol li.ql-indent-1 {
counter-increment: list-1;
}
.ql-editor ol li.ql-indent-1:before {
content: counter(list-1, lower-alpha) '. ';
}
.ql-editor ol li.ql-indent-1 {
counter-reset: list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9;
}
.ql-editor ol li.ql-indent-2 {
counter-increment: list-2;
}
.ql-editor ol li.ql-indent-2:before {
content: counter(list-2, lower-roman) '. ';
}
.ql-editor ol li.ql-indent-2 {
counter-reset: list-3 list-4 list-5 list-6 list-7 list-8 list-9;
}
.ql-editor ol li.ql-indent-3 {
counter-increment: list-3;
}
.ql-editor ol li.ql-indent-3:before {
content: counter(list-3, decimal) '. ';
}
.ql-editor ol li.ql-indent-3 {
counter-reset: list-4 list-5 list-6 list-7 list-8 list-9;
}
.ql-editor ol li.ql-indent-4 {
counter-increment: list-4;
}
.ql-editor ol li.ql-indent-4:before {
content: counter(list-4, lower-alpha) '. ';
}
.ql-editor ol li.ql-indent-4 {
counter-reset: list-5 list-6 list-7 list-8 list-9;
}
.ql-editor ol li.ql-indent-5 {
counter-increment: list-5;
}
.ql-editor ol li.ql-indent-5:before {
content: counter(list-5, lower-roman) '. ';
}
.ql-editor ol li.ql-indent-5 {
counter-reset: list-6 list-7 list-8 list-9;
}
.ql-editor ol li.ql-indent-6 {
counter-increment: list-6;
}
.ql-editor ol li.ql-indent-6:before {
content: counter(list-6, decimal) '. ';
}
.ql-editor ol li.ql-indent-6 {
counter-reset: list-7 list-8 list-9;
}
.ql-editor ol li.ql-indent-7 {
counter-increment: list-7;
}
.ql-editor ol li.ql-indent-7:before {
content: counter(list-7, lower-alpha) '. ';
}
.ql-editor ol li.ql-indent-7 {
counter-reset: list-8 list-9;
}
.ql-editor ol li.ql-indent-8 {
counter-increment: list-8;
}
.ql-editor ol li.ql-indent-8:before {
content: counter(list-8, lower-roman) '. ';
}
.ql-editor ol li.ql-indent-8 {
counter-reset: list-9;
}
.ql-editor ol li.ql-indent-9 {
counter-increment: list-9;
}
.ql-editor ol li.ql-indent-9:before {
content: counter(list-9, decimal) '. ';
}
.ql-editor .ql-indent-1:not(.ql-direction-rtl) {
padding-left: 3em;
}
.ql-editor li.ql-indent-1:not(.ql-direction-rtl) {
padding-left: 4.5em;
}
.ql-editor .ql-indent-1.ql-direction-rtl.ql-align-right {
padding-right: 3em;
}
.ql-editor li.ql-indent-1.ql-direction-rtl.ql-align-right {
padding-right: 4.5em;
}
.ql-editor .ql-indent-2:not(.ql-direction-rtl) {
padding-left: 6em;
}
.ql-editor li.ql-indent-2:not(.ql-direction-rtl) {
padding-left: 7.5em;
}
.ql-editor .ql-indent-2.ql-direction-rtl.ql-align-right {
padding-right: 6em;
}
.ql-editor li.ql-indent-2.ql-direction-rtl.ql-align-right {
padding-right: 7.5em;
}
.ql-editor .ql-indent-3:not(.ql-direction-rtl) {
padding-left: 9em;
}
.ql-editor li.ql-indent-3:not(.ql-direction-rtl) {
padding-left: 10.5em;
}
.ql-editor .ql-indent-3.ql-direction-rtl.ql-align-right {
padding-right: 9em;
}
.ql-editor li.ql-indent-3.ql-direction-rtl.ql-align-right {
padding-right: 10.5em;
}
.ql-editor .ql-indent-4:not(.ql-direction-rtl) {
padding-left: 12em;
}
.ql-editor li.ql-indent-4:not(.ql-direction-rtl) {
padding-left: 13.5em;
}
.ql-editor .ql-indent-4.ql-direction-rtl.ql-align-right {
padding-right: 12em;
}
.ql-editor li.ql-indent-4.ql-direction-rtl.ql-align-right {
padding-right: 13.5em;
}
.ql-editor .ql-indent-5:not(.ql-direction-rtl) {
padding-left: 15em;
}
.ql-editor li.ql-indent-5:not(.ql-direction-rtl) {
padding-left: 16.5em;
}
.ql-editor .ql-indent-5.ql-direction-rtl.ql-align-right {
padding-right: 15em;
}
.ql-editor li.ql-indent-5.ql-direction-rtl.ql-align-right {
padding-right: 16.5em;
}
.ql-editor .ql-indent-6:not(.ql-direction-rtl) {
padding-left: 18em;
}
.ql-editor li.ql-indent-6:not(.ql-direction-rtl) {
padding-left: 19.5em;
}
.ql-editor .ql-indent-6.ql-direction-rtl.ql-align-right {
padding-right: 18em;
}
.ql-editor li.ql-indent-6.ql-direction-rtl.ql-align-right {
padding-right: 19.5em;
}
.ql-editor .ql-indent-7:not(.ql-direction-rtl) {
padding-left: 21em;
}
.ql-editor li.ql-indent-7:not(.ql-direction-rtl) {
padding-left: 22.5em;
}
.ql-editor .ql-indent-7.ql-direction-rtl.ql-align-right {
padding-right: 21em;
}
.ql-editor li.ql-indent-7.ql-direction-rtl.ql-align-right {
padding-right: 22.5em;
}
.ql-editor .ql-indent-8:not(.ql-direction-rtl) {
padding-left: 24em;
}
.ql-editor li.ql-indent-8:not(.ql-direction-rtl) {
padding-left: 25.5em;
}
.ql-editor .ql-indent-8.ql-direction-rtl.ql-align-right {
padding-right: 24em;
}
.ql-editor li.ql-indent-8.ql-direction-rtl.ql-align-right {
padding-right: 25.5em;
}
.ql-editor .ql-indent-9:not(.ql-direction-rtl) {
padding-left: 27em;
}
.ql-editor li.ql-indent-9:not(.ql-direction-rtl) {
padding-left: 28.5em;
}
.ql-editor .ql-indent-9.ql-direction-rtl.ql-align-right {
padding-right: 27em;
}
.ql-editor li.ql-indent-9.ql-direction-rtl.ql-align-right {
padding-right: 28.5em;
}
.ql-editor .ql-video {
display: block;
max-width: 100%;
}
.ql-editor .ql-video.ql-align-center {
margin: 0 auto;
}
.ql-editor .ql-video.ql-align-right {
margin: 0 0 0 auto;
}
.ql-editor .ql-bg-black {
background-color: #000;
}
.ql-editor .ql-bg-red {
background-color: #e60000;
}
.ql-editor .ql-bg-orange {
background-color: #f90;
}
.ql-editor .ql-bg-yellow {
background-color: #ff0;
}
.ql-editor .ql-bg-green {
background-color: #008a00;
}
.ql-editor .ql-bg-blue {
background-color: #06c;
}
.ql-editor .ql-bg-purple {
background-color: #93f;
}
.ql-editor .ql-color-white {
color: #fff;
}
.ql-editor .ql-color-red {
color: #e60000;
}
.ql-editor .ql-color-orange {
color: #f90;
}
.ql-editor .ql-color-yellow {
color: #ff0;
}
.ql-editor .ql-color-green {
color: #008a00;
}
.ql-editor .ql-color-blue {
color: #06c;
}
.ql-editor .ql-color-purple {
color: #93f;
}
.ql-editor .ql-font-serif {
font-family: Georgia, Times New Roman, serif;
}
.ql-editor .ql-font-monospace {
font-family: Monaco, Courier New, monospace;
}
.ql-editor .ql-size-small {
font-size: 0.75em;
}
.ql-editor .ql-size-large {
font-size: 1.5em;
}
.ql-editor .ql-size-huge {
font-size: 2.5em;
}
.ql-editor .ql-direction-rtl {
direction: rtl;
text-align: inherit;
}
.ql-editor .ql-align-center {
text-align: center;
}
.ql-editor .ql-align-justify {
text-align: justify;
}
.ql-editor .ql-align-right {
text-align: right;
}
.ql-editor.ql-blank::before {
color: rgba(0,0,0,0.6);
content: attr(data-placeholder);
font-style: italic;
left: 15px;
pointer-events: none;
position: absolute;
right: 15px;
}
.ql-snow.ql-toolbar:after,
.ql-snow .ql-toolbar:after {
clear: both;
content: '';
display: table;
}
.ql-snow.ql-toolbar button,
.ql-snow .ql-toolbar button {
background: none;
border: none;
cursor: pointer;
display: inline-block;
float: left;
height: 24px;
padding: 3px 5px;
width: 28px;
}
.ql-snow.ql-toolbar button svg,
.ql-snow .ql-toolbar button svg {
float: left;
height: 100%;
}
.ql-snow.ql-toolbar button:active:hover,
.ql-snow .ql-toolbar button:active:hover {
outline: none;
}
.ql-snow.ql-toolbar input.ql-image[type=file],
.ql-snow .ql-toolbar input.ql-image[type=file] {
display: none;
}
.ql-snow.ql-toolbar button:hover,
.ql-snow .ql-toolbar button:hover,
.ql-snow.ql-toolbar button:focus,
.ql-snow .ql-toolbar button:focus,
.ql-snow.ql-toolbar button.ql-active,
.ql-snow .ql-toolbar button.ql-active,
.ql-snow.ql-toolbar .ql-picker-label:hover,
.ql-snow .ql-toolbar .ql-picker-label:hover,
.ql-snow.ql-toolbar .ql-picker-label.ql-active,
.ql-snow .ql-toolbar .ql-picker-label.ql-active,
.ql-snow.ql-toolbar .ql-picker-item:hover,
.ql-snow .ql-toolbar .ql-picker-item:hover,
.ql-snow.ql-toolbar .ql-picker-item.ql-selected,
.ql-snow .ql-toolbar .ql-picker-item.ql-selected {
color: #06c;
}
.ql-snow.ql-toolbar button:hover .ql-fill,
.ql-snow .ql-toolbar button:hover .ql-fill,
.ql-snow.ql-toolbar button:focus .ql-fill,
.ql-snow .ql-toolbar button:focus .ql-fill,
.ql-snow.ql-toolbar button.ql-active .ql-fill,
.ql-snow .ql-toolbar button.ql-active .ql-fill,
.ql-snow.ql-toolbar .ql-picker-label:hover .ql-fill,
.ql-snow .ql-toolbar .ql-picker-label:hover .ql-fill,
.ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-fill,
.ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-fill,
.ql-snow.ql-toolbar .ql-picker-item:hover .ql-fill,
.ql-snow .ql-toolbar .ql-picker-item:hover .ql-fill,
.ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-fill,
.ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-fill,
.ql-snow.ql-toolbar button:hover .ql-stroke.ql-fill,
.ql-snow .ql-toolbar button:hover .ql-stroke.ql-fill,
.ql-snow.ql-toolbar button:focus .ql-stroke.ql-fill,
.ql-snow .ql-toolbar button:focus .ql-stroke.ql-fill,
.ql-snow.ql-toolbar button.ql-active .ql-stroke.ql-fill,
.ql-snow .ql-toolbar button.ql-active .ql-stroke.ql-fill,
.ql-snow.ql-toolbar .ql-picker-label:hover .ql-stroke.ql-fill,
.ql-snow .ql-toolbar .ql-picker-label:hover .ql-stroke.ql-fill,
.ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-stroke.ql-fill,
.ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-stroke.ql-fill,
.ql-snow.ql-toolbar .ql-picker-item:hover .ql-stroke.ql-fill,
.ql-snow .ql-toolbar .ql-picker-item:hover .ql-stroke.ql-fill,
.ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-stroke.ql-fill,
.ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-stroke.ql-fill {
fill: #06c;
}
.ql-snow.ql-toolbar button:hover .ql-stroke,
.ql-snow .ql-toolbar button:hover .ql-stroke,
.ql-snow.ql-toolbar button:focus .ql-stroke,
.ql-snow .ql-toolbar button:focus .ql-stroke,
.ql-snow.ql-toolbar button.ql-active .ql-stroke,
.ql-snow .ql-toolbar button.ql-active .ql-stroke,
.ql-snow.ql-toolbar .ql-picker-label:hover .ql-stroke,
.ql-snow .ql-toolbar .ql-picker-label:hover .ql-stroke,
.ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-stroke,
.ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-stroke,
.ql-snow.ql-toolbar .ql-picker-item:hover .ql-stroke,
.ql-snow .ql-toolbar .ql-picker-item:hover .ql-stroke,
.ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-stroke,
.ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-stroke,
.ql-snow.ql-toolbar button:hover .ql-stroke-miter,
.ql-snow .ql-toolbar button:hover .ql-stroke-miter,
.ql-snow.ql-toolbar button:focus .ql-stroke-miter,
.ql-snow .ql-toolbar button:focus .ql-stroke-miter,
.ql-snow.ql-toolbar button.ql-active .ql-stroke-miter,
.ql-snow .ql-toolbar button.ql-active .ql-stroke-miter,
.ql-snow.ql-toolbar .ql-picker-label:hover .ql-stroke-miter,
.ql-snow .ql-toolbar .ql-picker-label:hover .ql-stroke-miter,
.ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-stroke-miter,
.ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-stroke-miter,
.ql-snow.ql-toolbar .ql-picker-item:hover .ql-stroke-miter,
.ql-snow .ql-toolbar .ql-picker-item:hover .ql-stroke-miter,
.ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-stroke-miter,
.ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-stroke-miter {
stroke: #06c;
}
@media (pointer: coarse) {
.ql-snow.ql-toolbar button:hover:not(.ql-active),
.ql-snow .ql-toolbar button:hover:not(.ql-active) {
color: #444;
}
.ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-fill,
.ql-snow .ql-toolbar button:hover:not(.ql-active) .ql-fill,
.ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-stroke.ql-fill,
.ql-snow .ql-toolbar button:hover:not(.ql-active) .ql-stroke.ql-fill {
fill: #444;
}
.ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-stroke,
.ql-snow .ql-toolbar button:hover:not(.ql-active) .ql-stroke,
.ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-stroke-miter,
.ql-snow .ql-toolbar button:hover:not(.ql-active) .ql-stroke-miter {
stroke: #444;
}
}
.ql-snow {
box-sizing: border-box;
}
.ql-snow * {
box-sizing: border-box;
}
.ql-snow .ql-hidden {
display: none;
}
.ql-snow .ql-out-bottom,
.ql-snow .ql-out-top {
visibility: hidden;
}
.ql-snow .ql-tooltip {
position: absolute;
transform: translateY(10px);
}
.ql-snow .ql-tooltip a {
cursor: pointer;
text-decoration: none;
}
.ql-snow .ql-tooltip.ql-flip {
transform: translateY(-10px);
}
.ql-snow .ql-formats {
display: inline-block;
vertical-align: middle;
}
.ql-snow .ql-formats:after {
clear: both;
content: '';
display: table;
}
.ql-snow .ql-stroke {
fill: none;
stroke: #444;
stroke-linecap: round;
stroke-linejoin: round;
stroke-width: 2;
}
.ql-snow .ql-stroke-miter {
fill: none;
stroke: #444;
stroke-miterlimit: 10;
stroke-width: 2;
}
.ql-snow .ql-fill,
.ql-snow .ql-stroke.ql-fill {
fill: #444;
}
.ql-snow .ql-empty {
fill: none;
}
.ql-snow .ql-even {
fill-rule: evenodd;
}
.ql-snow .ql-thin,
.ql-snow .ql-stroke.ql-thin {
stroke-width: 1;
}
.ql-snow .ql-transparent {
opacity: 0.4;
}
.ql-snow .ql-direction svg:last-child {
display: none;
}
.ql-snow .ql-direction.ql-active svg:last-child {
display: inline;
}
.ql-snow .ql-direction.ql-active svg:first-child {
display: none;
}
.ql-snow .ql-editor h1 {
font-size: 2em;
}
.ql-snow .ql-editor h2 {
font-size: 1.5em;
}
.ql-snow .ql-editor h3 {
font-size: 1.17em;
}
.ql-snow .ql-editor h4 {
font-size: 1em;
}
.ql-snow .ql-editor h5 {
font-size: 0.83em;
}
.ql-snow .ql-editor h6 {
font-size: 0.67em;
}
.ql-snow .ql-editor a {
text-decoration: underline;
}
.ql-snow .ql-editor blockquote {
border-left: 4px solid #ccc;
margin-bottom: 5px;
margin-top: 5px;
padding-left: 16px;
}
.ql-snow .ql-editor code,
.ql-snow .ql-editor pre {
background-color: #f0f0f0;
border-radius: 3px;
}
.ql-snow .ql-editor pre {
white-space: pre-wrap;
margin-bottom: 5px;
margin-top: 5px;
padding: 5px 10px;
}
.ql-snow .ql-editor code {
font-size: 85%;
padding: 2px 4px;
}
.ql-snow .ql-editor pre.ql-syntax {
background-color: #23241f;
color: #f8f8f2;
overflow: visible;
}
.ql-snow .ql-editor img {
max-width: 100%;
}
.ql-snow .ql-picker {
color: #444;
display: inline-block;
float: left;
font-size: 14px;
font-weight: 500;
height: 24px;
position: relative;
vertical-align: middle;
}
.ql-snow .ql-picker-label {
cursor: pointer;
display: inline-block;
height: 100%;
padding-left: 8px;
padding-right: 2px;
position: relative;
width: 100%;
}
.ql-snow .ql-picker-label::before {
display: inline-block;
line-height: 22px;
}
.ql-snow .ql-picker-options {
background-color: #fff;
display: none;
min-width: 100%;
padding: 4px 8px;
position: absolute;
white-space: nowrap;
}
.ql-snow .ql-picker-options .ql-picker-item {
cursor: pointer;
display: block;
padding-bottom: 5px;
padding-top: 5px;
}
.ql-snow .ql-picker.ql-expanded .ql-picker-label {
color: #ccc;
z-index: 2;
}
.ql-snow .ql-picker.ql-expanded .ql-picker-label .ql-fill {
fill: #ccc;
}
.ql-snow .ql-picker.ql-expanded .ql-picker-label .ql-stroke {
stroke: #ccc;
}
.ql-snow .ql-picker.ql-expanded .ql-picker-options {
display: block;
margin-top: -1px;
top: 100%;
z-index: 1;
}
.ql-snow .ql-color-picker,
.ql-snow .ql-icon-picker {
width: 28px;
}
.ql-snow .ql-color-picker .ql-picker-label,
.ql-snow .ql-icon-picker .ql-picker-label {
padding: 2px 4px;
}
.ql-snow .ql-color-picker .ql-picker-label svg,
.ql-snow .ql-icon-picker .ql-picker-label svg {
right: 4px;
}
.ql-snow .ql-icon-picker .ql-picker-options {
padding: 4px 0px;
}
.ql-snow .ql-icon-picker .ql-picker-item {
height: 24px;
width: 24px;
padding: 2px 4px;
}
.ql-snow .ql-color-picker .ql-picker-options {
padding: 3px 5px;
width: 152px;
}
.ql-snow .ql-color-picker .ql-picker-item {
border: 1px solid transparent;
float: left;
height: 16px;
margin: 2px;
padding: 0px;
width: 16px;
}
.ql-snow .ql-picker:not(.ql-color-picker):not(.ql-icon-picker) svg {
position: absolute;
margin-top: -9px;
right: 0;
top: 50%;
width: 18px;
}
.ql-snow .ql-picker.ql-header .ql-picker-label[data-label]:not([data-label=''])::before,
.ql-snow .ql-picker.ql-font .ql-picker-label[data-label]:not([data-label=''])::before,
.ql-snow .ql-picker.ql-size .ql-picker-label[data-label]:not([data-label=''])::before,
.ql-snow .ql-picker.ql-header .ql-picker-item[data-label]:not([data-label=''])::before,
.ql-snow .ql-picker.ql-font .ql-picker-item[data-label]:not([data-label=''])::before,
.ql-snow .ql-picker.ql-size .ql-picker-item[data-label]:not([data-label=''])::before {
content: attr(data-label);
}
.ql-snow .ql-picker.ql-header {
width: 98px;
}
.ql-snow .ql-picker.ql-header .ql-picker-label::before,
.ql-snow .ql-picker.ql-header .ql-picker-item::before {
content: 'Normal';
}
.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="1"]::before,
.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="1"]::before {
content: 'Heading 1';
}
.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="2"]::before,
.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="2"]::before {
content: 'Heading 2';
}
.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="3"]::before,
.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="3"]::before {
content: 'Heading 3';
}
.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="4"]::before,
.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="4"]::before {
content: 'Heading 4';
}
.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="5"]::before,
.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="5"]::before {
content: 'Heading 5';
}
.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="6"]::before,
.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="6"]::before {
content: 'Heading 6';
}
.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="1"]::before {
font-size: 2em;
}
.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="2"]::before {
font-size: 1.5em;
}
.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="3"]::before {
font-size: 1.17em;
}
.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="4"]::before {
font-size: 1em;
}
.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="5"]::before {
font-size: 0.83em;
}
.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="6"]::before {
font-size: 0.67em;
}
.ql-snow .ql-picker.ql-font {
width: 108px;
}
.ql-snow .ql-picker.ql-font .ql-picker-label::before,
.ql-snow .ql-picker.ql-font .ql-picker-item::before {
content: 'Sans Serif';
}
.ql-snow .ql-picker.ql-font .ql-picker-label[data-value=serif]::before,
.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=serif]::before {
content: 'Serif';
}
.ql-snow .ql-picker.ql-font .ql-picker-label[data-value=monospace]::before,
.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=monospace]::before {
content: 'Monospace';
}
.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=serif]::before {
font-family: Georgia, Times New Roman, serif;
}
.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=monospace]::before {
font-family: Monaco, Courier New, monospace;
}
.ql-snow .ql-picker.ql-size {
width: 98px;
}
.ql-snow .ql-picker.ql-size .ql-picker-label::before,
.ql-snow .ql-picker.ql-size .ql-picker-item::before {
content: 'Normal';
}
.ql-snow .ql-picker.ql-size .ql-picker-label[data-value=small]::before,
.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=small]::before {
content: 'Small';
}
.ql-snow .ql-picker.ql-size .ql-picker-label[data-value=large]::before,
.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=large]::before {
content: 'Large';
}
.ql-snow .ql-picker.ql-size .ql-picker-label[data-value=huge]::before,
.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=huge]::before {
content: 'Huge';
}
.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=small]::before {
font-size: 10px;
}
.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=large]::before {
font-size: 18px;
}
.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=huge]::before {
font-size: 32px;
}
.ql-snow .ql-color-picker.ql-background .ql-picker-item {
background-color: #fff;
}
.ql-snow .ql-color-picker.ql-color .ql-picker-item {
background-color: #000;
}
.ql-toolbar.ql-snow {
border: 1px solid #ccc;
box-sizing: border-box;
font-family: 'Helvetica Neue', 'Helvetica', 'Arial', sans-serif;
padding: 8px;
}
.ql-toolbar.ql-snow .ql-formats {
margin-right: 15px;
}
.ql-toolbar.ql-snow .ql-picker-label {
border: 1px solid transparent;
}
.ql-toolbar.ql-snow .ql-picker-options {
border: 1px solid transparent;
box-shadow: rgba(0,0,0,0.2) 0 2px 8px;
}
.ql-toolbar.ql-snow .ql-picker.ql-expanded .ql-picker-label {
border-color: #ccc;
}
.ql-toolbar.ql-snow .ql-picker.ql-expanded .ql-picker-options {
border-color: #ccc;
}
.ql-toolbar.ql-snow .ql-color-picker .ql-picker-item.ql-selected,
.ql-toolbar.ql-snow .ql-color-picker .ql-picker-item:hover {
border-color: #000;
}
.ql-toolbar.ql-snow + .ql-container.ql-snow {
border-top: 0px;
}
.ql-snow .ql-tooltip {
background-color: #fff;
border: 1px solid #ccc;
box-shadow: 0px 0px 5px #ddd;
color: #444;
padding: 5px 12px;
white-space: nowrap;
}
.ql-snow .ql-tooltip::before {
content: "Visit URL:";
line-height: 26px;
margin-right: 8px;
}
.ql-snow .ql-tooltip input[type=text] {
display: none;
border: 1px solid #ccc;
font-size: 13px;
height: 26px;
margin: 0px;
padding: 3px 5px;
width: 170px;
}
.ql-snow .ql-tooltip a.ql-preview {
display: inline-block;
max-width: 200px;
overflow-x: hidden;
text-overflow: ellipsis;
vertical-align: top;
}
.ql-snow .ql-tooltip a.ql-action::after {
border-right: 1px solid #ccc;
content: 'Edit';
margin-left: 16px;
padding-right: 8px;
}
.ql-snow .ql-tooltip a.ql-remove::before {
content: 'Remove';
margin-left: 8px;
}
.ql-snow .ql-tooltip a {
line-height: 26px;
}
.ql-snow .ql-tooltip.ql-editing a.ql-preview,
.ql-snow .ql-tooltip.ql-editing a.ql-remove {
display: none;
}
.ql-snow .ql-tooltip.ql-editing input[type=text] {
display: inline-block;
}
.ql-snow .ql-tooltip.ql-editing a.ql-action::after {
border-right: 0px;
content: 'Save';
padding-right: 0px;
}
.ql-snow .ql-tooltip[data-mode=link]::before {
content: "Enter link:";
}
.ql-snow .ql-tooltip[data-mode=formula]::before {
content: "Enter formula:";
}
.ql-snow .ql-tooltip[data-mode=video]::before {
content: "Enter video:";
}
.ql-snow a {
color: #06c;
}
.ql-container.ql-snow {
border: 1px solid #ccc;
}
================================================
FILE: public/admin-panel/assets/libs/select2/dist/js/i18n/af.js
================================================
/*! Select2 4.0.6-rc.1 | https://github.com/select2/select2/blob/master/LICENSE.md */
(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/af",[],function(){return{errorLoading:function(){return"Die resultate kon nie gelaai word nie."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Verwyders asseblief "+t+" character";return t!=1&&(n+="s"),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Voer asseblief "+t+" of meer karakters";return n},loadingMore:function(){return"Meer resultate word gelaai…"},maximumSelected:function(e){var t="Kies asseblief net "+e.maximum+" item";return e.maximum!=1&&(t+="s"),t},noResults:function(){return"Geen resultate gevind"},searching:function(){return"Besig…"}}}),{define:e.define,require:e.require}})();
================================================
FILE: public/admin-panel/assets/libs/select2/dist/js/i18n/ar.js
================================================
/*! Select2 4.0.6-rc.1 | https://github.com/select2/select2/blob/master/LICENSE.md */
(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/ar",[],function(){return{errorLoading:function(){return"لا يمكن تحميل النتائج"},inputTooLong:function(e){var t=e.input.length-e.maximum;return"الرجاء حذف "+t+" عناصر"},inputTooShort:function(e){var t=e.minimum-e.input.length;return"الرجاء إضافة "+t+" عناصر"},loadingMore:function(){return"جاري تحميل نتائج إضافية..."},maximumSelected:function(e){return"تستطيع إختيار "+e.maximum+" بنود فقط"},noResults:function(){return"لم يتم العثور على أي نتائج"},searching:function(){return"جاري البحث…"}}}),{define:e.define,require:e.require}})();
================================================
FILE: public/admin-panel/assets/libs/select2/dist/js/i18n/az.js
================================================
/*! Select2 4.0.6-rc.1 | https://github.com/select2/select2/blob/master/LICENSE.md */
(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/az",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum;return t+" simvol silin"},inputTooShort:function(e){var t=e.minimum-e.input.length;return t+" simvol daxil edin"},loadingMore:function(){return"Daha çox nəticə yüklənir…"},maximumSelected:function(e){return"Sadəcə "+e.maximum+" element seçə bilərsiniz"},noResults:function(){return"Nəticə tapılmadı"},searching:function(){return"Axtarılır…"}}}),{define:e.define,require:e.require}})();
================================================
FILE: public/admin-panel/assets/libs/select2/dist/js/i18n/bg.js
================================================
/*! Select2 4.0.6-rc.1 | https://github.com/select2/select2/blob/master/LICENSE.md */
(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/bg",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n="Моля въведете с "+t+" по-малко символ";return t>1&&(n+="a"),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Моля въведете още "+t+" символ";return t>1&&(n+="a"),n},loadingMore:function(){return"Зареждат се още…"},maximumSelected:function(e){var t="Можете да направите до "+e.maximum+" ";return e.maximum>1?t+="избора":t+="избор",t},noResults:function(){return"Няма намерени съвпадения"},searching:function(){return"Търсене…"}}}),{define:e.define,require:e.require}})();
================================================
FILE: public/admin-panel/assets/libs/select2/dist/js/i18n/bs.js
================================================
/*! Select2 4.0.6-rc.1 | https://github.com/select2/select2/blob/master/LICENSE.md */
(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/bs",[],function(){function e(e,t,n,r){return e%10==1&&e%100!=11?t:e%10>=2&&e%10<=4&&(e%100<12||e%100>14)?n:r}return{errorLoading:function(){return"Preuzimanje nije uspijelo."},inputTooLong:function(t){var n=t.input.length-t.maximum,r="Obrišite "+n+" simbol";return r+=e(n,"","a","a"),r},inputTooShort:function(t){var n=t.minimum-t.input.length,r="Ukucajte bar još "+n+" simbol";return r+=e(n,"","a","a"),r},loadingMore:function(){return"Preuzimanje još rezultata…"},maximumSelected:function(t){var n="Možete izabrati samo "+t.maximum+" stavk";return n+=e(t.maximum,"u","e","i"),n},noResults:function(){return"Ništa nije pronađeno"},searching:function(){return"Pretraga…"}}}),{define:e.define,require:e.require}})();
================================================
FILE: public/admin-panel/assets/libs/select2/dist/js/i18n/build.txt
================================================
af.js
----------------
af.js
ar.js
----------------
ar.js
az.js
----------------
az.js
bg.js
----------------
bg.js
bs.js
----------------
bs.js
ca.js
----------------
ca.js
cs.js
----------------
cs.js
da.js
----------------
da.js
de.js
----------------
de.js
dsb.js
----------------
dsb.js
el.js
----------------
el.js
en.js
----------------
en.js
es.js
----------------
es.js
et.js
----------------
et.js
eu.js
----------------
eu.js
fa.js
----------------
fa.js
fi.js
----------------
fi.js
fr.js
----------------
fr.js
gl.js
----------------
gl.js
he.js
----------------
he.js
hi.js
----------------
hi.js
hr.js
----------------
hr.js
hsb.js
----------------
hsb.js
hu.js
----------------
hu.js
hy.js
----------------
hy.js
id.js
----------------
id.js
is.js
----------------
is.js
it.js
----------------
it.js
ja.js
----------------
ja.js
km.js
----------------
km.js
ko.js
----------------
ko.js
lt.js
----------------
lt.js
lv.js
----------------
lv.js
mk.js
----------------
mk.js
ms.js
----------------
ms.js
nb.js
----------------
nb.js
nl.js
----------------
nl.js
pl.js
----------------
pl.js
ps.js
----------------
ps.js
pt-BR.js
----------------
pt-BR.js
pt.js
----------------
pt.js
ro.js
----------------
ro.js
ru.js
----------------
ru.js
sk.js
----------------
sk.js
sl.js
----------------
sl.js
sr-Cyrl.js
----------------
sr-Cyrl.js
sr.js
----------------
sr.js
sv.js
----------------
sv.js
th.js
----------------
th.js
tk.js
----------------
tk.js
tr.js
----------------
tr.js
uk.js
----------------
uk.js
vi.js
----------------
vi.js
zh-CN.js
----------------
zh-CN.js
zh-TW.js
----------------
zh-TW.js
================================================
FILE: public/admin-panel/assets/libs/select2/dist/js/i18n/ca.js
================================================
/*! Select2 4.0.6-rc.1 | https://github.com/select2/select2/blob/master/LICENSE.md */
(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/ca",[],function(){return{errorLoading:function(){return"La càrrega ha fallat"},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Si us plau, elimina "+t+" car";return t==1?n+="àcter":n+="àcters",n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Si us plau, introdueix "+t+" car";return t==1?n+="àcter":n+="àcters",n},loadingMore:function(){return"Carregant més resultats…"},maximumSelected:function(e){var t="Només es pot seleccionar "+e.maximum+" element";return e.maximum!=1&&(t+="s"),t},noResults:function(){return"No s'han trobat resultats"},searching:function(){return"Cercant…"}}}),{define:e.define,require:e.require}})();
================================================
FILE: public/admin-panel/assets/libs/select2/dist/js/i18n/cs.js
================================================
/*! Select2 4.0.6-rc.1 | https://github.com/select2/select2/blob/master/LICENSE.md */
(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/cs",[],function(){function e(e,t){switch(e){case 2:return t?"dva":"dvě";case 3:return"tři";case 4:return"čtyři"}return""}return{errorLoading:function(){return"Výsledky nemohly být načteny."},inputTooLong:function(t){var n=t.input.length-t.maximum;return n==1?"Prosím, zadejte o jeden znak méně.":n<=4?"Prosím, zadejte o "+e(n,!0)+" znaky méně.":"Prosím, zadejte o "+n+" znaků méně."},inputTooShort:function(t){var n=t.minimum-t.input.length;return n==1?"Prosím, zadejte ještě jeden znak.":n<=4?"Prosím, zadejte ještě další "+e(n,!0)+" znaky.":"Prosím, zadejte ještě dalších "+n+" znaků."},loadingMore:function(){return"Načítají se další výsledky…"},maximumSelected:function(t){var n=t.maximum;return n==1?"Můžete zvolit jen jednu položku.":n<=4?"Můžete zvolit maximálně "+e(n,!1)+" položky.":"Můžete zvolit maximálně "+n+" položek."},noResults:function(){return"Nenalezeny žádné položky."},searching:function(){return"Vyhledávání…"}}}),{define:e.define,require:e.require}})();
================================================
FILE: public/admin-panel/assets/libs/select2/dist/js/i18n/da.js
================================================
/*! Select2 4.0.6-rc.1 | https://github.com/select2/select2/blob/master/LICENSE.md */
(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/da",[],function(){return{errorLoading:function(){return"Resultaterne kunne ikke indlæses."},inputTooLong:function(e){var t=e.input.length-e.maximum;return"Angiv venligst "+t+" tegn mindre"},inputTooShort:function(e){var t=e.minimum-e.input.length;return"Angiv venligst "+t+" tegn mere"},loadingMore:function(){return"Indlæser flere resultater…"},maximumSelected:function(e){var t="Du kan kun vælge "+e.maximum+" emne";return e.maximum!=1&&(t+="r"),t},noResults:function(){return"Ingen resultater fundet"},searching:function(){return"Søger…"}}}),{define:e.define,require:e.require}})();
================================================
FILE: public/admin-panel/assets/libs/select2/dist/js/i18n/de.js
================================================
/*! Select2 4.0.6-rc.1 | https://github.com/select2/select2/blob/master/LICENSE.md */
(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/de",[],function(){return{errorLoading:function(){return"Die Ergebnisse konnten nicht geladen werden."},inputTooLong:function(e){var t=e.input.length-e.maximum;return"Bitte "+t+" Zeichen weniger eingeben"},inputTooShort:function(e){var t=e.minimum-e.input.length;return"Bitte "+t+" Zeichen mehr eingeben"},loadingMore:function(){return"Lade mehr Ergebnisse…"},maximumSelected:function(e){var t="Sie können nur "+e.maximum+" Eintr";return e.maximum===1?t+="ag":t+="äge",t+=" auswählen",t},noResults:function(){return"Keine Übereinstimmungen gefunden"},searching:function(){return"Suche…"}}}),{define:e.define,require:e.require}})();
================================================
FILE: public/admin-panel/assets/libs/select2/dist/js/i18n/dsb.js
================================================
/*! Select2 4.0.6-rc.1 | https://github.com/select2/select2/blob/master/LICENSE.md */
(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/dsb",[],function(){var e=["znamuško","znamušce","znamuška","znamuškow"],t=["zapisk","zapiska","zapiski","zapiskow"],n=function(t,n){if(t===1)return n[0];if(t===2)return n[1];if(t>2&&t<=4)return n[2];if(t>=5)return n[3]};return{errorLoading:function(){return"Wuslědki njejsu se dali zacytaś."},inputTooLong:function(t){var r=t.input.length-t.maximum;return"Pšosym lašuj "+r+" "+n(r,e)},inputTooShort:function(t){var r=t.minimum-t.input.length;return"Pšosym zapódaj nanejmjenjej "+r+" "+n(r,e)},loadingMore:function(){return"Dalšne wuslědki se zacytaju…"},maximumSelected:function(e){return"Móžoš jano "+e.maximum+" "+n(e.maximum,t)+"wubraś."},noResults:function(){return"Žedne wuslědki namakane"},searching:function(){return"Pyta se…"}}}),{define:e.define,require:e.require}})();
================================================
FILE: public/admin-panel/assets/libs/select2/dist/js/i18n/el.js
================================================
/*! Select2 4.0.6-rc.1 | https://github.com/select2/select2/blob/master/LICENSE.md */
(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/el",[],function(){return{errorLoading:function(){return"Τα αποτελέσματα δεν μπόρεσαν να φορτώσουν."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Παρακαλώ διαγράψτε "+t+" χαρακτήρ";return t==1&&(n+="α"),t!=1&&(n+="ες"),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Παρακαλώ συμπληρώστε "+t+" ή περισσότερους χαρακτήρες";return n},loadingMore:function(){return"Φόρτωση περισσότερων αποτελεσμάτων…"},maximumSelected:function(e){var t="Μπορείτε να επιλέξετε μόνο "+e.maximum+" επιλογ";return e.maximum==1&&(t+="ή"),e.maximum!=1&&(t+="ές"),t},noResults:function(){return"Δεν βρέθηκαν αποτελέσματα"},searching:function(){return"Αναζήτηση…"}}}),{define:e.define,require:e.require}})();
================================================
FILE: public/admin-panel/assets/libs/select2/dist/js/i18n/en.js
================================================
/*! Select2 4.0.6-rc.1 | https://github.com/select2/select2/blob/master/LICENSE.md */
(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/en",[],function(){return{errorLoading:function(){return"The results could not be loaded."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Please delete "+t+" character";return t!=1&&(n+="s"),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Please enter "+t+" or more characters";return n},loadingMore:function(){return"Loading more results…"},maximumSelected:function(e){var t="You can only select "+e.maximum+" item";return e.maximum!=1&&(t+="s"),t},noResults:function(){return"No results found"},searching:function(){return"Searching…"}}}),{define:e.define,require:e.require}})();
================================================
FILE: public/admin-panel/assets/libs/select2/dist/js/i18n/es.js
================================================
/*! Select2 4.0.6-rc.1 | https://github.com/select2/select2/blob/master/LICENSE.md */
(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/es",[],function(){return{errorLoading:function(){return"No se pudieron cargar los resultados"},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Por favor, elimine "+t+" car";return t==1?n+="ácter":n+="acteres",n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Por favor, introduzca "+t+" car";return t==1?n+="ácter":n+="acteres",n},loadingMore:function(){return"Cargando más resultados…"},maximumSelected:function(e){var t="Sólo puede seleccionar "+e.maximum+" elemento";return e.maximum!=1&&(t+="s"),t},noResults:function(){return"No se encontraron resultados"},searching:function(){return"Buscando…"}}}),{define:e.define,require:e.require}})();
================================================
FILE: public/admin-panel/assets/libs/select2/dist/js/i18n/et.js
================================================
/*! Select2 4.0.6-rc.1 | https://github.com/select2/select2/blob/master/LICENSE.md */
(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/et",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n="Sisesta "+t+" täht";return t!=1&&(n+="e"),n+=" vähem",n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Sisesta "+t+" täht";return t!=1&&(n+="e"),n+=" rohkem",n},loadingMore:function(){return"Laen tulemusi…"},maximumSelected:function(e){var t="Saad vaid "+e.maximum+" tulemus";return e.maximum==1?t+="e":t+="t",t+=" valida",t},noResults:function(){return"Tulemused puuduvad"},searching:function(){return"Otsin…"}}}),{define:e.define,require:e.require}})();
================================================
FILE: public/admin-panel/assets/libs/select2/dist/js/i18n/eu.js
================================================
/*! Select2 4.0.6-rc.1 | https://github.com/select2/select2/blob/master/LICENSE.md */
(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/eu",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n="Idatzi ";return t==1?n+="karaktere bat":n+=t+" karaktere",n+=" gutxiago",n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Idatzi ";return t==1?n+="karaktere bat":n+=t+" karaktere",n+=" gehiago",n},loadingMore:function(){return"Emaitza gehiago kargatzen…"},maximumSelected:function(e){return e.maximum===1?"Elementu bakarra hauta dezakezu":e.maximum+" elementu hauta ditzakezu soilik"},noResults:function(){return"Ez da bat datorrenik aurkitu"},searching:function(){return"Bilatzen…"}}}),{define:e.define,require:e.require}})();
================================================
FILE: public/admin-panel/assets/libs/select2/dist/js/i18n/fa.js
================================================
/*! Select2 4.0.6-rc.1 | https://github.com/select2/select2/blob/master/LICENSE.md */
(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/fa",[],function(){return{errorLoading:function(){return"امکان بارگذاری نتایج وجود ندارد."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="لطفاً "+t+" کاراکتر را حذف نمایید";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="لطفاً تعداد "+t+" کاراکتر یا بیشتر وارد نمایید";return n},loadingMore:function(){return"در حال بارگذاری نتایج بیشتر..."},maximumSelected:function(e){var t="شما تنها میتوانید "+e.maximum+" آیتم را انتخاب نمایید";return t},noResults:function(){return"هیچ نتیجهای یافت نشد"},searching:function(){return"در حال جستجو..."}}}),{define:e.define,require:e.require}})();
================================================
FILE: public/admin-panel/assets/libs/select2/dist/js/i18n/fi.js
================================================
/*! Select2 4.0.6-rc.1 | https://github.com/select2/select2/blob/master/LICENSE.md */
(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/fi",[],function(){return{errorLoading:function(){return"Tuloksia ei saatu ladattua."},inputTooLong:function(e){var t=e.input.length-e.maximum;return"Ole hyvä ja anna "+t+" merkkiä vähemmän"},inputTooShort:function(e){var t=e.minimum-e.input.length;return"Ole hyvä ja anna "+t+" merkkiä lisää"},loadingMore:function(){return"Ladataan lisää tuloksia…"},maximumSelected:function(e){return"Voit valita ainoastaan "+e.maximum+" kpl"},noResults:function(){return"Ei tuloksia"},searching:function(){return"Haetaan…"}}}),{define:e.define,require:e.require}})();
================================================
FILE: public/admin-panel/assets/libs/select2/dist/js/i18n/fr.js
================================================
/*! Select2 4.0.6-rc.1 | https://github.com/select2/select2/blob/master/LICENSE.md */
(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/fr",[],function(){return{errorLoading:function(){return"Les résultats ne peuvent pas être chargés."},inputTooLong:function(e){var t=e.input.length-e.maximum;return"Supprimez "+t+" caractère"+(t>1?"s":"")},inputTooShort:function(e){var t=e.minimum-e.input.length;return"Saisissez au moins "+t+" caractère"+(t>1?"s":"")},loadingMore:function(){return"Chargement de résultats supplémentaires…"},maximumSelected:function(e){return"Vous pouvez seulement sélectionner "+e.maximum+" élément"+(e.maximum>1?"s":"")},noResults:function(){return"Aucun résultat trouvé"},searching:function(){return"Recherche en cours…"}}}),{define:e.define,require:e.require}})();
================================================
FILE: public/admin-panel/assets/libs/select2/dist/js/i18n/gl.js
================================================
/*! Select2 4.0.6-rc.1 | https://github.com/select2/select2/blob/master/LICENSE.md */
(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/gl",[],function(){return{errorLoading:function(){return"Non foi posíbel cargar os resultados."},inputTooLong:function(e){var t=e.input.length-e.maximum;return t===1?"Elimine un carácter":"Elimine "+t+" caracteres"},inputTooShort:function(e){var t=e.minimum-e.input.length;return t===1?"Engada un carácter":"Engada "+t+" caracteres"},loadingMore:function(){return"Cargando máis resultados…"},maximumSelected:function(e){return e.maximum===1?"Só pode seleccionar un elemento":"Só pode seleccionar "+e.maximum+" elementos"},noResults:function(){return"Non se atoparon resultados"},searching:function(){return"Buscando…"}}}),{define:e.define,require:e.require}})();
================================================
FILE: public/admin-panel/assets/libs/select2/dist/js/i18n/he.js
================================================
/*! Select2 4.0.6-rc.1 | https://github.com/select2/select2/blob/master/LICENSE.md */
(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/he",[],function(){return{errorLoading:function(){return"שגיאה בטעינת התוצאות"},inputTooLong:function(e){var t=e.input.length-e.maximum,n="נא למחוק ";return t===1?n+="תו אחד":n+=t+" תווים",n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="נא להכניס ";return t===1?n+="תו אחד":n+=t+" תווים",n+=" או יותר",n},loadingMore:function(){return"טוען תוצאות נוספות…"},maximumSelected:function(e){var t="באפשרותך לבחור עד ";return e.maximum===1?t+="פריט אחד":t+=e.maximum+" פריטים",t},noResults:function(){return"לא נמצאו תוצאות"},searching:function(){return"מחפש…"}}}),{define:e.define,require:e.require}})();
================================================
FILE: public/admin-panel/assets/libs/select2/dist/js/i18n/hi.js
================================================
/*! Select2 4.0.6-rc.1 | https://github.com/select2/select2/blob/master/LICENSE.md */
(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/hi",[],function(){return{errorLoading:function(){return"परिणामों को लोड नहीं किया जा सका।"},inputTooLong:function(e){var t=e.input.length-e.maximum,n=t+" अक्षर को हटा दें";return t>1&&(n=t+" अक्षरों को हटा दें "),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="कृपया "+t+" या अधिक अक्षर दर्ज करें";return n},loadingMore:function(){return"अधिक परिणाम लोड हो रहे है..."},maximumSelected:function(e){var t="आप केवल "+e.maximum+" आइटम का चयन कर सकते हैं";return t},noResults:function(){return"कोई परिणाम नहीं मिला"},searching:function(){return"खोज रहा है..."}}}),{define:e.define,require:e.require}})();
================================================
FILE: public/admin-panel/assets/libs/select2/dist/js/i18n/hr.js
================================================
/*! Select2 4.0.6-rc.1 | https://github.com/select2/select2/blob/master/LICENSE.md */
(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/hr",[],function(){function e(e){var t=" "+e+" znak";return e%10<5&&e%10>0&&(e%100<5||e%100>19)?e%10>1&&(t+="a"):t+="ova",t}return{errorLoading:function(){return"Preuzimanje nije uspjelo."},inputTooLong:function(t){var n=t.input.length-t.maximum;return"Unesite "+e(n)},inputTooShort:function(t){var n=t.minimum-t.input.length;return"Unesite još "+e(n)},loadingMore:function(){return"Učitavanje rezultata…"},maximumSelected:function(e){return"Maksimalan broj odabranih stavki je "+e.maximum},noResults:function(){return"Nema rezultata"},searching:function(){return"Pretraga…"}}}),{define:e.define,require:e.require}})();
================================================
FILE: public/admin-panel/assets/libs/select2/dist/js/i18n/hsb.js
================================================
/*! Select2 4.0.6-rc.1 | https://github.com/select2/select2/blob/master/LICENSE.md */
(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/hsb",[],function(){var e=["znamješko","znamješce","znamješka","znamješkow"],t=["zapisk","zapiskaj","zapiski","zapiskow"],n=function(t,n){if(t===1)return n[0];if(t===2)return n[1];if(t>2&&t<=4)return n[2];if(t>=5)return n[3]};return{errorLoading:function(){return"Wuslědki njedachu so začitać."},inputTooLong:function(t){var r=t.input.length-t.maximum;return"Prošu zhašej "+r+" "+n(r,e)},inputTooShort:function(t){var r=t.minimum-t.input.length;return"Prošu zapodaj znajmjeńša "+r+" "+n(r,e)},loadingMore:function(){return"Dalše wuslědki so začitaja…"},maximumSelected:function(e){return"Móžeš jenož "+e.maximum+" "+n(e.maximum,t)+"wubrać"},noResults:function(){return"Žane wuslědki namakane"},searching:function(){return"Pyta so…"}}}),{define:e.define,require:e.require}})();
================================================
FILE: public/admin-panel/assets/libs/select2/dist/js/i18n/hu.js
================================================
/*! Select2 4.0.6-rc.1 | https://github.com/select2/select2/blob/master/LICENSE.md */
(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/hu",[],function(){return{errorLoading:function(){return"Az eredmények betöltése nem sikerült."},inputTooLong:function(e){var t=e.input.length-e.maximum;return"Túl hosszú. "+t+" karakterrel több, mint kellene."},inputTooShort:function(e){var t=e.minimum-e.input.length;return"Túl rövid. Még "+t+" karakter hiányzik."},loadingMore:function(){return"Töltés…"},maximumSelected:function(e){return"Csak "+e.maximum+" elemet lehet kiválasztani."},noResults:function(){return"Nincs találat."},searching:function(){return"Keresés…"}}}),{define:e.define,require:e.require}})();
================================================
FILE: public/admin-panel/assets/libs/select2/dist/js/i18n/hy.js
================================================
/*! Select2 4.0.6-rc.1 | https://github.com/select2/select2/blob/master/LICENSE.md */
(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/hy",[],function(){return{errorLoading:function(){return"Արդյունքները հնարավոր չէ բեռնել։"},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Խնդրում ենք հեռացնել "+t+" նշան";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Խնդրում ենք մուտքագրել "+t+" կամ ավել նշաններ";return n},loadingMore:function(){return"Բեռնվում են նոր արդյունքներ․․․"},maximumSelected:function(e){var t="Դուք կարող եք ընտրել առավելագույնը "+e.maximum+" կետ";return t},noResults:function(){return"Արդյունքներ չեն գտնվել"},searching:function(){return"Որոնում․․․"}}}),{define:e.define,require:e.require}})();
================================================
FILE: public/admin-panel/assets/libs/select2/dist/js/i18n/id.js
================================================
/*! Select2 4.0.6-rc.1 | https://github.com/select2/select2/blob/master/LICENSE.md */
(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/id",[],function(){return{errorLoading:function(){return"Data tidak boleh diambil."},inputTooLong:function(e){var t=e.input.length-e.maximum;return"Hapuskan "+t+" huruf"},inputTooShort:function(e){var t=e.minimum-e.input.length;return"Masukkan "+t+" huruf lagi"},loadingMore:function(){return"Mengambil data…"},maximumSelected:function(e){return"Anda hanya dapat memilih "+e.maximum+" pilihan"},noResults:function(){return"Tidak ada data yang sesuai"},searching:function(){return"Mencari…"}}}),{define:e.define,require:e.require}})();
================================================
FILE: public/admin-panel/assets/libs/select2/dist/js/i18n/is.js
================================================
/*! Select2 4.0.6-rc.1 | https://github.com/select2/select2/blob/master/LICENSE.md */
(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/is",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n="Vinsamlegast styttið texta um "+t+" staf";return t<=1?n:n+"i"},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Vinsamlegast skrifið "+t+" staf";return t>1&&(n+="i"),n+=" í viðbót",n},loadingMore:function(){return"Sæki fleiri niðurstöður…"},maximumSelected:function(e){return"Þú getur aðeins valið "+e.maximum+" atriði"},noResults:function(){return"Ekkert fannst"},searching:function(){return"Leita…"}}}),{define:e.define,require:e.require}})();
================================================
FILE: public/admin-panel/assets/libs/select2/dist/js/i18n/it.js
================================================
/*! Select2 4.0.6-rc.1 | https://github.com/select2/select2/blob/master/LICENSE.md */
(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/it",[],function(){return{errorLoading:function(){return"I risultati non possono essere caricati."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Per favore cancella "+t+" caratter";return t!==1?n+="i":n+="e",n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Per favore inserisci "+t+" o più caratteri";return n},loadingMore:function(){return"Caricando più risultati…"},maximumSelected:function(e){var t="Puoi selezionare solo "+e.maximum+" element";return e.maximum!==1?t+="i":t+="o",t},noResults:function(){return"Nessun risultato trovato"},searching:function(){return"Sto cercando…"}}}),{define:e.define,require:e.require}})();
================================================
FILE: public/admin-panel/assets/libs/select2/dist/js/i18n/ja.js
================================================
/*! Select2 4.0.6-rc.1 | https://github.com/select2/select2/blob/master/LICENSE.md */
(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/ja",[],function(){return{errorLoading:function(){return"結果が読み込まれませんでした"},inputTooLong:function(e){var t=e.input.length-e.maximum,n=t+" 文字を削除してください";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="少なくとも "+t+" 文字を入力してください";return n},loadingMore:function(){return"読み込み中…"},maximumSelected:function(e){var t=e.maximum+" 件しか選択できません";return t},noResults:function(){return"対象が見つかりません"},searching:function(){return"検索しています…"}}}),{define:e.define,require:e.require}})();
================================================
FILE: public/admin-panel/assets/libs/select2/dist/js/i18n/km.js
================================================
/*! Select2 4.0.6-rc.1 | https://github.com/select2/select2/blob/master/LICENSE.md */
(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/km",[],function(){return{errorLoading:function(){return"មិនអាចទាញយកទិន្នន័យ"},inputTooLong:function(e){var t=e.input.length-e.maximum,n="សូមលុបចេញ "+t+" អក្សរ";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="សូមបញ្ចូល"+t+" អក្សរ រឺ ច្រើនជាងនេះ";return n},loadingMore:function(){return"កំពុងទាញយកទិន្នន័យបន្ថែម..."},maximumSelected:function(e){var t="អ្នកអាចជ្រើសរើសបានតែ "+e.maximum+" ជម្រើសប៉ុណ្ណោះ";return t},noResults:function(){return"មិនមានលទ្ធផល"},searching:function(){return"កំពុងស្វែងរក..."}}}),{define:e.define,require:e.require}})();
================================================
FILE: public/admin-panel/assets/libs/select2/dist/js/i18n/ko.js
================================================
/*! Select2 4.0.6-rc.1 | https://github.com/select2/select2/blob/master/LICENSE.md */
(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/ko",[],function(){return{errorLoading:function(){return"결과를 불러올 수 없습니다."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="너무 깁니다. "+t+" 글자 지워주세요.";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="너무 짧습니다. "+t+" 글자 더 입력해주세요.";return n},loadingMore:function(){return"불러오는 중…"},maximumSelected:function(e){var t="최대 "+e.maximum+"개까지만 선택 가능합니다.";return t},noResults:function(){return"결과가 없습니다."},searching:function(){return"검색 중…"}}}),{define:e.define,require:e.require}})();
================================================
FILE: public/admin-panel/assets/libs/select2/dist/js/i18n/lt.js
================================================
/*! Select2 4.0.6-rc.1 | https://github.com/select2/select2/blob/master/LICENSE.md */
(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/lt",[],function(){function e(e,t,n,r){return e%10===1&&(e%100<11||e%100>19)?t:e%10>=2&&e%10<=9&&(e%100<11||e%100>19)?n:r}return{inputTooLong:function(t){var n=t.input.length-t.maximum,r="Pašalinkite "+n+" simbol";return r+=e(n,"į","ius","ių"),r},inputTooShort:function(t){var n=t.minimum-t.input.length,r="Įrašykite dar "+n+" simbol";return r+=e(n,"į","ius","ių"),r},loadingMore:function(){return"Kraunama daugiau rezultatų…"},maximumSelected:function(t){var n="Jūs galite pasirinkti tik "+t.maximum+" element";return n+=e(t.maximum,"ą","us","ų"),n},noResults:function(){return"Atitikmenų nerasta"},searching:function(){return"Ieškoma…"}}}),{define:e.define,require:e.require}})();
================================================
FILE: public/admin-panel/assets/libs/select2/dist/js/i18n/lv.js
================================================
/*! Select2 4.0.6-rc.1 | https://github.com/select2/select2/blob/master/LICENSE.md */
(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/lv",[],function(){function e(e,t,n,r){return e===11?t:e%10===1?n:r}return{inputTooLong:function(t){var n=t.input.length-t.maximum,r="Lūdzu ievadiet par "+n;return r+=" simbol"+e(n,"iem","u","iem"),r+" mazāk"},inputTooShort:function(t){var n=t.minimum-t.input.length,r="Lūdzu ievadiet vēl "+n;return r+=" simbol"+e(n,"us","u","us"),r},loadingMore:function(){return"Datu ielāde…"},maximumSelected:function(t){var n="Jūs varat izvēlēties ne vairāk kā "+t.maximum;return n+=" element"+e(t.maximum,"us","u","us"),n},noResults:function(){return"Sakritību nav"},searching:function(){return"Meklēšana…"}}}),{define:e.define,require:e.require}})();
================================================
FILE: public/admin-panel/assets/libs/select2/dist/js/i18n/mk.js
================================================
/*! Select2 4.0.6-rc.1 | https://github.com/select2/select2/blob/master/LICENSE.md */
(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/mk",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n="Ве молиме внесете "+e.maximum+" помалку карактер";return e.maximum!==1&&(n+="и"),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Ве молиме внесете уште "+e.maximum+" карактер";return e.maximum!==1&&(n+="и"),n},loadingMore:function(){return"Вчитување резултати…"},maximumSelected:function(e){var t="Можете да изберете само "+e.maximum+" ставк";return e.maximum===1?t+="а":t+="и",t},noResults:function(){return"Нема пронајдено совпаѓања"},searching:function(){return"Пребарување…"}}}),{define:e.define,require:e.require}})();
================================================
FILE: public/admin-panel/assets/libs/select2/dist/js/i18n/ms.js
================================================
/*! Select2 4.0.6-rc.1 | https://github.com/select2/select2/blob/master/LICENSE.md */
(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/ms",[],function(){return{errorLoading:function(){return"Keputusan tidak berjaya dimuatkan."},inputTooLong:function(e){var t=e.input.length-e.maximum;return"Sila hapuskan "+t+" aksara"},inputTooShort:function(e){var t=e.minimum-e.input.length;return"Sila masukkan "+t+" atau lebih aksara"},loadingMore:function(){return"Sedang memuatkan keputusan…"},maximumSelected:function(e){return"Anda hanya boleh memilih "+e.maximum+" pilihan"},noResults:function(){return"Tiada padanan yang ditemui"},searching:function(){return"Mencari…"}}}),{define:e.define,require:e.require}})();
================================================
FILE: public/admin-panel/assets/libs/select2/dist/js/i18n/nb.js
================================================
/*! Select2 4.0.6-rc.1 | https://github.com/select2/select2/blob/master/LICENSE.md */
(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/nb",[],function(){return{errorLoading:function(){return"Kunne ikke hente resultater."},inputTooLong:function(e){var t=e.input.length-e.maximum;return"Vennligst fjern "+t+" tegn"},inputTooShort:function(e){var t=e.minimum-e.input.length;return"Vennligst skriv inn "+t+" tegn til"},loadingMore:function(){return"Laster flere resultater…"},maximumSelected:function(e){return"Du kan velge maks "+e.maximum+" elementer"},noResults:function(){return"Ingen treff"},searching:function(){return"Søker…"}}}),{define:e.define,require:e.require}})();
================================================
FILE: public/admin-panel/assets/libs/select2/dist/js/i18n/nl.js
================================================
/*! Select2 4.0.6-rc.1 | https://github.com/select2/select2/blob/master/LICENSE.md */
(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/nl",[],function(){return{errorLoading:function(){return"De resultaten konden niet worden geladen."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Gelieve "+t+" karakters te verwijderen";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Gelieve "+t+" of meer karakters in te voeren";return n},loadingMore:function(){return"Meer resultaten laden…"},maximumSelected:function(e){var t=e.maximum==1?"kan":"kunnen",n="Er "+t+" maar "+e.maximum+" item";return e.maximum!=1&&(n+="s"),n+=" worden geselecteerd",n},noResults:function(){return"Geen resultaten gevonden…"},searching:function(){return"Zoeken…"}}}),{define:e.define,require:e.require}})();
================================================
FILE: public/admin-panel/assets/libs/select2/dist/js/i18n/pl.js
================================================
/*! Select2 4.0.6-rc.1 | https://github.com/select2/select2/blob/master/LICENSE.md */
(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/pl",[],function(){var e=["znak","znaki","znaków"],t=["element","elementy","elementów"],n=function(t,n){if(t===1)return n[0];if(t>1&&t<=4)return n[1];if(t>=5)return n[2]};return{errorLoading:function(){return"Nie można załadować wyników."},inputTooLong:function(t){var r=t.input.length-t.maximum;return"Usuń "+r+" "+n(r,e)},inputTooShort:function(t){var r=t.minimum-t.input.length;return"Podaj przynajmniej "+r+" "+n(r,e)},loadingMore:function(){return"Trwa ładowanie…"},maximumSelected:function(e){return"Możesz zaznaczyć tylko "+e.maximum+" "+n(e.maximum,t)},noResults:function(){return"Brak wyników"},searching:function(){return"Trwa wyszukiwanie…"}}}),{define:e.define,require:e.require}})();
================================================
FILE: public/admin-panel/assets/libs/select2/dist/js/i18n/ps.js
================================================
/*! Select2 4.0.6-rc.1 | https://github.com/select2/select2/blob/master/LICENSE.md */
(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/ps",[],function(){return{errorLoading:function(){return"پايلي نه سي ترلاسه کېدای"},inputTooLong:function(e){var t=e.input.length-e.maximum,n="د مهربانۍ لمخي "+t+" توری ړنګ کړئ";return t!=1&&(n=n.replace("توری","توري")),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="لږ تر لږه "+t+" يا ډېر توري وليکئ";return n},loadingMore:function(){return"نوري پايلي ترلاسه کيږي..."},maximumSelected:function(e){var t="تاسو يوازي "+e.maximum+" قلم په نښه کولای سی";return e.maximum!=1&&(t=t.replace("قلم","قلمونه")),t},noResults:function(){return"پايلي و نه موندل سوې"},searching:function(){return"لټول کيږي..."}}}),{define:e.define,require:e.require}})();
================================================
FILE: public/admin-panel/assets/libs/select2/dist/js/i18n/pt-BR.js
================================================
/*! Select2 4.0.6-rc.1 | https://github.com/select2/select2/blob/master/LICENSE.md */
(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/pt-BR",[],function(){return{errorLoading:function(){return"Os resultados não puderam ser carregados."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Apague "+t+" caracter";return t!=1&&(n+="es"),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Digite "+t+" ou mais caracteres";return n},loadingMore:function(){return"Carregando mais resultados…"},maximumSelected:function(e){var t="Você só pode selecionar "+e.maximum+" ite";return e.maximum==1?t+="m":t+="ns",t},noResults:function(){return"Nenhum resultado encontrado"},searching:function(){return"Buscando…"}}}),{define:e.define,require:e.require}})();
================================================
FILE: public/admin-panel/assets/libs/select2/dist/js/i18n/pt.js
================================================
/*! Select2 4.0.6-rc.1 | https://github.com/select2/select2/blob/master/LICENSE.md */
(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/pt",[],function(){return{errorLoading:function(){return"Os resultados não puderam ser carregados."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Por favor apague "+t+" ";return n+=t!=1?"caracteres":"caractere",n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Introduza "+t+" ou mais caracteres";return n},loadingMore:function(){return"A carregar mais resultados…"},maximumSelected:function(e){var t="Apenas pode seleccionar "+e.maximum+" ";return t+=e.maximum!=1?"itens":"item",t},noResults:function(){return"Sem resultados"},searching:function(){return"A procurar…"}}}),{define:e.define,require:e.require}})();
================================================
FILE: public/admin-panel/assets/libs/select2/dist/js/i18n/ro.js
================================================
/*! Select2 4.0.6-rc.1 | https://github.com/select2/select2/blob/master/LICENSE.md */
(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/ro",[],function(){return{errorLoading:function(){return"Rezultatele nu au putut fi incărcate."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Vă rugăm să ștergeți"+t+" caracter";return t!==1&&(n+="e"),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Vă rugăm să introduceți "+t+" sau mai multe caractere";return n},loadingMore:function(){return"Se încarcă mai multe rezultate…"},maximumSelected:function(e){var t="Aveți voie să selectați cel mult "+e.maximum;return t+=" element",e.maximum!==1&&(t+="e"),t},noResults:function(){return"Nu au fost găsite rezultate"},searching:function(){return"Căutare…"}}}),{define:e.define,require:e.require}})();
================================================
FILE: public/admin-panel/assets/libs/select2/dist/js/i18n/ru.js
================================================
/*! Select2 4.0.6-rc.1 | https://github.com/select2/select2/blob/master/LICENSE.md */
(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/ru",[],function(){function e(e,t,n,r){return e%10<5&&e%10>0&&e%100<5||e%100>20?e%10>1?n:t:r}return{errorLoading:function(){return"Невозможно загрузить результаты"},inputTooLong:function(t){var n=t.input.length-t.maximum,r="Пожалуйста, введите на "+n+" символ";return r+=e(n,"","a","ов"),r+=" меньше",r},inputTooShort:function(t){var n=t.minimum-t.input.length,r="Пожалуйста, введите еще хотя бы "+n+" символ";return r+=e(n,"","a","ов"),r},loadingMore:function(){return"Загрузка данных…"},maximumSelected:function(t){var n="Вы можете выбрать не более "+t.maximum+" элемент";return n+=e(t.maximum,"","a","ов"),n},noResults:function(){return"Совпадений не найдено"},searching:function(){return"Поиск…"}}}),{define:e.define,require:e.require}})();
================================================
FILE: public/admin-panel/assets/libs/select2/dist/js/i18n/sk.js
================================================
/*! Select2 4.0.6-rc.1 | https://github.com/select2/select2/blob/master/LICENSE.md */
(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/sk",[],function(){var e={2:function(e){return e?"dva":"dve"},3:function(){return"tri"},4:function(){return"štyri"}};return{errorLoading:function(){return"Výsledky sa nepodarilo načítať."},inputTooLong:function(t){var n=t.input.length-t.maximum;return n==1?"Prosím, zadajte o jeden znak menej":n>=2&&n<=4?"Prosím, zadajte o "+e[n](!0)+" znaky menej":"Prosím, zadajte o "+n+" znakov menej"},inputTooShort:function(t){var n=t.minimum-t.input.length;return n==1?"Prosím, zadajte ešte jeden znak":n<=4?"Prosím, zadajte ešte ďalšie "+e[n](!0)+" znaky":"Prosím, zadajte ešte ďalších "+n+" znakov"},loadingMore:function(){return"Načítanie ďalších výsledkov…"},maximumSelected:function(t){return t.maximum==1?"Môžete zvoliť len jednu položku":t.maximum>=2&&t.maximum<=4?"Môžete zvoliť najviac "+e[t.maximum](!1)+" položky":"Môžete zvoliť najviac "+t.maximum+" položiek"},noResults:function(){return"Nenašli sa žiadne položky"},searching:function(){return"Vyhľadávanie…"}}}),{define:e.define,require:e.require}})();
================================================
FILE: public/admin-panel/assets/libs/select2/dist/js/i18n/sl.js
================================================
/*! Select2 4.0.6-rc.1 | https://github.com/select2/select2/blob/master/LICENSE.md */
(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/sl",[],function(){return{errorLoading:function(){return"Zadetkov iskanja ni bilo mogoče naložiti."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Prosim zbrišite "+t+" znak";return t==2?n+="a":t!=1&&(n+="e"),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Prosim vpišite še "+t+" znak";return t==2?n+="a":t!=1&&(n+="e"),n},loadingMore:function(){return"Nalagam več zadetkov…"},maximumSelected:function(e){var t="Označite lahko največ "+e.maximum+" predmet";return e.maximum==2?t+="a":e.maximum!=1&&(t+="e"),t},noResults:function(){return"Ni zadetkov."},searching:function(){return"Iščem…"}}}),{define:e.define,require:e.require}})();
================================================
FILE: public/admin-panel/assets/libs/select2/dist/js/i18n/sr-Cyrl.js
================================================
/*! Select2 4.0.6-rc.1 | https://github.com/select2/select2/blob/master/LICENSE.md */
(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/sr-Cyrl",[],function(){function e(e,t,n,r){return e%10==1&&e%100!=11?t:e%10>=2&&e%10<=4&&(e%100<12||e%100>14)?n:r}return{errorLoading:function(){return"Преузимање није успело."},inputTooLong:function(t){var n=t.input.length-t.maximum,r="Обришите "+n+" симбол";return r+=e(n,"","а","а"),r},inputTooShort:function(t){var n=t.minimum-t.input.length,r="Укуцајте бар још "+n+" симбол";return r+=e(n,"","а","а"),r},loadingMore:function(){return"Преузимање још резултата…"},maximumSelected:function(t){var n="Можете изабрати само "+t.maximum+" ставк";return n+=e(t.maximum,"у","е","и"),n},noResults:function(){return"Ништа није пронађено"},searching:function(){return"Претрага…"}}}),{define:e.define,require:e.require}})();
================================================
FILE: public/admin-panel/assets/libs/select2/dist/js/i18n/sr.js
================================================
/*! Select2 4.0.6-rc.1 | https://github.com/select2/select2/blob/master/LICENSE.md */
(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/sr",[],function(){function e(e,t,n,r){return e%10==1&&e%100!=11?t:e%10>=2&&e%10<=4&&(e%100<12||e%100>14)?n:r}return{errorLoading:function(){return"Preuzimanje nije uspelo."},inputTooLong:function(t){var n=t.input.length-t.maximum,r="Obrišite "+n+" simbol";return r+=e(n,"","a","a"),r},inputTooShort:function(t){var n=t.minimum-t.input.length,r="Ukucajte bar još "+n+" simbol";return r+=e(n,"","a","a"),r},loadingMore:function(){return"Preuzimanje još rezultata…"},maximumSelected:function(t){var n="Možete izabrati samo "+t.maximum+" stavk";return n+=e(t.maximum,"u","e","i"),n},noResults:function(){return"Ništa nije pronađeno"},searching:function(){return"Pretraga…"}}}),{define:e.define,require:e.require}})();
================================================
FILE: public/admin-panel/assets/libs/select2/dist/js/i18n/sv.js
================================================
/*! Select2 4.0.6-rc.1 | https://github.com/select2/select2/blob/master/LICENSE.md */
(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/sv",[],function(){return{errorLoading:function(){return"Resultat kunde inte laddas."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Vänligen sudda ut "+t+" tecken";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Vänligen skriv in "+t+" eller fler tecken";return n},loadingMore:function(){return"Laddar fler resultat…"},maximumSelected:function(e){var t="Du kan max välja "+e.maximum+" element";return t},noResults:function(){return"Inga träffar"},searching:function(){return"Söker…"}}}),{define:e.define,require:e.require}})();
================================================
FILE: public/admin-panel/assets/libs/select2/dist/js/i18n/th.js
================================================
/*! Select2 4.0.6-rc.1 | https://github.com/select2/select2/blob/master/LICENSE.md */
(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/th",[],function(){return{errorLoading:function(){return"ไม่สามารถค้นข้อมูลได้"},inputTooLong:function(e){var t=e.input.length-e.maximum,n="โปรดลบออก "+t+" ตัวอักษร";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="โปรดพิมพ์เพิ่มอีก "+t+" ตัวอักษร";return n},loadingMore:function(){return"กำลังค้นข้อมูลเพิ่ม…"},maximumSelected:function(e){var t="คุณสามารถเลือกได้ไม่เกิน "+e.maximum+" รายการ";return t},noResults:function(){return"ไม่พบข้อมูล"},searching:function(){return"กำลังค้นข้อมูล…"}}}),{define:e.define,require:e.require}})();
================================================
FILE: public/admin-panel/assets/libs/select2/dist/js/i18n/tk.js
================================================
/*! Select2 4.0.6-rc.1 | https://github.com/select2/select2/blob/master/LICENSE.md */
(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/tk",[],function(){return{errorLoading:function(){return"Netije ýüklenmedi."},inputTooLong:function(e){var t=e.input.length-e.maximum,n=t+" harp bozuň.";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Ýene-de iň az "+t+" harp ýazyň.";return n},loadingMore:function(){return"Köpräk netije görkezilýär…"},maximumSelected:function(e){var t="Diňe "+e.maximum+" sanysyny saýlaň.";return t},noResults:function(){return"Netije tapylmady."},searching:function(){return"Gözlenýär…"}}}),{define:e.define,require:e.require}})();
================================================
FILE: public/admin-panel/assets/libs/select2/dist/js/i18n/tr.js
================================================
/*! Select2 4.0.6-rc.1 | https://github.com/select2/select2/blob/master/LICENSE.md */
(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/tr",[],function(){return{errorLoading:function(){return"Sonuç yüklenemedi"},inputTooLong:function(e){var t=e.input.length-e.maximum,n=t+" karakter daha girmelisiniz";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="En az "+t+" karakter daha girmelisiniz";return n},loadingMore:function(){return"Daha fazla…"},maximumSelected:function(e){var t="Sadece "+e.maximum+" seçim yapabilirsiniz";return t},noResults:function(){return"Sonuç bulunamadı"},searching:function(){return"Aranıyor…"}}}),{define:e.define,require:e.require}})();
================================================
FILE: public/admin-panel/assets/libs/select2/dist/js/i18n/uk.js
================================================
/*! Select2 4.0.6-rc.1 | https://github.com/select2/select2/blob/master/LICENSE.md */
(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/uk",[],function(){function e(e,t,n,r){return e%100>10&&e%100<15?r:e%10===1?t:e%10>1&&e%10<5?n:r}return{errorLoading:function(){return"Неможливо завантажити результати"},inputTooLong:function(t){var n=t.input.length-t.maximum;return"Будь ласка, видаліть "+n+" "+e(t.maximum,"літеру","літери","літер")},inputTooShort:function(e){var t=e.minimum-e.input.length;return"Будь ласка, введіть "+t+" або більше літер"},loadingMore:function(){return"Завантаження інших результатів…"},maximumSelected:function(t){return"Ви можете вибрати лише "+t.maximum+" "+e(t.maximum,"пункт","пункти","пунктів")},noResults:function(){return"Нічого не знайдено"},searching:function(){return"Пошук…"}}}),{define:e.define,require:e.require}})();
================================================
FILE: public/admin-panel/assets/libs/select2/dist/js/i18n/vi.js
================================================
/*! Select2 4.0.6-rc.1 | https://github.com/select2/select2/blob/master/LICENSE.md */
(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/vi",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n="Vui lòng nhập ít hơn "+t+" ký tự";return t!=1&&(n+="s"),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Vui lòng nhập nhiều hơn "+t+" ký tự";return n},loadingMore:function(){return"Đang lấy thêm kết quả…"},maximumSelected:function(e){var t="Chỉ có thể chọn được "+e.maximum+" lựa chọn";return t},noResults:function(){return"Không tìm thấy kết quả"},searching:function(){return"Đang tìm…"}}}),{define:e.define,require:e.require}})();
================================================
FILE: public/admin-panel/assets/libs/select2/dist/js/i18n/zh-CN.js
================================================
/*! Select2 4.0.6-rc.1 | https://github.com/select2/select2/blob/master/LICENSE.md */
(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/zh-CN",[],function(){return{errorLoading:function(){return"无法载入结果。"},inputTooLong:function(e){var t=e.input.length-e.maximum,n="请删除"+t+"个字符";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="请再输入至少"+t+"个字符";return n},loadingMore:function(){return"载入更多结果…"},maximumSelected:function(e){var t="最多只能选择"+e.maximum+"个项目";return t},noResults:function(){return"未找到结果"},searching:function(){return"搜索中…"}}}),{define:e.define,require:e.require}})();
================================================
FILE: public/admin-panel/assets/libs/select2/dist/js/i18n/zh-TW.js
================================================
/*! Select2 4.0.6-rc.1 | https://github.com/select2/select2/blob/master/LICENSE.md */
(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/zh-TW",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n="請刪掉"+t+"個字元";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="請再輸入"+t+"個字元";return n},loadingMore:function(){return"載入中…"},maximumSelected:function(e){var t="你只能選擇最多"+e.maximum+"項";return t},noResults:function(){return"沒有找到相符的項目"},searching:function(){return"搜尋中…"}}}),{define:e.define,require:e.require}})();
================================================
FILE: public/admin-panel/assets/libs/toastr/toastr.js
================================================
/*
* Toastr
* Copyright 2012-2015
* Authors: John Papa, Hans Fjällemark, and Tim Ferrell.
* All Rights Reserved.
* Use, reproduction, distribution, and modification of this code is subject to the terms and
* conditions of the MIT license, available at http://www.opensource.org/licenses/mit-license.php
*
* ARIA Support: Greta Krafsig
*
* Project: https://github.com/CodeSeven/toastr
*/
/* global define */
(function (define) {
define(['jquery'], function ($) {
return (function () {
var $container;
var listener;
var toastId = 0;
var toastType = {
error: 'error',
info: 'info',
success: 'success',
warning: 'warning'
};
var toastr = {
clear: clear,
remove: remove,
error: error,
getContainer: getContainer,
info: info,
options: {},
subscribe: subscribe,
success: success,
version: '2.1.4',
warning: warning
};
var previousToast;
return toastr;
////////////////
function error(message, title, optionsOverride) {
return notify({
type: toastType.error,
iconClass: getOptions().iconClasses.error,
message: message,
optionsOverride: optionsOverride,
title: title
});
}
function getContainer(options, create) {
if (!options) { options = getOptions(); }
$container = $('#' + options.containerId);
if ($container.length) {
return $container;
}
if (create) {
$container = createContainer(options);
}
return $container;
}
function info(message, title, optionsOverride) {
return notify({
type: toastType.info,
iconClass: getOptions().iconClasses.info,
message: message,
optionsOverride: optionsOverride,
title: title
});
}
function subscribe(callback) {
listener = callback;
}
function success(message, title, optionsOverride) {
return notify({
type: toastType.success,
iconClass: getOptions().iconClasses.success,
message: message,
optionsOverride: optionsOverride,
title: title
});
}
function warning(message, title, optionsOverride) {
return notify({
type: toastType.warning,
iconClass: getOptions().iconClasses.warning,
message: message,
optionsOverride: optionsOverride,
title: title
});
}
function clear($toastElement, clearOptions) {
var options = getOptions();
if (!$container) { getContainer(options); }
if (!clearToast($toastElement, options, clearOptions)) {
clearContainer(options);
}
}
function remove($toastElement) {
var options = getOptions();
if (!$container) { getContainer(options); }
if ($toastElement && $(':focus', $toastElement).length === 0) {
removeToast($toastElement);
return;
}
if ($container.children().length) {
$container.remove();
}
}
// internal functions
function clearContainer (options) {
var toastsToClear = $container.children();
for (var i = toastsToClear.length - 1; i >= 0; i--) {
clearToast($(toastsToClear[i]), options);
}
}
function clearToast ($toastElement, options, clearOptions) {
var force = clearOptions && clearOptions.force ? clearOptions.force : false;
if ($toastElement && (force || $(':focus', $toastElement).length === 0)) {
$toastElement[options.hideMethod]({
duration: options.hideDuration,
easing: options.hideEasing,
complete: function () { removeToast($toastElement); }
});
return true;
}
return false;
}
function createContainer(options) {
$container = $('
')
.attr('id', options.containerId)
.addClass(options.positionClass);
$container.appendTo($(options.target));
return $container;
}
function getDefaults() {
return {
tapToDismiss: true,
toastClass: 'toast',
containerId: 'toast-container',
debug: false,
showMethod: 'fadeIn', //fadeIn, slideDown, and show are built into jQuery
showDuration: 300,
showEasing: 'swing', //swing and linear are built into jQuery
onShown: undefined,
hideMethod: 'fadeOut',
hideDuration: 1000,
hideEasing: 'swing',
onHidden: undefined,
closeMethod: false,
closeDuration: false,
closeEasing: false,
closeOnHover: true,
extendedTimeOut: 1000,
iconClasses: {
error: 'toast-error',
info: 'toast-info',
success: 'toast-success',
warning: 'toast-warning'
},
iconClass: 'toast-info',
positionClass: 'toast-top-right',
timeOut: 5000, // Set timeOut and extendedTimeOut to 0 to make it sticky
titleClass: 'toast-title',
messageClass: 'toast-message',
escapeHtml: false,
target: 'body',
closeHtml: '× ',
closeClass: 'toast-close-button',
newestOnTop: true,
preventDuplicates: false,
progressBar: false,
progressClass: 'toast-progress',
rtl: false
};
}
function publish(args) {
if (!listener) { return; }
listener(args);
}
function notify(map) {
var options = getOptions();
var iconClass = map.iconClass || options.iconClass;
if (typeof (map.optionsOverride) !== 'undefined') {
options = $.extend(options, map.optionsOverride);
iconClass = map.optionsOverride.iconClass || iconClass;
}
if (shouldExit(options, map)) { return; }
toastId++;
$container = getContainer(options, true);
var intervalId = null;
var $toastElement = $('
');
var $titleElement = $('
');
var $messageElement = $('
');
var $progressElement = $('
');
var $closeElement = $(options.closeHtml);
var progressBar = {
intervalId: null,
hideEta: null,
maxHideTime: null
};
var response = {
toastId: toastId,
state: 'visible',
startTime: new Date(),
options: options,
map: map
};
personalizeToast();
displayToast();
handleEvents();
publish(response);
if (options.debug && console) {
console.log(response);
}
return $toastElement;
function escapeHtml(source) {
if (source == null) {
source = '';
}
return source
.replace(/&/g, '&')
.replace(/"/g, '"')
.replace(/'/g, ''')
.replace(//g, '>');
}
function personalizeToast() {
setIcon();
setTitle();
setMessage();
setCloseButton();
setProgressBar();
setRTL();
setSequence();
setAria();
}
function setAria() {
var ariaValue = '';
switch (map.iconClass) {
case 'toast-success':
case 'toast-info':
ariaValue = 'polite';
break;
default:
ariaValue = 'assertive';
}
$toastElement.attr('aria-live', ariaValue);
}
function handleEvents() {
if (options.closeOnHover) {
$toastElement.hover(stickAround, delayedHideToast);
}
if (!options.onclick && options.tapToDismiss) {
$toastElement.click(hideToast);
}
if (options.closeButton && $closeElement) {
$closeElement.click(function (event) {
if (event.stopPropagation) {
event.stopPropagation();
} else if (event.cancelBubble !== undefined && event.cancelBubble !== true) {
event.cancelBubble = true;
}
if (options.onCloseClick) {
options.onCloseClick(event);
}
hideToast(true);
});
}
if (options.onclick) {
$toastElement.click(function (event) {
options.onclick(event);
hideToast();
});
}
}
function displayToast() {
$toastElement.hide();
$toastElement[options.showMethod](
{duration: options.showDuration, easing: options.showEasing, complete: options.onShown}
);
if (options.timeOut > 0) {
intervalId = setTimeout(hideToast, options.timeOut);
progressBar.maxHideTime = parseFloat(options.timeOut);
progressBar.hideEta = new Date().getTime() + progressBar.maxHideTime;
if (options.progressBar) {
progressBar.intervalId = setInterval(updateProgress, 10);
}
}
}
function setIcon() {
if (map.iconClass) {
$toastElement.addClass(options.toastClass).addClass(iconClass);
}
}
function setSequence() {
if (options.newestOnTop) {
$container.prepend($toastElement);
} else {
$container.append($toastElement);
}
}
function setTitle() {
if (map.title) {
var suffix = map.title;
if (options.escapeHtml) {
suffix = escapeHtml(map.title);
}
$titleElement.append(suffix).addClass(options.titleClass);
$toastElement.append($titleElement);
}
}
function setMessage() {
if (map.message) {
var suffix = map.message;
if (options.escapeHtml) {
suffix = escapeHtml(map.message);
}
$messageElement.append(suffix).addClass(options.messageClass);
$toastElement.append($messageElement);
}
}
function setCloseButton() {
if (options.closeButton) {
$closeElement.addClass(options.closeClass).attr('role', 'button');
$toastElement.prepend($closeElement);
}
}
function setProgressBar() {
if (options.progressBar) {
$progressElement.addClass(options.progressClass);
$toastElement.prepend($progressElement);
}
}
function setRTL() {
if (options.rtl) {
$toastElement.addClass('rtl');
}
}
function shouldExit(options, map) {
if (options.preventDuplicates) {
if (map.message === previousToast) {
return true;
} else {
previousToast = map.message;
}
}
return false;
}
function hideToast(override) {
var method = override && options.closeMethod !== false ? options.closeMethod : options.hideMethod;
var duration = override && options.closeDuration !== false ?
options.closeDuration : options.hideDuration;
var easing = override && options.closeEasing !== false ? options.closeEasing : options.hideEasing;
if ($(':focus', $toastElement).length && !override) {
return;
}
clearTimeout(progressBar.intervalId);
return $toastElement[method]({
duration: duration,
easing: easing,
complete: function () {
removeToast($toastElement);
clearTimeout(intervalId);
if (options.onHidden && response.state !== 'hidden') {
options.onHidden();
}
response.state = 'hidden';
response.endTime = new Date();
publish(response);
}
});
}
function delayedHideToast() {
if (options.timeOut > 0 || options.extendedTimeOut > 0) {
intervalId = setTimeout(hideToast, options.extendedTimeOut);
progressBar.maxHideTime = parseFloat(options.extendedTimeOut);
progressBar.hideEta = new Date().getTime() + progressBar.maxHideTime;
}
}
function stickAround() {
clearTimeout(intervalId);
progressBar.hideEta = 0;
$toastElement.stop(true, true)[options.showMethod](
{duration: options.showDuration, easing: options.showEasing}
);
}
function updateProgress() {
var percentage = ((progressBar.hideEta - (new Date().getTime())) / progressBar.maxHideTime) * 100;
$progressElement.width(percentage + '%');
}
}
function getOptions() {
return $.extend({}, getDefaults(), toastr.options);
}
function removeToast($toastElement) {
if (!$container) { $container = getContainer(); }
if ($toastElement.is(':visible')) {
return;
}
$toastElement.remove();
$toastElement = null;
if ($container.children().length === 0) {
$container.remove();
previousToast = undefined;
}
}
})();
});
}(typeof define === 'function' && define.amd ? define : function (deps, factory) {
if (typeof module !== 'undefined' && module.exports) { //Node
module.exports = factory(require('jquery'));
} else {
window.toastr = factory(window.jQuery);
}
}));
================================================
FILE: public/admin-panel/dist/css/icons/font-awesome/css/fa-brands.css
================================================
/*!
* Font Awesome Free 5.0.9 by @fontawesome - https://fontawesome.com
* License - https://fontawesome.com/license (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
*/
@font-face {
font-family: 'Font Awesome 5 Brands';
font-style: normal;
font-weight: normal;
src: url("../webfonts/fa-brands-400.eot");
src: url("../webfonts/fa-brands-400.eot?#iefix") format("embedded-opentype"), url("../webfonts/fa-brands-400.woff2") format("woff2"), url("../webfonts/fa-brands-400.woff") format("woff"), url("../webfonts/fa-brands-400.ttf") format("truetype"), url("../webfonts/fa-brands-400.svg#fontawesome") format("svg"); }
.fab {
font-family: 'Font Awesome 5 Brands'; }
================================================
FILE: public/admin-panel/dist/css/icons/font-awesome/css/fa-regular.css
================================================
/*!
* Font Awesome Free 5.0.9 by @fontawesome - https://fontawesome.com
* License - https://fontawesome.com/license (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
*/
@font-face {
font-family: 'Font Awesome 5 Free';
font-style: normal;
font-weight: 400;
src: url("../webfonts/fa-regular-400.eot");
src: url("../webfonts/fa-regular-400.eot?#iefix") format("embedded-opentype"), url("../webfonts/fa-regular-400.woff2") format("woff2"), url("../webfonts/fa-regular-400.woff") format("woff"), url("../webfonts/fa-regular-400.ttf") format("truetype"), url("../webfonts/fa-regular-400.svg#fontawesome") format("svg"); }
.far {
font-family: 'Font Awesome 5 Free';
font-weight: 400; }
================================================
FILE: public/admin-panel/dist/css/icons/font-awesome/css/fa-solid.css
================================================
/*!
* Font Awesome Free 5.0.9 by @fontawesome - https://fontawesome.com
* License - https://fontawesome.com/license (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
*/
@font-face {
font-family: 'Font Awesome 5 Free';
font-style: normal;
font-weight: 900;
src: url("../webfonts/fa-solid-900.eot");
src: url("../webfonts/fa-solid-900.eot?#iefix") format("embedded-opentype"), url("../webfonts/fa-solid-900.woff2") format("woff2"), url("../webfonts/fa-solid-900.woff") format("woff"), url("../webfonts/fa-solid-900.ttf") format("truetype"), url("../webfonts/fa-solid-900.svg#fontawesome") format("svg"); }
.fa,
.fas {
font-family: 'Font Awesome 5 Free';
font-weight: 900; }
================================================
FILE: public/admin-panel/dist/css/icons/font-awesome/css/fontawesome-all.css
================================================
/*!
* Font Awesome Free 5.0.9 by @fontawesome - https://fontawesome.com
* License - https://fontawesome.com/license (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
*/
.fa,
.fas,
.far,
.fal,
.fab {
-moz-osx-font-smoothing: grayscale;
-webkit-font-smoothing: antialiased;
display: inline-block;
font-style: normal;
font-variant: normal;
text-rendering: auto;
line-height: 1; }
.fa-lg {
font-size: 1.33333em;
line-height: 0.75em;
vertical-align: -.0667em; }
.fa-xs {
font-size: .75em; }
.fa-sm {
font-size: .875em; }
.fa-1x {
font-size: 1em; }
.fa-2x {
font-size: 2em; }
.fa-3x {
font-size: 3em; }
.fa-4x {
font-size: 4em; }
.fa-5x {
font-size: 5em; }
.fa-6x {
font-size: 6em; }
.fa-7x {
font-size: 7em; }
.fa-8x {
font-size: 8em; }
.fa-9x {
font-size: 9em; }
.fa-10x {
font-size: 10em; }
.fa-fw {
text-align: center;
width: 1.25em; }
.fa-ul {
list-style-type: none;
margin-left: 2.5em;
padding-left: 0; }
.fa-ul > li {
position: relative; }
.fa-li {
left: -2em;
position: absolute;
text-align: center;
width: 2em;
line-height: inherit; }
.fa-border {
border: solid 0.08em #eee;
border-radius: .1em;
padding: .2em .25em .15em; }
.fa-pull-left {
float: left; }
.fa-pull-right {
float: right; }
.fa.fa-pull-left,
.fas.fa-pull-left,
.far.fa-pull-left,
.fal.fa-pull-left,
.fab.fa-pull-left {
margin-right: .3em; }
.fa.fa-pull-right,
.fas.fa-pull-right,
.far.fa-pull-right,
.fal.fa-pull-right,
.fab.fa-pull-right {
margin-left: .3em; }
.fa-spin {
-webkit-animation: fa-spin 2s infinite linear;
animation: fa-spin 2s infinite linear; }
.fa-pulse {
-webkit-animation: fa-spin 1s infinite steps(8);
animation: fa-spin 1s infinite steps(8); }
@-webkit-keyframes fa-spin {
0% {
-webkit-transform: rotate(0deg);
transform: rotate(0deg); }
100% {
-webkit-transform: rotate(360deg);
transform: rotate(360deg); } }
@keyframes fa-spin {
0% {
-webkit-transform: rotate(0deg);
transform: rotate(0deg); }
100% {
-webkit-transform: rotate(360deg);
transform: rotate(360deg); } }
.fa-rotate-90 {
-ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";
-webkit-transform: rotate(90deg);
transform: rotate(90deg); }
.fa-rotate-180 {
-ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";
-webkit-transform: rotate(180deg);
transform: rotate(180deg); }
.fa-rotate-270 {
-ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";
-webkit-transform: rotate(270deg);
transform: rotate(270deg); }
.fa-flip-horizontal {
-ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";
-webkit-transform: scale(-1, 1);
transform: scale(-1, 1); }
.fa-flip-vertical {
-ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";
-webkit-transform: scale(1, -1);
transform: scale(1, -1); }
.fa-flip-horizontal.fa-flip-vertical {
-ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";
-webkit-transform: scale(-1, -1);
transform: scale(-1, -1); }
:root .fa-rotate-90,
:root .fa-rotate-180,
:root .fa-rotate-270,
:root .fa-flip-horizontal,
:root .fa-flip-vertical {
-webkit-filter: none;
filter: none; }
.fa-stack {
display: inline-block;
height: 2em;
line-height: 2em;
position: relative;
vertical-align: middle;
width: 2em; }
.fa-stack-1x,
.fa-stack-2x {
left: 0;
position: absolute;
text-align: center;
width: 100%; }
.fa-stack-1x {
line-height: inherit; }
.fa-stack-2x {
font-size: 2em; }
.fa-inverse {
color: #fff; }
/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen
readers do not read off random characters that represent icons */
.fa-500px:before {
content: "\f26e"; }
.fa-accessible-icon:before {
content: "\f368"; }
.fa-accusoft:before {
content: "\f369"; }
.fa-address-book:before {
content: "\f2b9"; }
.fa-address-card:before {
content: "\f2bb"; }
.fa-adjust:before {
content: "\f042"; }
.fa-adn:before {
content: "\f170"; }
.fa-adversal:before {
content: "\f36a"; }
.fa-affiliatetheme:before {
content: "\f36b"; }
.fa-algolia:before {
content: "\f36c"; }
.fa-align-center:before {
content: "\f037"; }
.fa-align-justify:before {
content: "\f039"; }
.fa-align-left:before {
content: "\f036"; }
.fa-align-right:before {
content: "\f038"; }
.fa-allergies:before {
content: "\f461"; }
.fa-amazon:before {
content: "\f270"; }
.fa-amazon-pay:before {
content: "\f42c"; }
.fa-ambulance:before {
content: "\f0f9"; }
.fa-american-sign-language-interpreting:before {
content: "\f2a3"; }
.fa-amilia:before {
content: "\f36d"; }
.fa-anchor:before {
content: "\f13d"; }
.fa-android:before {
content: "\f17b"; }
.fa-angellist:before {
content: "\f209"; }
.fa-angle-double-down:before {
content: "\f103"; }
.fa-angle-double-left:before {
content: "\f100"; }
.fa-angle-double-right:before {
content: "\f101"; }
.fa-angle-double-up:before {
content: "\f102"; }
.fa-angle-down:before {
content: "\f107"; }
.fa-angle-left:before {
content: "\f104"; }
.fa-angle-right:before {
content: "\f105"; }
.fa-angle-up:before {
content: "\f106"; }
.fa-angrycreative:before {
content: "\f36e"; }
.fa-angular:before {
content: "\f420"; }
.fa-app-store:before {
content: "\f36f"; }
.fa-app-store-ios:before {
content: "\f370"; }
.fa-apper:before {
content: "\f371"; }
.fa-apple:before {
content: "\f179"; }
.fa-apple-pay:before {
content: "\f415"; }
.fa-archive:before {
content: "\f187"; }
.fa-arrow-alt-circle-down:before {
content: "\f358"; }
.fa-arrow-alt-circle-left:before {
content: "\f359"; }
.fa-arrow-alt-circle-right:before {
content: "\f35a"; }
.fa-arrow-alt-circle-up:before {
content: "\f35b"; }
.fa-arrow-circle-down:before {
content: "\f0ab"; }
.fa-arrow-circle-left:before {
content: "\f0a8"; }
.fa-arrow-circle-right:before {
content: "\f0a9"; }
.fa-arrow-circle-up:before {
content: "\f0aa"; }
.fa-arrow-down:before {
content: "\f063"; }
.fa-arrow-left:before {
content: "\f060"; }
.fa-arrow-right:before {
content: "\f061"; }
.fa-arrow-up:before {
content: "\f062"; }
.fa-arrows-alt:before {
content: "\f0b2"; }
.fa-arrows-alt-h:before {
content: "\f337"; }
.fa-arrows-alt-v:before {
content: "\f338"; }
.fa-assistive-listening-systems:before {
content: "\f2a2"; }
.fa-asterisk:before {
content: "\f069"; }
.fa-asymmetrik:before {
content: "\f372"; }
.fa-at:before {
content: "\f1fa"; }
.fa-audible:before {
content: "\f373"; }
.fa-audio-description:before {
content: "\f29e"; }
.fa-autoprefixer:before {
content: "\f41c"; }
.fa-avianex:before {
content: "\f374"; }
.fa-aviato:before {
content: "\f421"; }
.fa-aws:before {
content: "\f375"; }
.fa-backward:before {
content: "\f04a"; }
.fa-balance-scale:before {
content: "\f24e"; }
.fa-ban:before {
content: "\f05e"; }
.fa-band-aid:before {
content: "\f462"; }
.fa-bandcamp:before {
content: "\f2d5"; }
.fa-barcode:before {
content: "\f02a"; }
.fa-bars:before {
content: "\f0c9"; }
.fa-baseball-ball:before {
content: "\f433"; }
.fa-basketball-ball:before {
content: "\f434"; }
.fa-bath:before {
content: "\f2cd"; }
.fa-battery-empty:before {
content: "\f244"; }
.fa-battery-full:before {
content: "\f240"; }
.fa-battery-half:before {
content: "\f242"; }
.fa-battery-quarter:before {
content: "\f243"; }
.fa-battery-three-quarters:before {
content: "\f241"; }
.fa-bed:before {
content: "\f236"; }
.fa-beer:before {
content: "\f0fc"; }
.fa-behance:before {
content: "\f1b4"; }
.fa-behance-square:before {
content: "\f1b5"; }
.fa-bell:before {
content: "\f0f3"; }
.fa-bell-slash:before {
content: "\f1f6"; }
.fa-bicycle:before {
content: "\f206"; }
.fa-bimobject:before {
content: "\f378"; }
.fa-binoculars:before {
content: "\f1e5"; }
.fa-birthday-cake:before {
content: "\f1fd"; }
.fa-bitbucket:before {
content: "\f171"; }
.fa-bitcoin:before {
content: "\f379"; }
.fa-bity:before {
content: "\f37a"; }
.fa-black-tie:before {
content: "\f27e"; }
.fa-blackberry:before {
content: "\f37b"; }
.fa-blind:before {
content: "\f29d"; }
.fa-blogger:before {
content: "\f37c"; }
.fa-blogger-b:before {
content: "\f37d"; }
.fa-bluetooth:before {
content: "\f293"; }
.fa-bluetooth-b:before {
content: "\f294"; }
.fa-bold:before {
content: "\f032"; }
.fa-bolt:before {
content: "\f0e7"; }
.fa-bomb:before {
content: "\f1e2"; }
.fa-book:before {
content: "\f02d"; }
.fa-bookmark:before {
content: "\f02e"; }
.fa-bowling-ball:before {
content: "\f436"; }
.fa-box:before {
content: "\f466"; }
.fa-box-open:before {
content: "\f49e"; }
.fa-boxes:before {
content: "\f468"; }
.fa-braille:before {
content: "\f2a1"; }
.fa-briefcase:before {
content: "\f0b1"; }
.fa-briefcase-medical:before {
content: "\f469"; }
.fa-btc:before {
content: "\f15a"; }
.fa-bug:before {
content: "\f188"; }
.fa-building:before {
content: "\f1ad"; }
.fa-bullhorn:before {
content: "\f0a1"; }
.fa-bullseye:before {
content: "\f140"; }
.fa-burn:before {
content: "\f46a"; }
.fa-buromobelexperte:before {
content: "\f37f"; }
.fa-bus:before {
content: "\f207"; }
.fa-buysellads:before {
content: "\f20d"; }
.fa-calculator:before {
content: "\f1ec"; }
.fa-calendar:before {
content: "\f133"; }
.fa-calendar-alt:before {
content: "\f073"; }
.fa-calendar-check:before {
content: "\f274"; }
.fa-calendar-minus:before {
content: "\f272"; }
.fa-calendar-plus:before {
content: "\f271"; }
.fa-calendar-times:before {
content: "\f273"; }
.fa-camera:before {
content: "\f030"; }
.fa-camera-retro:before {
content: "\f083"; }
.fa-capsules:before {
content: "\f46b"; }
.fa-car:before {
content: "\f1b9"; }
.fa-caret-down:before {
content: "\f0d7"; }
.fa-caret-left:before {
content: "\f0d9"; }
.fa-caret-right:before {
content: "\f0da"; }
.fa-caret-square-down:before {
content: "\f150"; }
.fa-caret-square-left:before {
content: "\f191"; }
.fa-caret-square-right:before {
content: "\f152"; }
.fa-caret-square-up:before {
content: "\f151"; }
.fa-caret-up:before {
content: "\f0d8"; }
.fa-cart-arrow-down:before {
content: "\f218"; }
.fa-cart-plus:before {
content: "\f217"; }
.fa-cc-amazon-pay:before {
content: "\f42d"; }
.fa-cc-amex:before {
content: "\f1f3"; }
.fa-cc-apple-pay:before {
content: "\f416"; }
.fa-cc-diners-club:before {
content: "\f24c"; }
.fa-cc-discover:before {
content: "\f1f2"; }
.fa-cc-jcb:before {
content: "\f24b"; }
.fa-cc-mastercard:before {
content: "\f1f1"; }
.fa-cc-paypal:before {
content: "\f1f4"; }
.fa-cc-stripe:before {
content: "\f1f5"; }
.fa-cc-visa:before {
content: "\f1f0"; }
.fa-centercode:before {
content: "\f380"; }
.fa-certificate:before {
content: "\f0a3"; }
.fa-chart-area:before {
content: "\f1fe"; }
.fa-chart-bar:before {
content: "\f080"; }
.fa-chart-line:before {
content: "\f201"; }
.fa-chart-pie:before {
content: "\f200"; }
.fa-check:before {
content: "\f00c"; }
.fa-check-circle:before {
content: "\f058"; }
.fa-check-square:before {
content: "\f14a"; }
.fa-chess:before {
content: "\f439"; }
.fa-chess-bishop:before {
content: "\f43a"; }
.fa-chess-board:before {
content: "\f43c"; }
.fa-chess-king:before {
content: "\f43f"; }
.fa-chess-knight:before {
content: "\f441"; }
.fa-chess-pawn:before {
content: "\f443"; }
.fa-chess-queen:before {
content: "\f445"; }
.fa-chess-rook:before {
content: "\f447"; }
.fa-chevron-circle-down:before {
content: "\f13a"; }
.fa-chevron-circle-left:before {
content: "\f137"; }
.fa-chevron-circle-right:before {
content: "\f138"; }
.fa-chevron-circle-up:before {
content: "\f139"; }
.fa-chevron-down:before {
content: "\f078"; }
.fa-chevron-left:before {
content: "\f053"; }
.fa-chevron-right:before {
content: "\f054"; }
.fa-chevron-up:before {
content: "\f077"; }
.fa-child:before {
content: "\f1ae"; }
.fa-chrome:before {
content: "\f268"; }
.fa-circle:before {
content: "\f111"; }
.fa-circle-notch:before {
content: "\f1ce"; }
.fa-clipboard:before {
content: "\f328"; }
.fa-clipboard-check:before {
content: "\f46c"; }
.fa-clipboard-list:before {
content: "\f46d"; }
.fa-clock:before {
content: "\f017"; }
.fa-clone:before {
content: "\f24d"; }
.fa-closed-captioning:before {
content: "\f20a"; }
.fa-cloud:before {
content: "\f0c2"; }
.fa-cloud-download-alt:before {
content: "\f381"; }
.fa-cloud-upload-alt:before {
content: "\f382"; }
.fa-cloudscale:before {
content: "\f383"; }
.fa-cloudsmith:before {
content: "\f384"; }
.fa-cloudversify:before {
content: "\f385"; }
.fa-code:before {
content: "\f121"; }
.fa-code-branch:before {
content: "\f126"; }
.fa-codepen:before {
content: "\f1cb"; }
.fa-codiepie:before {
content: "\f284"; }
.fa-coffee:before {
content: "\f0f4"; }
.fa-cog:before {
content: "\f013"; }
.fa-cogs:before {
content: "\f085"; }
.fa-columns:before {
content: "\f0db"; }
.fa-comment:before {
content: "\f075"; }
.fa-comment-alt:before {
content: "\f27a"; }
.fa-comment-dots:before {
content: "\f4ad"; }
.fa-comment-slash:before {
content: "\f4b3"; }
.fa-comments:before {
content: "\f086"; }
.fa-compass:before {
content: "\f14e"; }
.fa-compress:before {
content: "\f066"; }
.fa-connectdevelop:before {
content: "\f20e"; }
.fa-contao:before {
content: "\f26d"; }
.fa-copy:before {
content: "\f0c5"; }
.fa-copyright:before {
content: "\f1f9"; }
.fa-couch:before {
content: "\f4b8"; }
.fa-cpanel:before {
content: "\f388"; }
.fa-creative-commons:before {
content: "\f25e"; }
.fa-credit-card:before {
content: "\f09d"; }
.fa-crop:before {
content: "\f125"; }
.fa-crosshairs:before {
content: "\f05b"; }
.fa-css3:before {
content: "\f13c"; }
.fa-css3-alt:before {
content: "\f38b"; }
.fa-cube:before {
content: "\f1b2"; }
.fa-cubes:before {
content: "\f1b3"; }
.fa-cut:before {
content: "\f0c4"; }
.fa-cuttlefish:before {
content: "\f38c"; }
.fa-d-and-d:before {
content: "\f38d"; }
.fa-dashcube:before {
content: "\f210"; }
.fa-database:before {
content: "\f1c0"; }
.fa-deaf:before {
content: "\f2a4"; }
.fa-delicious:before {
content: "\f1a5"; }
.fa-deploydog:before {
content: "\f38e"; }
.fa-deskpro:before {
content: "\f38f"; }
.fa-desktop:before {
content: "\f108"; }
.fa-deviantart:before {
content: "\f1bd"; }
.fa-diagnoses:before {
content: "\f470"; }
.fa-digg:before {
content: "\f1a6"; }
.fa-digital-ocean:before {
content: "\f391"; }
.fa-discord:before {
content: "\f392"; }
.fa-discourse:before {
content: "\f393"; }
.fa-dna:before {
content: "\f471"; }
.fa-dochub:before {
content: "\f394"; }
.fa-docker:before {
content: "\f395"; }
.fa-dollar-sign:before {
content: "\f155"; }
.fa-dolly:before {
content: "\f472"; }
.fa-dolly-flatbed:before {
content: "\f474"; }
.fa-donate:before {
content: "\f4b9"; }
.fa-dot-circle:before {
content: "\f192"; }
.fa-dove:before {
content: "\f4ba"; }
.fa-download:before {
content: "\f019"; }
.fa-draft2digital:before {
content: "\f396"; }
.fa-dribbble:before {
content: "\f17d"; }
.fa-dribbble-square:before {
content: "\f397"; }
.fa-dropbox:before {
content: "\f16b"; }
.fa-drupal:before {
content: "\f1a9"; }
.fa-dyalog:before {
content: "\f399"; }
.fa-earlybirds:before {
content: "\f39a"; }
.fa-edge:before {
content: "\f282"; }
.fa-edit:before {
content: "\f044"; }
.fa-eject:before {
content: "\f052"; }
.fa-elementor:before {
content: "\f430"; }
.fa-ellipsis-h:before {
content: "\f141"; }
.fa-ellipsis-v:before {
content: "\f142"; }
.fa-ember:before {
content: "\f423"; }
.fa-empire:before {
content: "\f1d1"; }
.fa-envelope:before {
content: "\f0e0"; }
.fa-envelope-open:before {
content: "\f2b6"; }
.fa-envelope-square:before {
content: "\f199"; }
.fa-envira:before {
content: "\f299"; }
.fa-eraser:before {
content: "\f12d"; }
.fa-erlang:before {
content: "\f39d"; }
.fa-ethereum:before {
content: "\f42e"; }
.fa-etsy:before {
content: "\f2d7"; }
.fa-euro-sign:before {
content: "\f153"; }
.fa-exchange-alt:before {
content: "\f362"; }
.fa-exclamation:before {
content: "\f12a"; }
.fa-exclamation-circle:before {
content: "\f06a"; }
.fa-exclamation-triangle:before {
content: "\f071"; }
.fa-expand:before {
content: "\f065"; }
.fa-expand-arrows-alt:before {
content: "\f31e"; }
.fa-expeditedssl:before {
content: "\f23e"; }
.fa-external-link-alt:before {
content: "\f35d"; }
.fa-external-link-square-alt:before {
content: "\f360"; }
.fa-eye:before {
content: "\f06e"; }
.fa-eye-dropper:before {
content: "\f1fb"; }
.fa-eye-slash:before {
content: "\f070"; }
.fa-facebook:before {
content: "\f09a"; }
.fa-facebook-f:before {
content: "\f39e"; }
.fa-facebook-messenger:before {
content: "\f39f"; }
.fa-facebook-square:before {
content: "\f082"; }
.fa-fast-backward:before {
content: "\f049"; }
.fa-fast-forward:before {
content: "\f050"; }
.fa-fax:before {
content: "\f1ac"; }
.fa-female:before {
content: "\f182"; }
.fa-fighter-jet:before {
content: "\f0fb"; }
.fa-file:before {
content: "\f15b"; }
.fa-file-alt:before {
content: "\f15c"; }
.fa-file-archive:before {
content: "\f1c6"; }
.fa-file-audio:before {
content: "\f1c7"; }
.fa-file-code:before {
content: "\f1c9"; }
.fa-file-excel:before {
content: "\f1c3"; }
.fa-file-image:before {
content: "\f1c5"; }
.fa-file-medical:before {
content: "\f477"; }
.fa-file-medical-alt:before {
content: "\f478"; }
.fa-file-pdf:before {
content: "\f1c1"; }
.fa-file-powerpoint:before {
content: "\f1c4"; }
.fa-file-video:before {
content: "\f1c8"; }
.fa-file-word:before {
content: "\f1c2"; }
.fa-film:before {
content: "\f008"; }
.fa-filter:before {
content: "\f0b0"; }
.fa-fire:before {
content: "\f06d"; }
.fa-fire-extinguisher:before {
content: "\f134"; }
.fa-firefox:before {
content: "\f269"; }
.fa-first-aid:before {
content: "\f479"; }
.fa-first-order:before {
content: "\f2b0"; }
.fa-firstdraft:before {
content: "\f3a1"; }
.fa-flag:before {
content: "\f024"; }
.fa-flag-checkered:before {
content: "\f11e"; }
.fa-flask:before {
content: "\f0c3"; }
.fa-flickr:before {
content: "\f16e"; }
.fa-flipboard:before {
content: "\f44d"; }
.fa-fly:before {
content: "\f417"; }
.fa-folder:before {
content: "\f07b"; }
.fa-folder-open:before {
content: "\f07c"; }
.fa-font:before {
content: "\f031"; }
.fa-font-awesome:before {
content: "\f2b4"; }
.fa-font-awesome-alt:before {
content: "\f35c"; }
.fa-font-awesome-flag:before {
content: "\f425"; }
.fa-fonticons:before {
content: "\f280"; }
.fa-fonticons-fi:before {
content: "\f3a2"; }
.fa-football-ball:before {
content: "\f44e"; }
.fa-fort-awesome:before {
content: "\f286"; }
.fa-fort-awesome-alt:before {
content: "\f3a3"; }
.fa-forumbee:before {
content: "\f211"; }
.fa-forward:before {
content: "\f04e"; }
.fa-foursquare:before {
content: "\f180"; }
.fa-free-code-camp:before {
content: "\f2c5"; }
.fa-freebsd:before {
content: "\f3a4"; }
.fa-frown:before {
content: "\f119"; }
.fa-futbol:before {
content: "\f1e3"; }
.fa-gamepad:before {
content: "\f11b"; }
.fa-gavel:before {
content: "\f0e3"; }
.fa-gem:before {
content: "\f3a5"; }
.fa-genderless:before {
content: "\f22d"; }
.fa-get-pocket:before {
content: "\f265"; }
.fa-gg:before {
content: "\f260"; }
.fa-gg-circle:before {
content: "\f261"; }
.fa-gift:before {
content: "\f06b"; }
.fa-git:before {
content: "\f1d3"; }
.fa-git-square:before {
content: "\f1d2"; }
.fa-github:before {
content: "\f09b"; }
.fa-github-alt:before {
content: "\f113"; }
.fa-github-square:before {
content: "\f092"; }
.fa-gitkraken:before {
content: "\f3a6"; }
.fa-gitlab:before {
content: "\f296"; }
.fa-gitter:before {
content: "\f426"; }
.fa-glass-martini:before {
content: "\f000"; }
.fa-glide:before {
content: "\f2a5"; }
.fa-glide-g:before {
content: "\f2a6"; }
.fa-globe:before {
content: "\f0ac"; }
.fa-gofore:before {
content: "\f3a7"; }
.fa-golf-ball:before {
content: "\f450"; }
.fa-goodreads:before {
content: "\f3a8"; }
.fa-goodreads-g:before {
content: "\f3a9"; }
.fa-google:before {
content: "\f1a0"; }
.fa-google-drive:before {
content: "\f3aa"; }
.fa-google-play:before {
content: "\f3ab"; }
.fa-google-plus:before {
content: "\f2b3"; }
.fa-google-plus-g:before {
content: "\f0d5"; }
.fa-google-plus-square:before {
content: "\f0d4"; }
.fa-google-wallet:before {
content: "\f1ee"; }
.fa-graduation-cap:before {
content: "\f19d"; }
.fa-gratipay:before {
content: "\f184"; }
.fa-grav:before {
content: "\f2d6"; }
.fa-gripfire:before {
content: "\f3ac"; }
.fa-grunt:before {
content: "\f3ad"; }
.fa-gulp:before {
content: "\f3ae"; }
.fa-h-square:before {
content: "\f0fd"; }
.fa-hacker-news:before {
content: "\f1d4"; }
.fa-hacker-news-square:before {
content: "\f3af"; }
.fa-hand-holding:before {
content: "\f4bd"; }
.fa-hand-holding-heart:before {
content: "\f4be"; }
.fa-hand-holding-usd:before {
content: "\f4c0"; }
.fa-hand-lizard:before {
content: "\f258"; }
.fa-hand-paper:before {
content: "\f256"; }
.fa-hand-peace:before {
content: "\f25b"; }
.fa-hand-point-down:before {
content: "\f0a7"; }
.fa-hand-point-left:before {
content: "\f0a5"; }
.fa-hand-point-right:before {
content: "\f0a4"; }
.fa-hand-point-up:before {
content: "\f0a6"; }
.fa-hand-pointer:before {
content: "\f25a"; }
.fa-hand-rock:before {
content: "\f255"; }
.fa-hand-scissors:before {
content: "\f257"; }
.fa-hand-spock:before {
content: "\f259"; }
.fa-hands:before {
content: "\f4c2"; }
.fa-hands-helping:before {
content: "\f4c4"; }
.fa-handshake:before {
content: "\f2b5"; }
.fa-hashtag:before {
content: "\f292"; }
.fa-hdd:before {
content: "\f0a0"; }
.fa-heading:before {
content: "\f1dc"; }
.fa-headphones:before {
content: "\f025"; }
.fa-heart:before {
content: "\f004"; }
.fa-heartbeat:before {
content: "\f21e"; }
.fa-hips:before {
content: "\f452"; }
.fa-hire-a-helper:before {
content: "\f3b0"; }
.fa-history:before {
content: "\f1da"; }
.fa-hockey-puck:before {
content: "\f453"; }
.fa-home:before {
content: "\f015"; }
.fa-hooli:before {
content: "\f427"; }
.fa-hospital:before {
content: "\f0f8"; }
.fa-hospital-alt:before {
content: "\f47d"; }
.fa-hospital-symbol:before {
content: "\f47e"; }
.fa-hotjar:before {
content: "\f3b1"; }
.fa-hourglass:before {
content: "\f254"; }
.fa-hourglass-end:before {
content: "\f253"; }
.fa-hourglass-half:before {
content: "\f252"; }
.fa-hourglass-start:before {
content: "\f251"; }
.fa-houzz:before {
content: "\f27c"; }
.fa-html5:before {
content: "\f13b"; }
.fa-hubspot:before {
content: "\f3b2"; }
.fa-i-cursor:before {
content: "\f246"; }
.fa-id-badge:before {
content: "\f2c1"; }
.fa-id-card:before {
content: "\f2c2"; }
.fa-id-card-alt:before {
content: "\f47f"; }
.fa-image:before {
content: "\f03e"; }
.fa-images:before {
content: "\f302"; }
.fa-imdb:before {
content: "\f2d8"; }
.fa-inbox:before {
content: "\f01c"; }
.fa-indent:before {
content: "\f03c"; }
.fa-industry:before {
content: "\f275"; }
.fa-info:before {
content: "\f129"; }
.fa-info-circle:before {
content: "\f05a"; }
.fa-instagram:before {
content: "\f16d"; }
.fa-internet-explorer:before {
content: "\f26b"; }
.fa-ioxhost:before {
content: "\f208"; }
.fa-italic:before {
content: "\f033"; }
.fa-itunes:before {
content: "\f3b4"; }
.fa-itunes-note:before {
content: "\f3b5"; }
.fa-jenkins:before {
content: "\f3b6"; }
.fa-joget:before {
content: "\f3b7"; }
.fa-joomla:before {
content: "\f1aa"; }
.fa-js:before {
content: "\f3b8"; }
.fa-js-square:before {
content: "\f3b9"; }
.fa-jsfiddle:before {
content: "\f1cc"; }
.fa-key:before {
content: "\f084"; }
.fa-keyboard:before {
content: "\f11c"; }
.fa-keycdn:before {
content: "\f3ba"; }
.fa-kickstarter:before {
content: "\f3bb"; }
.fa-kickstarter-k:before {
content: "\f3bc"; }
.fa-korvue:before {
content: "\f42f"; }
.fa-language:before {
content: "\f1ab"; }
.fa-laptop:before {
content: "\f109"; }
.fa-laravel:before {
content: "\f3bd"; }
.fa-lastfm:before {
content: "\f202"; }
.fa-lastfm-square:before {
content: "\f203"; }
.fa-leaf:before {
content: "\f06c"; }
.fa-leanpub:before {
content: "\f212"; }
.fa-lemon:before {
content: "\f094"; }
.fa-less:before {
content: "\f41d"; }
.fa-level-down-alt:before {
content: "\f3be"; }
.fa-level-up-alt:before {
content: "\f3bf"; }
.fa-life-ring:before {
content: "\f1cd"; }
.fa-lightbulb:before {
content: "\f0eb"; }
.fa-line:before {
content: "\f3c0"; }
.fa-link:before {
content: "\f0c1"; }
.fa-linkedin:before {
content: "\f08c"; }
.fa-linkedin-in:before {
content: "\f0e1"; }
.fa-linode:before {
content: "\f2b8"; }
.fa-linux:before {
content: "\f17c"; }
.fa-lira-sign:before {
content: "\f195"; }
.fa-list:before {
content: "\f03a"; }
.fa-list-alt:before {
content: "\f022"; }
.fa-list-ol:before {
content: "\f0cb"; }
.fa-list-ul:before {
content: "\f0ca"; }
.fa-location-arrow:before {
content: "\f124"; }
.fa-lock:before {
content: "\f023"; }
.fa-lock-open:before {
content: "\f3c1"; }
.fa-long-arrow-alt-down:before {
content: "\f309"; }
.fa-long-arrow-alt-left:before {
content: "\f30a"; }
.fa-long-arrow-alt-right:before {
content: "\f30b"; }
.fa-long-arrow-alt-up:before {
content: "\f30c"; }
.fa-low-vision:before {
content: "\f2a8"; }
.fa-lyft:before {
content: "\f3c3"; }
.fa-magento:before {
content: "\f3c4"; }
.fa-magic:before {
content: "\f0d0"; }
.fa-magnet:before {
content: "\f076"; }
.fa-male:before {
content: "\f183"; }
.fa-map:before {
content: "\f279"; }
.fa-map-marker:before {
content: "\f041"; }
.fa-map-marker-alt:before {
content: "\f3c5"; }
.fa-map-pin:before {
content: "\f276"; }
.fa-map-signs:before {
content: "\f277"; }
.fa-mars:before {
content: "\f222"; }
.fa-mars-double:before {
content: "\f227"; }
.fa-mars-stroke:before {
content: "\f229"; }
.fa-mars-stroke-h:before {
content: "\f22b"; }
.fa-mars-stroke-v:before {
content: "\f22a"; }
.fa-maxcdn:before {
content: "\f136"; }
.fa-medapps:before {
content: "\f3c6"; }
.fa-medium:before {
content: "\f23a"; }
.fa-medium-m:before {
content: "\f3c7"; }
.fa-medkit:before {
content: "\f0fa"; }
.fa-medrt:before {
content: "\f3c8"; }
.fa-meetup:before {
content: "\f2e0"; }
.fa-meh:before {
content: "\f11a"; }
.fa-mercury:before {
content: "\f223"; }
.fa-microchip:before {
content: "\f2db"; }
.fa-microphone:before {
content: "\f130"; }
.fa-microphone-slash:before {
content: "\f131"; }
.fa-microsoft:before {
content: "\f3ca"; }
.fa-minus:before {
content: "\f068"; }
.fa-minus-circle:before {
content: "\f056"; }
.fa-minus-square:before {
content: "\f146"; }
.fa-mix:before {
content: "\f3cb"; }
.fa-mixcloud:before {
content: "\f289"; }
.fa-mizuni:before {
content: "\f3cc"; }
.fa-mobile:before {
content: "\f10b"; }
.fa-mobile-alt:before {
content: "\f3cd"; }
.fa-modx:before {
content: "\f285"; }
.fa-monero:before {
content: "\f3d0"; }
.fa-money-bill-alt:before {
content: "\f3d1"; }
.fa-moon:before {
content: "\f186"; }
.fa-motorcycle:before {
content: "\f21c"; }
.fa-mouse-pointer:before {
content: "\f245"; }
.fa-music:before {
content: "\f001"; }
.fa-napster:before {
content: "\f3d2"; }
.fa-neuter:before {
content: "\f22c"; }
.fa-newspaper:before {
content: "\f1ea"; }
.fa-nintendo-switch:before {
content: "\f418"; }
.fa-node:before {
content: "\f419"; }
.fa-node-js:before {
content: "\f3d3"; }
.fa-notes-medical:before {
content: "\f481"; }
.fa-npm:before {
content: "\f3d4"; }
.fa-ns8:before {
content: "\f3d5"; }
.fa-nutritionix:before {
content: "\f3d6"; }
.fa-object-group:before {
content: "\f247"; }
.fa-object-ungroup:before {
content: "\f248"; }
.fa-odnoklassniki:before {
content: "\f263"; }
.fa-odnoklassniki-square:before {
content: "\f264"; }
.fa-opencart:before {
content: "\f23d"; }
.fa-openid:before {
content: "\f19b"; }
.fa-opera:before {
content: "\f26a"; }
.fa-optin-monster:before {
content: "\f23c"; }
.fa-osi:before {
content: "\f41a"; }
.fa-outdent:before {
content: "\f03b"; }
.fa-page4:before {
content: "\f3d7"; }
.fa-pagelines:before {
content: "\f18c"; }
.fa-paint-brush:before {
content: "\f1fc"; }
.fa-palfed:before {
content: "\f3d8"; }
.fa-pallet:before {
content: "\f482"; }
.fa-paper-plane:before {
content: "\f1d8"; }
.fa-paperclip:before {
content: "\f0c6"; }
.fa-parachute-box:before {
content: "\f4cd"; }
.fa-paragraph:before {
content: "\f1dd"; }
.fa-paste:before {
content: "\f0ea"; }
.fa-patreon:before {
content: "\f3d9"; }
.fa-pause:before {
content: "\f04c"; }
.fa-pause-circle:before {
content: "\f28b"; }
.fa-paw:before {
content: "\f1b0"; }
.fa-paypal:before {
content: "\f1ed"; }
.fa-pen-square:before {
content: "\f14b"; }
.fa-pencil-alt:before {
content: "\f303"; }
.fa-people-carry:before {
content: "\f4ce"; }
.fa-percent:before {
content: "\f295"; }
.fa-periscope:before {
content: "\f3da"; }
.fa-phabricator:before {
content: "\f3db"; }
.fa-phoenix-framework:before {
content: "\f3dc"; }
.fa-phone:before {
content: "\f095"; }
.fa-phone-slash:before {
content: "\f3dd"; }
.fa-phone-square:before {
content: "\f098"; }
.fa-phone-volume:before {
content: "\f2a0"; }
.fa-php:before {
content: "\f457"; }
.fa-pied-piper:before {
content: "\f2ae"; }
.fa-pied-piper-alt:before {
content: "\f1a8"; }
.fa-pied-piper-pp:before {
content: "\f1a7"; }
.fa-piggy-bank:before {
content: "\f4d3"; }
.fa-pills:before {
content: "\f484"; }
.fa-pinterest:before {
content: "\f0d2"; }
.fa-pinterest-p:before {
content: "\f231"; }
.fa-pinterest-square:before {
content: "\f0d3"; }
.fa-plane:before {
content: "\f072"; }
.fa-play:before {
content: "\f04b"; }
.fa-play-circle:before {
content: "\f144"; }
.fa-playstation:before {
content: "\f3df"; }
.fa-plug:before {
content: "\f1e6"; }
.fa-plus:before {
content: "\f067"; }
.fa-plus-circle:before {
content: "\f055"; }
.fa-plus-square:before {
content: "\f0fe"; }
.fa-podcast:before {
content: "\f2ce"; }
.fa-poo:before {
content: "\f2fe"; }
.fa-pound-sign:before {
content: "\f154"; }
.fa-power-off:before {
content: "\f011"; }
.fa-prescription-bottle:before {
content: "\f485"; }
.fa-prescription-bottle-alt:before {
content: "\f486"; }
.fa-print:before {
content: "\f02f"; }
.fa-procedures:before {
content: "\f487"; }
.fa-product-hunt:before {
content: "\f288"; }
.fa-pushed:before {
content: "\f3e1"; }
.fa-puzzle-piece:before {
content: "\f12e"; }
.fa-python:before {
content: "\f3e2"; }
.fa-qq:before {
content: "\f1d6"; }
.fa-qrcode:before {
content: "\f029"; }
.fa-question:before {
content: "\f128"; }
.fa-question-circle:before {
content: "\f059"; }
.fa-quidditch:before {
content: "\f458"; }
.fa-quinscape:before {
content: "\f459"; }
.fa-quora:before {
content: "\f2c4"; }
.fa-quote-left:before {
content: "\f10d"; }
.fa-quote-right:before {
content: "\f10e"; }
.fa-random:before {
content: "\f074"; }
.fa-ravelry:before {
content: "\f2d9"; }
.fa-react:before {
content: "\f41b"; }
.fa-readme:before {
content: "\f4d5"; }
.fa-rebel:before {
content: "\f1d0"; }
.fa-recycle:before {
content: "\f1b8"; }
.fa-red-river:before {
content: "\f3e3"; }
.fa-reddit:before {
content: "\f1a1"; }
.fa-reddit-alien:before {
content: "\f281"; }
.fa-reddit-square:before {
content: "\f1a2"; }
.fa-redo:before {
content: "\f01e"; }
.fa-redo-alt:before {
content: "\f2f9"; }
.fa-registered:before {
content: "\f25d"; }
.fa-rendact:before {
content: "\f3e4"; }
.fa-renren:before {
content: "\f18b"; }
.fa-reply:before {
content: "\f3e5"; }
.fa-reply-all:before {
content: "\f122"; }
.fa-replyd:before {
content: "\f3e6"; }
.fa-resolving:before {
content: "\f3e7"; }
.fa-retweet:before {
content: "\f079"; }
.fa-ribbon:before {
content: "\f4d6"; }
.fa-road:before {
content: "\f018"; }
.fa-rocket:before {
content: "\f135"; }
.fa-rocketchat:before {
content: "\f3e8"; }
.fa-rockrms:before {
content: "\f3e9"; }
.fa-rss:before {
content: "\f09e"; }
.fa-rss-square:before {
content: "\f143"; }
.fa-ruble-sign:before {
content: "\f158"; }
.fa-rupee-sign:before {
content: "\f156"; }
.fa-safari:before {
content: "\f267"; }
.fa-sass:before {
content: "\f41e"; }
.fa-save:before {
content: "\f0c7"; }
.fa-schlix:before {
content: "\f3ea"; }
.fa-scribd:before {
content: "\f28a"; }
.fa-search:before {
content: "\f002"; }
.fa-search-minus:before {
content: "\f010"; }
.fa-search-plus:before {
content: "\f00e"; }
.fa-searchengin:before {
content: "\f3eb"; }
.fa-seedling:before {
content: "\f4d8"; }
.fa-sellcast:before {
content: "\f2da"; }
.fa-sellsy:before {
content: "\f213"; }
.fa-server:before {
content: "\f233"; }
.fa-servicestack:before {
content: "\f3ec"; }
.fa-share:before {
content: "\f064"; }
.fa-share-alt:before {
content: "\f1e0"; }
.fa-share-alt-square:before {
content: "\f1e1"; }
.fa-share-square:before {
content: "\f14d"; }
.fa-shekel-sign:before {
content: "\f20b"; }
.fa-shield-alt:before {
content: "\f3ed"; }
.fa-ship:before {
content: "\f21a"; }
.fa-shipping-fast:before {
content: "\f48b"; }
.fa-shirtsinbulk:before {
content: "\f214"; }
.fa-shopping-bag:before {
content: "\f290"; }
.fa-shopping-basket:before {
content: "\f291"; }
.fa-shopping-cart:before {
content: "\f07a"; }
.fa-shower:before {
content: "\f2cc"; }
.fa-sign:before {
content: "\f4d9"; }
.fa-sign-in-alt:before {
content: "\f2f6"; }
.fa-sign-language:before {
content: "\f2a7"; }
.fa-sign-out-alt:before {
content: "\f2f5"; }
.fa-signal:before {
content: "\f012"; }
.fa-simplybuilt:before {
content: "\f215"; }
.fa-sistrix:before {
content: "\f3ee"; }
.fa-sitemap:before {
content: "\f0e8"; }
.fa-skyatlas:before {
content: "\f216"; }
.fa-skype:before {
content: "\f17e"; }
.fa-slack:before {
content: "\f198"; }
.fa-slack-hash:before {
content: "\f3ef"; }
.fa-sliders-h:before {
content: "\f1de"; }
.fa-slideshare:before {
content: "\f1e7"; }
.fa-smile:before {
content: "\f118"; }
.fa-smoking:before {
content: "\f48d"; }
.fa-snapchat:before {
content: "\f2ab"; }
.fa-snapchat-ghost:before {
content: "\f2ac"; }
.fa-snapchat-square:before {
content: "\f2ad"; }
.fa-snowflake:before {
content: "\f2dc"; }
.fa-sort:before {
content: "\f0dc"; }
.fa-sort-alpha-down:before {
content: "\f15d"; }
.fa-sort-alpha-up:before {
content: "\f15e"; }
.fa-sort-amount-down:before {
content: "\f160"; }
.fa-sort-amount-up:before {
content: "\f161"; }
.fa-sort-down:before {
content: "\f0dd"; }
.fa-sort-numeric-down:before {
content: "\f162"; }
.fa-sort-numeric-up:before {
content: "\f163"; }
.fa-sort-up:before {
content: "\f0de"; }
.fa-soundcloud:before {
content: "\f1be"; }
.fa-space-shuttle:before {
content: "\f197"; }
.fa-speakap:before {
content: "\f3f3"; }
.fa-spinner:before {
content: "\f110"; }
.fa-spotify:before {
content: "\f1bc"; }
.fa-square:before {
content: "\f0c8"; }
.fa-square-full:before {
content: "\f45c"; }
.fa-stack-exchange:before {
content: "\f18d"; }
.fa-stack-overflow:before {
content: "\f16c"; }
.fa-star:before {
content: "\f005"; }
.fa-star-half:before {
content: "\f089"; }
.fa-staylinked:before {
content: "\f3f5"; }
.fa-steam:before {
content: "\f1b6"; }
.fa-steam-square:before {
content: "\f1b7"; }
.fa-steam-symbol:before {
content: "\f3f6"; }
.fa-step-backward:before {
content: "\f048"; }
.fa-step-forward:before {
content: "\f051"; }
.fa-stethoscope:before {
content: "\f0f1"; }
.fa-sticker-mule:before {
content: "\f3f7"; }
.fa-sticky-note:before {
content: "\f249"; }
.fa-stop:before {
content: "\f04d"; }
.fa-stop-circle:before {
content: "\f28d"; }
.fa-stopwatch:before {
content: "\f2f2"; }
.fa-strava:before {
content: "\f428"; }
.fa-street-view:before {
content: "\f21d"; }
.fa-strikethrough:before {
content: "\f0cc"; }
.fa-stripe:before {
content: "\f429"; }
.fa-stripe-s:before {
content: "\f42a"; }
.fa-studiovinari:before {
content: "\f3f8"; }
.fa-stumbleupon:before {
content: "\f1a4"; }
.fa-stumbleupon-circle:before {
content: "\f1a3"; }
.fa-subscript:before {
content: "\f12c"; }
.fa-subway:before {
content: "\f239"; }
.fa-suitcase:before {
content: "\f0f2"; }
.fa-sun:before {
content: "\f185"; }
.fa-superpowers:before {
content: "\f2dd"; }
.fa-superscript:before {
content: "\f12b"; }
.fa-supple:before {
content: "\f3f9"; }
.fa-sync:before {
content: "\f021"; }
.fa-sync-alt:before {
content: "\f2f1"; }
.fa-syringe:before {
content: "\f48e"; }
.fa-table:before {
content: "\f0ce"; }
.fa-table-tennis:before {
content: "\f45d"; }
.fa-tablet:before {
content: "\f10a"; }
.fa-tablet-alt:before {
content: "\f3fa"; }
.fa-tablets:before {
content: "\f490"; }
.fa-tachometer-alt:before {
content: "\f3fd"; }
.fa-tag:before {
content: "\f02b"; }
.fa-tags:before {
content: "\f02c"; }
.fa-tape:before {
content: "\f4db"; }
.fa-tasks:before {
content: "\f0ae"; }
.fa-taxi:before {
content: "\f1ba"; }
.fa-telegram:before {
content: "\f2c6"; }
.fa-telegram-plane:before {
content: "\f3fe"; }
.fa-tencent-weibo:before {
content: "\f1d5"; }
.fa-terminal:before {
content: "\f120"; }
.fa-text-height:before {
content: "\f034"; }
.fa-text-width:before {
content: "\f035"; }
.fa-th:before {
content: "\f00a"; }
.fa-th-large:before {
content: "\f009"; }
.fa-th-list:before {
content: "\f00b"; }
.fa-themeisle:before {
content: "\f2b2"; }
.fa-thermometer:before {
content: "\f491"; }
.fa-thermometer-empty:before {
content: "\f2cb"; }
.fa-thermometer-full:before {
content: "\f2c7"; }
.fa-thermometer-half:before {
content: "\f2c9"; }
.fa-thermometer-quarter:before {
content: "\f2ca"; }
.fa-thermometer-three-quarters:before {
content: "\f2c8"; }
.fa-thumbs-down:before {
content: "\f165"; }
.fa-thumbs-up:before {
content: "\f164"; }
.fa-thumbtack:before {
content: "\f08d"; }
.fa-ticket-alt:before {
content: "\f3ff"; }
.fa-times:before {
content: "\f00d"; }
.fa-times-circle:before {
content: "\f057"; }
.fa-tint:before {
content: "\f043"; }
.fa-toggle-off:before {
content: "\f204"; }
.fa-toggle-on:before {
content: "\f205"; }
.fa-trademark:before {
content: "\f25c"; }
.fa-train:before {
content: "\f238"; }
.fa-transgender:before {
content: "\f224"; }
.fa-transgender-alt:before {
content: "\f225"; }
.fa-trash:before {
content: "\f1f8"; }
.fa-trash-alt:before {
content: "\f2ed"; }
.fa-tree:before {
content: "\f1bb"; }
.fa-trello:before {
content: "\f181"; }
.fa-tripadvisor:before {
content: "\f262"; }
.fa-trophy:before {
content: "\f091"; }
.fa-truck:before {
content: "\f0d1"; }
.fa-truck-loading:before {
content: "\f4de"; }
.fa-truck-moving:before {
content: "\f4df"; }
.fa-tty:before {
content: "\f1e4"; }
.fa-tumblr:before {
content: "\f173"; }
.fa-tumblr-square:before {
content: "\f174"; }
.fa-tv:before {
content: "\f26c"; }
.fa-twitch:before {
content: "\f1e8"; }
.fa-twitter:before {
content: "\f099"; }
.fa-twitter-square:before {
content: "\f081"; }
.fa-typo3:before {
content: "\f42b"; }
.fa-uber:before {
content: "\f402"; }
.fa-uikit:before {
content: "\f403"; }
.fa-umbrella:before {
content: "\f0e9"; }
.fa-underline:before {
content: "\f0cd"; }
.fa-undo:before {
content: "\f0e2"; }
.fa-undo-alt:before {
content: "\f2ea"; }
.fa-uniregistry:before {
content: "\f404"; }
.fa-universal-access:before {
content: "\f29a"; }
.fa-university:before {
content: "\f19c"; }
.fa-unlink:before {
content: "\f127"; }
.fa-unlock:before {
content: "\f09c"; }
.fa-unlock-alt:before {
content: "\f13e"; }
.fa-untappd:before {
content: "\f405"; }
.fa-upload:before {
content: "\f093"; }
.fa-usb:before {
content: "\f287"; }
.fa-user:before {
content: "\f007"; }
.fa-user-circle:before {
content: "\f2bd"; }
.fa-user-md:before {
content: "\f0f0"; }
.fa-user-plus:before {
content: "\f234"; }
.fa-user-secret:before {
content: "\f21b"; }
.fa-user-times:before {
content: "\f235"; }
.fa-users:before {
content: "\f0c0"; }
.fa-ussunnah:before {
content: "\f407"; }
.fa-utensil-spoon:before {
content: "\f2e5"; }
.fa-utensils:before {
content: "\f2e7"; }
.fa-vaadin:before {
content: "\f408"; }
.fa-venus:before {
content: "\f221"; }
.fa-venus-double:before {
content: "\f226"; }
.fa-venus-mars:before {
content: "\f228"; }
.fa-viacoin:before {
content: "\f237"; }
.fa-viadeo:before {
content: "\f2a9"; }
.fa-viadeo-square:before {
content: "\f2aa"; }
.fa-vial:before {
content: "\f492"; }
.fa-vials:before {
content: "\f493"; }
.fa-viber:before {
content: "\f409"; }
.fa-video:before {
content: "\f03d"; }
.fa-video-slash:before {
content: "\f4e2"; }
.fa-vimeo:before {
content: "\f40a"; }
.fa-vimeo-square:before {
content: "\f194"; }
.fa-vimeo-v:before {
content: "\f27d"; }
.fa-vine:before {
content: "\f1ca"; }
.fa-vk:before {
content: "\f189"; }
.fa-vnv:before {
content: "\f40b"; }
.fa-volleyball-ball:before {
content: "\f45f"; }
.fa-volume-down:before {
content: "\f027"; }
.fa-volume-off:before {
content: "\f026"; }
.fa-volume-up:before {
content: "\f028"; }
.fa-vuejs:before {
content: "\f41f"; }
.fa-warehouse:before {
content: "\f494"; }
.fa-weibo:before {
content: "\f18a"; }
.fa-weight:before {
content: "\f496"; }
.fa-weixin:before {
content: "\f1d7"; }
.fa-whatsapp:before {
content: "\f232"; }
.fa-whatsapp-square:before {
content: "\f40c"; }
.fa-wheelchair:before {
content: "\f193"; }
.fa-whmcs:before {
content: "\f40d"; }
.fa-wifi:before {
content: "\f1eb"; }
.fa-wikipedia-w:before {
content: "\f266"; }
.fa-window-close:before {
content: "\f410"; }
.fa-window-maximize:before {
content: "\f2d0"; }
.fa-window-minimize:before {
content: "\f2d1"; }
.fa-window-restore:before {
content: "\f2d2"; }
.fa-windows:before {
content: "\f17a"; }
.fa-wine-glass:before {
content: "\f4e3"; }
.fa-won-sign:before {
content: "\f159"; }
.fa-wordpress:before {
content: "\f19a"; }
.fa-wordpress-simple:before {
content: "\f411"; }
.fa-wpbeginner:before {
content: "\f297"; }
.fa-wpexplorer:before {
content: "\f2de"; }
.fa-wpforms:before {
content: "\f298"; }
.fa-wrench:before {
content: "\f0ad"; }
.fa-x-ray:before {
content: "\f497"; }
.fa-xbox:before {
content: "\f412"; }
.fa-xing:before {
content: "\f168"; }
.fa-xing-square:before {
content: "\f169"; }
.fa-y-combinator:before {
content: "\f23b"; }
.fa-yahoo:before {
content: "\f19e"; }
.fa-yandex:before {
content: "\f413"; }
.fa-yandex-international:before {
content: "\f414"; }
.fa-yelp:before {
content: "\f1e9"; }
.fa-yen-sign:before {
content: "\f157"; }
.fa-yoast:before {
content: "\f2b1"; }
.fa-youtube:before {
content: "\f167"; }
.fa-youtube-square:before {
content: "\f431"; }
.sr-only {
border: 0;
clip: rect(0, 0, 0, 0);
height: 1px;
margin: -1px;
overflow: hidden;
padding: 0;
position: absolute;
width: 1px; }
.sr-only-focusable:active, .sr-only-focusable:focus {
clip: auto;
height: auto;
margin: 0;
overflow: visible;
position: static;
width: auto; }
@font-face {
font-family: 'Font Awesome 5 Brands';
font-style: normal;
font-weight: normal;
src: url("../webfonts/fa-brands-400.eot");
src: url("../webfonts/fa-brands-400.eot?#iefix") format("embedded-opentype"), url("../webfonts/fa-brands-400.woff2") format("woff2"), url("../webfonts/fa-brands-400.woff") format("woff"), url("../webfonts/fa-brands-400.ttf") format("truetype"), url("../webfonts/fa-brands-400.svg#fontawesome") format("svg"); }
.fab {
font-family: 'Font Awesome 5 Brands'; }
@font-face {
font-family: 'Font Awesome 5 Free';
font-style: normal;
font-weight: 400;
src: url("../webfonts/fa-regular-400.eot");
src: url("../webfonts/fa-regular-400.eot?#iefix") format("embedded-opentype"), url("../webfonts/fa-regular-400.woff2") format("woff2"), url("../webfonts/fa-regular-400.woff") format("woff"), url("../webfonts/fa-regular-400.ttf") format("truetype"), url("../webfonts/fa-regular-400.svg#fontawesome") format("svg"); }
.far {
font-family: 'Font Awesome 5 Free';
font-weight: 400; }
@font-face {
font-family: 'Font Awesome 5 Free';
font-style: normal;
font-weight: 900;
src: url("../webfonts/fa-solid-900.eot");
src: url("../webfonts/fa-solid-900.eot?#iefix") format("embedded-opentype"), url("../webfonts/fa-solid-900.woff2") format("woff2"), url("../webfonts/fa-solid-900.woff") format("woff"), url("../webfonts/fa-solid-900.ttf") format("truetype"), url("../webfonts/fa-solid-900.svg#fontawesome") format("svg"); }
.fa,
.fas {
font-family: 'Font Awesome 5 Free';
font-weight: 900; }
================================================
FILE: public/admin-panel/dist/css/icons/font-awesome/css/fontawesome.css
================================================
/*!
* Font Awesome Free 5.0.9 by @fontawesome - https://fontawesome.com
* License - https://fontawesome.com/license (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
*/
.fa,
.fas,
.far,
.fal,
.fab {
-moz-osx-font-smoothing: grayscale;
-webkit-font-smoothing: antialiased;
display: inline-block;
font-style: normal;
font-variant: normal;
text-rendering: auto;
line-height: 1; }
.fa-lg {
font-size: 1.33333em;
line-height: 0.75em;
vertical-align: -.0667em; }
.fa-xs {
font-size: .75em; }
.fa-sm {
font-size: .875em; }
.fa-1x {
font-size: 1em; }
.fa-2x {
font-size: 2em; }
.fa-3x {
font-size: 3em; }
.fa-4x {
font-size: 4em; }
.fa-5x {
font-size: 5em; }
.fa-6x {
font-size: 6em; }
.fa-7x {
font-size: 7em; }
.fa-8x {
font-size: 8em; }
.fa-9x {
font-size: 9em; }
.fa-10x {
font-size: 10em; }
.fa-fw {
text-align: center;
width: 1.25em; }
.fa-ul {
list-style-type: none;
margin-left: 2.5em;
padding-left: 0; }
.fa-ul > li {
position: relative; }
.fa-li {
left: -2em;
position: absolute;
text-align: center;
width: 2em;
line-height: inherit; }
.fa-border {
border: solid 0.08em #eee;
border-radius: .1em;
padding: .2em .25em .15em; }
.fa-pull-left {
float: left; }
.fa-pull-right {
float: right; }
.fa.fa-pull-left,
.fas.fa-pull-left,
.far.fa-pull-left,
.fal.fa-pull-left,
.fab.fa-pull-left {
margin-right: .3em; }
.fa.fa-pull-right,
.fas.fa-pull-right,
.far.fa-pull-right,
.fal.fa-pull-right,
.fab.fa-pull-right {
margin-left: .3em; }
.fa-spin {
-webkit-animation: fa-spin 2s infinite linear;
animation: fa-spin 2s infinite linear; }
.fa-pulse {
-webkit-animation: fa-spin 1s infinite steps(8);
animation: fa-spin 1s infinite steps(8); }
@-webkit-keyframes fa-spin {
0% {
-webkit-transform: rotate(0deg);
transform: rotate(0deg); }
100% {
-webkit-transform: rotate(360deg);
transform: rotate(360deg); } }
@keyframes fa-spin {
0% {
-webkit-transform: rotate(0deg);
transform: rotate(0deg); }
100% {
-webkit-transform: rotate(360deg);
transform: rotate(360deg); } }
.fa-rotate-90 {
-ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";
-webkit-transform: rotate(90deg);
transform: rotate(90deg); }
.fa-rotate-180 {
-ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";
-webkit-transform: rotate(180deg);
transform: rotate(180deg); }
.fa-rotate-270 {
-ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";
-webkit-transform: rotate(270deg);
transform: rotate(270deg); }
.fa-flip-horizontal {
-ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";
-webkit-transform: scale(-1, 1);
transform: scale(-1, 1); }
.fa-flip-vertical {
-ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";
-webkit-transform: scale(1, -1);
transform: scale(1, -1); }
.fa-flip-horizontal.fa-flip-vertical {
-ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";
-webkit-transform: scale(-1, -1);
transform: scale(-1, -1); }
:root .fa-rotate-90,
:root .fa-rotate-180,
:root .fa-rotate-270,
:root .fa-flip-horizontal,
:root .fa-flip-vertical {
-webkit-filter: none;
filter: none; }
.fa-stack {
display: inline-block;
height: 2em;
line-height: 2em;
position: relative;
vertical-align: middle;
width: 2em; }
.fa-stack-1x,
.fa-stack-2x {
left: 0;
position: absolute;
text-align: center;
width: 100%; }
.fa-stack-1x {
line-height: inherit; }
.fa-stack-2x {
font-size: 2em; }
.fa-inverse {
color: #fff; }
/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen
readers do not read off random characters that represent icons */
.fa-500px:before {
content: "\f26e"; }
.fa-accessible-icon:before {
content: "\f368"; }
.fa-accusoft:before {
content: "\f369"; }
.fa-address-book:before {
content: "\f2b9"; }
.fa-address-card:before {
content: "\f2bb"; }
.fa-adjust:before {
content: "\f042"; }
.fa-adn:before {
content: "\f170"; }
.fa-adversal:before {
content: "\f36a"; }
.fa-affiliatetheme:before {
content: "\f36b"; }
.fa-algolia:before {
content: "\f36c"; }
.fa-align-center:before {
content: "\f037"; }
.fa-align-justify:before {
content: "\f039"; }
.fa-align-left:before {
content: "\f036"; }
.fa-align-right:before {
content: "\f038"; }
.fa-allergies:before {
content: "\f461"; }
.fa-amazon:before {
content: "\f270"; }
.fa-amazon-pay:before {
content: "\f42c"; }
.fa-ambulance:before {
content: "\f0f9"; }
.fa-american-sign-language-interpreting:before {
content: "\f2a3"; }
.fa-amilia:before {
content: "\f36d"; }
.fa-anchor:before {
content: "\f13d"; }
.fa-android:before {
content: "\f17b"; }
.fa-angellist:before {
content: "\f209"; }
.fa-angle-double-down:before {
content: "\f103"; }
.fa-angle-double-left:before {
content: "\f100"; }
.fa-angle-double-right:before {
content: "\f101"; }
.fa-angle-double-up:before {
content: "\f102"; }
.fa-angle-down:before {
content: "\f107"; }
.fa-angle-left:before {
content: "\f104"; }
.fa-angle-right:before {
content: "\f105"; }
.fa-angle-up:before {
content: "\f106"; }
.fa-angrycreative:before {
content: "\f36e"; }
.fa-angular:before {
content: "\f420"; }
.fa-app-store:before {
content: "\f36f"; }
.fa-app-store-ios:before {
content: "\f370"; }
.fa-apper:before {
content: "\f371"; }
.fa-apple:before {
content: "\f179"; }
.fa-apple-pay:before {
content: "\f415"; }
.fa-archive:before {
content: "\f187"; }
.fa-arrow-alt-circle-down:before {
content: "\f358"; }
.fa-arrow-alt-circle-left:before {
content: "\f359"; }
.fa-arrow-alt-circle-right:before {
content: "\f35a"; }
.fa-arrow-alt-circle-up:before {
content: "\f35b"; }
.fa-arrow-circle-down:before {
content: "\f0ab"; }
.fa-arrow-circle-left:before {
content: "\f0a8"; }
.fa-arrow-circle-right:before {
content: "\f0a9"; }
.fa-arrow-circle-up:before {
content: "\f0aa"; }
.fa-arrow-down:before {
content: "\f063"; }
.fa-arrow-left:before {
content: "\f060"; }
.fa-arrow-right:before {
content: "\f061"; }
.fa-arrow-up:before {
content: "\f062"; }
.fa-arrows-alt:before {
content: "\f0b2"; }
.fa-arrows-alt-h:before {
content: "\f337"; }
.fa-arrows-alt-v:before {
content: "\f338"; }
.fa-assistive-listening-systems:before {
content: "\f2a2"; }
.fa-asterisk:before {
content: "\f069"; }
.fa-asymmetrik:before {
content: "\f372"; }
.fa-at:before {
content: "\f1fa"; }
.fa-audible:before {
content: "\f373"; }
.fa-audio-description:before {
content: "\f29e"; }
.fa-autoprefixer:before {
content: "\f41c"; }
.fa-avianex:before {
content: "\f374"; }
.fa-aviato:before {
content: "\f421"; }
.fa-aws:before {
content: "\f375"; }
.fa-backward:before {
content: "\f04a"; }
.fa-balance-scale:before {
content: "\f24e"; }
.fa-ban:before {
content: "\f05e"; }
.fa-band-aid:before {
content: "\f462"; }
.fa-bandcamp:before {
content: "\f2d5"; }
.fa-barcode:before {
content: "\f02a"; }
.fa-bars:before {
content: "\f0c9"; }
.fa-baseball-ball:before {
content: "\f433"; }
.fa-basketball-ball:before {
content: "\f434"; }
.fa-bath:before {
content: "\f2cd"; }
.fa-battery-empty:before {
content: "\f244"; }
.fa-battery-full:before {
content: "\f240"; }
.fa-battery-half:before {
content: "\f242"; }
.fa-battery-quarter:before {
content: "\f243"; }
.fa-battery-three-quarters:before {
content: "\f241"; }
.fa-bed:before {
content: "\f236"; }
.fa-beer:before {
content: "\f0fc"; }
.fa-behance:before {
content: "\f1b4"; }
.fa-behance-square:before {
content: "\f1b5"; }
.fa-bell:before {
content: "\f0f3"; }
.fa-bell-slash:before {
content: "\f1f6"; }
.fa-bicycle:before {
content: "\f206"; }
.fa-bimobject:before {
content: "\f378"; }
.fa-binoculars:before {
content: "\f1e5"; }
.fa-birthday-cake:before {
content: "\f1fd"; }
.fa-bitbucket:before {
content: "\f171"; }
.fa-bitcoin:before {
content: "\f379"; }
.fa-bity:before {
content: "\f37a"; }
.fa-black-tie:before {
content: "\f27e"; }
.fa-blackberry:before {
content: "\f37b"; }
.fa-blind:before {
content: "\f29d"; }
.fa-blogger:before {
content: "\f37c"; }
.fa-blogger-b:before {
content: "\f37d"; }
.fa-bluetooth:before {
content: "\f293"; }
.fa-bluetooth-b:before {
content: "\f294"; }
.fa-bold:before {
content: "\f032"; }
.fa-bolt:before {
content: "\f0e7"; }
.fa-bomb:before {
content: "\f1e2"; }
.fa-book:before {
content: "\f02d"; }
.fa-bookmark:before {
content: "\f02e"; }
.fa-bowling-ball:before {
content: "\f436"; }
.fa-box:before {
content: "\f466"; }
.fa-box-open:before {
content: "\f49e"; }
.fa-boxes:before {
content: "\f468"; }
.fa-braille:before {
content: "\f2a1"; }
.fa-briefcase:before {
content: "\f0b1"; }
.fa-briefcase-medical:before {
content: "\f469"; }
.fa-btc:before {
content: "\f15a"; }
.fa-bug:before {
content: "\f188"; }
.fa-building:before {
content: "\f1ad"; }
.fa-bullhorn:before {
content: "\f0a1"; }
.fa-bullseye:before {
content: "\f140"; }
.fa-burn:before {
content: "\f46a"; }
.fa-buromobelexperte:before {
content: "\f37f"; }
.fa-bus:before {
content: "\f207"; }
.fa-buysellads:before {
content: "\f20d"; }
.fa-calculator:before {
content: "\f1ec"; }
.fa-calendar:before {
content: "\f133"; }
.fa-calendar-alt:before {
content: "\f073"; }
.fa-calendar-check:before {
content: "\f274"; }
.fa-calendar-minus:before {
content: "\f272"; }
.fa-calendar-plus:before {
content: "\f271"; }
.fa-calendar-times:before {
content: "\f273"; }
.fa-camera:before {
content: "\f030"; }
.fa-camera-retro:before {
content: "\f083"; }
.fa-capsules:before {
content: "\f46b"; }
.fa-car:before {
content: "\f1b9"; }
.fa-caret-down:before {
content: "\f0d7"; }
.fa-caret-left:before {
content: "\f0d9"; }
.fa-caret-right:before {
content: "\f0da"; }
.fa-caret-square-down:before {
content: "\f150"; }
.fa-caret-square-left:before {
content: "\f191"; }
.fa-caret-square-right:before {
content: "\f152"; }
.fa-caret-square-up:before {
content: "\f151"; }
.fa-caret-up:before {
content: "\f0d8"; }
.fa-cart-arrow-down:before {
content: "\f218"; }
.fa-cart-plus:before {
content: "\f217"; }
.fa-cc-amazon-pay:before {
content: "\f42d"; }
.fa-cc-amex:before {
content: "\f1f3"; }
.fa-cc-apple-pay:before {
content: "\f416"; }
.fa-cc-diners-club:before {
content: "\f24c"; }
.fa-cc-discover:before {
content: "\f1f2"; }
.fa-cc-jcb:before {
content: "\f24b"; }
.fa-cc-mastercard:before {
content: "\f1f1"; }
.fa-cc-paypal:before {
content: "\f1f4"; }
.fa-cc-stripe:before {
content: "\f1f5"; }
.fa-cc-visa:before {
content: "\f1f0"; }
.fa-centercode:before {
content: "\f380"; }
.fa-certificate:before {
content: "\f0a3"; }
.fa-chart-area:before {
content: "\f1fe"; }
.fa-chart-bar:before {
content: "\f080"; }
.fa-chart-line:before {
content: "\f201"; }
.fa-chart-pie:before {
content: "\f200"; }
.fa-check:before {
content: "\f00c"; }
.fa-check-circle:before {
content: "\f058"; }
.fa-check-square:before {
content: "\f14a"; }
.fa-chess:before {
content: "\f439"; }
.fa-chess-bishop:before {
content: "\f43a"; }
.fa-chess-board:before {
content: "\f43c"; }
.fa-chess-king:before {
content: "\f43f"; }
.fa-chess-knight:before {
content: "\f441"; }
.fa-chess-pawn:before {
content: "\f443"; }
.fa-chess-queen:before {
content: "\f445"; }
.fa-chess-rook:before {
content: "\f447"; }
.fa-chevron-circle-down:before {
content: "\f13a"; }
.fa-chevron-circle-left:before {
content: "\f137"; }
.fa-chevron-circle-right:before {
content: "\f138"; }
.fa-chevron-circle-up:before {
content: "\f139"; }
.fa-chevron-down:before {
content: "\f078"; }
.fa-chevron-left:before {
content: "\f053"; }
.fa-chevron-right:before {
content: "\f054"; }
.fa-chevron-up:before {
content: "\f077"; }
.fa-child:before {
content: "\f1ae"; }
.fa-chrome:before {
content: "\f268"; }
.fa-circle:before {
content: "\f111"; }
.fa-circle-notch:before {
content: "\f1ce"; }
.fa-clipboard:before {
content: "\f328"; }
.fa-clipboard-check:before {
content: "\f46c"; }
.fa-clipboard-list:before {
content: "\f46d"; }
.fa-clock:before {
content: "\f017"; }
.fa-clone:before {
content: "\f24d"; }
.fa-closed-captioning:before {
content: "\f20a"; }
.fa-cloud:before {
content: "\f0c2"; }
.fa-cloud-download-alt:before {
content: "\f381"; }
.fa-cloud-upload-alt:before {
content: "\f382"; }
.fa-cloudscale:before {
content: "\f383"; }
.fa-cloudsmith:before {
content: "\f384"; }
.fa-cloudversify:before {
content: "\f385"; }
.fa-code:before {
content: "\f121"; }
.fa-code-branch:before {
content: "\f126"; }
.fa-codepen:before {
content: "\f1cb"; }
.fa-codiepie:before {
content: "\f284"; }
.fa-coffee:before {
content: "\f0f4"; }
.fa-cog:before {
content: "\f013"; }
.fa-cogs:before {
content: "\f085"; }
.fa-columns:before {
content: "\f0db"; }
.fa-comment:before {
content: "\f075"; }
.fa-comment-alt:before {
content: "\f27a"; }
.fa-comment-dots:before {
content: "\f4ad"; }
.fa-comment-slash:before {
content: "\f4b3"; }
.fa-comments:before {
content: "\f086"; }
.fa-compass:before {
content: "\f14e"; }
.fa-compress:before {
content: "\f066"; }
.fa-connectdevelop:before {
content: "\f20e"; }
.fa-contao:before {
content: "\f26d"; }
.fa-copy:before {
content: "\f0c5"; }
.fa-copyright:before {
content: "\f1f9"; }
.fa-couch:before {
content: "\f4b8"; }
.fa-cpanel:before {
content: "\f388"; }
.fa-creative-commons:before {
content: "\f25e"; }
.fa-credit-card:before {
content: "\f09d"; }
.fa-crop:before {
content: "\f125"; }
.fa-crosshairs:before {
content: "\f05b"; }
.fa-css3:before {
content: "\f13c"; }
.fa-css3-alt:before {
content: "\f38b"; }
.fa-cube:before {
content: "\f1b2"; }
.fa-cubes:before {
content: "\f1b3"; }
.fa-cut:before {
content: "\f0c4"; }
.fa-cuttlefish:before {
content: "\f38c"; }
.fa-d-and-d:before {
content: "\f38d"; }
.fa-dashcube:before {
content: "\f210"; }
.fa-database:before {
content: "\f1c0"; }
.fa-deaf:before {
content: "\f2a4"; }
.fa-delicious:before {
content: "\f1a5"; }
.fa-deploydog:before {
content: "\f38e"; }
.fa-deskpro:before {
content: "\f38f"; }
.fa-desktop:before {
content: "\f108"; }
.fa-deviantart:before {
content: "\f1bd"; }
.fa-diagnoses:before {
content: "\f470"; }
.fa-digg:before {
content: "\f1a6"; }
.fa-digital-ocean:before {
content: "\f391"; }
.fa-discord:before {
content: "\f392"; }
.fa-discourse:before {
content: "\f393"; }
.fa-dna:before {
content: "\f471"; }
.fa-dochub:before {
content: "\f394"; }
.fa-docker:before {
content: "\f395"; }
.fa-dollar-sign:before {
content: "\f155"; }
.fa-dolly:before {
content: "\f472"; }
.fa-dolly-flatbed:before {
content: "\f474"; }
.fa-donate:before {
content: "\f4b9"; }
.fa-dot-circle:before {
content: "\f192"; }
.fa-dove:before {
content: "\f4ba"; }
.fa-download:before {
content: "\f019"; }
.fa-draft2digital:before {
content: "\f396"; }
.fa-dribbble:before {
content: "\f17d"; }
.fa-dribbble-square:before {
content: "\f397"; }
.fa-dropbox:before {
content: "\f16b"; }
.fa-drupal:before {
content: "\f1a9"; }
.fa-dyalog:before {
content: "\f399"; }
.fa-earlybirds:before {
content: "\f39a"; }
.fa-edge:before {
content: "\f282"; }
.fa-edit:before {
content: "\f044"; }
.fa-eject:before {
content: "\f052"; }
.fa-elementor:before {
content: "\f430"; }
.fa-ellipsis-h:before {
content: "\f141"; }
.fa-ellipsis-v:before {
content: "\f142"; }
.fa-ember:before {
content: "\f423"; }
.fa-empire:before {
content: "\f1d1"; }
.fa-envelope:before {
content: "\f0e0"; }
.fa-envelope-open:before {
content: "\f2b6"; }
.fa-envelope-square:before {
content: "\f199"; }
.fa-envira:before {
content: "\f299"; }
.fa-eraser:before {
content: "\f12d"; }
.fa-erlang:before {
content: "\f39d"; }
.fa-ethereum:before {
content: "\f42e"; }
.fa-etsy:before {
content: "\f2d7"; }
.fa-euro-sign:before {
content: "\f153"; }
.fa-exchange-alt:before {
content: "\f362"; }
.fa-exclamation:before {
content: "\f12a"; }
.fa-exclamation-circle:before {
content: "\f06a"; }
.fa-exclamation-triangle:before {
content: "\f071"; }
.fa-expand:before {
content: "\f065"; }
.fa-expand-arrows-alt:before {
content: "\f31e"; }
.fa-expeditedssl:before {
content: "\f23e"; }
.fa-external-link-alt:before {
content: "\f35d"; }
.fa-external-link-square-alt:before {
content: "\f360"; }
.fa-eye:before {
content: "\f06e"; }
.fa-eye-dropper:before {
content: "\f1fb"; }
.fa-eye-slash:before {
content: "\f070"; }
.fa-facebook:before {
content: "\f09a"; }
.fa-facebook-f:before {
content: "\f39e"; }
.fa-facebook-messenger:before {
content: "\f39f"; }
.fa-facebook-square:before {
content: "\f082"; }
.fa-fast-backward:before {
content: "\f049"; }
.fa-fast-forward:before {
content: "\f050"; }
.fa-fax:before {
content: "\f1ac"; }
.fa-female:before {
content: "\f182"; }
.fa-fighter-jet:before {
content: "\f0fb"; }
.fa-file:before {
content: "\f15b"; }
.fa-file-alt:before {
content: "\f15c"; }
.fa-file-archive:before {
content: "\f1c6"; }
.fa-file-audio:before {
content: "\f1c7"; }
.fa-file-code:before {
content: "\f1c9"; }
.fa-file-excel:before {
content: "\f1c3"; }
.fa-file-image:before {
content: "\f1c5"; }
.fa-file-medical:before {
content: "\f477"; }
.fa-file-medical-alt:before {
content: "\f478"; }
.fa-file-pdf:before {
content: "\f1c1"; }
.fa-file-powerpoint:before {
content: "\f1c4"; }
.fa-file-video:before {
content: "\f1c8"; }
.fa-file-word:before {
content: "\f1c2"; }
.fa-film:before {
content: "\f008"; }
.fa-filter:before {
content: "\f0b0"; }
.fa-fire:before {
content: "\f06d"; }
.fa-fire-extinguisher:before {
content: "\f134"; }
.fa-firefox:before {
content: "\f269"; }
.fa-first-aid:before {
content: "\f479"; }
.fa-first-order:before {
content: "\f2b0"; }
.fa-firstdraft:before {
content: "\f3a1"; }
.fa-flag:before {
content: "\f024"; }
.fa-flag-checkered:before {
content: "\f11e"; }
.fa-flask:before {
content: "\f0c3"; }
.fa-flickr:before {
content: "\f16e"; }
.fa-flipboard:before {
content: "\f44d"; }
.fa-fly:before {
content: "\f417"; }
.fa-folder:before {
content: "\f07b"; }
.fa-folder-open:before {
content: "\f07c"; }
.fa-font:before {
content: "\f031"; }
.fa-font-awesome:before {
content: "\f2b4"; }
.fa-font-awesome-alt:before {
content: "\f35c"; }
.fa-font-awesome-flag:before {
content: "\f425"; }
.fa-fonticons:before {
content: "\f280"; }
.fa-fonticons-fi:before {
content: "\f3a2"; }
.fa-football-ball:before {
content: "\f44e"; }
.fa-fort-awesome:before {
content: "\f286"; }
.fa-fort-awesome-alt:before {
content: "\f3a3"; }
.fa-forumbee:before {
content: "\f211"; }
.fa-forward:before {
content: "\f04e"; }
.fa-foursquare:before {
content: "\f180"; }
.fa-free-code-camp:before {
content: "\f2c5"; }
.fa-freebsd:before {
content: "\f3a4"; }
.fa-frown:before {
content: "\f119"; }
.fa-futbol:before {
content: "\f1e3"; }
.fa-gamepad:before {
content: "\f11b"; }
.fa-gavel:before {
content: "\f0e3"; }
.fa-gem:before {
content: "\f3a5"; }
.fa-genderless:before {
content: "\f22d"; }
.fa-get-pocket:before {
content: "\f265"; }
.fa-gg:before {
content: "\f260"; }
.fa-gg-circle:before {
content: "\f261"; }
.fa-gift:before {
content: "\f06b"; }
.fa-git:before {
content: "\f1d3"; }
.fa-git-square:before {
content: "\f1d2"; }
.fa-github:before {
content: "\f09b"; }
.fa-github-alt:before {
content: "\f113"; }
.fa-github-square:before {
content: "\f092"; }
.fa-gitkraken:before {
content: "\f3a6"; }
.fa-gitlab:before {
content: "\f296"; }
.fa-gitter:before {
content: "\f426"; }
.fa-glass-martini:before {
content: "\f000"; }
.fa-glide:before {
content: "\f2a5"; }
.fa-glide-g:before {
content: "\f2a6"; }
.fa-globe:before {
content: "\f0ac"; }
.fa-gofore:before {
content: "\f3a7"; }
.fa-golf-ball:before {
content: "\f450"; }
.fa-goodreads:before {
content: "\f3a8"; }
.fa-goodreads-g:before {
content: "\f3a9"; }
.fa-google:before {
content: "\f1a0"; }
.fa-google-drive:before {
content: "\f3aa"; }
.fa-google-play:before {
content: "\f3ab"; }
.fa-google-plus:before {
content: "\f2b3"; }
.fa-google-plus-g:before {
content: "\f0d5"; }
.fa-google-plus-square:before {
content: "\f0d4"; }
.fa-google-wallet:before {
content: "\f1ee"; }
.fa-graduation-cap:before {
content: "\f19d"; }
.fa-gratipay:before {
content: "\f184"; }
.fa-grav:before {
content: "\f2d6"; }
.fa-gripfire:before {
content: "\f3ac"; }
.fa-grunt:before {
content: "\f3ad"; }
.fa-gulp:before {
content: "\f3ae"; }
.fa-h-square:before {
content: "\f0fd"; }
.fa-hacker-news:before {
content: "\f1d4"; }
.fa-hacker-news-square:before {
content: "\f3af"; }
.fa-hand-holding:before {
content: "\f4bd"; }
.fa-hand-holding-heart:before {
content: "\f4be"; }
.fa-hand-holding-usd:before {
content: "\f4c0"; }
.fa-hand-lizard:before {
content: "\f258"; }
.fa-hand-paper:before {
content: "\f256"; }
.fa-hand-peace:before {
content: "\f25b"; }
.fa-hand-point-down:before {
content: "\f0a7"; }
.fa-hand-point-left:before {
content: "\f0a5"; }
.fa-hand-point-right:before {
content: "\f0a4"; }
.fa-hand-point-up:before {
content: "\f0a6"; }
.fa-hand-pointer:before {
content: "\f25a"; }
.fa-hand-rock:before {
content: "\f255"; }
.fa-hand-scissors:before {
content: "\f257"; }
.fa-hand-spock:before {
content: "\f259"; }
.fa-hands:before {
content: "\f4c2"; }
.fa-hands-helping:before {
content: "\f4c4"; }
.fa-handshake:before {
content: "\f2b5"; }
.fa-hashtag:before {
content: "\f292"; }
.fa-hdd:before {
content: "\f0a0"; }
.fa-heading:before {
content: "\f1dc"; }
.fa-headphones:before {
content: "\f025"; }
.fa-heart:before {
content: "\f004"; }
.fa-heartbeat:before {
content: "\f21e"; }
.fa-hips:before {
content: "\f452"; }
.fa-hire-a-helper:before {
content: "\f3b0"; }
.fa-history:before {
content: "\f1da"; }
.fa-hockey-puck:before {
content: "\f453"; }
.fa-home:before {
content: "\f015"; }
.fa-hooli:before {
content: "\f427"; }
.fa-hospital:before {
content: "\f0f8"; }
.fa-hospital-alt:before {
content: "\f47d"; }
.fa-hospital-symbol:before {
content: "\f47e"; }
.fa-hotjar:before {
content: "\f3b1"; }
.fa-hourglass:before {
content: "\f254"; }
.fa-hourglass-end:before {
content: "\f253"; }
.fa-hourglass-half:before {
content: "\f252"; }
.fa-hourglass-start:before {
content: "\f251"; }
.fa-houzz:before {
content: "\f27c"; }
.fa-html5:before {
content: "\f13b"; }
.fa-hubspot:before {
content: "\f3b2"; }
.fa-i-cursor:before {
content: "\f246"; }
.fa-id-badge:before {
content: "\f2c1"; }
.fa-id-card:before {
content: "\f2c2"; }
.fa-id-card-alt:before {
content: "\f47f"; }
.fa-image:before {
content: "\f03e"; }
.fa-images:before {
content: "\f302"; }
.fa-imdb:before {
content: "\f2d8"; }
.fa-inbox:before {
content: "\f01c"; }
.fa-indent:before {
content: "\f03c"; }
.fa-industry:before {
content: "\f275"; }
.fa-info:before {
content: "\f129"; }
.fa-info-circle:before {
content: "\f05a"; }
.fa-instagram:before {
content: "\f16d"; }
.fa-internet-explorer:before {
content: "\f26b"; }
.fa-ioxhost:before {
content: "\f208"; }
.fa-italic:before {
content: "\f033"; }
.fa-itunes:before {
content: "\f3b4"; }
.fa-itunes-note:before {
content: "\f3b5"; }
.fa-jenkins:before {
content: "\f3b6"; }
.fa-joget:before {
content: "\f3b7"; }
.fa-joomla:before {
content: "\f1aa"; }
.fa-js:before {
content: "\f3b8"; }
.fa-js-square:before {
content: "\f3b9"; }
.fa-jsfiddle:before {
content: "\f1cc"; }
.fa-key:before {
content: "\f084"; }
.fa-keyboard:before {
content: "\f11c"; }
.fa-keycdn:before {
content: "\f3ba"; }
.fa-kickstarter:before {
content: "\f3bb"; }
.fa-kickstarter-k:before {
content: "\f3bc"; }
.fa-korvue:before {
content: "\f42f"; }
.fa-language:before {
content: "\f1ab"; }
.fa-laptop:before {
content: "\f109"; }
.fa-laravel:before {
content: "\f3bd"; }
.fa-lastfm:before {
content: "\f202"; }
.fa-lastfm-square:before {
content: "\f203"; }
.fa-leaf:before {
content: "\f06c"; }
.fa-leanpub:before {
content: "\f212"; }
.fa-lemon:before {
content: "\f094"; }
.fa-less:before {
content: "\f41d"; }
.fa-level-down-alt:before {
content: "\f3be"; }
.fa-level-up-alt:before {
content: "\f3bf"; }
.fa-life-ring:before {
content: "\f1cd"; }
.fa-lightbulb:before {
content: "\f0eb"; }
.fa-line:before {
content: "\f3c0"; }
.fa-link:before {
content: "\f0c1"; }
.fa-linkedin:before {
content: "\f08c"; }
.fa-linkedin-in:before {
content: "\f0e1"; }
.fa-linode:before {
content: "\f2b8"; }
.fa-linux:before {
content: "\f17c"; }
.fa-lira-sign:before {
content: "\f195"; }
.fa-list:before {
content: "\f03a"; }
.fa-list-alt:before {
content: "\f022"; }
.fa-list-ol:before {
content: "\f0cb"; }
.fa-list-ul:before {
content: "\f0ca"; }
.fa-location-arrow:before {
content: "\f124"; }
.fa-lock:before {
content: "\f023"; }
.fa-lock-open:before {
content: "\f3c1"; }
.fa-long-arrow-alt-down:before {
content: "\f309"; }
.fa-long-arrow-alt-left:before {
content: "\f30a"; }
.fa-long-arrow-alt-right:before {
content: "\f30b"; }
.fa-long-arrow-alt-up:before {
content: "\f30c"; }
.fa-low-vision:before {
content: "\f2a8"; }
.fa-lyft:before {
content: "\f3c3"; }
.fa-magento:before {
content: "\f3c4"; }
.fa-magic:before {
content: "\f0d0"; }
.fa-magnet:before {
content: "\f076"; }
.fa-male:before {
content: "\f183"; }
.fa-map:before {
content: "\f279"; }
.fa-map-marker:before {
content: "\f041"; }
.fa-map-marker-alt:before {
content: "\f3c5"; }
.fa-map-pin:before {
content: "\f276"; }
.fa-map-signs:before {
content: "\f277"; }
.fa-mars:before {
content: "\f222"; }
.fa-mars-double:before {
content: "\f227"; }
.fa-mars-stroke:before {
content: "\f229"; }
.fa-mars-stroke-h:before {
content: "\f22b"; }
.fa-mars-stroke-v:before {
content: "\f22a"; }
.fa-maxcdn:before {
content: "\f136"; }
.fa-medapps:before {
content: "\f3c6"; }
.fa-medium:before {
content: "\f23a"; }
.fa-medium-m:before {
content: "\f3c7"; }
.fa-medkit:before {
content: "\f0fa"; }
.fa-medrt:before {
content: "\f3c8"; }
.fa-meetup:before {
content: "\f2e0"; }
.fa-meh:before {
content: "\f11a"; }
.fa-mercury:before {
content: "\f223"; }
.fa-microchip:before {
content: "\f2db"; }
.fa-microphone:before {
content: "\f130"; }
.fa-microphone-slash:before {
content: "\f131"; }
.fa-microsoft:before {
content: "\f3ca"; }
.fa-minus:before {
content: "\f068"; }
.fa-minus-circle:before {
content: "\f056"; }
.fa-minus-square:before {
content: "\f146"; }
.fa-mix:before {
content: "\f3cb"; }
.fa-mixcloud:before {
content: "\f289"; }
.fa-mizuni:before {
content: "\f3cc"; }
.fa-mobile:before {
content: "\f10b"; }
.fa-mobile-alt:before {
content: "\f3cd"; }
.fa-modx:before {
content: "\f285"; }
.fa-monero:before {
content: "\f3d0"; }
.fa-money-bill-alt:before {
content: "\f3d1"; }
.fa-moon:before {
content: "\f186"; }
.fa-motorcycle:before {
content: "\f21c"; }
.fa-mouse-pointer:before {
content: "\f245"; }
.fa-music:before {
content: "\f001"; }
.fa-napster:before {
content: "\f3d2"; }
.fa-neuter:before {
content: "\f22c"; }
.fa-newspaper:before {
content: "\f1ea"; }
.fa-nintendo-switch:before {
content: "\f418"; }
.fa-node:before {
content: "\f419"; }
.fa-node-js:before {
content: "\f3d3"; }
.fa-notes-medical:before {
content: "\f481"; }
.fa-npm:before {
content: "\f3d4"; }
.fa-ns8:before {
content: "\f3d5"; }
.fa-nutritionix:before {
content: "\f3d6"; }
.fa-object-group:before {
content: "\f247"; }
.fa-object-ungroup:before {
content: "\f248"; }
.fa-odnoklassniki:before {
content: "\f263"; }
.fa-odnoklassniki-square:before {
content: "\f264"; }
.fa-opencart:before {
content: "\f23d"; }
.fa-openid:before {
content: "\f19b"; }
.fa-opera:before {
content: "\f26a"; }
.fa-optin-monster:before {
content: "\f23c"; }
.fa-osi:before {
content: "\f41a"; }
.fa-outdent:before {
content: "\f03b"; }
.fa-page4:before {
content: "\f3d7"; }
.fa-pagelines:before {
content: "\f18c"; }
.fa-paint-brush:before {
content: "\f1fc"; }
.fa-palfed:before {
content: "\f3d8"; }
.fa-pallet:before {
content: "\f482"; }
.fa-paper-plane:before {
content: "\f1d8"; }
.fa-paperclip:before {
content: "\f0c6"; }
.fa-parachute-box:before {
content: "\f4cd"; }
.fa-paragraph:before {
content: "\f1dd"; }
.fa-paste:before {
content: "\f0ea"; }
.fa-patreon:before {
content: "\f3d9"; }
.fa-pause:before {
content: "\f04c"; }
.fa-pause-circle:before {
content: "\f28b"; }
.fa-paw:before {
content: "\f1b0"; }
.fa-paypal:before {
content: "\f1ed"; }
.fa-pen-square:before {
content: "\f14b"; }
.fa-pencil-alt:before {
content: "\f303"; }
.fa-people-carry:before {
content: "\f4ce"; }
.fa-percent:before {
content: "\f295"; }
.fa-periscope:before {
content: "\f3da"; }
.fa-phabricator:before {
content: "\f3db"; }
.fa-phoenix-framework:before {
content: "\f3dc"; }
.fa-phone:before {
content: "\f095"; }
.fa-phone-slash:before {
content: "\f3dd"; }
.fa-phone-square:before {
content: "\f098"; }
.fa-phone-volume:before {
content: "\f2a0"; }
.fa-php:before {
content: "\f457"; }
.fa-pied-piper:before {
content: "\f2ae"; }
.fa-pied-piper-alt:before {
content: "\f1a8"; }
.fa-pied-piper-pp:before {
content: "\f1a7"; }
.fa-piggy-bank:before {
content: "\f4d3"; }
.fa-pills:before {
content: "\f484"; }
.fa-pinterest:before {
content: "\f0d2"; }
.fa-pinterest-p:before {
content: "\f231"; }
.fa-pinterest-square:before {
content: "\f0d3"; }
.fa-plane:before {
content: "\f072"; }
.fa-play:before {
content: "\f04b"; }
.fa-play-circle:before {
content: "\f144"; }
.fa-playstation:before {
content: "\f3df"; }
.fa-plug:before {
content: "\f1e6"; }
.fa-plus:before {
content: "\f067"; }
.fa-plus-circle:before {
content: "\f055"; }
.fa-plus-square:before {
content: "\f0fe"; }
.fa-podcast:before {
content: "\f2ce"; }
.fa-poo:before {
content: "\f2fe"; }
.fa-pound-sign:before {
content: "\f154"; }
.fa-power-off:before {
content: "\f011"; }
.fa-prescription-bottle:before {
content: "\f485"; }
.fa-prescription-bottle-alt:before {
content: "\f486"; }
.fa-print:before {
content: "\f02f"; }
.fa-procedures:before {
content: "\f487"; }
.fa-product-hunt:before {
content: "\f288"; }
.fa-pushed:before {
content: "\f3e1"; }
.fa-puzzle-piece:before {
content: "\f12e"; }
.fa-python:before {
content: "\f3e2"; }
.fa-qq:before {
content: "\f1d6"; }
.fa-qrcode:before {
content: "\f029"; }
.fa-question:before {
content: "\f128"; }
.fa-question-circle:before {
content: "\f059"; }
.fa-quidditch:before {
content: "\f458"; }
.fa-quinscape:before {
content: "\f459"; }
.fa-quora:before {
content: "\f2c4"; }
.fa-quote-left:before {
content: "\f10d"; }
.fa-quote-right:before {
content: "\f10e"; }
.fa-random:before {
content: "\f074"; }
.fa-ravelry:before {
content: "\f2d9"; }
.fa-react:before {
content: "\f41b"; }
.fa-readme:before {
content: "\f4d5"; }
.fa-rebel:before {
content: "\f1d0"; }
.fa-recycle:before {
content: "\f1b8"; }
.fa-red-river:before {
content: "\f3e3"; }
.fa-reddit:before {
content: "\f1a1"; }
.fa-reddit-alien:before {
content: "\f281"; }
.fa-reddit-square:before {
content: "\f1a2"; }
.fa-redo:before {
content: "\f01e"; }
.fa-redo-alt:before {
content: "\f2f9"; }
.fa-registered:before {
content: "\f25d"; }
.fa-rendact:before {
content: "\f3e4"; }
.fa-renren:before {
content: "\f18b"; }
.fa-reply:before {
content: "\f3e5"; }
.fa-reply-all:before {
content: "\f122"; }
.fa-replyd:before {
content: "\f3e6"; }
.fa-resolving:before {
content: "\f3e7"; }
.fa-retweet:before {
content: "\f079"; }
.fa-ribbon:before {
content: "\f4d6"; }
.fa-road:before {
content: "\f018"; }
.fa-rocket:before {
content: "\f135"; }
.fa-rocketchat:before {
content: "\f3e8"; }
.fa-rockrms:before {
content: "\f3e9"; }
.fa-rss:before {
content: "\f09e"; }
.fa-rss-square:before {
content: "\f143"; }
.fa-ruble-sign:before {
content: "\f158"; }
.fa-rupee-sign:before {
content: "\f156"; }
.fa-safari:before {
content: "\f267"; }
.fa-sass:before {
content: "\f41e"; }
.fa-save:before {
content: "\f0c7"; }
.fa-schlix:before {
content: "\f3ea"; }
.fa-scribd:before {
content: "\f28a"; }
.fa-search:before {
content: "\f002"; }
.fa-search-minus:before {
content: "\f010"; }
.fa-search-plus:before {
content: "\f00e"; }
.fa-searchengin:before {
content: "\f3eb"; }
.fa-seedling:before {
content: "\f4d8"; }
.fa-sellcast:before {
content: "\f2da"; }
.fa-sellsy:before {
content: "\f213"; }
.fa-server:before {
content: "\f233"; }
.fa-servicestack:before {
content: "\f3ec"; }
.fa-share:before {
content: "\f064"; }
.fa-share-alt:before {
content: "\f1e0"; }
.fa-share-alt-square:before {
content: "\f1e1"; }
.fa-share-square:before {
content: "\f14d"; }
.fa-shekel-sign:before {
content: "\f20b"; }
.fa-shield-alt:before {
content: "\f3ed"; }
.fa-ship:before {
content: "\f21a"; }
.fa-shipping-fast:before {
content: "\f48b"; }
.fa-shirtsinbulk:before {
content: "\f214"; }
.fa-shopping-bag:before {
content: "\f290"; }
.fa-shopping-basket:before {
content: "\f291"; }
.fa-shopping-cart:before {
content: "\f07a"; }
.fa-shower:before {
content: "\f2cc"; }
.fa-sign:before {
content: "\f4d9"; }
.fa-sign-in-alt:before {
content: "\f2f6"; }
.fa-sign-language:before {
content: "\f2a7"; }
.fa-sign-out-alt:before {
content: "\f2f5"; }
.fa-signal:before {
content: "\f012"; }
.fa-simplybuilt:before {
content: "\f215"; }
.fa-sistrix:before {
content: "\f3ee"; }
.fa-sitemap:before {
content: "\f0e8"; }
.fa-skyatlas:before {
content: "\f216"; }
.fa-skype:before {
content: "\f17e"; }
.fa-slack:before {
content: "\f198"; }
.fa-slack-hash:before {
content: "\f3ef"; }
.fa-sliders-h:before {
content: "\f1de"; }
.fa-slideshare:before {
content: "\f1e7"; }
.fa-smile:before {
content: "\f118"; }
.fa-smoking:before {
content: "\f48d"; }
.fa-snapchat:before {
content: "\f2ab"; }
.fa-snapchat-ghost:before {
content: "\f2ac"; }
.fa-snapchat-square:before {
content: "\f2ad"; }
.fa-snowflake:before {
content: "\f2dc"; }
.fa-sort:before {
content: "\f0dc"; }
.fa-sort-alpha-down:before {
content: "\f15d"; }
.fa-sort-alpha-up:before {
content: "\f15e"; }
.fa-sort-amount-down:before {
content: "\f160"; }
.fa-sort-amount-up:before {
content: "\f161"; }
.fa-sort-down:before {
content: "\f0dd"; }
.fa-sort-numeric-down:before {
content: "\f162"; }
.fa-sort-numeric-up:before {
content: "\f163"; }
.fa-sort-up:before {
content: "\f0de"; }
.fa-soundcloud:before {
content: "\f1be"; }
.fa-space-shuttle:before {
content: "\f197"; }
.fa-speakap:before {
content: "\f3f3"; }
.fa-spinner:before {
content: "\f110"; }
.fa-spotify:before {
content: "\f1bc"; }
.fa-square:before {
content: "\f0c8"; }
.fa-square-full:before {
content: "\f45c"; }
.fa-stack-exchange:before {
content: "\f18d"; }
.fa-stack-overflow:before {
content: "\f16c"; }
.fa-star:before {
content: "\f005"; }
.fa-star-half:before {
content: "\f089"; }
.fa-staylinked:before {
content: "\f3f5"; }
.fa-steam:before {
content: "\f1b6"; }
.fa-steam-square:before {
content: "\f1b7"; }
.fa-steam-symbol:before {
content: "\f3f6"; }
.fa-step-backward:before {
content: "\f048"; }
.fa-step-forward:before {
content: "\f051"; }
.fa-stethoscope:before {
content: "\f0f1"; }
.fa-sticker-mule:before {
content: "\f3f7"; }
.fa-sticky-note:before {
content: "\f249"; }
.fa-stop:before {
content: "\f04d"; }
.fa-stop-circle:before {
content: "\f28d"; }
.fa-stopwatch:before {
content: "\f2f2"; }
.fa-strava:before {
content: "\f428"; }
.fa-street-view:before {
content: "\f21d"; }
.fa-strikethrough:before {
content: "\f0cc"; }
.fa-stripe:before {
content: "\f429"; }
.fa-stripe-s:before {
content: "\f42a"; }
.fa-studiovinari:before {
content: "\f3f8"; }
.fa-stumbleupon:before {
content: "\f1a4"; }
.fa-stumbleupon-circle:before {
content: "\f1a3"; }
.fa-subscript:before {
content: "\f12c"; }
.fa-subway:before {
content: "\f239"; }
.fa-suitcase:before {
content: "\f0f2"; }
.fa-sun:before {
content: "\f185"; }
.fa-superpowers:before {
content: "\f2dd"; }
.fa-superscript:before {
content: "\f12b"; }
.fa-supple:before {
content: "\f3f9"; }
.fa-sync:before {
content: "\f021"; }
.fa-sync-alt:before {
content: "\f2f1"; }
.fa-syringe:before {
content: "\f48e"; }
.fa-table:before {
content: "\f0ce"; }
.fa-table-tennis:before {
content: "\f45d"; }
.fa-tablet:before {
content: "\f10a"; }
.fa-tablet-alt:before {
content: "\f3fa"; }
.fa-tablets:before {
content: "\f490"; }
.fa-tachometer-alt:before {
content: "\f3fd"; }
.fa-tag:before {
content: "\f02b"; }
.fa-tags:before {
content: "\f02c"; }
.fa-tape:before {
content: "\f4db"; }
.fa-tasks:before {
content: "\f0ae"; }
.fa-taxi:before {
content: "\f1ba"; }
.fa-telegram:before {
content: "\f2c6"; }
.fa-telegram-plane:before {
content: "\f3fe"; }
.fa-tencent-weibo:before {
content: "\f1d5"; }
.fa-terminal:before {
content: "\f120"; }
.fa-text-height:before {
content: "\f034"; }
.fa-text-width:before {
content: "\f035"; }
.fa-th:before {
content: "\f00a"; }
.fa-th-large:before {
content: "\f009"; }
.fa-th-list:before {
content: "\f00b"; }
.fa-themeisle:before {
content: "\f2b2"; }
.fa-thermometer:before {
content: "\f491"; }
.fa-thermometer-empty:before {
content: "\f2cb"; }
.fa-thermometer-full:before {
content: "\f2c7"; }
.fa-thermometer-half:before {
content: "\f2c9"; }
.fa-thermometer-quarter:before {
content: "\f2ca"; }
.fa-thermometer-three-quarters:before {
content: "\f2c8"; }
.fa-thumbs-down:before {
content: "\f165"; }
.fa-thumbs-up:before {
content: "\f164"; }
.fa-thumbtack:before {
content: "\f08d"; }
.fa-ticket-alt:before {
content: "\f3ff"; }
.fa-times:before {
content: "\f00d"; }
.fa-times-circle:before {
content: "\f057"; }
.fa-tint:before {
content: "\f043"; }
.fa-toggle-off:before {
content: "\f204"; }
.fa-toggle-on:before {
content: "\f205"; }
.fa-trademark:before {
content: "\f25c"; }
.fa-train:before {
content: "\f238"; }
.fa-transgender:before {
content: "\f224"; }
.fa-transgender-alt:before {
content: "\f225"; }
.fa-trash:before {
content: "\f1f8"; }
.fa-trash-alt:before {
content: "\f2ed"; }
.fa-tree:before {
content: "\f1bb"; }
.fa-trello:before {
content: "\f181"; }
.fa-tripadvisor:before {
content: "\f262"; }
.fa-trophy:before {
content: "\f091"; }
.fa-truck:before {
content: "\f0d1"; }
.fa-truck-loading:before {
content: "\f4de"; }
.fa-truck-moving:before {
content: "\f4df"; }
.fa-tty:before {
content: "\f1e4"; }
.fa-tumblr:before {
content: "\f173"; }
.fa-tumblr-square:before {
content: "\f174"; }
.fa-tv:before {
content: "\f26c"; }
.fa-twitch:before {
content: "\f1e8"; }
.fa-twitter:before {
content: "\f099"; }
.fa-twitter-square:before {
content: "\f081"; }
.fa-typo3:before {
content: "\f42b"; }
.fa-uber:before {
content: "\f402"; }
.fa-uikit:before {
content: "\f403"; }
.fa-umbrella:before {
content: "\f0e9"; }
.fa-underline:before {
content: "\f0cd"; }
.fa-undo:before {
content: "\f0e2"; }
.fa-undo-alt:before {
content: "\f2ea"; }
.fa-uniregistry:before {
content: "\f404"; }
.fa-universal-access:before {
content: "\f29a"; }
.fa-university:before {
content: "\f19c"; }
.fa-unlink:before {
content: "\f127"; }
.fa-unlock:before {
content: "\f09c"; }
.fa-unlock-alt:before {
content: "\f13e"; }
.fa-untappd:before {
content: "\f405"; }
.fa-upload:before {
content: "\f093"; }
.fa-usb:before {
content: "\f287"; }
.fa-user:before {
content: "\f007"; }
.fa-user-circle:before {
content: "\f2bd"; }
.fa-user-md:before {
content: "\f0f0"; }
.fa-user-plus:before {
content: "\f234"; }
.fa-user-secret:before {
content: "\f21b"; }
.fa-user-times:before {
content: "\f235"; }
.fa-users:before {
content: "\f0c0"; }
.fa-ussunnah:before {
content: "\f407"; }
.fa-utensil-spoon:before {
content: "\f2e5"; }
.fa-utensils:before {
content: "\f2e7"; }
.fa-vaadin:before {
content: "\f408"; }
.fa-venus:before {
content: "\f221"; }
.fa-venus-double:before {
content: "\f226"; }
.fa-venus-mars:before {
content: "\f228"; }
.fa-viacoin:before {
content: "\f237"; }
.fa-viadeo:before {
content: "\f2a9"; }
.fa-viadeo-square:before {
content: "\f2aa"; }
.fa-vial:before {
content: "\f492"; }
.fa-vials:before {
content: "\f493"; }
.fa-viber:before {
content: "\f409"; }
.fa-video:before {
content: "\f03d"; }
.fa-video-slash:before {
content: "\f4e2"; }
.fa-vimeo:before {
content: "\f40a"; }
.fa-vimeo-square:before {
content: "\f194"; }
.fa-vimeo-v:before {
content: "\f27d"; }
.fa-vine:before {
content: "\f1ca"; }
.fa-vk:before {
content: "\f189"; }
.fa-vnv:before {
content: "\f40b"; }
.fa-volleyball-ball:before {
content: "\f45f"; }
.fa-volume-down:before {
content: "\f027"; }
.fa-volume-off:before {
content: "\f026"; }
.fa-volume-up:before {
content: "\f028"; }
.fa-vuejs:before {
content: "\f41f"; }
.fa-warehouse:before {
content: "\f494"; }
.fa-weibo:before {
content: "\f18a"; }
.fa-weight:before {
content: "\f496"; }
.fa-weixin:before {
content: "\f1d7"; }
.fa-whatsapp:before {
content: "\f232"; }
.fa-whatsapp-square:before {
content: "\f40c"; }
.fa-wheelchair:before {
content: "\f193"; }
.fa-whmcs:before {
content: "\f40d"; }
.fa-wifi:before {
content: "\f1eb"; }
.fa-wikipedia-w:before {
content: "\f266"; }
.fa-window-close:before {
content: "\f410"; }
.fa-window-maximize:before {
content: "\f2d0"; }
.fa-window-minimize:before {
content: "\f2d1"; }
.fa-window-restore:before {
content: "\f2d2"; }
.fa-windows:before {
content: "\f17a"; }
.fa-wine-glass:before {
content: "\f4e3"; }
.fa-won-sign:before {
content: "\f159"; }
.fa-wordpress:before {
content: "\f19a"; }
.fa-wordpress-simple:before {
content: "\f411"; }
.fa-wpbeginner:before {
content: "\f297"; }
.fa-wpexplorer:before {
content: "\f2de"; }
.fa-wpforms:before {
content: "\f298"; }
.fa-wrench:before {
content: "\f0ad"; }
.fa-x-ray:before {
content: "\f497"; }
.fa-xbox:before {
content: "\f412"; }
.fa-xing:before {
content: "\f168"; }
.fa-xing-square:before {
content: "\f169"; }
.fa-y-combinator:before {
content: "\f23b"; }
.fa-yahoo:before {
content: "\f19e"; }
.fa-yandex:before {
content: "\f413"; }
.fa-yandex-international:before {
content: "\f414"; }
.fa-yelp:before {
content: "\f1e9"; }
.fa-yen-sign:before {
content: "\f157"; }
.fa-yoast:before {
content: "\f2b1"; }
.fa-youtube:before {
content: "\f167"; }
.fa-youtube-square:before {
content: "\f431"; }
.sr-only {
border: 0;
clip: rect(0, 0, 0, 0);
height: 1px;
margin: -1px;
overflow: hidden;
padding: 0;
position: absolute;
width: 1px; }
.sr-only-focusable:active, .sr-only-focusable:focus {
clip: auto;
height: auto;
margin: 0;
overflow: visible;
position: static;
width: auto; }
================================================
FILE: public/admin-panel/dist/css/icons/font-awesome/less/_animated.less
================================================
// Animated Icons
// --------------------------
.@{fa-css-prefix}-spin {
animation: fa-spin 2s infinite linear;
}
.@{fa-css-prefix}-pulse {
animation: fa-spin 1s infinite steps(8);
}
@keyframes fa-spin {
0% {
transform: rotate(0deg);
}
100% {
transform: rotate(360deg);
}
}
================================================
FILE: public/admin-panel/dist/css/icons/font-awesome/less/_bordered-pulled.less
================================================
// Bordered & Pulled
// -------------------------
.@{fa-css-prefix}-border {
border-radius: .1em;
border: solid .08em @fa-border-color;
padding: .2em .25em .15em;
}
.@{fa-css-prefix}-pull-left { float: left; }
.@{fa-css-prefix}-pull-right { float: right; }
.@{fa-css-prefix}, .fas, .far, .fal, .fab {
&.@{fa-css-prefix}-pull-left { margin-right: .3em; }
&.@{fa-css-prefix}-pull-right { margin-left: .3em; }
}
================================================
FILE: public/admin-panel/dist/css/icons/font-awesome/less/_core.less
================================================
// Base Class Definition
// -------------------------
.@{fa-css-prefix}, .fas, .far, .fal, .fab {
-moz-osx-font-smoothing: grayscale;
-webkit-font-smoothing: antialiased;
display: inline-block;
font-style: normal;
font-variant: normal;
text-rendering: auto;
line-height: 1;
}
================================================
FILE: public/admin-panel/dist/css/icons/font-awesome/less/_fixed-width.less
================================================
// Fixed Width Icons
// -------------------------
.@{fa-css-prefix}-fw {
text-align: center;
width: (20em / 16);
}
================================================
FILE: public/admin-panel/dist/css/icons/font-awesome/less/_icons.less
================================================
/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen
readers do not read off random characters that represent icons */
.@{fa-css-prefix}-500px:before { content: @fa-var-500px; }
.@{fa-css-prefix}-accessible-icon:before { content: @fa-var-accessible-icon; }
.@{fa-css-prefix}-accusoft:before { content: @fa-var-accusoft; }
.@{fa-css-prefix}-address-book:before { content: @fa-var-address-book; }
.@{fa-css-prefix}-address-card:before { content: @fa-var-address-card; }
.@{fa-css-prefix}-adjust:before { content: @fa-var-adjust; }
.@{fa-css-prefix}-adn:before { content: @fa-var-adn; }
.@{fa-css-prefix}-adversal:before { content: @fa-var-adversal; }
.@{fa-css-prefix}-affiliatetheme:before { content: @fa-var-affiliatetheme; }
.@{fa-css-prefix}-algolia:before { content: @fa-var-algolia; }
.@{fa-css-prefix}-align-center:before { content: @fa-var-align-center; }
.@{fa-css-prefix}-align-justify:before { content: @fa-var-align-justify; }
.@{fa-css-prefix}-align-left:before { content: @fa-var-align-left; }
.@{fa-css-prefix}-align-right:before { content: @fa-var-align-right; }
.@{fa-css-prefix}-allergies:before { content: @fa-var-allergies; }
.@{fa-css-prefix}-amazon:before { content: @fa-var-amazon; }
.@{fa-css-prefix}-amazon-pay:before { content: @fa-var-amazon-pay; }
.@{fa-css-prefix}-ambulance:before { content: @fa-var-ambulance; }
.@{fa-css-prefix}-american-sign-language-interpreting:before { content: @fa-var-american-sign-language-interpreting; }
.@{fa-css-prefix}-amilia:before { content: @fa-var-amilia; }
.@{fa-css-prefix}-anchor:before { content: @fa-var-anchor; }
.@{fa-css-prefix}-android:before { content: @fa-var-android; }
.@{fa-css-prefix}-angellist:before { content: @fa-var-angellist; }
.@{fa-css-prefix}-angle-double-down:before { content: @fa-var-angle-double-down; }
.@{fa-css-prefix}-angle-double-left:before { content: @fa-var-angle-double-left; }
.@{fa-css-prefix}-angle-double-right:before { content: @fa-var-angle-double-right; }
.@{fa-css-prefix}-angle-double-up:before { content: @fa-var-angle-double-up; }
.@{fa-css-prefix}-angle-down:before { content: @fa-var-angle-down; }
.@{fa-css-prefix}-angle-left:before { content: @fa-var-angle-left; }
.@{fa-css-prefix}-angle-right:before { content: @fa-var-angle-right; }
.@{fa-css-prefix}-angle-up:before { content: @fa-var-angle-up; }
.@{fa-css-prefix}-angrycreative:before { content: @fa-var-angrycreative; }
.@{fa-css-prefix}-angular:before { content: @fa-var-angular; }
.@{fa-css-prefix}-app-store:before { content: @fa-var-app-store; }
.@{fa-css-prefix}-app-store-ios:before { content: @fa-var-app-store-ios; }
.@{fa-css-prefix}-apper:before { content: @fa-var-apper; }
.@{fa-css-prefix}-apple:before { content: @fa-var-apple; }
.@{fa-css-prefix}-apple-pay:before { content: @fa-var-apple-pay; }
.@{fa-css-prefix}-archive:before { content: @fa-var-archive; }
.@{fa-css-prefix}-arrow-alt-circle-down:before { content: @fa-var-arrow-alt-circle-down; }
.@{fa-css-prefix}-arrow-alt-circle-left:before { content: @fa-var-arrow-alt-circle-left; }
.@{fa-css-prefix}-arrow-alt-circle-right:before { content: @fa-var-arrow-alt-circle-right; }
.@{fa-css-prefix}-arrow-alt-circle-up:before { content: @fa-var-arrow-alt-circle-up; }
.@{fa-css-prefix}-arrow-circle-down:before { content: @fa-var-arrow-circle-down; }
.@{fa-css-prefix}-arrow-circle-left:before { content: @fa-var-arrow-circle-left; }
.@{fa-css-prefix}-arrow-circle-right:before { content: @fa-var-arrow-circle-right; }
.@{fa-css-prefix}-arrow-circle-up:before { content: @fa-var-arrow-circle-up; }
.@{fa-css-prefix}-arrow-down:before { content: @fa-var-arrow-down; }
.@{fa-css-prefix}-arrow-left:before { content: @fa-var-arrow-left; }
.@{fa-css-prefix}-arrow-right:before { content: @fa-var-arrow-right; }
.@{fa-css-prefix}-arrow-up:before { content: @fa-var-arrow-up; }
.@{fa-css-prefix}-arrows-alt:before { content: @fa-var-arrows-alt; }
.@{fa-css-prefix}-arrows-alt-h:before { content: @fa-var-arrows-alt-h; }
.@{fa-css-prefix}-arrows-alt-v:before { content: @fa-var-arrows-alt-v; }
.@{fa-css-prefix}-assistive-listening-systems:before { content: @fa-var-assistive-listening-systems; }
.@{fa-css-prefix}-asterisk:before { content: @fa-var-asterisk; }
.@{fa-css-prefix}-asymmetrik:before { content: @fa-var-asymmetrik; }
.@{fa-css-prefix}-at:before { content: @fa-var-at; }
.@{fa-css-prefix}-audible:before { content: @fa-var-audible; }
.@{fa-css-prefix}-audio-description:before { content: @fa-var-audio-description; }
.@{fa-css-prefix}-autoprefixer:before { content: @fa-var-autoprefixer; }
.@{fa-css-prefix}-avianex:before { content: @fa-var-avianex; }
.@{fa-css-prefix}-aviato:before { content: @fa-var-aviato; }
.@{fa-css-prefix}-aws:before { content: @fa-var-aws; }
.@{fa-css-prefix}-backward:before { content: @fa-var-backward; }
.@{fa-css-prefix}-balance-scale:before { content: @fa-var-balance-scale; }
.@{fa-css-prefix}-ban:before { content: @fa-var-ban; }
.@{fa-css-prefix}-band-aid:before { content: @fa-var-band-aid; }
.@{fa-css-prefix}-bandcamp:before { content: @fa-var-bandcamp; }
.@{fa-css-prefix}-barcode:before { content: @fa-var-barcode; }
.@{fa-css-prefix}-bars:before { content: @fa-var-bars; }
.@{fa-css-prefix}-baseball-ball:before { content: @fa-var-baseball-ball; }
.@{fa-css-prefix}-basketball-ball:before { content: @fa-var-basketball-ball; }
.@{fa-css-prefix}-bath:before { content: @fa-var-bath; }
.@{fa-css-prefix}-battery-empty:before { content: @fa-var-battery-empty; }
.@{fa-css-prefix}-battery-full:before { content: @fa-var-battery-full; }
.@{fa-css-prefix}-battery-half:before { content: @fa-var-battery-half; }
.@{fa-css-prefix}-battery-quarter:before { content: @fa-var-battery-quarter; }
.@{fa-css-prefix}-battery-three-quarters:before { content: @fa-var-battery-three-quarters; }
.@{fa-css-prefix}-bed:before { content: @fa-var-bed; }
.@{fa-css-prefix}-beer:before { content: @fa-var-beer; }
.@{fa-css-prefix}-behance:before { content: @fa-var-behance; }
.@{fa-css-prefix}-behance-square:before { content: @fa-var-behance-square; }
.@{fa-css-prefix}-bell:before { content: @fa-var-bell; }
.@{fa-css-prefix}-bell-slash:before { content: @fa-var-bell-slash; }
.@{fa-css-prefix}-bicycle:before { content: @fa-var-bicycle; }
.@{fa-css-prefix}-bimobject:before { content: @fa-var-bimobject; }
.@{fa-css-prefix}-binoculars:before { content: @fa-var-binoculars; }
.@{fa-css-prefix}-birthday-cake:before { content: @fa-var-birthday-cake; }
.@{fa-css-prefix}-bitbucket:before { content: @fa-var-bitbucket; }
.@{fa-css-prefix}-bitcoin:before { content: @fa-var-bitcoin; }
.@{fa-css-prefix}-bity:before { content: @fa-var-bity; }
.@{fa-css-prefix}-black-tie:before { content: @fa-var-black-tie; }
.@{fa-css-prefix}-blackberry:before { content: @fa-var-blackberry; }
.@{fa-css-prefix}-blind:before { content: @fa-var-blind; }
.@{fa-css-prefix}-blogger:before { content: @fa-var-blogger; }
.@{fa-css-prefix}-blogger-b:before { content: @fa-var-blogger-b; }
.@{fa-css-prefix}-bluetooth:before { content: @fa-var-bluetooth; }
.@{fa-css-prefix}-bluetooth-b:before { content: @fa-var-bluetooth-b; }
.@{fa-css-prefix}-bold:before { content: @fa-var-bold; }
.@{fa-css-prefix}-bolt:before { content: @fa-var-bolt; }
.@{fa-css-prefix}-bomb:before { content: @fa-var-bomb; }
.@{fa-css-prefix}-book:before { content: @fa-var-book; }
.@{fa-css-prefix}-bookmark:before { content: @fa-var-bookmark; }
.@{fa-css-prefix}-bowling-ball:before { content: @fa-var-bowling-ball; }
.@{fa-css-prefix}-box:before { content: @fa-var-box; }
.@{fa-css-prefix}-box-open:before { content: @fa-var-box-open; }
.@{fa-css-prefix}-boxes:before { content: @fa-var-boxes; }
.@{fa-css-prefix}-braille:before { content: @fa-var-braille; }
.@{fa-css-prefix}-briefcase:before { content: @fa-var-briefcase; }
.@{fa-css-prefix}-briefcase-medical:before { content: @fa-var-briefcase-medical; }
.@{fa-css-prefix}-btc:before { content: @fa-var-btc; }
.@{fa-css-prefix}-bug:before { content: @fa-var-bug; }
.@{fa-css-prefix}-building:before { content: @fa-var-building; }
.@{fa-css-prefix}-bullhorn:before { content: @fa-var-bullhorn; }
.@{fa-css-prefix}-bullseye:before { content: @fa-var-bullseye; }
.@{fa-css-prefix}-burn:before { content: @fa-var-burn; }
.@{fa-css-prefix}-buromobelexperte:before { content: @fa-var-buromobelexperte; }
.@{fa-css-prefix}-bus:before { content: @fa-var-bus; }
.@{fa-css-prefix}-buysellads:before { content: @fa-var-buysellads; }
.@{fa-css-prefix}-calculator:before { content: @fa-var-calculator; }
.@{fa-css-prefix}-calendar:before { content: @fa-var-calendar; }
.@{fa-css-prefix}-calendar-alt:before { content: @fa-var-calendar-alt; }
.@{fa-css-prefix}-calendar-check:before { content: @fa-var-calendar-check; }
.@{fa-css-prefix}-calendar-minus:before { content: @fa-var-calendar-minus; }
.@{fa-css-prefix}-calendar-plus:before { content: @fa-var-calendar-plus; }
.@{fa-css-prefix}-calendar-times:before { content: @fa-var-calendar-times; }
.@{fa-css-prefix}-camera:before { content: @fa-var-camera; }
.@{fa-css-prefix}-camera-retro:before { content: @fa-var-camera-retro; }
.@{fa-css-prefix}-capsules:before { content: @fa-var-capsules; }
.@{fa-css-prefix}-car:before { content: @fa-var-car; }
.@{fa-css-prefix}-caret-down:before { content: @fa-var-caret-down; }
.@{fa-css-prefix}-caret-left:before { content: @fa-var-caret-left; }
.@{fa-css-prefix}-caret-right:before { content: @fa-var-caret-right; }
.@{fa-css-prefix}-caret-square-down:before { content: @fa-var-caret-square-down; }
.@{fa-css-prefix}-caret-square-left:before { content: @fa-var-caret-square-left; }
.@{fa-css-prefix}-caret-square-right:before { content: @fa-var-caret-square-right; }
.@{fa-css-prefix}-caret-square-up:before { content: @fa-var-caret-square-up; }
.@{fa-css-prefix}-caret-up:before { content: @fa-var-caret-up; }
.@{fa-css-prefix}-cart-arrow-down:before { content: @fa-var-cart-arrow-down; }
.@{fa-css-prefix}-cart-plus:before { content: @fa-var-cart-plus; }
.@{fa-css-prefix}-cc-amazon-pay:before { content: @fa-var-cc-amazon-pay; }
.@{fa-css-prefix}-cc-amex:before { content: @fa-var-cc-amex; }
.@{fa-css-prefix}-cc-apple-pay:before { content: @fa-var-cc-apple-pay; }
.@{fa-css-prefix}-cc-diners-club:before { content: @fa-var-cc-diners-club; }
.@{fa-css-prefix}-cc-discover:before { content: @fa-var-cc-discover; }
.@{fa-css-prefix}-cc-jcb:before { content: @fa-var-cc-jcb; }
.@{fa-css-prefix}-cc-mastercard:before { content: @fa-var-cc-mastercard; }
.@{fa-css-prefix}-cc-paypal:before { content: @fa-var-cc-paypal; }
.@{fa-css-prefix}-cc-stripe:before { content: @fa-var-cc-stripe; }
.@{fa-css-prefix}-cc-visa:before { content: @fa-var-cc-visa; }
.@{fa-css-prefix}-centercode:before { content: @fa-var-centercode; }
.@{fa-css-prefix}-certificate:before { content: @fa-var-certificate; }
.@{fa-css-prefix}-chart-area:before { content: @fa-var-chart-area; }
.@{fa-css-prefix}-chart-bar:before { content: @fa-var-chart-bar; }
.@{fa-css-prefix}-chart-line:before { content: @fa-var-chart-line; }
.@{fa-css-prefix}-chart-pie:before { content: @fa-var-chart-pie; }
.@{fa-css-prefix}-check:before { content: @fa-var-check; }
.@{fa-css-prefix}-check-circle:before { content: @fa-var-check-circle; }
.@{fa-css-prefix}-check-square:before { content: @fa-var-check-square; }
.@{fa-css-prefix}-chess:before { content: @fa-var-chess; }
.@{fa-css-prefix}-chess-bishop:before { content: @fa-var-chess-bishop; }
.@{fa-css-prefix}-chess-board:before { content: @fa-var-chess-board; }
.@{fa-css-prefix}-chess-king:before { content: @fa-var-chess-king; }
.@{fa-css-prefix}-chess-knight:before { content: @fa-var-chess-knight; }
.@{fa-css-prefix}-chess-pawn:before { content: @fa-var-chess-pawn; }
.@{fa-css-prefix}-chess-queen:before { content: @fa-var-chess-queen; }
.@{fa-css-prefix}-chess-rook:before { content: @fa-var-chess-rook; }
.@{fa-css-prefix}-chevron-circle-down:before { content: @fa-var-chevron-circle-down; }
.@{fa-css-prefix}-chevron-circle-left:before { content: @fa-var-chevron-circle-left; }
.@{fa-css-prefix}-chevron-circle-right:before { content: @fa-var-chevron-circle-right; }
.@{fa-css-prefix}-chevron-circle-up:before { content: @fa-var-chevron-circle-up; }
.@{fa-css-prefix}-chevron-down:before { content: @fa-var-chevron-down; }
.@{fa-css-prefix}-chevron-left:before { content: @fa-var-chevron-left; }
.@{fa-css-prefix}-chevron-right:before { content: @fa-var-chevron-right; }
.@{fa-css-prefix}-chevron-up:before { content: @fa-var-chevron-up; }
.@{fa-css-prefix}-child:before { content: @fa-var-child; }
.@{fa-css-prefix}-chrome:before { content: @fa-var-chrome; }
.@{fa-css-prefix}-circle:before { content: @fa-var-circle; }
.@{fa-css-prefix}-circle-notch:before { content: @fa-var-circle-notch; }
.@{fa-css-prefix}-clipboard:before { content: @fa-var-clipboard; }
.@{fa-css-prefix}-clipboard-check:before { content: @fa-var-clipboard-check; }
.@{fa-css-prefix}-clipboard-list:before { content: @fa-var-clipboard-list; }
.@{fa-css-prefix}-clock:before { content: @fa-var-clock; }
.@{fa-css-prefix}-clone:before { content: @fa-var-clone; }
.@{fa-css-prefix}-closed-captioning:before { content: @fa-var-closed-captioning; }
.@{fa-css-prefix}-cloud:before { content: @fa-var-cloud; }
.@{fa-css-prefix}-cloud-download-alt:before { content: @fa-var-cloud-download-alt; }
.@{fa-css-prefix}-cloud-upload-alt:before { content: @fa-var-cloud-upload-alt; }
.@{fa-css-prefix}-cloudscale:before { content: @fa-var-cloudscale; }
.@{fa-css-prefix}-cloudsmith:before { content: @fa-var-cloudsmith; }
.@{fa-css-prefix}-cloudversify:before { content: @fa-var-cloudversify; }
.@{fa-css-prefix}-code:before { content: @fa-var-code; }
.@{fa-css-prefix}-code-branch:before { content: @fa-var-code-branch; }
.@{fa-css-prefix}-codepen:before { content: @fa-var-codepen; }
.@{fa-css-prefix}-codiepie:before { content: @fa-var-codiepie; }
.@{fa-css-prefix}-coffee:before { content: @fa-var-coffee; }
.@{fa-css-prefix}-cog:before { content: @fa-var-cog; }
.@{fa-css-prefix}-cogs:before { content: @fa-var-cogs; }
.@{fa-css-prefix}-columns:before { content: @fa-var-columns; }
.@{fa-css-prefix}-comment:before { content: @fa-var-comment; }
.@{fa-css-prefix}-comment-alt:before { content: @fa-var-comment-alt; }
.@{fa-css-prefix}-comment-dots:before { content: @fa-var-comment-dots; }
.@{fa-css-prefix}-comment-slash:before { content: @fa-var-comment-slash; }
.@{fa-css-prefix}-comments:before { content: @fa-var-comments; }
.@{fa-css-prefix}-compass:before { content: @fa-var-compass; }
.@{fa-css-prefix}-compress:before { content: @fa-var-compress; }
.@{fa-css-prefix}-connectdevelop:before { content: @fa-var-connectdevelop; }
.@{fa-css-prefix}-contao:before { content: @fa-var-contao; }
.@{fa-css-prefix}-copy:before { content: @fa-var-copy; }
.@{fa-css-prefix}-copyright:before { content: @fa-var-copyright; }
.@{fa-css-prefix}-couch:before { content: @fa-var-couch; }
.@{fa-css-prefix}-cpanel:before { content: @fa-var-cpanel; }
.@{fa-css-prefix}-creative-commons:before { content: @fa-var-creative-commons; }
.@{fa-css-prefix}-credit-card:before { content: @fa-var-credit-card; }
.@{fa-css-prefix}-crop:before { content: @fa-var-crop; }
.@{fa-css-prefix}-crosshairs:before { content: @fa-var-crosshairs; }
.@{fa-css-prefix}-css3:before { content: @fa-var-css3; }
.@{fa-css-prefix}-css3-alt:before { content: @fa-var-css3-alt; }
.@{fa-css-prefix}-cube:before { content: @fa-var-cube; }
.@{fa-css-prefix}-cubes:before { content: @fa-var-cubes; }
.@{fa-css-prefix}-cut:before { content: @fa-var-cut; }
.@{fa-css-prefix}-cuttlefish:before { content: @fa-var-cuttlefish; }
.@{fa-css-prefix}-d-and-d:before { content: @fa-var-d-and-d; }
.@{fa-css-prefix}-dashcube:before { content: @fa-var-dashcube; }
.@{fa-css-prefix}-database:before { content: @fa-var-database; }
.@{fa-css-prefix}-deaf:before { content: @fa-var-deaf; }
.@{fa-css-prefix}-delicious:before { content: @fa-var-delicious; }
.@{fa-css-prefix}-deploydog:before { content: @fa-var-deploydog; }
.@{fa-css-prefix}-deskpro:before { content: @fa-var-deskpro; }
.@{fa-css-prefix}-desktop:before { content: @fa-var-desktop; }
.@{fa-css-prefix}-deviantart:before { content: @fa-var-deviantart; }
.@{fa-css-prefix}-diagnoses:before { content: @fa-var-diagnoses; }
.@{fa-css-prefix}-digg:before { content: @fa-var-digg; }
.@{fa-css-prefix}-digital-ocean:before { content: @fa-var-digital-ocean; }
.@{fa-css-prefix}-discord:before { content: @fa-var-discord; }
.@{fa-css-prefix}-discourse:before { content: @fa-var-discourse; }
.@{fa-css-prefix}-dna:before { content: @fa-var-dna; }
.@{fa-css-prefix}-dochub:before { content: @fa-var-dochub; }
.@{fa-css-prefix}-docker:before { content: @fa-var-docker; }
.@{fa-css-prefix}-dollar-sign:before { content: @fa-var-dollar-sign; }
.@{fa-css-prefix}-dolly:before { content: @fa-var-dolly; }
.@{fa-css-prefix}-dolly-flatbed:before { content: @fa-var-dolly-flatbed; }
.@{fa-css-prefix}-donate:before { content: @fa-var-donate; }
.@{fa-css-prefix}-dot-circle:before { content: @fa-var-dot-circle; }
.@{fa-css-prefix}-dove:before { content: @fa-var-dove; }
.@{fa-css-prefix}-download:before { content: @fa-var-download; }
.@{fa-css-prefix}-draft2digital:before { content: @fa-var-draft2digital; }
.@{fa-css-prefix}-dribbble:before { content: @fa-var-dribbble; }
.@{fa-css-prefix}-dribbble-square:before { content: @fa-var-dribbble-square; }
.@{fa-css-prefix}-dropbox:before { content: @fa-var-dropbox; }
.@{fa-css-prefix}-drupal:before { content: @fa-var-drupal; }
.@{fa-css-prefix}-dyalog:before { content: @fa-var-dyalog; }
.@{fa-css-prefix}-earlybirds:before { content: @fa-var-earlybirds; }
.@{fa-css-prefix}-edge:before { content: @fa-var-edge; }
.@{fa-css-prefix}-edit:before { content: @fa-var-edit; }
.@{fa-css-prefix}-eject:before { content: @fa-var-eject; }
.@{fa-css-prefix}-elementor:before { content: @fa-var-elementor; }
.@{fa-css-prefix}-ellipsis-h:before { content: @fa-var-ellipsis-h; }
.@{fa-css-prefix}-ellipsis-v:before { content: @fa-var-ellipsis-v; }
.@{fa-css-prefix}-ember:before { content: @fa-var-ember; }
.@{fa-css-prefix}-empire:before { content: @fa-var-empire; }
.@{fa-css-prefix}-envelope:before { content: @fa-var-envelope; }
.@{fa-css-prefix}-envelope-open:before { content: @fa-var-envelope-open; }
.@{fa-css-prefix}-envelope-square:before { content: @fa-var-envelope-square; }
.@{fa-css-prefix}-envira:before { content: @fa-var-envira; }
.@{fa-css-prefix}-eraser:before { content: @fa-var-eraser; }
.@{fa-css-prefix}-erlang:before { content: @fa-var-erlang; }
.@{fa-css-prefix}-ethereum:before { content: @fa-var-ethereum; }
.@{fa-css-prefix}-etsy:before { content: @fa-var-etsy; }
.@{fa-css-prefix}-euro-sign:before { content: @fa-var-euro-sign; }
.@{fa-css-prefix}-exchange-alt:before { content: @fa-var-exchange-alt; }
.@{fa-css-prefix}-exclamation:before { content: @fa-var-exclamation; }
.@{fa-css-prefix}-exclamation-circle:before { content: @fa-var-exclamation-circle; }
.@{fa-css-prefix}-exclamation-triangle:before { content: @fa-var-exclamation-triangle; }
.@{fa-css-prefix}-expand:before { content: @fa-var-expand; }
.@{fa-css-prefix}-expand-arrows-alt:before { content: @fa-var-expand-arrows-alt; }
.@{fa-css-prefix}-expeditedssl:before { content: @fa-var-expeditedssl; }
.@{fa-css-prefix}-external-link-alt:before { content: @fa-var-external-link-alt; }
.@{fa-css-prefix}-external-link-square-alt:before { content: @fa-var-external-link-square-alt; }
.@{fa-css-prefix}-eye:before { content: @fa-var-eye; }
.@{fa-css-prefix}-eye-dropper:before { content: @fa-var-eye-dropper; }
.@{fa-css-prefix}-eye-slash:before { content: @fa-var-eye-slash; }
.@{fa-css-prefix}-facebook:before { content: @fa-var-facebook; }
.@{fa-css-prefix}-facebook-f:before { content: @fa-var-facebook-f; }
.@{fa-css-prefix}-facebook-messenger:before { content: @fa-var-facebook-messenger; }
.@{fa-css-prefix}-facebook-square:before { content: @fa-var-facebook-square; }
.@{fa-css-prefix}-fast-backward:before { content: @fa-var-fast-backward; }
.@{fa-css-prefix}-fast-forward:before { content: @fa-var-fast-forward; }
.@{fa-css-prefix}-fax:before { content: @fa-var-fax; }
.@{fa-css-prefix}-female:before { content: @fa-var-female; }
.@{fa-css-prefix}-fighter-jet:before { content: @fa-var-fighter-jet; }
.@{fa-css-prefix}-file:before { content: @fa-var-file; }
.@{fa-css-prefix}-file-alt:before { content: @fa-var-file-alt; }
.@{fa-css-prefix}-file-archive:before { content: @fa-var-file-archive; }
.@{fa-css-prefix}-file-audio:before { content: @fa-var-file-audio; }
.@{fa-css-prefix}-file-code:before { content: @fa-var-file-code; }
.@{fa-css-prefix}-file-excel:before { content: @fa-var-file-excel; }
.@{fa-css-prefix}-file-image:before { content: @fa-var-file-image; }
.@{fa-css-prefix}-file-medical:before { content: @fa-var-file-medical; }
.@{fa-css-prefix}-file-medical-alt:before { content: @fa-var-file-medical-alt; }
.@{fa-css-prefix}-file-pdf:before { content: @fa-var-file-pdf; }
.@{fa-css-prefix}-file-powerpoint:before { content: @fa-var-file-powerpoint; }
.@{fa-css-prefix}-file-video:before { content: @fa-var-file-video; }
.@{fa-css-prefix}-file-word:before { content: @fa-var-file-word; }
.@{fa-css-prefix}-film:before { content: @fa-var-film; }
.@{fa-css-prefix}-filter:before { content: @fa-var-filter; }
.@{fa-css-prefix}-fire:before { content: @fa-var-fire; }
.@{fa-css-prefix}-fire-extinguisher:before { content: @fa-var-fire-extinguisher; }
.@{fa-css-prefix}-firefox:before { content: @fa-var-firefox; }
.@{fa-css-prefix}-first-aid:before { content: @fa-var-first-aid; }
.@{fa-css-prefix}-first-order:before { content: @fa-var-first-order; }
.@{fa-css-prefix}-firstdraft:before { content: @fa-var-firstdraft; }
.@{fa-css-prefix}-flag:before { content: @fa-var-flag; }
.@{fa-css-prefix}-flag-checkered:before { content: @fa-var-flag-checkered; }
.@{fa-css-prefix}-flask:before { content: @fa-var-flask; }
.@{fa-css-prefix}-flickr:before { content: @fa-var-flickr; }
.@{fa-css-prefix}-flipboard:before { content: @fa-var-flipboard; }
.@{fa-css-prefix}-fly:before { content: @fa-var-fly; }
.@{fa-css-prefix}-folder:before { content: @fa-var-folder; }
.@{fa-css-prefix}-folder-open:before { content: @fa-var-folder-open; }
.@{fa-css-prefix}-font:before { content: @fa-var-font; }
.@{fa-css-prefix}-font-awesome:before { content: @fa-var-font-awesome; }
.@{fa-css-prefix}-font-awesome-alt:before { content: @fa-var-font-awesome-alt; }
.@{fa-css-prefix}-font-awesome-flag:before { content: @fa-var-font-awesome-flag; }
.@{fa-css-prefix}-fonticons:before { content: @fa-var-fonticons; }
.@{fa-css-prefix}-fonticons-fi:before { content: @fa-var-fonticons-fi; }
.@{fa-css-prefix}-football-ball:before { content: @fa-var-football-ball; }
.@{fa-css-prefix}-fort-awesome:before { content: @fa-var-fort-awesome; }
.@{fa-css-prefix}-fort-awesome-alt:before { content: @fa-var-fort-awesome-alt; }
.@{fa-css-prefix}-forumbee:before { content: @fa-var-forumbee; }
.@{fa-css-prefix}-forward:before { content: @fa-var-forward; }
.@{fa-css-prefix}-foursquare:before { content: @fa-var-foursquare; }
.@{fa-css-prefix}-free-code-camp:before { content: @fa-var-free-code-camp; }
.@{fa-css-prefix}-freebsd:before { content: @fa-var-freebsd; }
.@{fa-css-prefix}-frown:before { content: @fa-var-frown; }
.@{fa-css-prefix}-futbol:before { content: @fa-var-futbol; }
.@{fa-css-prefix}-gamepad:before { content: @fa-var-gamepad; }
.@{fa-css-prefix}-gavel:before { content: @fa-var-gavel; }
.@{fa-css-prefix}-gem:before { content: @fa-var-gem; }
.@{fa-css-prefix}-genderless:before { content: @fa-var-genderless; }
.@{fa-css-prefix}-get-pocket:before { content: @fa-var-get-pocket; }
.@{fa-css-prefix}-gg:before { content: @fa-var-gg; }
.@{fa-css-prefix}-gg-circle:before { content: @fa-var-gg-circle; }
.@{fa-css-prefix}-gift:before { content: @fa-var-gift; }
.@{fa-css-prefix}-git:before { content: @fa-var-git; }
.@{fa-css-prefix}-git-square:before { content: @fa-var-git-square; }
.@{fa-css-prefix}-github:before { content: @fa-var-github; }
.@{fa-css-prefix}-github-alt:before { content: @fa-var-github-alt; }
.@{fa-css-prefix}-github-square:before { content: @fa-var-github-square; }
.@{fa-css-prefix}-gitkraken:before { content: @fa-var-gitkraken; }
.@{fa-css-prefix}-gitlab:before { content: @fa-var-gitlab; }
.@{fa-css-prefix}-gitter:before { content: @fa-var-gitter; }
.@{fa-css-prefix}-glass-martini:before { content: @fa-var-glass-martini; }
.@{fa-css-prefix}-glide:before { content: @fa-var-glide; }
.@{fa-css-prefix}-glide-g:before { content: @fa-var-glide-g; }
.@{fa-css-prefix}-globe:before { content: @fa-var-globe; }
.@{fa-css-prefix}-gofore:before { content: @fa-var-gofore; }
.@{fa-css-prefix}-golf-ball:before { content: @fa-var-golf-ball; }
.@{fa-css-prefix}-goodreads:before { content: @fa-var-goodreads; }
.@{fa-css-prefix}-goodreads-g:before { content: @fa-var-goodreads-g; }
.@{fa-css-prefix}-google:before { content: @fa-var-google; }
.@{fa-css-prefix}-google-drive:before { content: @fa-var-google-drive; }
.@{fa-css-prefix}-google-play:before { content: @fa-var-google-play; }
.@{fa-css-prefix}-google-plus:before { content: @fa-var-google-plus; }
.@{fa-css-prefix}-google-plus-g:before { content: @fa-var-google-plus-g; }
.@{fa-css-prefix}-google-plus-square:before { content: @fa-var-google-plus-square; }
.@{fa-css-prefix}-google-wallet:before { content: @fa-var-google-wallet; }
.@{fa-css-prefix}-graduation-cap:before { content: @fa-var-graduation-cap; }
.@{fa-css-prefix}-gratipay:before { content: @fa-var-gratipay; }
.@{fa-css-prefix}-grav:before { content: @fa-var-grav; }
.@{fa-css-prefix}-gripfire:before { content: @fa-var-gripfire; }
.@{fa-css-prefix}-grunt:before { content: @fa-var-grunt; }
.@{fa-css-prefix}-gulp:before { content: @fa-var-gulp; }
.@{fa-css-prefix}-h-square:before { content: @fa-var-h-square; }
.@{fa-css-prefix}-hacker-news:before { content: @fa-var-hacker-news; }
.@{fa-css-prefix}-hacker-news-square:before { content: @fa-var-hacker-news-square; }
.@{fa-css-prefix}-hand-holding:before { content: @fa-var-hand-holding; }
.@{fa-css-prefix}-hand-holding-heart:before { content: @fa-var-hand-holding-heart; }
.@{fa-css-prefix}-hand-holding-usd:before { content: @fa-var-hand-holding-usd; }
.@{fa-css-prefix}-hand-lizard:before { content: @fa-var-hand-lizard; }
.@{fa-css-prefix}-hand-paper:before { content: @fa-var-hand-paper; }
.@{fa-css-prefix}-hand-peace:before { content: @fa-var-hand-peace; }
.@{fa-css-prefix}-hand-point-down:before { content: @fa-var-hand-point-down; }
.@{fa-css-prefix}-hand-point-left:before { content: @fa-var-hand-point-left; }
.@{fa-css-prefix}-hand-point-right:before { content: @fa-var-hand-point-right; }
.@{fa-css-prefix}-hand-point-up:before { content: @fa-var-hand-point-up; }
.@{fa-css-prefix}-hand-pointer:before { content: @fa-var-hand-pointer; }
.@{fa-css-prefix}-hand-rock:before { content: @fa-var-hand-rock; }
.@{fa-css-prefix}-hand-scissors:before { content: @fa-var-hand-scissors; }
.@{fa-css-prefix}-hand-spock:before { content: @fa-var-hand-spock; }
.@{fa-css-prefix}-hands:before { content: @fa-var-hands; }
.@{fa-css-prefix}-hands-helping:before { content: @fa-var-hands-helping; }
.@{fa-css-prefix}-handshake:before { content: @fa-var-handshake; }
.@{fa-css-prefix}-hashtag:before { content: @fa-var-hashtag; }
.@{fa-css-prefix}-hdd:before { content: @fa-var-hdd; }
.@{fa-css-prefix}-heading:before { content: @fa-var-heading; }
.@{fa-css-prefix}-headphones:before { content: @fa-var-headphones; }
.@{fa-css-prefix}-heart:before { content: @fa-var-heart; }
.@{fa-css-prefix}-heartbeat:before { content: @fa-var-heartbeat; }
.@{fa-css-prefix}-hips:before { content: @fa-var-hips; }
.@{fa-css-prefix}-hire-a-helper:before { content: @fa-var-hire-a-helper; }
.@{fa-css-prefix}-history:before { content: @fa-var-history; }
.@{fa-css-prefix}-hockey-puck:before { content: @fa-var-hockey-puck; }
.@{fa-css-prefix}-home:before { content: @fa-var-home; }
.@{fa-css-prefix}-hooli:before { content: @fa-var-hooli; }
.@{fa-css-prefix}-hospital:before { content: @fa-var-hospital; }
.@{fa-css-prefix}-hospital-alt:before { content: @fa-var-hospital-alt; }
.@{fa-css-prefix}-hospital-symbol:before { content: @fa-var-hospital-symbol; }
.@{fa-css-prefix}-hotjar:before { content: @fa-var-hotjar; }
.@{fa-css-prefix}-hourglass:before { content: @fa-var-hourglass; }
.@{fa-css-prefix}-hourglass-end:before { content: @fa-var-hourglass-end; }
.@{fa-css-prefix}-hourglass-half:before { content: @fa-var-hourglass-half; }
.@{fa-css-prefix}-hourglass-start:before { content: @fa-var-hourglass-start; }
.@{fa-css-prefix}-houzz:before { content: @fa-var-houzz; }
.@{fa-css-prefix}-html5:before { content: @fa-var-html5; }
.@{fa-css-prefix}-hubspot:before { content: @fa-var-hubspot; }
.@{fa-css-prefix}-i-cursor:before { content: @fa-var-i-cursor; }
.@{fa-css-prefix}-id-badge:before { content: @fa-var-id-badge; }
.@{fa-css-prefix}-id-card:before { content: @fa-var-id-card; }
.@{fa-css-prefix}-id-card-alt:before { content: @fa-var-id-card-alt; }
.@{fa-css-prefix}-image:before { content: @fa-var-image; }
.@{fa-css-prefix}-images:before { content: @fa-var-images; }
.@{fa-css-prefix}-imdb:before { content: @fa-var-imdb; }
.@{fa-css-prefix}-inbox:before { content: @fa-var-inbox; }
.@{fa-css-prefix}-indent:before { content: @fa-var-indent; }
.@{fa-css-prefix}-industry:before { content: @fa-var-industry; }
.@{fa-css-prefix}-info:before { content: @fa-var-info; }
.@{fa-css-prefix}-info-circle:before { content: @fa-var-info-circle; }
.@{fa-css-prefix}-instagram:before { content: @fa-var-instagram; }
.@{fa-css-prefix}-internet-explorer:before { content: @fa-var-internet-explorer; }
.@{fa-css-prefix}-ioxhost:before { content: @fa-var-ioxhost; }
.@{fa-css-prefix}-italic:before { content: @fa-var-italic; }
.@{fa-css-prefix}-itunes:before { content: @fa-var-itunes; }
.@{fa-css-prefix}-itunes-note:before { content: @fa-var-itunes-note; }
.@{fa-css-prefix}-jenkins:before { content: @fa-var-jenkins; }
.@{fa-css-prefix}-joget:before { content: @fa-var-joget; }
.@{fa-css-prefix}-joomla:before { content: @fa-var-joomla; }
.@{fa-css-prefix}-js:before { content: @fa-var-js; }
.@{fa-css-prefix}-js-square:before { content: @fa-var-js-square; }
.@{fa-css-prefix}-jsfiddle:before { content: @fa-var-jsfiddle; }
.@{fa-css-prefix}-key:before { content: @fa-var-key; }
.@{fa-css-prefix}-keyboard:before { content: @fa-var-keyboard; }
.@{fa-css-prefix}-keycdn:before { content: @fa-var-keycdn; }
.@{fa-css-prefix}-kickstarter:before { content: @fa-var-kickstarter; }
.@{fa-css-prefix}-kickstarter-k:before { content: @fa-var-kickstarter-k; }
.@{fa-css-prefix}-korvue:before { content: @fa-var-korvue; }
.@{fa-css-prefix}-language:before { content: @fa-var-language; }
.@{fa-css-prefix}-laptop:before { content: @fa-var-laptop; }
.@{fa-css-prefix}-laravel:before { content: @fa-var-laravel; }
.@{fa-css-prefix}-lastfm:before { content: @fa-var-lastfm; }
.@{fa-css-prefix}-lastfm-square:before { content: @fa-var-lastfm-square; }
.@{fa-css-prefix}-leaf:before { content: @fa-var-leaf; }
.@{fa-css-prefix}-leanpub:before { content: @fa-var-leanpub; }
.@{fa-css-prefix}-lemon:before { content: @fa-var-lemon; }
.@{fa-css-prefix}-less:before { content: @fa-var-less; }
.@{fa-css-prefix}-level-down-alt:before { content: @fa-var-level-down-alt; }
.@{fa-css-prefix}-level-up-alt:before { content: @fa-var-level-up-alt; }
.@{fa-css-prefix}-life-ring:before { content: @fa-var-life-ring; }
.@{fa-css-prefix}-lightbulb:before { content: @fa-var-lightbulb; }
.@{fa-css-prefix}-line:before { content: @fa-var-line; }
.@{fa-css-prefix}-link:before { content: @fa-var-link; }
.@{fa-css-prefix}-linkedin:before { content: @fa-var-linkedin; }
.@{fa-css-prefix}-linkedin-in:before { content: @fa-var-linkedin-in; }
.@{fa-css-prefix}-linode:before { content: @fa-var-linode; }
.@{fa-css-prefix}-linux:before { content: @fa-var-linux; }
.@{fa-css-prefix}-lira-sign:before { content: @fa-var-lira-sign; }
.@{fa-css-prefix}-list:before { content: @fa-var-list; }
.@{fa-css-prefix}-list-alt:before { content: @fa-var-list-alt; }
.@{fa-css-prefix}-list-ol:before { content: @fa-var-list-ol; }
.@{fa-css-prefix}-list-ul:before { content: @fa-var-list-ul; }
.@{fa-css-prefix}-location-arrow:before { content: @fa-var-location-arrow; }
.@{fa-css-prefix}-lock:before { content: @fa-var-lock; }
.@{fa-css-prefix}-lock-open:before { content: @fa-var-lock-open; }
.@{fa-css-prefix}-long-arrow-alt-down:before { content: @fa-var-long-arrow-alt-down; }
.@{fa-css-prefix}-long-arrow-alt-left:before { content: @fa-var-long-arrow-alt-left; }
.@{fa-css-prefix}-long-arrow-alt-right:before { content: @fa-var-long-arrow-alt-right; }
.@{fa-css-prefix}-long-arrow-alt-up:before { content: @fa-var-long-arrow-alt-up; }
.@{fa-css-prefix}-low-vision:before { content: @fa-var-low-vision; }
.@{fa-css-prefix}-lyft:before { content: @fa-var-lyft; }
.@{fa-css-prefix}-magento:before { content: @fa-var-magento; }
.@{fa-css-prefix}-magic:before { content: @fa-var-magic; }
.@{fa-css-prefix}-magnet:before { content: @fa-var-magnet; }
.@{fa-css-prefix}-male:before { content: @fa-var-male; }
.@{fa-css-prefix}-map:before { content: @fa-var-map; }
.@{fa-css-prefix}-map-marker:before { content: @fa-var-map-marker; }
.@{fa-css-prefix}-map-marker-alt:before { content: @fa-var-map-marker-alt; }
.@{fa-css-prefix}-map-pin:before { content: @fa-var-map-pin; }
.@{fa-css-prefix}-map-signs:before { content: @fa-var-map-signs; }
.@{fa-css-prefix}-mars:before { content: @fa-var-mars; }
.@{fa-css-prefix}-mars-double:before { content: @fa-var-mars-double; }
.@{fa-css-prefix}-mars-stroke:before { content: @fa-var-mars-stroke; }
.@{fa-css-prefix}-mars-stroke-h:before { content: @fa-var-mars-stroke-h; }
.@{fa-css-prefix}-mars-stroke-v:before { content: @fa-var-mars-stroke-v; }
.@{fa-css-prefix}-maxcdn:before { content: @fa-var-maxcdn; }
.@{fa-css-prefix}-medapps:before { content: @fa-var-medapps; }
.@{fa-css-prefix}-medium:before { content: @fa-var-medium; }
.@{fa-css-prefix}-medium-m:before { content: @fa-var-medium-m; }
.@{fa-css-prefix}-medkit:before { content: @fa-var-medkit; }
.@{fa-css-prefix}-medrt:before { content: @fa-var-medrt; }
.@{fa-css-prefix}-meetup:before { content: @fa-var-meetup; }
.@{fa-css-prefix}-meh:before { content: @fa-var-meh; }
.@{fa-css-prefix}-mercury:before { content: @fa-var-mercury; }
.@{fa-css-prefix}-microchip:before { content: @fa-var-microchip; }
.@{fa-css-prefix}-microphone:before { content: @fa-var-microphone; }
.@{fa-css-prefix}-microphone-slash:before { content: @fa-var-microphone-slash; }
.@{fa-css-prefix}-microsoft:before { content: @fa-var-microsoft; }
.@{fa-css-prefix}-minus:before { content: @fa-var-minus; }
.@{fa-css-prefix}-minus-circle:before { content: @fa-var-minus-circle; }
.@{fa-css-prefix}-minus-square:before { content: @fa-var-minus-square; }
.@{fa-css-prefix}-mix:before { content: @fa-var-mix; }
.@{fa-css-prefix}-mixcloud:before { content: @fa-var-mixcloud; }
.@{fa-css-prefix}-mizuni:before { content: @fa-var-mizuni; }
.@{fa-css-prefix}-mobile:before { content: @fa-var-mobile; }
.@{fa-css-prefix}-mobile-alt:before { content: @fa-var-mobile-alt; }
.@{fa-css-prefix}-modx:before { content: @fa-var-modx; }
.@{fa-css-prefix}-monero:before { content: @fa-var-monero; }
.@{fa-css-prefix}-money-bill-alt:before { content: @fa-var-money-bill-alt; }
.@{fa-css-prefix}-moon:before { content: @fa-var-moon; }
.@{fa-css-prefix}-motorcycle:before { content: @fa-var-motorcycle; }
.@{fa-css-prefix}-mouse-pointer:before { content: @fa-var-mouse-pointer; }
.@{fa-css-prefix}-music:before { content: @fa-var-music; }
.@{fa-css-prefix}-napster:before { content: @fa-var-napster; }
.@{fa-css-prefix}-neuter:before { content: @fa-var-neuter; }
.@{fa-css-prefix}-newspaper:before { content: @fa-var-newspaper; }
.@{fa-css-prefix}-nintendo-switch:before { content: @fa-var-nintendo-switch; }
.@{fa-css-prefix}-node:before { content: @fa-var-node; }
.@{fa-css-prefix}-node-js:before { content: @fa-var-node-js; }
.@{fa-css-prefix}-notes-medical:before { content: @fa-var-notes-medical; }
.@{fa-css-prefix}-npm:before { content: @fa-var-npm; }
.@{fa-css-prefix}-ns8:before { content: @fa-var-ns8; }
.@{fa-css-prefix}-nutritionix:before { content: @fa-var-nutritionix; }
.@{fa-css-prefix}-object-group:before { content: @fa-var-object-group; }
.@{fa-css-prefix}-object-ungroup:before { content: @fa-var-object-ungroup; }
.@{fa-css-prefix}-odnoklassniki:before { content: @fa-var-odnoklassniki; }
.@{fa-css-prefix}-odnoklassniki-square:before { content: @fa-var-odnoklassniki-square; }
.@{fa-css-prefix}-opencart:before { content: @fa-var-opencart; }
.@{fa-css-prefix}-openid:before { content: @fa-var-openid; }
.@{fa-css-prefix}-opera:before { content: @fa-var-opera; }
.@{fa-css-prefix}-optin-monster:before { content: @fa-var-optin-monster; }
.@{fa-css-prefix}-osi:before { content: @fa-var-osi; }
.@{fa-css-prefix}-outdent:before { content: @fa-var-outdent; }
.@{fa-css-prefix}-page4:before { content: @fa-var-page4; }
.@{fa-css-prefix}-pagelines:before { content: @fa-var-pagelines; }
.@{fa-css-prefix}-paint-brush:before { content: @fa-var-paint-brush; }
.@{fa-css-prefix}-palfed:before { content: @fa-var-palfed; }
.@{fa-css-prefix}-pallet:before { content: @fa-var-pallet; }
.@{fa-css-prefix}-paper-plane:before { content: @fa-var-paper-plane; }
.@{fa-css-prefix}-paperclip:before { content: @fa-var-paperclip; }
.@{fa-css-prefix}-parachute-box:before { content: @fa-var-parachute-box; }
.@{fa-css-prefix}-paragraph:before { content: @fa-var-paragraph; }
.@{fa-css-prefix}-paste:before { content: @fa-var-paste; }
.@{fa-css-prefix}-patreon:before { content: @fa-var-patreon; }
.@{fa-css-prefix}-pause:before { content: @fa-var-pause; }
.@{fa-css-prefix}-pause-circle:before { content: @fa-var-pause-circle; }
.@{fa-css-prefix}-paw:before { content: @fa-var-paw; }
.@{fa-css-prefix}-paypal:before { content: @fa-var-paypal; }
.@{fa-css-prefix}-pen-square:before { content: @fa-var-pen-square; }
.@{fa-css-prefix}-pencil-alt:before { content: @fa-var-pencil-alt; }
.@{fa-css-prefix}-people-carry:before { content: @fa-var-people-carry; }
.@{fa-css-prefix}-percent:before { content: @fa-var-percent; }
.@{fa-css-prefix}-periscope:before { content: @fa-var-periscope; }
.@{fa-css-prefix}-phabricator:before { content: @fa-var-phabricator; }
.@{fa-css-prefix}-phoenix-framework:before { content: @fa-var-phoenix-framework; }
.@{fa-css-prefix}-phone:before { content: @fa-var-phone; }
.@{fa-css-prefix}-phone-slash:before { content: @fa-var-phone-slash; }
.@{fa-css-prefix}-phone-square:before { content: @fa-var-phone-square; }
.@{fa-css-prefix}-phone-volume:before { content: @fa-var-phone-volume; }
.@{fa-css-prefix}-php:before { content: @fa-var-php; }
.@{fa-css-prefix}-pied-piper:before { content: @fa-var-pied-piper; }
.@{fa-css-prefix}-pied-piper-alt:before { content: @fa-var-pied-piper-alt; }
.@{fa-css-prefix}-pied-piper-pp:before { content: @fa-var-pied-piper-pp; }
.@{fa-css-prefix}-piggy-bank:before { content: @fa-var-piggy-bank; }
.@{fa-css-prefix}-pills:before { content: @fa-var-pills; }
.@{fa-css-prefix}-pinterest:before { content: @fa-var-pinterest; }
.@{fa-css-prefix}-pinterest-p:before { content: @fa-var-pinterest-p; }
.@{fa-css-prefix}-pinterest-square:before { content: @fa-var-pinterest-square; }
.@{fa-css-prefix}-plane:before { content: @fa-var-plane; }
.@{fa-css-prefix}-play:before { content: @fa-var-play; }
.@{fa-css-prefix}-play-circle:before { content: @fa-var-play-circle; }
.@{fa-css-prefix}-playstation:before { content: @fa-var-playstation; }
.@{fa-css-prefix}-plug:before { content: @fa-var-plug; }
.@{fa-css-prefix}-plus:before { content: @fa-var-plus; }
.@{fa-css-prefix}-plus-circle:before { content: @fa-var-plus-circle; }
.@{fa-css-prefix}-plus-square:before { content: @fa-var-plus-square; }
.@{fa-css-prefix}-podcast:before { content: @fa-var-podcast; }
.@{fa-css-prefix}-poo:before { content: @fa-var-poo; }
.@{fa-css-prefix}-pound-sign:before { content: @fa-var-pound-sign; }
.@{fa-css-prefix}-power-off:before { content: @fa-var-power-off; }
.@{fa-css-prefix}-prescription-bottle:before { content: @fa-var-prescription-bottle; }
.@{fa-css-prefix}-prescription-bottle-alt:before { content: @fa-var-prescription-bottle-alt; }
.@{fa-css-prefix}-print:before { content: @fa-var-print; }
.@{fa-css-prefix}-procedures:before { content: @fa-var-procedures; }
.@{fa-css-prefix}-product-hunt:before { content: @fa-var-product-hunt; }
.@{fa-css-prefix}-pushed:before { content: @fa-var-pushed; }
.@{fa-css-prefix}-puzzle-piece:before { content: @fa-var-puzzle-piece; }
.@{fa-css-prefix}-python:before { content: @fa-var-python; }
.@{fa-css-prefix}-qq:before { content: @fa-var-qq; }
.@{fa-css-prefix}-qrcode:before { content: @fa-var-qrcode; }
.@{fa-css-prefix}-question:before { content: @fa-var-question; }
.@{fa-css-prefix}-question-circle:before { content: @fa-var-question-circle; }
.@{fa-css-prefix}-quidditch:before { content: @fa-var-quidditch; }
.@{fa-css-prefix}-quinscape:before { content: @fa-var-quinscape; }
.@{fa-css-prefix}-quora:before { content: @fa-var-quora; }
.@{fa-css-prefix}-quote-left:before { content: @fa-var-quote-left; }
.@{fa-css-prefix}-quote-right:before { content: @fa-var-quote-right; }
.@{fa-css-prefix}-random:before { content: @fa-var-random; }
.@{fa-css-prefix}-ravelry:before { content: @fa-var-ravelry; }
.@{fa-css-prefix}-react:before { content: @fa-var-react; }
.@{fa-css-prefix}-readme:before { content: @fa-var-readme; }
.@{fa-css-prefix}-rebel:before { content: @fa-var-rebel; }
.@{fa-css-prefix}-recycle:before { content: @fa-var-recycle; }
.@{fa-css-prefix}-red-river:before { content: @fa-var-red-river; }
.@{fa-css-prefix}-reddit:before { content: @fa-var-reddit; }
.@{fa-css-prefix}-reddit-alien:before { content: @fa-var-reddit-alien; }
.@{fa-css-prefix}-reddit-square:before { content: @fa-var-reddit-square; }
.@{fa-css-prefix}-redo:before { content: @fa-var-redo; }
.@{fa-css-prefix}-redo-alt:before { content: @fa-var-redo-alt; }
.@{fa-css-prefix}-registered:before { content: @fa-var-registered; }
.@{fa-css-prefix}-rendact:before { content: @fa-var-rendact; }
.@{fa-css-prefix}-renren:before { content: @fa-var-renren; }
.@{fa-css-prefix}-reply:before { content: @fa-var-reply; }
.@{fa-css-prefix}-reply-all:before { content: @fa-var-reply-all; }
.@{fa-css-prefix}-replyd:before { content: @fa-var-replyd; }
.@{fa-css-prefix}-resolving:before { content: @fa-var-resolving; }
.@{fa-css-prefix}-retweet:before { content: @fa-var-retweet; }
.@{fa-css-prefix}-ribbon:before { content: @fa-var-ribbon; }
.@{fa-css-prefix}-road:before { content: @fa-var-road; }
.@{fa-css-prefix}-rocket:before { content: @fa-var-rocket; }
.@{fa-css-prefix}-rocketchat:before { content: @fa-var-rocketchat; }
.@{fa-css-prefix}-rockrms:before { content: @fa-var-rockrms; }
.@{fa-css-prefix}-rss:before { content: @fa-var-rss; }
.@{fa-css-prefix}-rss-square:before { content: @fa-var-rss-square; }
.@{fa-css-prefix}-ruble-sign:before { content: @fa-var-ruble-sign; }
.@{fa-css-prefix}-rupee-sign:before { content: @fa-var-rupee-sign; }
.@{fa-css-prefix}-safari:before { content: @fa-var-safari; }
.@{fa-css-prefix}-sass:before { content: @fa-var-sass; }
.@{fa-css-prefix}-save:before { content: @fa-var-save; }
.@{fa-css-prefix}-schlix:before { content: @fa-var-schlix; }
.@{fa-css-prefix}-scribd:before { content: @fa-var-scribd; }
.@{fa-css-prefix}-search:before { content: @fa-var-search; }
.@{fa-css-prefix}-search-minus:before { content: @fa-var-search-minus; }
.@{fa-css-prefix}-search-plus:before { content: @fa-var-search-plus; }
.@{fa-css-prefix}-searchengin:before { content: @fa-var-searchengin; }
.@{fa-css-prefix}-seedling:before { content: @fa-var-seedling; }
.@{fa-css-prefix}-sellcast:before { content: @fa-var-sellcast; }
.@{fa-css-prefix}-sellsy:before { content: @fa-var-sellsy; }
.@{fa-css-prefix}-server:before { content: @fa-var-server; }
.@{fa-css-prefix}-servicestack:before { content: @fa-var-servicestack; }
.@{fa-css-prefix}-share:before { content: @fa-var-share; }
.@{fa-css-prefix}-share-alt:before { content: @fa-var-share-alt; }
.@{fa-css-prefix}-share-alt-square:before { content: @fa-var-share-alt-square; }
.@{fa-css-prefix}-share-square:before { content: @fa-var-share-square; }
.@{fa-css-prefix}-shekel-sign:before { content: @fa-var-shekel-sign; }
.@{fa-css-prefix}-shield-alt:before { content: @fa-var-shield-alt; }
.@{fa-css-prefix}-ship:before { content: @fa-var-ship; }
.@{fa-css-prefix}-shipping-fast:before { content: @fa-var-shipping-fast; }
.@{fa-css-prefix}-shirtsinbulk:before { content: @fa-var-shirtsinbulk; }
.@{fa-css-prefix}-shopping-bag:before { content: @fa-var-shopping-bag; }
.@{fa-css-prefix}-shopping-basket:before { content: @fa-var-shopping-basket; }
.@{fa-css-prefix}-shopping-cart:before { content: @fa-var-shopping-cart; }
.@{fa-css-prefix}-shower:before { content: @fa-var-shower; }
.@{fa-css-prefix}-sign:before { content: @fa-var-sign; }
.@{fa-css-prefix}-sign-in-alt:before { content: @fa-var-sign-in-alt; }
.@{fa-css-prefix}-sign-language:before { content: @fa-var-sign-language; }
.@{fa-css-prefix}-sign-out-alt:before { content: @fa-var-sign-out-alt; }
.@{fa-css-prefix}-signal:before { content: @fa-var-signal; }
.@{fa-css-prefix}-simplybuilt:before { content: @fa-var-simplybuilt; }
.@{fa-css-prefix}-sistrix:before { content: @fa-var-sistrix; }
.@{fa-css-prefix}-sitemap:before { content: @fa-var-sitemap; }
.@{fa-css-prefix}-skyatlas:before { content: @fa-var-skyatlas; }
.@{fa-css-prefix}-skype:before { content: @fa-var-skype; }
.@{fa-css-prefix}-slack:before { content: @fa-var-slack; }
.@{fa-css-prefix}-slack-hash:before { content: @fa-var-slack-hash; }
.@{fa-css-prefix}-sliders-h:before { content: @fa-var-sliders-h; }
.@{fa-css-prefix}-slideshare:before { content: @fa-var-slideshare; }
.@{fa-css-prefix}-smile:before { content: @fa-var-smile; }
.@{fa-css-prefix}-smoking:before { content: @fa-var-smoking; }
.@{fa-css-prefix}-snapchat:before { content: @fa-var-snapchat; }
.@{fa-css-prefix}-snapchat-ghost:before { content: @fa-var-snapchat-ghost; }
.@{fa-css-prefix}-snapchat-square:before { content: @fa-var-snapchat-square; }
.@{fa-css-prefix}-snowflake:before { content: @fa-var-snowflake; }
.@{fa-css-prefix}-sort:before { content: @fa-var-sort; }
.@{fa-css-prefix}-sort-alpha-down:before { content: @fa-var-sort-alpha-down; }
.@{fa-css-prefix}-sort-alpha-up:before { content: @fa-var-sort-alpha-up; }
.@{fa-css-prefix}-sort-amount-down:before { content: @fa-var-sort-amount-down; }
.@{fa-css-prefix}-sort-amount-up:before { content: @fa-var-sort-amount-up; }
.@{fa-css-prefix}-sort-down:before { content: @fa-var-sort-down; }
.@{fa-css-prefix}-sort-numeric-down:before { content: @fa-var-sort-numeric-down; }
.@{fa-css-prefix}-sort-numeric-up:before { content: @fa-var-sort-numeric-up; }
.@{fa-css-prefix}-sort-up:before { content: @fa-var-sort-up; }
.@{fa-css-prefix}-soundcloud:before { content: @fa-var-soundcloud; }
.@{fa-css-prefix}-space-shuttle:before { content: @fa-var-space-shuttle; }
.@{fa-css-prefix}-speakap:before { content: @fa-var-speakap; }
.@{fa-css-prefix}-spinner:before { content: @fa-var-spinner; }
.@{fa-css-prefix}-spotify:before { content: @fa-var-spotify; }
.@{fa-css-prefix}-square:before { content: @fa-var-square; }
.@{fa-css-prefix}-square-full:before { content: @fa-var-square-full; }
.@{fa-css-prefix}-stack-exchange:before { content: @fa-var-stack-exchange; }
.@{fa-css-prefix}-stack-overflow:before { content: @fa-var-stack-overflow; }
.@{fa-css-prefix}-star:before { content: @fa-var-star; }
.@{fa-css-prefix}-star-half:before { content: @fa-var-star-half; }
.@{fa-css-prefix}-staylinked:before { content: @fa-var-staylinked; }
.@{fa-css-prefix}-steam:before { content: @fa-var-steam; }
.@{fa-css-prefix}-steam-square:before { content: @fa-var-steam-square; }
.@{fa-css-prefix}-steam-symbol:before { content: @fa-var-steam-symbol; }
.@{fa-css-prefix}-step-backward:before { content: @fa-var-step-backward; }
.@{fa-css-prefix}-step-forward:before { content: @fa-var-step-forward; }
.@{fa-css-prefix}-stethoscope:before { content: @fa-var-stethoscope; }
.@{fa-css-prefix}-sticker-mule:before { content: @fa-var-sticker-mule; }
.@{fa-css-prefix}-sticky-note:before { content: @fa-var-sticky-note; }
.@{fa-css-prefix}-stop:before { content: @fa-var-stop; }
.@{fa-css-prefix}-stop-circle:before { content: @fa-var-stop-circle; }
.@{fa-css-prefix}-stopwatch:before { content: @fa-var-stopwatch; }
.@{fa-css-prefix}-strava:before { content: @fa-var-strava; }
.@{fa-css-prefix}-street-view:before { content: @fa-var-street-view; }
.@{fa-css-prefix}-strikethrough:before { content: @fa-var-strikethrough; }
.@{fa-css-prefix}-stripe:before { content: @fa-var-stripe; }
.@{fa-css-prefix}-stripe-s:before { content: @fa-var-stripe-s; }
.@{fa-css-prefix}-studiovinari:before { content: @fa-var-studiovinari; }
.@{fa-css-prefix}-stumbleupon:before { content: @fa-var-stumbleupon; }
.@{fa-css-prefix}-stumbleupon-circle:before { content: @fa-var-stumbleupon-circle; }
.@{fa-css-prefix}-subscript:before { content: @fa-var-subscript; }
.@{fa-css-prefix}-subway:before { content: @fa-var-subway; }
.@{fa-css-prefix}-suitcase:before { content: @fa-var-suitcase; }
.@{fa-css-prefix}-sun:before { content: @fa-var-sun; }
.@{fa-css-prefix}-superpowers:before { content: @fa-var-superpowers; }
.@{fa-css-prefix}-superscript:before { content: @fa-var-superscript; }
.@{fa-css-prefix}-supple:before { content: @fa-var-supple; }
.@{fa-css-prefix}-sync:before { content: @fa-var-sync; }
.@{fa-css-prefix}-sync-alt:before { content: @fa-var-sync-alt; }
.@{fa-css-prefix}-syringe:before { content: @fa-var-syringe; }
.@{fa-css-prefix}-table:before { content: @fa-var-table; }
.@{fa-css-prefix}-table-tennis:before { content: @fa-var-table-tennis; }
.@{fa-css-prefix}-tablet:before { content: @fa-var-tablet; }
.@{fa-css-prefix}-tablet-alt:before { content: @fa-var-tablet-alt; }
.@{fa-css-prefix}-tablets:before { content: @fa-var-tablets; }
.@{fa-css-prefix}-tachometer-alt:before { content: @fa-var-tachometer-alt; }
.@{fa-css-prefix}-tag:before { content: @fa-var-tag; }
.@{fa-css-prefix}-tags:before { content: @fa-var-tags; }
.@{fa-css-prefix}-tape:before { content: @fa-var-tape; }
.@{fa-css-prefix}-tasks:before { content: @fa-var-tasks; }
.@{fa-css-prefix}-taxi:before { content: @fa-var-taxi; }
.@{fa-css-prefix}-telegram:before { content: @fa-var-telegram; }
.@{fa-css-prefix}-telegram-plane:before { content: @fa-var-telegram-plane; }
.@{fa-css-prefix}-tencent-weibo:before { content: @fa-var-tencent-weibo; }
.@{fa-css-prefix}-terminal:before { content: @fa-var-terminal; }
.@{fa-css-prefix}-text-height:before { content: @fa-var-text-height; }
.@{fa-css-prefix}-text-width:before { content: @fa-var-text-width; }
.@{fa-css-prefix}-th:before { content: @fa-var-th; }
.@{fa-css-prefix}-th-large:before { content: @fa-var-th-large; }
.@{fa-css-prefix}-th-list:before { content: @fa-var-th-list; }
.@{fa-css-prefix}-themeisle:before { content: @fa-var-themeisle; }
.@{fa-css-prefix}-thermometer:before { content: @fa-var-thermometer; }
.@{fa-css-prefix}-thermometer-empty:before { content: @fa-var-thermometer-empty; }
.@{fa-css-prefix}-thermometer-full:before { content: @fa-var-thermometer-full; }
.@{fa-css-prefix}-thermometer-half:before { content: @fa-var-thermometer-half; }
.@{fa-css-prefix}-thermometer-quarter:before { content: @fa-var-thermometer-quarter; }
.@{fa-css-prefix}-thermometer-three-quarters:before { content: @fa-var-thermometer-three-quarters; }
.@{fa-css-prefix}-thumbs-down:before { content: @fa-var-thumbs-down; }
.@{fa-css-prefix}-thumbs-up:before { content: @fa-var-thumbs-up; }
.@{fa-css-prefix}-thumbtack:before { content: @fa-var-thumbtack; }
.@{fa-css-prefix}-ticket-alt:before { content: @fa-var-ticket-alt; }
.@{fa-css-prefix}-times:before { content: @fa-var-times; }
.@{fa-css-prefix}-times-circle:before { content: @fa-var-times-circle; }
.@{fa-css-prefix}-tint:before { content: @fa-var-tint; }
.@{fa-css-prefix}-toggle-off:before { content: @fa-var-toggle-off; }
.@{fa-css-prefix}-toggle-on:before { content: @fa-var-toggle-on; }
.@{fa-css-prefix}-trademark:before { content: @fa-var-trademark; }
.@{fa-css-prefix}-train:before { content: @fa-var-train; }
.@{fa-css-prefix}-transgender:before { content: @fa-var-transgender; }
.@{fa-css-prefix}-transgender-alt:before { content: @fa-var-transgender-alt; }
.@{fa-css-prefix}-trash:before { content: @fa-var-trash; }
.@{fa-css-prefix}-trash-alt:before { content: @fa-var-trash-alt; }
.@{fa-css-prefix}-tree:before { content: @fa-var-tree; }
.@{fa-css-prefix}-trello:before { content: @fa-var-trello; }
.@{fa-css-prefix}-tripadvisor:before { content: @fa-var-tripadvisor; }
.@{fa-css-prefix}-trophy:before { content: @fa-var-trophy; }
.@{fa-css-prefix}-truck:before { content: @fa-var-truck; }
.@{fa-css-prefix}-truck-loading:before { content: @fa-var-truck-loading; }
.@{fa-css-prefix}-truck-moving:before { content: @fa-var-truck-moving; }
.@{fa-css-prefix}-tty:before { content: @fa-var-tty; }
.@{fa-css-prefix}-tumblr:before { content: @fa-var-tumblr; }
.@{fa-css-prefix}-tumblr-square:before { content: @fa-var-tumblr-square; }
.@{fa-css-prefix}-tv:before { content: @fa-var-tv; }
.@{fa-css-prefix}-twitch:before { content: @fa-var-twitch; }
.@{fa-css-prefix}-twitter:before { content: @fa-var-twitter; }
.@{fa-css-prefix}-twitter-square:before { content: @fa-var-twitter-square; }
.@{fa-css-prefix}-typo3:before { content: @fa-var-typo3; }
.@{fa-css-prefix}-uber:before { content: @fa-var-uber; }
.@{fa-css-prefix}-uikit:before { content: @fa-var-uikit; }
.@{fa-css-prefix}-umbrella:before { content: @fa-var-umbrella; }
.@{fa-css-prefix}-underline:before { content: @fa-var-underline; }
.@{fa-css-prefix}-undo:before { content: @fa-var-undo; }
.@{fa-css-prefix}-undo-alt:before { content: @fa-var-undo-alt; }
.@{fa-css-prefix}-uniregistry:before { content: @fa-var-uniregistry; }
.@{fa-css-prefix}-universal-access:before { content: @fa-var-universal-access; }
.@{fa-css-prefix}-university:before { content: @fa-var-university; }
.@{fa-css-prefix}-unlink:before { content: @fa-var-unlink; }
.@{fa-css-prefix}-unlock:before { content: @fa-var-unlock; }
.@{fa-css-prefix}-unlock-alt:before { content: @fa-var-unlock-alt; }
.@{fa-css-prefix}-untappd:before { content: @fa-var-untappd; }
.@{fa-css-prefix}-upload:before { content: @fa-var-upload; }
.@{fa-css-prefix}-usb:before { content: @fa-var-usb; }
.@{fa-css-prefix}-user:before { content: @fa-var-user; }
.@{fa-css-prefix}-user-circle:before { content: @fa-var-user-circle; }
.@{fa-css-prefix}-user-md:before { content: @fa-var-user-md; }
.@{fa-css-prefix}-user-plus:before { content: @fa-var-user-plus; }
.@{fa-css-prefix}-user-secret:before { content: @fa-var-user-secret; }
.@{fa-css-prefix}-user-times:before { content: @fa-var-user-times; }
.@{fa-css-prefix}-users:before { content: @fa-var-users; }
.@{fa-css-prefix}-ussunnah:before { content: @fa-var-ussunnah; }
.@{fa-css-prefix}-utensil-spoon:before { content: @fa-var-utensil-spoon; }
.@{fa-css-prefix}-utensils:before { content: @fa-var-utensils; }
.@{fa-css-prefix}-vaadin:before { content: @fa-var-vaadin; }
.@{fa-css-prefix}-venus:before { content: @fa-var-venus; }
.@{fa-css-prefix}-venus-double:before { content: @fa-var-venus-double; }
.@{fa-css-prefix}-venus-mars:before { content: @fa-var-venus-mars; }
.@{fa-css-prefix}-viacoin:before { content: @fa-var-viacoin; }
.@{fa-css-prefix}-viadeo:before { content: @fa-var-viadeo; }
.@{fa-css-prefix}-viadeo-square:before { content: @fa-var-viadeo-square; }
.@{fa-css-prefix}-vial:before { content: @fa-var-vial; }
.@{fa-css-prefix}-vials:before { content: @fa-var-vials; }
.@{fa-css-prefix}-viber:before { content: @fa-var-viber; }
.@{fa-css-prefix}-video:before { content: @fa-var-video; }
.@{fa-css-prefix}-video-slash:before { content: @fa-var-video-slash; }
.@{fa-css-prefix}-vimeo:before { content: @fa-var-vimeo; }
.@{fa-css-prefix}-vimeo-square:before { content: @fa-var-vimeo-square; }
.@{fa-css-prefix}-vimeo-v:before { content: @fa-var-vimeo-v; }
.@{fa-css-prefix}-vine:before { content: @fa-var-vine; }
.@{fa-css-prefix}-vk:before { content: @fa-var-vk; }
.@{fa-css-prefix}-vnv:before { content: @fa-var-vnv; }
.@{fa-css-prefix}-volleyball-ball:before { content: @fa-var-volleyball-ball; }
.@{fa-css-prefix}-volume-down:before { content: @fa-var-volume-down; }
.@{fa-css-prefix}-volume-off:before { content: @fa-var-volume-off; }
.@{fa-css-prefix}-volume-up:before { content: @fa-var-volume-up; }
.@{fa-css-prefix}-vuejs:before { content: @fa-var-vuejs; }
.@{fa-css-prefix}-warehouse:before { content: @fa-var-warehouse; }
.@{fa-css-prefix}-weibo:before { content: @fa-var-weibo; }
.@{fa-css-prefix}-weight:before { content: @fa-var-weight; }
.@{fa-css-prefix}-weixin:before { content: @fa-var-weixin; }
.@{fa-css-prefix}-whatsapp:before { content: @fa-var-whatsapp; }
.@{fa-css-prefix}-whatsapp-square:before { content: @fa-var-whatsapp-square; }
.@{fa-css-prefix}-wheelchair:before { content: @fa-var-wheelchair; }
.@{fa-css-prefix}-whmcs:before { content: @fa-var-whmcs; }
.@{fa-css-prefix}-wifi:before { content: @fa-var-wifi; }
.@{fa-css-prefix}-wikipedia-w:before { content: @fa-var-wikipedia-w; }
.@{fa-css-prefix}-window-close:before { content: @fa-var-window-close; }
.@{fa-css-prefix}-window-maximize:before { content: @fa-var-window-maximize; }
.@{fa-css-prefix}-window-minimize:before { content: @fa-var-window-minimize; }
.@{fa-css-prefix}-window-restore:before { content: @fa-var-window-restore; }
.@{fa-css-prefix}-windows:before { content: @fa-var-windows; }
.@{fa-css-prefix}-wine-glass:before { content: @fa-var-wine-glass; }
.@{fa-css-prefix}-won-sign:before { content: @fa-var-won-sign; }
.@{fa-css-prefix}-wordpress:before { content: @fa-var-wordpress; }
.@{fa-css-prefix}-wordpress-simple:before { content: @fa-var-wordpress-simple; }
.@{fa-css-prefix}-wpbeginner:before { content: @fa-var-wpbeginner; }
.@{fa-css-prefix}-wpexplorer:before { content: @fa-var-wpexplorer; }
.@{fa-css-prefix}-wpforms:before { content: @fa-var-wpforms; }
.@{fa-css-prefix}-wrench:before { content: @fa-var-wrench; }
.@{fa-css-prefix}-x-ray:before { content: @fa-var-x-ray; }
.@{fa-css-prefix}-xbox:before { content: @fa-var-xbox; }
.@{fa-css-prefix}-xing:before { content: @fa-var-xing; }
.@{fa-css-prefix}-xing-square:before { content: @fa-var-xing-square; }
.@{fa-css-prefix}-y-combinator:before { content: @fa-var-y-combinator; }
.@{fa-css-prefix}-yahoo:before { content: @fa-var-yahoo; }
.@{fa-css-prefix}-yandex:before { content: @fa-var-yandex; }
.@{fa-css-prefix}-yandex-international:before { content: @fa-var-yandex-international; }
.@{fa-css-prefix}-yelp:before { content: @fa-var-yelp; }
.@{fa-css-prefix}-yen-sign:before { content: @fa-var-yen-sign; }
.@{fa-css-prefix}-yoast:before { content: @fa-var-yoast; }
.@{fa-css-prefix}-youtube:before { content: @fa-var-youtube; }
.@{fa-css-prefix}-youtube-square:before { content: @fa-var-youtube-square; }
================================================
FILE: public/admin-panel/dist/css/icons/font-awesome/less/_larger.less
================================================
// Icon Sizes
// -------------------------
.larger(@factor) when (@factor > 0) {
.larger((@factor - 1));
.@{fa-css-prefix}-@{factor}x {
font-size: (@factor * 1em);
}
}
/* makes the font 33% larger relative to the icon container */
.@{fa-css-prefix}-lg {
font-size: (4em / 3);
line-height: (3em / 4);
vertical-align: -.0667em;
}
.@{fa-css-prefix}-xs {
font-size: .75em;
}
.@{fa-css-prefix}-sm {
font-size: .875em;
}
.larger(10);
================================================
FILE: public/admin-panel/dist/css/icons/font-awesome/less/_list.less
================================================
// List Icons
// -------------------------
.@{fa-css-prefix}-ul {
list-style-type: none;
margin-left: @fa-li-width * 5/4;
padding-left: 0;
> li { position: relative; }
}
.@{fa-css-prefix}-li {
left: -@fa-li-width;
position: absolute;
text-align: center;
width: @fa-li-width;
line-height: inherit;
}
================================================
FILE: public/admin-panel/dist/css/icons/font-awesome/less/_mixins.less
================================================
// Mixins
// --------------------------
.fa-icon() {
-moz-osx-font-smoothing: grayscale;
-webkit-font-smoothing: antialiased;
display: inline-block;
font-style: normal;
font-variant: normal;
font-weight: normal;
line-height: 1;
vertical-align: -.125em;
}
.fa-icon-rotate(@degrees, @rotation) {
-ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=@{rotation})";
transform: rotate(@degrees);
}
.fa-icon-flip(@horiz, @vert, @rotation) {
-ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=@{rotation}, mirror=1)";
transform: scale(@horiz, @vert);
}
// Only display content to screen readers. A la Bootstrap 4.
//
// See: http://a11yproject.com/posts/how-to-hide-content/
.sr-only() {
border: 0;
clip: rect(0,0,0,0);
height: 1px;
margin: -1px;
overflow: hidden;
padding: 0;
position: absolute;
width: 1px;
}
// Use in conjunction with .sr-only to only display content when it's focused.
//
// Useful for "Skip to main content" links; see http://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/G1
//
// Credit: HTML5 Boilerplate
.sr-only-focusable() {
&:active,
&:focus {
clip: auto;
height: auto;
margin: 0;
overflow: visible;
position: static;
width: auto;
}
}
================================================
FILE: public/admin-panel/dist/css/icons/font-awesome/less/_rotated-flipped.less
================================================
// Rotated & Flipped Icons
// -------------------------
.@{fa-css-prefix}-rotate-90 { .fa-icon-rotate(90deg, 1); }
.@{fa-css-prefix}-rotate-180 { .fa-icon-rotate(180deg, 2); }
.@{fa-css-prefix}-rotate-270 { .fa-icon-rotate(270deg, 3); }
.@{fa-css-prefix}-flip-horizontal { .fa-icon-flip(-1, 1, 0); }
.@{fa-css-prefix}-flip-vertical { .fa-icon-flip(1, -1, 2); }
.@{fa-css-prefix}-flip-horizontal.@{fa-css-prefix}-flip-vertical { .fa-icon-flip(-1, -1, 2); }
// Hook for IE8-9
// -------------------------
:root {
.@{fa-css-prefix}-rotate-90,
.@{fa-css-prefix}-rotate-180,
.@{fa-css-prefix}-rotate-270,
.@{fa-css-prefix}-flip-horizontal,
.@{fa-css-prefix}-flip-vertical {
filter: none;
}
}
================================================
FILE: public/admin-panel/dist/css/icons/font-awesome/less/_screen-reader.less
================================================
// Screen Readers
// -------------------------
.sr-only { .sr-only(); }
.sr-only-focusable { .sr-only-focusable(); }
================================================
FILE: public/admin-panel/dist/css/icons/font-awesome/less/_stacked.less
================================================
// Stacked Icons
// -------------------------
.@{fa-css-prefix}-stack {
display: inline-block;
height: 2em;
line-height: 2em;
position: relative;
vertical-align: middle;
width: 2em;
}
.@{fa-css-prefix}-stack-1x, .@{fa-css-prefix}-stack-2x {
left: 0;
position: absolute;
text-align: center;
width: 100%;
}
.@{fa-css-prefix}-stack-1x { line-height: inherit; }
.@{fa-css-prefix}-stack-2x { font-size: 2em; }
.@{fa-css-prefix}-inverse { color: @fa-inverse; }
================================================
FILE: public/admin-panel/dist/css/icons/font-awesome/less/_variables.less
================================================
// Variables
// --------------------------
@fa-font-path: "../webfonts";
@fa-font-size-base: 16px;
@fa-line-height-base: 1;
@fa-css-prefix: fa;
@fa-version: "5.0.9";
@fa-border-color: #eee;
@fa-inverse: #fff;
@fa-li-width: 2em;
@fa-var-500px: "\f26e";
@fa-var-accessible-icon: "\f368";
@fa-var-accusoft: "\f369";
@fa-var-address-book: "\f2b9";
@fa-var-address-card: "\f2bb";
@fa-var-adjust: "\f042";
@fa-var-adn: "\f170";
@fa-var-adversal: "\f36a";
@fa-var-affiliatetheme: "\f36b";
@fa-var-algolia: "\f36c";
@fa-var-align-center: "\f037";
@fa-var-align-justify: "\f039";
@fa-var-align-left: "\f036";
@fa-var-align-right: "\f038";
@fa-var-allergies: "\f461";
@fa-var-amazon: "\f270";
@fa-var-amazon-pay: "\f42c";
@fa-var-ambulance: "\f0f9";
@fa-var-american-sign-language-interpreting: "\f2a3";
@fa-var-amilia: "\f36d";
@fa-var-anchor: "\f13d";
@fa-var-android: "\f17b";
@fa-var-angellist: "\f209";
@fa-var-angle-double-down: "\f103";
@fa-var-angle-double-left: "\f100";
@fa-var-angle-double-right: "\f101";
@fa-var-angle-double-up: "\f102";
@fa-var-angle-down: "\f107";
@fa-var-angle-left: "\f104";
@fa-var-angle-right: "\f105";
@fa-var-angle-up: "\f106";
@fa-var-angrycreative: "\f36e";
@fa-var-angular: "\f420";
@fa-var-app-store: "\f36f";
@fa-var-app-store-ios: "\f370";
@fa-var-apper: "\f371";
@fa-var-apple: "\f179";
@fa-var-apple-pay: "\f415";
@fa-var-archive: "\f187";
@fa-var-arrow-alt-circle-down: "\f358";
@fa-var-arrow-alt-circle-left: "\f359";
@fa-var-arrow-alt-circle-right: "\f35a";
@fa-var-arrow-alt-circle-up: "\f35b";
@fa-var-arrow-circle-down: "\f0ab";
@fa-var-arrow-circle-left: "\f0a8";
@fa-var-arrow-circle-right: "\f0a9";
@fa-var-arrow-circle-up: "\f0aa";
@fa-var-arrow-down: "\f063";
@fa-var-arrow-left: "\f060";
@fa-var-arrow-right: "\f061";
@fa-var-arrow-up: "\f062";
@fa-var-arrows-alt: "\f0b2";
@fa-var-arrows-alt-h: "\f337";
@fa-var-arrows-alt-v: "\f338";
@fa-var-assistive-listening-systems: "\f2a2";
@fa-var-asterisk: "\f069";
@fa-var-asymmetrik: "\f372";
@fa-var-at: "\f1fa";
@fa-var-audible: "\f373";
@fa-var-audio-description: "\f29e";
@fa-var-autoprefixer: "\f41c";
@fa-var-avianex: "\f374";
@fa-var-aviato: "\f421";
@fa-var-aws: "\f375";
@fa-var-backward: "\f04a";
@fa-var-balance-scale: "\f24e";
@fa-var-ban: "\f05e";
@fa-var-band-aid: "\f462";
@fa-var-bandcamp: "\f2d5";
@fa-var-barcode: "\f02a";
@fa-var-bars: "\f0c9";
@fa-var-baseball-ball: "\f433";
@fa-var-basketball-ball: "\f434";
@fa-var-bath: "\f2cd";
@fa-var-battery-empty: "\f244";
@fa-var-battery-full: "\f240";
@fa-var-battery-half: "\f242";
@fa-var-battery-quarter: "\f243";
@fa-var-battery-three-quarters: "\f241";
@fa-var-bed: "\f236";
@fa-var-beer: "\f0fc";
@fa-var-behance: "\f1b4";
@fa-var-behance-square: "\f1b5";
@fa-var-bell: "\f0f3";
@fa-var-bell-slash: "\f1f6";
@fa-var-bicycle: "\f206";
@fa-var-bimobject: "\f378";
@fa-var-binoculars: "\f1e5";
@fa-var-birthday-cake: "\f1fd";
@fa-var-bitbucket: "\f171";
@fa-var-bitcoin: "\f379";
@fa-var-bity: "\f37a";
@fa-var-black-tie: "\f27e";
@fa-var-blackberry: "\f37b";
@fa-var-blind: "\f29d";
@fa-var-blogger: "\f37c";
@fa-var-blogger-b: "\f37d";
@fa-var-bluetooth: "\f293";
@fa-var-bluetooth-b: "\f294";
@fa-var-bold: "\f032";
@fa-var-bolt: "\f0e7";
@fa-var-bomb: "\f1e2";
@fa-var-book: "\f02d";
@fa-var-bookmark: "\f02e";
@fa-var-bowling-ball: "\f436";
@fa-var-box: "\f466";
@fa-var-box-open: "\f49e";
@fa-var-boxes: "\f468";
@fa-var-braille: "\f2a1";
@fa-var-briefcase: "\f0b1";
@fa-var-briefcase-medical: "\f469";
@fa-var-btc: "\f15a";
@fa-var-bug: "\f188";
@fa-var-building: "\f1ad";
@fa-var-bullhorn: "\f0a1";
@fa-var-bullseye: "\f140";
@fa-var-burn: "\f46a";
@fa-var-buromobelexperte: "\f37f";
@fa-var-bus: "\f207";
@fa-var-buysellads: "\f20d";
@fa-var-calculator: "\f1ec";
@fa-var-calendar: "\f133";
@fa-var-calendar-alt: "\f073";
@fa-var-calendar-check: "\f274";
@fa-var-calendar-minus: "\f272";
@fa-var-calendar-plus: "\f271";
@fa-var-calendar-times: "\f273";
@fa-var-camera: "\f030";
@fa-var-camera-retro: "\f083";
@fa-var-capsules: "\f46b";
@fa-var-car: "\f1b9";
@fa-var-caret-down: "\f0d7";
@fa-var-caret-left: "\f0d9";
@fa-var-caret-right: "\f0da";
@fa-var-caret-square-down: "\f150";
@fa-var-caret-square-left: "\f191";
@fa-var-caret-square-right: "\f152";
@fa-var-caret-square-up: "\f151";
@fa-var-caret-up: "\f0d8";
@fa-var-cart-arrow-down: "\f218";
@fa-var-cart-plus: "\f217";
@fa-var-cc-amazon-pay: "\f42d";
@fa-var-cc-amex: "\f1f3";
@fa-var-cc-apple-pay: "\f416";
@fa-var-cc-diners-club: "\f24c";
@fa-var-cc-discover: "\f1f2";
@fa-var-cc-jcb: "\f24b";
@fa-var-cc-mastercard: "\f1f1";
@fa-var-cc-paypal: "\f1f4";
@fa-var-cc-stripe: "\f1f5";
@fa-var-cc-visa: "\f1f0";
@fa-var-centercode: "\f380";
@fa-var-certificate: "\f0a3";
@fa-var-chart-area: "\f1fe";
@fa-var-chart-bar: "\f080";
@fa-var-chart-line: "\f201";
@fa-var-chart-pie: "\f200";
@fa-var-check: "\f00c";
@fa-var-check-circle: "\f058";
@fa-var-check-square: "\f14a";
@fa-var-chess: "\f439";
@fa-var-chess-bishop: "\f43a";
@fa-var-chess-board: "\f43c";
@fa-var-chess-king: "\f43f";
@fa-var-chess-knight: "\f441";
@fa-var-chess-pawn: "\f443";
@fa-var-chess-queen: "\f445";
@fa-var-chess-rook: "\f447";
@fa-var-chevron-circle-down: "\f13a";
@fa-var-chevron-circle-left: "\f137";
@fa-var-chevron-circle-right: "\f138";
@fa-var-chevron-circle-up: "\f139";
@fa-var-chevron-down: "\f078";
@fa-var-chevron-left: "\f053";
@fa-var-chevron-right: "\f054";
@fa-var-chevron-up: "\f077";
@fa-var-child: "\f1ae";
@fa-var-chrome: "\f268";
@fa-var-circle: "\f111";
@fa-var-circle-notch: "\f1ce";
@fa-var-clipboard: "\f328";
@fa-var-clipboard-check: "\f46c";
@fa-var-clipboard-list: "\f46d";
@fa-var-clock: "\f017";
@fa-var-clone: "\f24d";
@fa-var-closed-captioning: "\f20a";
@fa-var-cloud: "\f0c2";
@fa-var-cloud-download-alt: "\f381";
@fa-var-cloud-upload-alt: "\f382";
@fa-var-cloudscale: "\f383";
@fa-var-cloudsmith: "\f384";
@fa-var-cloudversify: "\f385";
@fa-var-code: "\f121";
@fa-var-code-branch: "\f126";
@fa-var-codepen: "\f1cb";
@fa-var-codiepie: "\f284";
@fa-var-coffee: "\f0f4";
@fa-var-cog: "\f013";
@fa-var-cogs: "\f085";
@fa-var-columns: "\f0db";
@fa-var-comment: "\f075";
@fa-var-comment-alt: "\f27a";
@fa-var-comment-dots: "\f4ad";
@fa-var-comment-slash: "\f4b3";
@fa-var-comments: "\f086";
@fa-var-compass: "\f14e";
@fa-var-compress: "\f066";
@fa-var-connectdevelop: "\f20e";
@fa-var-contao: "\f26d";
@fa-var-copy: "\f0c5";
@fa-var-copyright: "\f1f9";
@fa-var-couch: "\f4b8";
@fa-var-cpanel: "\f388";
@fa-var-creative-commons: "\f25e";
@fa-var-credit-card: "\f09d";
@fa-var-crop: "\f125";
@fa-var-crosshairs: "\f05b";
@fa-var-css3: "\f13c";
@fa-var-css3-alt: "\f38b";
@fa-var-cube: "\f1b2";
@fa-var-cubes: "\f1b3";
@fa-var-cut: "\f0c4";
@fa-var-cuttlefish: "\f38c";
@fa-var-d-and-d: "\f38d";
@fa-var-dashcube: "\f210";
@fa-var-database: "\f1c0";
@fa-var-deaf: "\f2a4";
@fa-var-delicious: "\f1a5";
@fa-var-deploydog: "\f38e";
@fa-var-deskpro: "\f38f";
@fa-var-desktop: "\f108";
@fa-var-deviantart: "\f1bd";
@fa-var-diagnoses: "\f470";
@fa-var-digg: "\f1a6";
@fa-var-digital-ocean: "\f391";
@fa-var-discord: "\f392";
@fa-var-discourse: "\f393";
@fa-var-dna: "\f471";
@fa-var-dochub: "\f394";
@fa-var-docker: "\f395";
@fa-var-dollar-sign: "\f155";
@fa-var-dolly: "\f472";
@fa-var-dolly-flatbed: "\f474";
@fa-var-donate: "\f4b9";
@fa-var-dot-circle: "\f192";
@fa-var-dove: "\f4ba";
@fa-var-download: "\f019";
@fa-var-draft2digital: "\f396";
@fa-var-dribbble: "\f17d";
@fa-var-dribbble-square: "\f397";
@fa-var-dropbox: "\f16b";
@fa-var-drupal: "\f1a9";
@fa-var-dyalog: "\f399";
@fa-var-earlybirds: "\f39a";
@fa-var-edge: "\f282";
@fa-var-edit: "\f044";
@fa-var-eject: "\f052";
@fa-var-elementor: "\f430";
@fa-var-ellipsis-h: "\f141";
@fa-var-ellipsis-v: "\f142";
@fa-var-ember: "\f423";
@fa-var-empire: "\f1d1";
@fa-var-envelope: "\f0e0";
@fa-var-envelope-open: "\f2b6";
@fa-var-envelope-square: "\f199";
@fa-var-envira: "\f299";
@fa-var-eraser: "\f12d";
@fa-var-erlang: "\f39d";
@fa-var-ethereum: "\f42e";
@fa-var-etsy: "\f2d7";
@fa-var-euro-sign: "\f153";
@fa-var-exchange-alt: "\f362";
@fa-var-exclamation: "\f12a";
@fa-var-exclamation-circle: "\f06a";
@fa-var-exclamation-triangle: "\f071";
@fa-var-expand: "\f065";
@fa-var-expand-arrows-alt: "\f31e";
@fa-var-expeditedssl: "\f23e";
@fa-var-external-link-alt: "\f35d";
@fa-var-external-link-square-alt: "\f360";
@fa-var-eye: "\f06e";
@fa-var-eye-dropper: "\f1fb";
@fa-var-eye-slash: "\f070";
@fa-var-facebook: "\f09a";
@fa-var-facebook-f: "\f39e";
@fa-var-facebook-messenger: "\f39f";
@fa-var-facebook-square: "\f082";
@fa-var-fast-backward: "\f049";
@fa-var-fast-forward: "\f050";
@fa-var-fax: "\f1ac";
@fa-var-female: "\f182";
@fa-var-fighter-jet: "\f0fb";
@fa-var-file: "\f15b";
@fa-var-file-alt: "\f15c";
@fa-var-file-archive: "\f1c6";
@fa-var-file-audio: "\f1c7";
@fa-var-file-code: "\f1c9";
@fa-var-file-excel: "\f1c3";
@fa-var-file-image: "\f1c5";
@fa-var-file-medical: "\f477";
@fa-var-file-medical-alt: "\f478";
@fa-var-file-pdf: "\f1c1";
@fa-var-file-powerpoint: "\f1c4";
@fa-var-file-video: "\f1c8";
@fa-var-file-word: "\f1c2";
@fa-var-film: "\f008";
@fa-var-filter: "\f0b0";
@fa-var-fire: "\f06d";
@fa-var-fire-extinguisher: "\f134";
@fa-var-firefox: "\f269";
@fa-var-first-aid: "\f479";
@fa-var-first-order: "\f2b0";
@fa-var-firstdraft: "\f3a1";
@fa-var-flag: "\f024";
@fa-var-flag-checkered: "\f11e";
@fa-var-flask: "\f0c3";
@fa-var-flickr: "\f16e";
@fa-var-flipboard: "\f44d";
@fa-var-fly: "\f417";
@fa-var-folder: "\f07b";
@fa-var-folder-open: "\f07c";
@fa-var-font: "\f031";
@fa-var-font-awesome: "\f2b4";
@fa-var-font-awesome-alt: "\f35c";
@fa-var-font-awesome-flag: "\f425";
@fa-var-fonticons: "\f280";
@fa-var-fonticons-fi: "\f3a2";
@fa-var-football-ball: "\f44e";
@fa-var-fort-awesome: "\f286";
@fa-var-fort-awesome-alt: "\f3a3";
@fa-var-forumbee: "\f211";
@fa-var-forward: "\f04e";
@fa-var-foursquare: "\f180";
@fa-var-free-code-camp: "\f2c5";
@fa-var-freebsd: "\f3a4";
@fa-var-frown: "\f119";
@fa-var-futbol: "\f1e3";
@fa-var-gamepad: "\f11b";
@fa-var-gavel: "\f0e3";
@fa-var-gem: "\f3a5";
@fa-var-genderless: "\f22d";
@fa-var-get-pocket: "\f265";
@fa-var-gg: "\f260";
@fa-var-gg-circle: "\f261";
@fa-var-gift: "\f06b";
@fa-var-git: "\f1d3";
@fa-var-git-square: "\f1d2";
@fa-var-github: "\f09b";
@fa-var-github-alt: "\f113";
@fa-var-github-square: "\f092";
@fa-var-gitkraken: "\f3a6";
@fa-var-gitlab: "\f296";
@fa-var-gitter: "\f426";
@fa-var-glass-martini: "\f000";
@fa-var-glide: "\f2a5";
@fa-var-glide-g: "\f2a6";
@fa-var-globe: "\f0ac";
@fa-var-gofore: "\f3a7";
@fa-var-golf-ball: "\f450";
@fa-var-goodreads: "\f3a8";
@fa-var-goodreads-g: "\f3a9";
@fa-var-google: "\f1a0";
@fa-var-google-drive: "\f3aa";
@fa-var-google-play: "\f3ab";
@fa-var-google-plus: "\f2b3";
@fa-var-google-plus-g: "\f0d5";
@fa-var-google-plus-square: "\f0d4";
@fa-var-google-wallet: "\f1ee";
@fa-var-graduation-cap: "\f19d";
@fa-var-gratipay: "\f184";
@fa-var-grav: "\f2d6";
@fa-var-gripfire: "\f3ac";
@fa-var-grunt: "\f3ad";
@fa-var-gulp: "\f3ae";
@fa-var-h-square: "\f0fd";
@fa-var-hacker-news: "\f1d4";
@fa-var-hacker-news-square: "\f3af";
@fa-var-hand-holding: "\f4bd";
@fa-var-hand-holding-heart: "\f4be";
@fa-var-hand-holding-usd: "\f4c0";
@fa-var-hand-lizard: "\f258";
@fa-var-hand-paper: "\f256";
@fa-var-hand-peace: "\f25b";
@fa-var-hand-point-down: "\f0a7";
@fa-var-hand-point-left: "\f0a5";
@fa-var-hand-point-right: "\f0a4";
@fa-var-hand-point-up: "\f0a6";
@fa-var-hand-pointer: "\f25a";
@fa-var-hand-rock: "\f255";
@fa-var-hand-scissors: "\f257";
@fa-var-hand-spock: "\f259";
@fa-var-hands: "\f4c2";
@fa-var-hands-helping: "\f4c4";
@fa-var-handshake: "\f2b5";
@fa-var-hashtag: "\f292";
@fa-var-hdd: "\f0a0";
@fa-var-heading: "\f1dc";
@fa-var-headphones: "\f025";
@fa-var-heart: "\f004";
@fa-var-heartbeat: "\f21e";
@fa-var-hips: "\f452";
@fa-var-hire-a-helper: "\f3b0";
@fa-var-history: "\f1da";
@fa-var-hockey-puck: "\f453";
@fa-var-home: "\f015";
@fa-var-hooli: "\f427";
@fa-var-hospital: "\f0f8";
@fa-var-hospital-alt: "\f47d";
@fa-var-hospital-symbol: "\f47e";
@fa-var-hotjar: "\f3b1";
@fa-var-hourglass: "\f254";
@fa-var-hourglass-end: "\f253";
@fa-var-hourglass-half: "\f252";
@fa-var-hourglass-start: "\f251";
@fa-var-houzz: "\f27c";
@fa-var-html5: "\f13b";
@fa-var-hubspot: "\f3b2";
@fa-var-i-cursor: "\f246";
@fa-var-id-badge: "\f2c1";
@fa-var-id-card: "\f2c2";
@fa-var-id-card-alt: "\f47f";
@fa-var-image: "\f03e";
@fa-var-images: "\f302";
@fa-var-imdb: "\f2d8";
@fa-var-inbox: "\f01c";
@fa-var-indent: "\f03c";
@fa-var-industry: "\f275";
@fa-var-info: "\f129";
@fa-var-info-circle: "\f05a";
@fa-var-instagram: "\f16d";
@fa-var-internet-explorer: "\f26b";
@fa-var-ioxhost: "\f208";
@fa-var-italic: "\f033";
@fa-var-itunes: "\f3b4";
@fa-var-itunes-note: "\f3b5";
@fa-var-jenkins: "\f3b6";
@fa-var-joget: "\f3b7";
@fa-var-joomla: "\f1aa";
@fa-var-js: "\f3b8";
@fa-var-js-square: "\f3b9";
@fa-var-jsfiddle: "\f1cc";
@fa-var-key: "\f084";
@fa-var-keyboard: "\f11c";
@fa-var-keycdn: "\f3ba";
@fa-var-kickstarter: "\f3bb";
@fa-var-kickstarter-k: "\f3bc";
@fa-var-korvue: "\f42f";
@fa-var-language: "\f1ab";
@fa-var-laptop: "\f109";
@fa-var-laravel: "\f3bd";
@fa-var-lastfm: "\f202";
@fa-var-lastfm-square: "\f203";
@fa-var-leaf: "\f06c";
@fa-var-leanpub: "\f212";
@fa-var-lemon: "\f094";
@fa-var-less: "\f41d";
@fa-var-level-down-alt: "\f3be";
@fa-var-level-up-alt: "\f3bf";
@fa-var-life-ring: "\f1cd";
@fa-var-lightbulb: "\f0eb";
@fa-var-line: "\f3c0";
@fa-var-link: "\f0c1";
@fa-var-linkedin: "\f08c";
@fa-var-linkedin-in: "\f0e1";
@fa-var-linode: "\f2b8";
@fa-var-linux: "\f17c";
@fa-var-lira-sign: "\f195";
@fa-var-list: "\f03a";
@fa-var-list-alt: "\f022";
@fa-var-list-ol: "\f0cb";
@fa-var-list-ul: "\f0ca";
@fa-var-location-arrow: "\f124";
@fa-var-lock: "\f023";
@fa-var-lock-open: "\f3c1";
@fa-var-long-arrow-alt-down: "\f309";
@fa-var-long-arrow-alt-left: "\f30a";
@fa-var-long-arrow-alt-right: "\f30b";
@fa-var-long-arrow-alt-up: "\f30c";
@fa-var-low-vision: "\f2a8";
@fa-var-lyft: "\f3c3";
@fa-var-magento: "\f3c4";
@fa-var-magic: "\f0d0";
@fa-var-magnet: "\f076";
@fa-var-male: "\f183";
@fa-var-map: "\f279";
@fa-var-map-marker: "\f041";
@fa-var-map-marker-alt: "\f3c5";
@fa-var-map-pin: "\f276";
@fa-var-map-signs: "\f277";
@fa-var-mars: "\f222";
@fa-var-mars-double: "\f227";
@fa-var-mars-stroke: "\f229";
@fa-var-mars-stroke-h: "\f22b";
@fa-var-mars-stroke-v: "\f22a";
@fa-var-maxcdn: "\f136";
@fa-var-medapps: "\f3c6";
@fa-var-medium: "\f23a";
@fa-var-medium-m: "\f3c7";
@fa-var-medkit: "\f0fa";
@fa-var-medrt: "\f3c8";
@fa-var-meetup: "\f2e0";
@fa-var-meh: "\f11a";
@fa-var-mercury: "\f223";
@fa-var-microchip: "\f2db";
@fa-var-microphone: "\f130";
@fa-var-microphone-slash: "\f131";
@fa-var-microsoft: "\f3ca";
@fa-var-minus: "\f068";
@fa-var-minus-circle: "\f056";
@fa-var-minus-square: "\f146";
@fa-var-mix: "\f3cb";
@fa-var-mixcloud: "\f289";
@fa-var-mizuni: "\f3cc";
@fa-var-mobile: "\f10b";
@fa-var-mobile-alt: "\f3cd";
@fa-var-modx: "\f285";
@fa-var-monero: "\f3d0";
@fa-var-money-bill-alt: "\f3d1";
@fa-var-moon: "\f186";
@fa-var-motorcycle: "\f21c";
@fa-var-mouse-pointer: "\f245";
@fa-var-music: "\f001";
@fa-var-napster: "\f3d2";
@fa-var-neuter: "\f22c";
@fa-var-newspaper: "\f1ea";
@fa-var-nintendo-switch: "\f418";
@fa-var-node: "\f419";
@fa-var-node-js: "\f3d3";
@fa-var-notes-medical: "\f481";
@fa-var-npm: "\f3d4";
@fa-var-ns8: "\f3d5";
@fa-var-nutritionix: "\f3d6";
@fa-var-object-group: "\f247";
@fa-var-object-ungroup: "\f248";
@fa-var-odnoklassniki: "\f263";
@fa-var-odnoklassniki-square: "\f264";
@fa-var-opencart: "\f23d";
@fa-var-openid: "\f19b";
@fa-var-opera: "\f26a";
@fa-var-optin-monster: "\f23c";
@fa-var-osi: "\f41a";
@fa-var-outdent: "\f03b";
@fa-var-page4: "\f3d7";
@fa-var-pagelines: "\f18c";
@fa-var-paint-brush: "\f1fc";
@fa-var-palfed: "\f3d8";
@fa-var-pallet: "\f482";
@fa-var-paper-plane: "\f1d8";
@fa-var-paperclip: "\f0c6";
@fa-var-parachute-box: "\f4cd";
@fa-var-paragraph: "\f1dd";
@fa-var-paste: "\f0ea";
@fa-var-patreon: "\f3d9";
@fa-var-pause: "\f04c";
@fa-var-pause-circle: "\f28b";
@fa-var-paw: "\f1b0";
@fa-var-paypal: "\f1ed";
@fa-var-pen-square: "\f14b";
@fa-var-pencil-alt: "\f303";
@fa-var-people-carry: "\f4ce";
@fa-var-percent: "\f295";
@fa-var-periscope: "\f3da";
@fa-var-phabricator: "\f3db";
@fa-var-phoenix-framework: "\f3dc";
@fa-var-phone: "\f095";
@fa-var-phone-slash: "\f3dd";
@fa-var-phone-square: "\f098";
@fa-var-phone-volume: "\f2a0";
@fa-var-php: "\f457";
@fa-var-pied-piper: "\f2ae";
@fa-var-pied-piper-alt: "\f1a8";
@fa-var-pied-piper-pp: "\f1a7";
@fa-var-piggy-bank: "\f4d3";
@fa-var-pills: "\f484";
@fa-var-pinterest: "\f0d2";
@fa-var-pinterest-p: "\f231";
@fa-var-pinterest-square: "\f0d3";
@fa-var-plane: "\f072";
@fa-var-play: "\f04b";
@fa-var-play-circle: "\f144";
@fa-var-playstation: "\f3df";
@fa-var-plug: "\f1e6";
@fa-var-plus: "\f067";
@fa-var-plus-circle: "\f055";
@fa-var-plus-square: "\f0fe";
@fa-var-podcast: "\f2ce";
@fa-var-poo: "\f2fe";
@fa-var-pound-sign: "\f154";
@fa-var-power-off: "\f011";
@fa-var-prescription-bottle: "\f485";
@fa-var-prescription-bottle-alt: "\f486";
@fa-var-print: "\f02f";
@fa-var-procedures: "\f487";
@fa-var-product-hunt: "\f288";
@fa-var-pushed: "\f3e1";
@fa-var-puzzle-piece: "\f12e";
@fa-var-python: "\f3e2";
@fa-var-qq: "\f1d6";
@fa-var-qrcode: "\f029";
@fa-var-question: "\f128";
@fa-var-question-circle: "\f059";
@fa-var-quidditch: "\f458";
@fa-var-quinscape: "\f459";
@fa-var-quora: "\f2c4";
@fa-var-quote-left: "\f10d";
@fa-var-quote-right: "\f10e";
@fa-var-random: "\f074";
@fa-var-ravelry: "\f2d9";
@fa-var-react: "\f41b";
@fa-var-readme: "\f4d5";
@fa-var-rebel: "\f1d0";
@fa-var-recycle: "\f1b8";
@fa-var-red-river: "\f3e3";
@fa-var-reddit: "\f1a1";
@fa-var-reddit-alien: "\f281";
@fa-var-reddit-square: "\f1a2";
@fa-var-redo: "\f01e";
@fa-var-redo-alt: "\f2f9";
@fa-var-registered: "\f25d";
@fa-var-rendact: "\f3e4";
@fa-var-renren: "\f18b";
@fa-var-reply: "\f3e5";
@fa-var-reply-all: "\f122";
@fa-var-replyd: "\f3e6";
@fa-var-resolving: "\f3e7";
@fa-var-retweet: "\f079";
@fa-var-ribbon: "\f4d6";
@fa-var-road: "\f018";
@fa-var-rocket: "\f135";
@fa-var-rocketchat: "\f3e8";
@fa-var-rockrms: "\f3e9";
@fa-var-rss: "\f09e";
@fa-var-rss-square: "\f143";
@fa-var-ruble-sign: "\f158";
@fa-var-rupee-sign: "\f156";
@fa-var-safari: "\f267";
@fa-var-sass: "\f41e";
@fa-var-save: "\f0c7";
@fa-var-schlix: "\f3ea";
@fa-var-scribd: "\f28a";
@fa-var-search: "\f002";
@fa-var-search-minus: "\f010";
@fa-var-search-plus: "\f00e";
@fa-var-searchengin: "\f3eb";
@fa-var-seedling: "\f4d8";
@fa-var-sellcast: "\f2da";
@fa-var-sellsy: "\f213";
@fa-var-server: "\f233";
@fa-var-servicestack: "\f3ec";
@fa-var-share: "\f064";
@fa-var-share-alt: "\f1e0";
@fa-var-share-alt-square: "\f1e1";
@fa-var-share-square: "\f14d";
@fa-var-shekel-sign: "\f20b";
@fa-var-shield-alt: "\f3ed";
@fa-var-ship: "\f21a";
@fa-var-shipping-fast: "\f48b";
@fa-var-shirtsinbulk: "\f214";
@fa-var-shopping-bag: "\f290";
@fa-var-shopping-basket: "\f291";
@fa-var-shopping-cart: "\f07a";
@fa-var-shower: "\f2cc";
@fa-var-sign: "\f4d9";
@fa-var-sign-in-alt: "\f2f6";
@fa-var-sign-language: "\f2a7";
@fa-var-sign-out-alt: "\f2f5";
@fa-var-signal: "\f012";
@fa-var-simplybuilt: "\f215";
@fa-var-sistrix: "\f3ee";
@fa-var-sitemap: "\f0e8";
@fa-var-skyatlas: "\f216";
@fa-var-skype: "\f17e";
@fa-var-slack: "\f198";
@fa-var-slack-hash: "\f3ef";
@fa-var-sliders-h: "\f1de";
@fa-var-slideshare: "\f1e7";
@fa-var-smile: "\f118";
@fa-var-smoking: "\f48d";
@fa-var-snapchat: "\f2ab";
@fa-var-snapchat-ghost: "\f2ac";
@fa-var-snapchat-square: "\f2ad";
@fa-var-snowflake: "\f2dc";
@fa-var-sort: "\f0dc";
@fa-var-sort-alpha-down: "\f15d";
@fa-var-sort-alpha-up: "\f15e";
@fa-var-sort-amount-down: "\f160";
@fa-var-sort-amount-up: "\f161";
@fa-var-sort-down: "\f0dd";
@fa-var-sort-numeric-down: "\f162";
@fa-var-sort-numeric-up: "\f163";
@fa-var-sort-up: "\f0de";
@fa-var-soundcloud: "\f1be";
@fa-var-space-shuttle: "\f197";
@fa-var-speakap: "\f3f3";
@fa-var-spinner: "\f110";
@fa-var-spotify: "\f1bc";
@fa-var-square: "\f0c8";
@fa-var-square-full: "\f45c";
@fa-var-stack-exchange: "\f18d";
@fa-var-stack-overflow: "\f16c";
@fa-var-star: "\f005";
@fa-var-star-half: "\f089";
@fa-var-staylinked: "\f3f5";
@fa-var-steam: "\f1b6";
@fa-var-steam-square: "\f1b7";
@fa-var-steam-symbol: "\f3f6";
@fa-var-step-backward: "\f048";
@fa-var-step-forward: "\f051";
@fa-var-stethoscope: "\f0f1";
@fa-var-sticker-mule: "\f3f7";
@fa-var-sticky-note: "\f249";
@fa-var-stop: "\f04d";
@fa-var-stop-circle: "\f28d";
@fa-var-stopwatch: "\f2f2";
@fa-var-strava: "\f428";
@fa-var-street-view: "\f21d";
@fa-var-strikethrough: "\f0cc";
@fa-var-stripe: "\f429";
@fa-var-stripe-s: "\f42a";
@fa-var-studiovinari: "\f3f8";
@fa-var-stumbleupon: "\f1a4";
@fa-var-stumbleupon-circle: "\f1a3";
@fa-var-subscript: "\f12c";
@fa-var-subway: "\f239";
@fa-var-suitcase: "\f0f2";
@fa-var-sun: "\f185";
@fa-var-superpowers: "\f2dd";
@fa-var-superscript: "\f12b";
@fa-var-supple: "\f3f9";
@fa-var-sync: "\f021";
@fa-var-sync-alt: "\f2f1";
@fa-var-syringe: "\f48e";
@fa-var-table: "\f0ce";
@fa-var-table-tennis: "\f45d";
@fa-var-tablet: "\f10a";
@fa-var-tablet-alt: "\f3fa";
@fa-var-tablets: "\f490";
@fa-var-tachometer-alt: "\f3fd";
@fa-var-tag: "\f02b";
@fa-var-tags: "\f02c";
@fa-var-tape: "\f4db";
@fa-var-tasks: "\f0ae";
@fa-var-taxi: "\f1ba";
@fa-var-telegram: "\f2c6";
@fa-var-telegram-plane: "\f3fe";
@fa-var-tencent-weibo: "\f1d5";
@fa-var-terminal: "\f120";
@fa-var-text-height: "\f034";
@fa-var-text-width: "\f035";
@fa-var-th: "\f00a";
@fa-var-th-large: "\f009";
@fa-var-th-list: "\f00b";
@fa-var-themeisle: "\f2b2";
@fa-var-thermometer: "\f491";
@fa-var-thermometer-empty: "\f2cb";
@fa-var-thermometer-full: "\f2c7";
@fa-var-thermometer-half: "\f2c9";
@fa-var-thermometer-quarter: "\f2ca";
@fa-var-thermometer-three-quarters: "\f2c8";
@fa-var-thumbs-down: "\f165";
@fa-var-thumbs-up: "\f164";
@fa-var-thumbtack: "\f08d";
@fa-var-ticket-alt: "\f3ff";
@fa-var-times: "\f00d";
@fa-var-times-circle: "\f057";
@fa-var-tint: "\f043";
@fa-var-toggle-off: "\f204";
@fa-var-toggle-on: "\f205";
@fa-var-trademark: "\f25c";
@fa-var-train: "\f238";
@fa-var-transgender: "\f224";
@fa-var-transgender-alt: "\f225";
@fa-var-trash: "\f1f8";
@fa-var-trash-alt: "\f2ed";
@fa-var-tree: "\f1bb";
@fa-var-trello: "\f181";
@fa-var-tripadvisor: "\f262";
@fa-var-trophy: "\f091";
@fa-var-truck: "\f0d1";
@fa-var-truck-loading: "\f4de";
@fa-var-truck-moving: "\f4df";
@fa-var-tty: "\f1e4";
@fa-var-tumblr: "\f173";
@fa-var-tumblr-square: "\f174";
@fa-var-tv: "\f26c";
@fa-var-twitch: "\f1e8";
@fa-var-twitter: "\f099";
@fa-var-twitter-square: "\f081";
@fa-var-typo3: "\f42b";
@fa-var-uber: "\f402";
@fa-var-uikit: "\f403";
@fa-var-umbrella: "\f0e9";
@fa-var-underline: "\f0cd";
@fa-var-undo: "\f0e2";
@fa-var-undo-alt: "\f2ea";
@fa-var-uniregistry: "\f404";
@fa-var-universal-access: "\f29a";
@fa-var-university: "\f19c";
@fa-var-unlink: "\f127";
@fa-var-unlock: "\f09c";
@fa-var-unlock-alt: "\f13e";
@fa-var-untappd: "\f405";
@fa-var-upload: "\f093";
@fa-var-usb: "\f287";
@fa-var-user: "\f007";
@fa-var-user-circle: "\f2bd";
@fa-var-user-md: "\f0f0";
@fa-var-user-plus: "\f234";
@fa-var-user-secret: "\f21b";
@fa-var-user-times: "\f235";
@fa-var-users: "\f0c0";
@fa-var-ussunnah: "\f407";
@fa-var-utensil-spoon: "\f2e5";
@fa-var-utensils: "\f2e7";
@fa-var-vaadin: "\f408";
@fa-var-venus: "\f221";
@fa-var-venus-double: "\f226";
@fa-var-venus-mars: "\f228";
@fa-var-viacoin: "\f237";
@fa-var-viadeo: "\f2a9";
@fa-var-viadeo-square: "\f2aa";
@fa-var-vial: "\f492";
@fa-var-vials: "\f493";
@fa-var-viber: "\f409";
@fa-var-video: "\f03d";
@fa-var-video-slash: "\f4e2";
@fa-var-vimeo: "\f40a";
@fa-var-vimeo-square: "\f194";
@fa-var-vimeo-v: "\f27d";
@fa-var-vine: "\f1ca";
@fa-var-vk: "\f189";
@fa-var-vnv: "\f40b";
@fa-var-volleyball-ball: "\f45f";
@fa-var-volume-down: "\f027";
@fa-var-volume-off: "\f026";
@fa-var-volume-up: "\f028";
@fa-var-vuejs: "\f41f";
@fa-var-warehouse: "\f494";
@fa-var-weibo: "\f18a";
@fa-var-weight: "\f496";
@fa-var-weixin: "\f1d7";
@fa-var-whatsapp: "\f232";
@fa-var-whatsapp-square: "\f40c";
@fa-var-wheelchair: "\f193";
@fa-var-whmcs: "\f40d";
@fa-var-wifi: "\f1eb";
@fa-var-wikipedia-w: "\f266";
@fa-var-window-close: "\f410";
@fa-var-window-maximize: "\f2d0";
@fa-var-window-minimize: "\f2d1";
@fa-var-window-restore: "\f2d2";
@fa-var-windows: "\f17a";
@fa-var-wine-glass: "\f4e3";
@fa-var-won-sign: "\f159";
@fa-var-wordpress: "\f19a";
@fa-var-wordpress-simple: "\f411";
@fa-var-wpbeginner: "\f297";
@fa-var-wpexplorer: "\f2de";
@fa-var-wpforms: "\f298";
@fa-var-wrench: "\f0ad";
@fa-var-x-ray: "\f497";
@fa-var-xbox: "\f412";
@fa-var-xing: "\f168";
@fa-var-xing-square: "\f169";
@fa-var-y-combinator: "\f23b";
@fa-var-yahoo: "\f19e";
@fa-var-yandex: "\f413";
@fa-var-yandex-international: "\f414";
@fa-var-yelp: "\f1e9";
@fa-var-yen-sign: "\f157";
@fa-var-yoast: "\f2b1";
@fa-var-youtube: "\f167";
@fa-var-youtube-square: "\f431";
================================================
FILE: public/admin-panel/dist/css/icons/font-awesome/less/fa-brands.less
================================================
/*!
* Font Awesome Free 5.0.9 by @fontawesome - https://fontawesome.com
* License - https://fontawesome.com/license (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
*/
@import "_variables.less";
@font-face {
font-family: 'Font Awesome 5 Brands';
font-style: normal;
font-weight: normal;
src: url('@{fa-font-path}/fa-brands-400.eot');
src: url('@{fa-font-path}/fa-brands-400.eot?#iefix') format('embedded-opentype'),
url('@{fa-font-path}/fa-brands-400.woff2') format('woff2'),
url('@{fa-font-path}/fa-brands-400.woff') format('woff'),
url('@{fa-font-path}/fa-brands-400.ttf') format('truetype'),
url('@{fa-font-path}/fa-brands-400.svg#fontawesome') format('svg');
}
.fab {
font-family: 'Font Awesome 5 Brands';
}
================================================
FILE: public/admin-panel/dist/css/icons/font-awesome/less/fa-regular.less
================================================
/*!
* Font Awesome Free 5.0.9 by @fontawesome - https://fontawesome.com
* License - https://fontawesome.com/license (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
*/
@import "_variables.less";
@font-face {
font-family: 'Font Awesome 5 Free';
font-style: normal;
font-weight: 400;
src: url('@{fa-font-path}/fa-regular-400.eot');
src: url('@{fa-font-path}/fa-regular-400.eot?#iefix') format('embedded-opentype'),
url('@{fa-font-path}/fa-regular-400.woff2') format('woff2'),
url('@{fa-font-path}/fa-regular-400.woff') format('woff'),
url('@{fa-font-path}/fa-regular-400.ttf') format('truetype'),
url('@{fa-font-path}/fa-regular-400.svg#fontawesome') format('svg');
}
.far {
font-family: 'Font Awesome 5 Free';
font-weight: 400;
}
================================================
FILE: public/admin-panel/dist/css/icons/font-awesome/less/fa-solid.less
================================================
/*!
* Font Awesome Free 5.0.9 by @fontawesome - https://fontawesome.com
* License - https://fontawesome.com/license (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
*/
@import "_variables.less";
@font-face {
font-family: 'Font Awesome 5 Free';
font-style: normal;
font-weight: 900;
src: url('@{fa-font-path}/fa-solid-900.eot');
src: url('@{fa-font-path}/fa-solid-900.eot?#iefix') format('embedded-opentype'),
url('@{fa-font-path}/fa-solid-900.woff2') format('woff2'),
url('@{fa-font-path}/fa-solid-900.woff') format('woff'),
url('@{fa-font-path}/fa-solid-900.ttf') format('truetype'),
url('@{fa-font-path}/fa-solid-900.svg#fontawesome') format('svg');
}
.fa,
.fas {
font-family: 'Font Awesome 5 Free';
font-weight: 900;
}
================================================
FILE: public/admin-panel/dist/css/icons/font-awesome/less/fontawesome.less
================================================
/*!
* Font Awesome Free 5.0.9 by @fontawesome - https://fontawesome.com
* License - https://fontawesome.com/license (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
*/
@import "_variables.less";
@import "_mixins.less";
@import "_core.less";
@import "_larger.less";
@import "_fixed-width.less";
@import "_list.less";
@import "_bordered-pulled.less";
@import "_animated.less";
@import "_rotated-flipped.less";
@import "_stacked.less";
@import "_icons.less";
@import "_screen-reader.less";
================================================
FILE: public/admin-panel/dist/css/icons/font-awesome/scss/_animated.scss
================================================
// Animated Icons
// --------------------------
.#{$fa-css-prefix}-spin {
animation: fa-spin 2s infinite linear;
}
.#{$fa-css-prefix}-pulse {
animation: fa-spin 1s infinite steps(8);
}
@keyframes fa-spin {
0% {
transform: rotate(0deg);
}
100% {
transform: rotate(360deg);
}
}
================================================
FILE: public/admin-panel/dist/css/icons/font-awesome/scss/_bordered-pulled.scss
================================================
// Bordered & Pulled
// -------------------------
.#{$fa-css-prefix}-border {
border: solid .08em $fa-border-color;
border-radius: .1em;
padding: .2em .25em .15em;
}
.#{$fa-css-prefix}-pull-left { float: left; }
.#{$fa-css-prefix}-pull-right { float: right; }
.#{$fa-css-prefix},
.fas,
.far,
.fal,
.fab {
&.#{$fa-css-prefix}-pull-left { margin-right: .3em; }
&.#{$fa-css-prefix}-pull-right { margin-left: .3em; }
}
================================================
FILE: public/admin-panel/dist/css/icons/font-awesome/scss/_core.scss
================================================
// Base Class Definition
// -------------------------
.#{$fa-css-prefix},
.fas,
.far,
.fal,
.fab {
-moz-osx-font-smoothing: grayscale;
-webkit-font-smoothing: antialiased;
display: inline-block;
font-style: normal;
font-variant: normal;
text-rendering: auto;
line-height: 1;
}
================================================
FILE: public/admin-panel/dist/css/icons/font-awesome/scss/_fixed-width.scss
================================================
// Fixed Width Icons
// -------------------------
.#{$fa-css-prefix}-fw {
text-align: center;
width: (20em / 16);
}
================================================
FILE: public/admin-panel/dist/css/icons/font-awesome/scss/_icons.scss
================================================
/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen
readers do not read off random characters that represent icons */
.#{$fa-css-prefix}-500px:before { content: fa-content($fa-var-500px); }
.#{$fa-css-prefix}-accessible-icon:before { content: fa-content($fa-var-accessible-icon); }
.#{$fa-css-prefix}-accusoft:before { content: fa-content($fa-var-accusoft); }
.#{$fa-css-prefix}-address-book:before { content: fa-content($fa-var-address-book); }
.#{$fa-css-prefix}-address-card:before { content: fa-content($fa-var-address-card); }
.#{$fa-css-prefix}-adjust:before { content: fa-content($fa-var-adjust); }
.#{$fa-css-prefix}-adn:before { content: fa-content($fa-var-adn); }
.#{$fa-css-prefix}-adversal:before { content: fa-content($fa-var-adversal); }
.#{$fa-css-prefix}-affiliatetheme:before { content: fa-content($fa-var-affiliatetheme); }
.#{$fa-css-prefix}-algolia:before { content: fa-content($fa-var-algolia); }
.#{$fa-css-prefix}-align-center:before { content: fa-content($fa-var-align-center); }
.#{$fa-css-prefix}-align-justify:before { content: fa-content($fa-var-align-justify); }
.#{$fa-css-prefix}-align-left:before { content: fa-content($fa-var-align-left); }
.#{$fa-css-prefix}-align-right:before { content: fa-content($fa-var-align-right); }
.#{$fa-css-prefix}-allergies:before { content: fa-content($fa-var-allergies); }
.#{$fa-css-prefix}-amazon:before { content: fa-content($fa-var-amazon); }
.#{$fa-css-prefix}-amazon-pay:before { content: fa-content($fa-var-amazon-pay); }
.#{$fa-css-prefix}-ambulance:before { content: fa-content($fa-var-ambulance); }
.#{$fa-css-prefix}-american-sign-language-interpreting:before { content: fa-content($fa-var-american-sign-language-interpreting); }
.#{$fa-css-prefix}-amilia:before { content: fa-content($fa-var-amilia); }
.#{$fa-css-prefix}-anchor:before { content: fa-content($fa-var-anchor); }
.#{$fa-css-prefix}-android:before { content: fa-content($fa-var-android); }
.#{$fa-css-prefix}-angellist:before { content: fa-content($fa-var-angellist); }
.#{$fa-css-prefix}-angle-double-down:before { content: fa-content($fa-var-angle-double-down); }
.#{$fa-css-prefix}-angle-double-left:before { content: fa-content($fa-var-angle-double-left); }
.#{$fa-css-prefix}-angle-double-right:before { content: fa-content($fa-var-angle-double-right); }
.#{$fa-css-prefix}-angle-double-up:before { content: fa-content($fa-var-angle-double-up); }
.#{$fa-css-prefix}-angle-down:before { content: fa-content($fa-var-angle-down); }
.#{$fa-css-prefix}-angle-left:before { content: fa-content($fa-var-angle-left); }
.#{$fa-css-prefix}-angle-right:before { content: fa-content($fa-var-angle-right); }
.#{$fa-css-prefix}-angle-up:before { content: fa-content($fa-var-angle-up); }
.#{$fa-css-prefix}-angrycreative:before { content: fa-content($fa-var-angrycreative); }
.#{$fa-css-prefix}-angular:before { content: fa-content($fa-var-angular); }
.#{$fa-css-prefix}-app-store:before { content: fa-content($fa-var-app-store); }
.#{$fa-css-prefix}-app-store-ios:before { content: fa-content($fa-var-app-store-ios); }
.#{$fa-css-prefix}-apper:before { content: fa-content($fa-var-apper); }
.#{$fa-css-prefix}-apple:before { content: fa-content($fa-var-apple); }
.#{$fa-css-prefix}-apple-pay:before { content: fa-content($fa-var-apple-pay); }
.#{$fa-css-prefix}-archive:before { content: fa-content($fa-var-archive); }
.#{$fa-css-prefix}-arrow-alt-circle-down:before { content: fa-content($fa-var-arrow-alt-circle-down); }
.#{$fa-css-prefix}-arrow-alt-circle-left:before { content: fa-content($fa-var-arrow-alt-circle-left); }
.#{$fa-css-prefix}-arrow-alt-circle-right:before { content: fa-content($fa-var-arrow-alt-circle-right); }
.#{$fa-css-prefix}-arrow-alt-circle-up:before { content: fa-content($fa-var-arrow-alt-circle-up); }
.#{$fa-css-prefix}-arrow-circle-down:before { content: fa-content($fa-var-arrow-circle-down); }
.#{$fa-css-prefix}-arrow-circle-left:before { content: fa-content($fa-var-arrow-circle-left); }
.#{$fa-css-prefix}-arrow-circle-right:before { content: fa-content($fa-var-arrow-circle-right); }
.#{$fa-css-prefix}-arrow-circle-up:before { content: fa-content($fa-var-arrow-circle-up); }
.#{$fa-css-prefix}-arrow-down:before { content: fa-content($fa-var-arrow-down); }
.#{$fa-css-prefix}-arrow-left:before { content: fa-content($fa-var-arrow-left); }
.#{$fa-css-prefix}-arrow-right:before { content: fa-content($fa-var-arrow-right); }
.#{$fa-css-prefix}-arrow-up:before { content: fa-content($fa-var-arrow-up); }
.#{$fa-css-prefix}-arrows-alt:before { content: fa-content($fa-var-arrows-alt); }
.#{$fa-css-prefix}-arrows-alt-h:before { content: fa-content($fa-var-arrows-alt-h); }
.#{$fa-css-prefix}-arrows-alt-v:before { content: fa-content($fa-var-arrows-alt-v); }
.#{$fa-css-prefix}-assistive-listening-systems:before { content: fa-content($fa-var-assistive-listening-systems); }
.#{$fa-css-prefix}-asterisk:before { content: fa-content($fa-var-asterisk); }
.#{$fa-css-prefix}-asymmetrik:before { content: fa-content($fa-var-asymmetrik); }
.#{$fa-css-prefix}-at:before { content: fa-content($fa-var-at); }
.#{$fa-css-prefix}-audible:before { content: fa-content($fa-var-audible); }
.#{$fa-css-prefix}-audio-description:before { content: fa-content($fa-var-audio-description); }
.#{$fa-css-prefix}-autoprefixer:before { content: fa-content($fa-var-autoprefixer); }
.#{$fa-css-prefix}-avianex:before { content: fa-content($fa-var-avianex); }
.#{$fa-css-prefix}-aviato:before { content: fa-content($fa-var-aviato); }
.#{$fa-css-prefix}-aws:before { content: fa-content($fa-var-aws); }
.#{$fa-css-prefix}-backward:before { content: fa-content($fa-var-backward); }
.#{$fa-css-prefix}-balance-scale:before { content: fa-content($fa-var-balance-scale); }
.#{$fa-css-prefix}-ban:before { content: fa-content($fa-var-ban); }
.#{$fa-css-prefix}-band-aid:before { content: fa-content($fa-var-band-aid); }
.#{$fa-css-prefix}-bandcamp:before { content: fa-content($fa-var-bandcamp); }
.#{$fa-css-prefix}-barcode:before { content: fa-content($fa-var-barcode); }
.#{$fa-css-prefix}-bars:before { content: fa-content($fa-var-bars); }
.#{$fa-css-prefix}-baseball-ball:before { content: fa-content($fa-var-baseball-ball); }
.#{$fa-css-prefix}-basketball-ball:before { content: fa-content($fa-var-basketball-ball); }
.#{$fa-css-prefix}-bath:before { content: fa-content($fa-var-bath); }
.#{$fa-css-prefix}-battery-empty:before { content: fa-content($fa-var-battery-empty); }
.#{$fa-css-prefix}-battery-full:before { content: fa-content($fa-var-battery-full); }
.#{$fa-css-prefix}-battery-half:before { content: fa-content($fa-var-battery-half); }
.#{$fa-css-prefix}-battery-quarter:before { content: fa-content($fa-var-battery-quarter); }
.#{$fa-css-prefix}-battery-three-quarters:before { content: fa-content($fa-var-battery-three-quarters); }
.#{$fa-css-prefix}-bed:before { content: fa-content($fa-var-bed); }
.#{$fa-css-prefix}-beer:before { content: fa-content($fa-var-beer); }
.#{$fa-css-prefix}-behance:before { content: fa-content($fa-var-behance); }
.#{$fa-css-prefix}-behance-square:before { content: fa-content($fa-var-behance-square); }
.#{$fa-css-prefix}-bell:before { content: fa-content($fa-var-bell); }
.#{$fa-css-prefix}-bell-slash:before { content: fa-content($fa-var-bell-slash); }
.#{$fa-css-prefix}-bicycle:before { content: fa-content($fa-var-bicycle); }
.#{$fa-css-prefix}-bimobject:before { content: fa-content($fa-var-bimobject); }
.#{$fa-css-prefix}-binoculars:before { content: fa-content($fa-var-binoculars); }
.#{$fa-css-prefix}-birthday-cake:before { content: fa-content($fa-var-birthday-cake); }
.#{$fa-css-prefix}-bitbucket:before { content: fa-content($fa-var-bitbucket); }
.#{$fa-css-prefix}-bitcoin:before { content: fa-content($fa-var-bitcoin); }
.#{$fa-css-prefix}-bity:before { content: fa-content($fa-var-bity); }
.#{$fa-css-prefix}-black-tie:before { content: fa-content($fa-var-black-tie); }
.#{$fa-css-prefix}-blackberry:before { content: fa-content($fa-var-blackberry); }
.#{$fa-css-prefix}-blind:before { content: fa-content($fa-var-blind); }
.#{$fa-css-prefix}-blogger:before { content: fa-content($fa-var-blogger); }
.#{$fa-css-prefix}-blogger-b:before { content: fa-content($fa-var-blogger-b); }
.#{$fa-css-prefix}-bluetooth:before { content: fa-content($fa-var-bluetooth); }
.#{$fa-css-prefix}-bluetooth-b:before { content: fa-content($fa-var-bluetooth-b); }
.#{$fa-css-prefix}-bold:before { content: fa-content($fa-var-bold); }
.#{$fa-css-prefix}-bolt:before { content: fa-content($fa-var-bolt); }
.#{$fa-css-prefix}-bomb:before { content: fa-content($fa-var-bomb); }
.#{$fa-css-prefix}-book:before { content: fa-content($fa-var-book); }
.#{$fa-css-prefix}-bookmark:before { content: fa-content($fa-var-bookmark); }
.#{$fa-css-prefix}-bowling-ball:before { content: fa-content($fa-var-bowling-ball); }
.#{$fa-css-prefix}-box:before { content: fa-content($fa-var-box); }
.#{$fa-css-prefix}-box-open:before { content: fa-content($fa-var-box-open); }
.#{$fa-css-prefix}-boxes:before { content: fa-content($fa-var-boxes); }
.#{$fa-css-prefix}-braille:before { content: fa-content($fa-var-braille); }
.#{$fa-css-prefix}-briefcase:before { content: fa-content($fa-var-briefcase); }
.#{$fa-css-prefix}-briefcase-medical:before { content: fa-content($fa-var-briefcase-medical); }
.#{$fa-css-prefix}-btc:before { content: fa-content($fa-var-btc); }
.#{$fa-css-prefix}-bug:before { content: fa-content($fa-var-bug); }
.#{$fa-css-prefix}-building:before { content: fa-content($fa-var-building); }
.#{$fa-css-prefix}-bullhorn:before { content: fa-content($fa-var-bullhorn); }
.#{$fa-css-prefix}-bullseye:before { content: fa-content($fa-var-bullseye); }
.#{$fa-css-prefix}-burn:before { content: fa-content($fa-var-burn); }
.#{$fa-css-prefix}-buromobelexperte:before { content: fa-content($fa-var-buromobelexperte); }
.#{$fa-css-prefix}-bus:before { content: fa-content($fa-var-bus); }
.#{$fa-css-prefix}-buysellads:before { content: fa-content($fa-var-buysellads); }
.#{$fa-css-prefix}-calculator:before { content: fa-content($fa-var-calculator); }
.#{$fa-css-prefix}-calendar:before { content: fa-content($fa-var-calendar); }
.#{$fa-css-prefix}-calendar-alt:before { content: fa-content($fa-var-calendar-alt); }
.#{$fa-css-prefix}-calendar-check:before { content: fa-content($fa-var-calendar-check); }
.#{$fa-css-prefix}-calendar-minus:before { content: fa-content($fa-var-calendar-minus); }
.#{$fa-css-prefix}-calendar-plus:before { content: fa-content($fa-var-calendar-plus); }
.#{$fa-css-prefix}-calendar-times:before { content: fa-content($fa-var-calendar-times); }
.#{$fa-css-prefix}-camera:before { content: fa-content($fa-var-camera); }
.#{$fa-css-prefix}-camera-retro:before { content: fa-content($fa-var-camera-retro); }
.#{$fa-css-prefix}-capsules:before { content: fa-content($fa-var-capsules); }
.#{$fa-css-prefix}-car:before { content: fa-content($fa-var-car); }
.#{$fa-css-prefix}-caret-down:before { content: fa-content($fa-var-caret-down); }
.#{$fa-css-prefix}-caret-left:before { content: fa-content($fa-var-caret-left); }
.#{$fa-css-prefix}-caret-right:before { content: fa-content($fa-var-caret-right); }
.#{$fa-css-prefix}-caret-square-down:before { content: fa-content($fa-var-caret-square-down); }
.#{$fa-css-prefix}-caret-square-left:before { content: fa-content($fa-var-caret-square-left); }
.#{$fa-css-prefix}-caret-square-right:before { content: fa-content($fa-var-caret-square-right); }
.#{$fa-css-prefix}-caret-square-up:before { content: fa-content($fa-var-caret-square-up); }
.#{$fa-css-prefix}-caret-up:before { content: fa-content($fa-var-caret-up); }
.#{$fa-css-prefix}-cart-arrow-down:before { content: fa-content($fa-var-cart-arrow-down); }
.#{$fa-css-prefix}-cart-plus:before { content: fa-content($fa-var-cart-plus); }
.#{$fa-css-prefix}-cc-amazon-pay:before { content: fa-content($fa-var-cc-amazon-pay); }
.#{$fa-css-prefix}-cc-amex:before { content: fa-content($fa-var-cc-amex); }
.#{$fa-css-prefix}-cc-apple-pay:before { content: fa-content($fa-var-cc-apple-pay); }
.#{$fa-css-prefix}-cc-diners-club:before { content: fa-content($fa-var-cc-diners-club); }
.#{$fa-css-prefix}-cc-discover:before { content: fa-content($fa-var-cc-discover); }
.#{$fa-css-prefix}-cc-jcb:before { content: fa-content($fa-var-cc-jcb); }
.#{$fa-css-prefix}-cc-mastercard:before { content: fa-content($fa-var-cc-mastercard); }
.#{$fa-css-prefix}-cc-paypal:before { content: fa-content($fa-var-cc-paypal); }
.#{$fa-css-prefix}-cc-stripe:before { content: fa-content($fa-var-cc-stripe); }
.#{$fa-css-prefix}-cc-visa:before { content: fa-content($fa-var-cc-visa); }
.#{$fa-css-prefix}-centercode:before { content: fa-content($fa-var-centercode); }
.#{$fa-css-prefix}-certificate:before { content: fa-content($fa-var-certificate); }
.#{$fa-css-prefix}-chart-area:before { content: fa-content($fa-var-chart-area); }
.#{$fa-css-prefix}-chart-bar:before { content: fa-content($fa-var-chart-bar); }
.#{$fa-css-prefix}-chart-line:before { content: fa-content($fa-var-chart-line); }
.#{$fa-css-prefix}-chart-pie:before { content: fa-content($fa-var-chart-pie); }
.#{$fa-css-prefix}-check:before { content: fa-content($fa-var-check); }
.#{$fa-css-prefix}-check-circle:before { content: fa-content($fa-var-check-circle); }
.#{$fa-css-prefix}-check-square:before { content: fa-content($fa-var-check-square); }
.#{$fa-css-prefix}-chess:before { content: fa-content($fa-var-chess); }
.#{$fa-css-prefix}-chess-bishop:before { content: fa-content($fa-var-chess-bishop); }
.#{$fa-css-prefix}-chess-board:before { content: fa-content($fa-var-chess-board); }
.#{$fa-css-prefix}-chess-king:before { content: fa-content($fa-var-chess-king); }
.#{$fa-css-prefix}-chess-knight:before { content: fa-content($fa-var-chess-knight); }
.#{$fa-css-prefix}-chess-pawn:before { content: fa-content($fa-var-chess-pawn); }
.#{$fa-css-prefix}-chess-queen:before { content: fa-content($fa-var-chess-queen); }
.#{$fa-css-prefix}-chess-rook:before { content: fa-content($fa-var-chess-rook); }
.#{$fa-css-prefix}-chevron-circle-down:before { content: fa-content($fa-var-chevron-circle-down); }
.#{$fa-css-prefix}-chevron-circle-left:before { content: fa-content($fa-var-chevron-circle-left); }
.#{$fa-css-prefix}-chevron-circle-right:before { content: fa-content($fa-var-chevron-circle-right); }
.#{$fa-css-prefix}-chevron-circle-up:before { content: fa-content($fa-var-chevron-circle-up); }
.#{$fa-css-prefix}-chevron-down:before { content: fa-content($fa-var-chevron-down); }
.#{$fa-css-prefix}-chevron-left:before { content: fa-content($fa-var-chevron-left); }
.#{$fa-css-prefix}-chevron-right:before { content: fa-content($fa-var-chevron-right); }
.#{$fa-css-prefix}-chevron-up:before { content: fa-content($fa-var-chevron-up); }
.#{$fa-css-prefix}-child:before { content: fa-content($fa-var-child); }
.#{$fa-css-prefix}-chrome:before { content: fa-content($fa-var-chrome); }
.#{$fa-css-prefix}-circle:before { content: fa-content($fa-var-circle); }
.#{$fa-css-prefix}-circle-notch:before { content: fa-content($fa-var-circle-notch); }
.#{$fa-css-prefix}-clipboard:before { content: fa-content($fa-var-clipboard); }
.#{$fa-css-prefix}-clipboard-check:before { content: fa-content($fa-var-clipboard-check); }
.#{$fa-css-prefix}-clipboard-list:before { content: fa-content($fa-var-clipboard-list); }
.#{$fa-css-prefix}-clock:before { content: fa-content($fa-var-clock); }
.#{$fa-css-prefix}-clone:before { content: fa-content($fa-var-clone); }
.#{$fa-css-prefix}-closed-captioning:before { content: fa-content($fa-var-closed-captioning); }
.#{$fa-css-prefix}-cloud:before { content: fa-content($fa-var-cloud); }
.#{$fa-css-prefix}-cloud-download-alt:before { content: fa-content($fa-var-cloud-download-alt); }
.#{$fa-css-prefix}-cloud-upload-alt:before { content: fa-content($fa-var-cloud-upload-alt); }
.#{$fa-css-prefix}-cloudscale:before { content: fa-content($fa-var-cloudscale); }
.#{$fa-css-prefix}-cloudsmith:before { content: fa-content($fa-var-cloudsmith); }
.#{$fa-css-prefix}-cloudversify:before { content: fa-content($fa-var-cloudversify); }
.#{$fa-css-prefix}-code:before { content: fa-content($fa-var-code); }
.#{$fa-css-prefix}-code-branch:before { content: fa-content($fa-var-code-branch); }
.#{$fa-css-prefix}-codepen:before { content: fa-content($fa-var-codepen); }
.#{$fa-css-prefix}-codiepie:before { content: fa-content($fa-var-codiepie); }
.#{$fa-css-prefix}-coffee:before { content: fa-content($fa-var-coffee); }
.#{$fa-css-prefix}-cog:before { content: fa-content($fa-var-cog); }
.#{$fa-css-prefix}-cogs:before { content: fa-content($fa-var-cogs); }
.#{$fa-css-prefix}-columns:before { content: fa-content($fa-var-columns); }
.#{$fa-css-prefix}-comment:before { content: fa-content($fa-var-comment); }
.#{$fa-css-prefix}-comment-alt:before { content: fa-content($fa-var-comment-alt); }
.#{$fa-css-prefix}-comment-dots:before { content: fa-content($fa-var-comment-dots); }
.#{$fa-css-prefix}-comment-slash:before { content: fa-content($fa-var-comment-slash); }
.#{$fa-css-prefix}-comments:before { content: fa-content($fa-var-comments); }
.#{$fa-css-prefix}-compass:before { content: fa-content($fa-var-compass); }
.#{$fa-css-prefix}-compress:before { content: fa-content($fa-var-compress); }
.#{$fa-css-prefix}-connectdevelop:before { content: fa-content($fa-var-connectdevelop); }
.#{$fa-css-prefix}-contao:before { content: fa-content($fa-var-contao); }
.#{$fa-css-prefix}-copy:before { content: fa-content($fa-var-copy); }
.#{$fa-css-prefix}-copyright:before { content: fa-content($fa-var-copyright); }
.#{$fa-css-prefix}-couch:before { content: fa-content($fa-var-couch); }
.#{$fa-css-prefix}-cpanel:before { content: fa-content($fa-var-cpanel); }
.#{$fa-css-prefix}-creative-commons:before { content: fa-content($fa-var-creative-commons); }
.#{$fa-css-prefix}-credit-card:before { content: fa-content($fa-var-credit-card); }
.#{$fa-css-prefix}-crop:before { content: fa-content($fa-var-crop); }
.#{$fa-css-prefix}-crosshairs:before { content: fa-content($fa-var-crosshairs); }
.#{$fa-css-prefix}-css3:before { content: fa-content($fa-var-css3); }
.#{$fa-css-prefix}-css3-alt:before { content: fa-content($fa-var-css3-alt); }
.#{$fa-css-prefix}-cube:before { content: fa-content($fa-var-cube); }
.#{$fa-css-prefix}-cubes:before { content: fa-content($fa-var-cubes); }
.#{$fa-css-prefix}-cut:before { content: fa-content($fa-var-cut); }
.#{$fa-css-prefix}-cuttlefish:before { content: fa-content($fa-var-cuttlefish); }
.#{$fa-css-prefix}-d-and-d:before { content: fa-content($fa-var-d-and-d); }
.#{$fa-css-prefix}-dashcube:before { content: fa-content($fa-var-dashcube); }
.#{$fa-css-prefix}-database:before { content: fa-content($fa-var-database); }
.#{$fa-css-prefix}-deaf:before { content: fa-content($fa-var-deaf); }
.#{$fa-css-prefix}-delicious:before { content: fa-content($fa-var-delicious); }
.#{$fa-css-prefix}-deploydog:before { content: fa-content($fa-var-deploydog); }
.#{$fa-css-prefix}-deskpro:before { content: fa-content($fa-var-deskpro); }
.#{$fa-css-prefix}-desktop:before { content: fa-content($fa-var-desktop); }
.#{$fa-css-prefix}-deviantart:before { content: fa-content($fa-var-deviantart); }
.#{$fa-css-prefix}-diagnoses:before { content: fa-content($fa-var-diagnoses); }
.#{$fa-css-prefix}-digg:before { content: fa-content($fa-var-digg); }
.#{$fa-css-prefix}-digital-ocean:before { content: fa-content($fa-var-digital-ocean); }
.#{$fa-css-prefix}-discord:before { content: fa-content($fa-var-discord); }
.#{$fa-css-prefix}-discourse:before { content: fa-content($fa-var-discourse); }
.#{$fa-css-prefix}-dna:before { content: fa-content($fa-var-dna); }
.#{$fa-css-prefix}-dochub:before { content: fa-content($fa-var-dochub); }
.#{$fa-css-prefix}-docker:before { content: fa-content($fa-var-docker); }
.#{$fa-css-prefix}-dollar-sign:before { content: fa-content($fa-var-dollar-sign); }
.#{$fa-css-prefix}-dolly:before { content: fa-content($fa-var-dolly); }
.#{$fa-css-prefix}-dolly-flatbed:before { content: fa-content($fa-var-dolly-flatbed); }
.#{$fa-css-prefix}-donate:before { content: fa-content($fa-var-donate); }
.#{$fa-css-prefix}-dot-circle:before { content: fa-content($fa-var-dot-circle); }
.#{$fa-css-prefix}-dove:before { content: fa-content($fa-var-dove); }
.#{$fa-css-prefix}-download:before { content: fa-content($fa-var-download); }
.#{$fa-css-prefix}-draft2digital:before { content: fa-content($fa-var-draft2digital); }
.#{$fa-css-prefix}-dribbble:before { content: fa-content($fa-var-dribbble); }
.#{$fa-css-prefix}-dribbble-square:before { content: fa-content($fa-var-dribbble-square); }
.#{$fa-css-prefix}-dropbox:before { content: fa-content($fa-var-dropbox); }
.#{$fa-css-prefix}-drupal:before { content: fa-content($fa-var-drupal); }
.#{$fa-css-prefix}-dyalog:before { content: fa-content($fa-var-dyalog); }
.#{$fa-css-prefix}-earlybirds:before { content: fa-content($fa-var-earlybirds); }
.#{$fa-css-prefix}-edge:before { content: fa-content($fa-var-edge); }
.#{$fa-css-prefix}-edit:before { content: fa-content($fa-var-edit); }
.#{$fa-css-prefix}-eject:before { content: fa-content($fa-var-eject); }
.#{$fa-css-prefix}-elementor:before { content: fa-content($fa-var-elementor); }
.#{$fa-css-prefix}-ellipsis-h:before { content: fa-content($fa-var-ellipsis-h); }
.#{$fa-css-prefix}-ellipsis-v:before { content: fa-content($fa-var-ellipsis-v); }
.#{$fa-css-prefix}-ember:before { content: fa-content($fa-var-ember); }
.#{$fa-css-prefix}-empire:before { content: fa-content($fa-var-empire); }
.#{$fa-css-prefix}-envelope:before { content: fa-content($fa-var-envelope); }
.#{$fa-css-prefix}-envelope-open:before { content: fa-content($fa-var-envelope-open); }
.#{$fa-css-prefix}-envelope-square:before { content: fa-content($fa-var-envelope-square); }
.#{$fa-css-prefix}-envira:before { content: fa-content($fa-var-envira); }
.#{$fa-css-prefix}-eraser:before { content: fa-content($fa-var-eraser); }
.#{$fa-css-prefix}-erlang:before { content: fa-content($fa-var-erlang); }
.#{$fa-css-prefix}-ethereum:before { content: fa-content($fa-var-ethereum); }
.#{$fa-css-prefix}-etsy:before { content: fa-content($fa-var-etsy); }
.#{$fa-css-prefix}-euro-sign:before { content: fa-content($fa-var-euro-sign); }
.#{$fa-css-prefix}-exchange-alt:before { content: fa-content($fa-var-exchange-alt); }
.#{$fa-css-prefix}-exclamation:before { content: fa-content($fa-var-exclamation); }
.#{$fa-css-prefix}-exclamation-circle:before { content: fa-content($fa-var-exclamation-circle); }
.#{$fa-css-prefix}-exclamation-triangle:before { content: fa-content($fa-var-exclamation-triangle); }
.#{$fa-css-prefix}-expand:before { content: fa-content($fa-var-expand); }
.#{$fa-css-prefix}-expand-arrows-alt:before { content: fa-content($fa-var-expand-arrows-alt); }
.#{$fa-css-prefix}-expeditedssl:before { content: fa-content($fa-var-expeditedssl); }
.#{$fa-css-prefix}-external-link-alt:before { content: fa-content($fa-var-external-link-alt); }
.#{$fa-css-prefix}-external-link-square-alt:before { content: fa-content($fa-var-external-link-square-alt); }
.#{$fa-css-prefix}-eye:before { content: fa-content($fa-var-eye); }
.#{$fa-css-prefix}-eye-dropper:before { content: fa-content($fa-var-eye-dropper); }
.#{$fa-css-prefix}-eye-slash:before { content: fa-content($fa-var-eye-slash); }
.#{$fa-css-prefix}-facebook:before { content: fa-content($fa-var-facebook); }
.#{$fa-css-prefix}-facebook-f:before { content: fa-content($fa-var-facebook-f); }
.#{$fa-css-prefix}-facebook-messenger:before { content: fa-content($fa-var-facebook-messenger); }
.#{$fa-css-prefix}-facebook-square:before { content: fa-content($fa-var-facebook-square); }
.#{$fa-css-prefix}-fast-backward:before { content: fa-content($fa-var-fast-backward); }
.#{$fa-css-prefix}-fast-forward:before { content: fa-content($fa-var-fast-forward); }
.#{$fa-css-prefix}-fax:before { content: fa-content($fa-var-fax); }
.#{$fa-css-prefix}-female:before { content: fa-content($fa-var-female); }
.#{$fa-css-prefix}-fighter-jet:before { content: fa-content($fa-var-fighter-jet); }
.#{$fa-css-prefix}-file:before { content: fa-content($fa-var-file); }
.#{$fa-css-prefix}-file-alt:before { content: fa-content($fa-var-file-alt); }
.#{$fa-css-prefix}-file-archive:before { content: fa-content($fa-var-file-archive); }
.#{$fa-css-prefix}-file-audio:before { content: fa-content($fa-var-file-audio); }
.#{$fa-css-prefix}-file-code:before { content: fa-content($fa-var-file-code); }
.#{$fa-css-prefix}-file-excel:before { content: fa-content($fa-var-file-excel); }
.#{$fa-css-prefix}-file-image:before { content: fa-content($fa-var-file-image); }
.#{$fa-css-prefix}-file-medical:before { content: fa-content($fa-var-file-medical); }
.#{$fa-css-prefix}-file-medical-alt:before { content: fa-content($fa-var-file-medical-alt); }
.#{$fa-css-prefix}-file-pdf:before { content: fa-content($fa-var-file-pdf); }
.#{$fa-css-prefix}-file-powerpoint:before { content: fa-content($fa-var-file-powerpoint); }
.#{$fa-css-prefix}-file-video:before { content: fa-content($fa-var-file-video); }
.#{$fa-css-prefix}-file-word:before { content: fa-content($fa-var-file-word); }
.#{$fa-css-prefix}-film:before { content: fa-content($fa-var-film); }
.#{$fa-css-prefix}-filter:before { content: fa-content($fa-var-filter); }
.#{$fa-css-prefix}-fire:before { content: fa-content($fa-var-fire); }
.#{$fa-css-prefix}-fire-extinguisher:before { content: fa-content($fa-var-fire-extinguisher); }
.#{$fa-css-prefix}-firefox:before { content: fa-content($fa-var-firefox); }
.#{$fa-css-prefix}-first-aid:before { content: fa-content($fa-var-first-aid); }
.#{$fa-css-prefix}-first-order:before { content: fa-content($fa-var-first-order); }
.#{$fa-css-prefix}-firstdraft:before { content: fa-content($fa-var-firstdraft); }
.#{$fa-css-prefix}-flag:before { content: fa-content($fa-var-flag); }
.#{$fa-css-prefix}-flag-checkered:before { content: fa-content($fa-var-flag-checkered); }
.#{$fa-css-prefix}-flask:before { content: fa-content($fa-var-flask); }
.#{$fa-css-prefix}-flickr:before { content: fa-content($fa-var-flickr); }
.#{$fa-css-prefix}-flipboard:before { content: fa-content($fa-var-flipboard); }
.#{$fa-css-prefix}-fly:before { content: fa-content($fa-var-fly); }
.#{$fa-css-prefix}-folder:before { content: fa-content($fa-var-folder); }
.#{$fa-css-prefix}-folder-open:before { content: fa-content($fa-var-folder-open); }
.#{$fa-css-prefix}-font:before { content: fa-content($fa-var-font); }
.#{$fa-css-prefix}-font-awesome:before { content: fa-content($fa-var-font-awesome); }
.#{$fa-css-prefix}-font-awesome-alt:before { content: fa-content($fa-var-font-awesome-alt); }
.#{$fa-css-prefix}-font-awesome-flag:before { content: fa-content($fa-var-font-awesome-flag); }
.#{$fa-css-prefix}-fonticons:before { content: fa-content($fa-var-fonticons); }
.#{$fa-css-prefix}-fonticons-fi:before { content: fa-content($fa-var-fonticons-fi); }
.#{$fa-css-prefix}-football-ball:before { content: fa-content($fa-var-football-ball); }
.#{$fa-css-prefix}-fort-awesome:before { content: fa-content($fa-var-fort-awesome); }
.#{$fa-css-prefix}-fort-awesome-alt:before { content: fa-content($fa-var-fort-awesome-alt); }
.#{$fa-css-prefix}-forumbee:before { content: fa-content($fa-var-forumbee); }
.#{$fa-css-prefix}-forward:before { content: fa-content($fa-var-forward); }
.#{$fa-css-prefix}-foursquare:before { content: fa-content($fa-var-foursquare); }
.#{$fa-css-prefix}-free-code-camp:before { content: fa-content($fa-var-free-code-camp); }
.#{$fa-css-prefix}-freebsd:before { content: fa-content($fa-var-freebsd); }
.#{$fa-css-prefix}-frown:before { content: fa-content($fa-var-frown); }
.#{$fa-css-prefix}-futbol:before { content: fa-content($fa-var-futbol); }
.#{$fa-css-prefix}-gamepad:before { content: fa-content($fa-var-gamepad); }
.#{$fa-css-prefix}-gavel:before { content: fa-content($fa-var-gavel); }
.#{$fa-css-prefix}-gem:before { content: fa-content($fa-var-gem); }
.#{$fa-css-prefix}-genderless:before { content: fa-content($fa-var-genderless); }
.#{$fa-css-prefix}-get-pocket:before { content: fa-content($fa-var-get-pocket); }
.#{$fa-css-prefix}-gg:before { content: fa-content($fa-var-gg); }
.#{$fa-css-prefix}-gg-circle:before { content: fa-content($fa-var-gg-circle); }
.#{$fa-css-prefix}-gift:before { content: fa-content($fa-var-gift); }
.#{$fa-css-prefix}-git:before { content: fa-content($fa-var-git); }
.#{$fa-css-prefix}-git-square:before { content: fa-content($fa-var-git-square); }
.#{$fa-css-prefix}-github:before { content: fa-content($fa-var-github); }
.#{$fa-css-prefix}-github-alt:before { content: fa-content($fa-var-github-alt); }
.#{$fa-css-prefix}-github-square:before { content: fa-content($fa-var-github-square); }
.#{$fa-css-prefix}-gitkraken:before { content: fa-content($fa-var-gitkraken); }
.#{$fa-css-prefix}-gitlab:before { content: fa-content($fa-var-gitlab); }
.#{$fa-css-prefix}-gitter:before { content: fa-content($fa-var-gitter); }
.#{$fa-css-prefix}-glass-martini:before { content: fa-content($fa-var-glass-martini); }
.#{$fa-css-prefix}-glide:before { content: fa-content($fa-var-glide); }
.#{$fa-css-prefix}-glide-g:before { content: fa-content($fa-var-glide-g); }
.#{$fa-css-prefix}-globe:before { content: fa-content($fa-var-globe); }
.#{$fa-css-prefix}-gofore:before { content: fa-content($fa-var-gofore); }
.#{$fa-css-prefix}-golf-ball:before { content: fa-content($fa-var-golf-ball); }
.#{$fa-css-prefix}-goodreads:before { content: fa-content($fa-var-goodreads); }
.#{$fa-css-prefix}-goodreads-g:before { content: fa-content($fa-var-goodreads-g); }
.#{$fa-css-prefix}-google:before { content: fa-content($fa-var-google); }
.#{$fa-css-prefix}-google-drive:before { content: fa-content($fa-var-google-drive); }
.#{$fa-css-prefix}-google-play:before { content: fa-content($fa-var-google-play); }
.#{$fa-css-prefix}-google-plus:before { content: fa-content($fa-var-google-plus); }
.#{$fa-css-prefix}-google-plus-g:before { content: fa-content($fa-var-google-plus-g); }
.#{$fa-css-prefix}-google-plus-square:before { content: fa-content($fa-var-google-plus-square); }
.#{$fa-css-prefix}-google-wallet:before { content: fa-content($fa-var-google-wallet); }
.#{$fa-css-prefix}-graduation-cap:before { content: fa-content($fa-var-graduation-cap); }
.#{$fa-css-prefix}-gratipay:before { content: fa-content($fa-var-gratipay); }
.#{$fa-css-prefix}-grav:before { content: fa-content($fa-var-grav); }
.#{$fa-css-prefix}-gripfire:before { content: fa-content($fa-var-gripfire); }
.#{$fa-css-prefix}-grunt:before { content: fa-content($fa-var-grunt); }
.#{$fa-css-prefix}-gulp:before { content: fa-content($fa-var-gulp); }
.#{$fa-css-prefix}-h-square:before { content: fa-content($fa-var-h-square); }
.#{$fa-css-prefix}-hacker-news:before { content: fa-content($fa-var-hacker-news); }
.#{$fa-css-prefix}-hacker-news-square:before { content: fa-content($fa-var-hacker-news-square); }
.#{$fa-css-prefix}-hand-holding:before { content: fa-content($fa-var-hand-holding); }
.#{$fa-css-prefix}-hand-holding-heart:before { content: fa-content($fa-var-hand-holding-heart); }
.#{$fa-css-prefix}-hand-holding-usd:before { content: fa-content($fa-var-hand-holding-usd); }
.#{$fa-css-prefix}-hand-lizard:before { content: fa-content($fa-var-hand-lizard); }
.#{$fa-css-prefix}-hand-paper:before { content: fa-content($fa-var-hand-paper); }
.#{$fa-css-prefix}-hand-peace:before { content: fa-content($fa-var-hand-peace); }
.#{$fa-css-prefix}-hand-point-down:before { content: fa-content($fa-var-hand-point-down); }
.#{$fa-css-prefix}-hand-point-left:before { content: fa-content($fa-var-hand-point-left); }
.#{$fa-css-prefix}-hand-point-right:before { content: fa-content($fa-var-hand-point-right); }
.#{$fa-css-prefix}-hand-point-up:before { content: fa-content($fa-var-hand-point-up); }
.#{$fa-css-prefix}-hand-pointer:before { content: fa-content($fa-var-hand-pointer); }
.#{$fa-css-prefix}-hand-rock:before { content: fa-content($fa-var-hand-rock); }
.#{$fa-css-prefix}-hand-scissors:before { content: fa-content($fa-var-hand-scissors); }
.#{$fa-css-prefix}-hand-spock:before { content: fa-content($fa-var-hand-spock); }
.#{$fa-css-prefix}-hands:before { content: fa-content($fa-var-hands); }
.#{$fa-css-prefix}-hands-helping:before { content: fa-content($fa-var-hands-helping); }
.#{$fa-css-prefix}-handshake:before { content: fa-content($fa-var-handshake); }
.#{$fa-css-prefix}-hashtag:before { content: fa-content($fa-var-hashtag); }
.#{$fa-css-prefix}-hdd:before { content: fa-content($fa-var-hdd); }
.#{$fa-css-prefix}-heading:before { content: fa-content($fa-var-heading); }
.#{$fa-css-prefix}-headphones:before { content: fa-content($fa-var-headphones); }
.#{$fa-css-prefix}-heart:before { content: fa-content($fa-var-heart); }
.#{$fa-css-prefix}-heartbeat:before { content: fa-content($fa-var-heartbeat); }
.#{$fa-css-prefix}-hips:before { content: fa-content($fa-var-hips); }
.#{$fa-css-prefix}-hire-a-helper:before { content: fa-content($fa-var-hire-a-helper); }
.#{$fa-css-prefix}-history:before { content: fa-content($fa-var-history); }
.#{$fa-css-prefix}-hockey-puck:before { content: fa-content($fa-var-hockey-puck); }
.#{$fa-css-prefix}-home:before { content: fa-content($fa-var-home); }
.#{$fa-css-prefix}-hooli:before { content: fa-content($fa-var-hooli); }
.#{$fa-css-prefix}-hospital:before { content: fa-content($fa-var-hospital); }
.#{$fa-css-prefix}-hospital-alt:before { content: fa-content($fa-var-hospital-alt); }
.#{$fa-css-prefix}-hospital-symbol:before { content: fa-content($fa-var-hospital-symbol); }
.#{$fa-css-prefix}-hotjar:before { content: fa-content($fa-var-hotjar); }
.#{$fa-css-prefix}-hourglass:before { content: fa-content($fa-var-hourglass); }
.#{$fa-css-prefix}-hourglass-end:before { content: fa-content($fa-var-hourglass-end); }
.#{$fa-css-prefix}-hourglass-half:before { content: fa-content($fa-var-hourglass-half); }
.#{$fa-css-prefix}-hourglass-start:before { content: fa-content($fa-var-hourglass-start); }
.#{$fa-css-prefix}-houzz:before { content: fa-content($fa-var-houzz); }
.#{$fa-css-prefix}-html5:before { content: fa-content($fa-var-html5); }
.#{$fa-css-prefix}-hubspot:before { content: fa-content($fa-var-hubspot); }
.#{$fa-css-prefix}-i-cursor:before { content: fa-content($fa-var-i-cursor); }
.#{$fa-css-prefix}-id-badge:before { content: fa-content($fa-var-id-badge); }
.#{$fa-css-prefix}-id-card:before { content: fa-content($fa-var-id-card); }
.#{$fa-css-prefix}-id-card-alt:before { content: fa-content($fa-var-id-card-alt); }
.#{$fa-css-prefix}-image:before { content: fa-content($fa-var-image); }
.#{$fa-css-prefix}-images:before { content: fa-content($fa-var-images); }
.#{$fa-css-prefix}-imdb:before { content: fa-content($fa-var-imdb); }
.#{$fa-css-prefix}-inbox:before { content: fa-content($fa-var-inbox); }
.#{$fa-css-prefix}-indent:before { content: fa-content($fa-var-indent); }
.#{$fa-css-prefix}-industry:before { content: fa-content($fa-var-industry); }
.#{$fa-css-prefix}-info:before { content: fa-content($fa-var-info); }
.#{$fa-css-prefix}-info-circle:before { content: fa-content($fa-var-info-circle); }
.#{$fa-css-prefix}-instagram:before { content: fa-content($fa-var-instagram); }
.#{$fa-css-prefix}-internet-explorer:before { content: fa-content($fa-var-internet-explorer); }
.#{$fa-css-prefix}-ioxhost:before { content: fa-content($fa-var-ioxhost); }
.#{$fa-css-prefix}-italic:before { content: fa-content($fa-var-italic); }
.#{$fa-css-prefix}-itunes:before { content: fa-content($fa-var-itunes); }
.#{$fa-css-prefix}-itunes-note:before { content: fa-content($fa-var-itunes-note); }
.#{$fa-css-prefix}-jenkins:before { content: fa-content($fa-var-jenkins); }
.#{$fa-css-prefix}-joget:before { content: fa-content($fa-var-joget); }
.#{$fa-css-prefix}-joomla:before { content: fa-content($fa-var-joomla); }
.#{$fa-css-prefix}-js:before { content: fa-content($fa-var-js); }
.#{$fa-css-prefix}-js-square:before { content: fa-content($fa-var-js-square); }
.#{$fa-css-prefix}-jsfiddle:before { content: fa-content($fa-var-jsfiddle); }
.#{$fa-css-prefix}-key:before { content: fa-content($fa-var-key); }
.#{$fa-css-prefix}-keyboard:before { content: fa-content($fa-var-keyboard); }
.#{$fa-css-prefix}-keycdn:before { content: fa-content($fa-var-keycdn); }
.#{$fa-css-prefix}-kickstarter:before { content: fa-content($fa-var-kickstarter); }
.#{$fa-css-prefix}-kickstarter-k:before { content: fa-content($fa-var-kickstarter-k); }
.#{$fa-css-prefix}-korvue:before { content: fa-content($fa-var-korvue); }
.#{$fa-css-prefix}-language:before { content: fa-content($fa-var-language); }
.#{$fa-css-prefix}-laptop:before { content: fa-content($fa-var-laptop); }
.#{$fa-css-prefix}-laravel:before { content: fa-content($fa-var-laravel); }
.#{$fa-css-prefix}-lastfm:before { content: fa-content($fa-var-lastfm); }
.#{$fa-css-prefix}-lastfm-square:before { content: fa-content($fa-var-lastfm-square); }
.#{$fa-css-prefix}-leaf:before { content: fa-content($fa-var-leaf); }
.#{$fa-css-prefix}-leanpub:before { content: fa-content($fa-var-leanpub); }
.#{$fa-css-prefix}-lemon:before { content: fa-content($fa-var-lemon); }
.#{$fa-css-prefix}-less:before { content: fa-content($fa-var-less); }
.#{$fa-css-prefix}-level-down-alt:before { content: fa-content($fa-var-level-down-alt); }
.#{$fa-css-prefix}-level-up-alt:before { content: fa-content($fa-var-level-up-alt); }
.#{$fa-css-prefix}-life-ring:before { content: fa-content($fa-var-life-ring); }
.#{$fa-css-prefix}-lightbulb:before { content: fa-content($fa-var-lightbulb); }
.#{$fa-css-prefix}-line:before { content: fa-content($fa-var-line); }
.#{$fa-css-prefix}-link:before { content: fa-content($fa-var-link); }
.#{$fa-css-prefix}-linkedin:before { content: fa-content($fa-var-linkedin); }
.#{$fa-css-prefix}-linkedin-in:before { content: fa-content($fa-var-linkedin-in); }
.#{$fa-css-prefix}-linode:before { content: fa-content($fa-var-linode); }
.#{$fa-css-prefix}-linux:before { content: fa-content($fa-var-linux); }
.#{$fa-css-prefix}-lira-sign:before { content: fa-content($fa-var-lira-sign); }
.#{$fa-css-prefix}-list:before { content: fa-content($fa-var-list); }
.#{$fa-css-prefix}-list-alt:before { content: fa-content($fa-var-list-alt); }
.#{$fa-css-prefix}-list-ol:before { content: fa-content($fa-var-list-ol); }
.#{$fa-css-prefix}-list-ul:before { content: fa-content($fa-var-list-ul); }
.#{$fa-css-prefix}-location-arrow:before { content: fa-content($fa-var-location-arrow); }
.#{$fa-css-prefix}-lock:before { content: fa-content($fa-var-lock); }
.#{$fa-css-prefix}-lock-open:before { content: fa-content($fa-var-lock-open); }
.#{$fa-css-prefix}-long-arrow-alt-down:before { content: fa-content($fa-var-long-arrow-alt-down); }
.#{$fa-css-prefix}-long-arrow-alt-left:before { content: fa-content($fa-var-long-arrow-alt-left); }
.#{$fa-css-prefix}-long-arrow-alt-right:before { content: fa-content($fa-var-long-arrow-alt-right); }
.#{$fa-css-prefix}-long-arrow-alt-up:before { content: fa-content($fa-var-long-arrow-alt-up); }
.#{$fa-css-prefix}-low-vision:before { content: fa-content($fa-var-low-vision); }
.#{$fa-css-prefix}-lyft:before { content: fa-content($fa-var-lyft); }
.#{$fa-css-prefix}-magento:before { content: fa-content($fa-var-magento); }
.#{$fa-css-prefix}-magic:before { content: fa-content($fa-var-magic); }
.#{$fa-css-prefix}-magnet:before { content: fa-content($fa-var-magnet); }
.#{$fa-css-prefix}-male:before { content: fa-content($fa-var-male); }
.#{$fa-css-prefix}-map:before { content: fa-content($fa-var-map); }
.#{$fa-css-prefix}-map-marker:before { content: fa-content($fa-var-map-marker); }
.#{$fa-css-prefix}-map-marker-alt:before { content: fa-content($fa-var-map-marker-alt); }
.#{$fa-css-prefix}-map-pin:before { content: fa-content($fa-var-map-pin); }
.#{$fa-css-prefix}-map-signs:before { content: fa-content($fa-var-map-signs); }
.#{$fa-css-prefix}-mars:before { content: fa-content($fa-var-mars); }
.#{$fa-css-prefix}-mars-double:before { content: fa-content($fa-var-mars-double); }
.#{$fa-css-prefix}-mars-stroke:before { content: fa-content($fa-var-mars-stroke); }
.#{$fa-css-prefix}-mars-stroke-h:before { content: fa-content($fa-var-mars-stroke-h); }
.#{$fa-css-prefix}-mars-stroke-v:before { content: fa-content($fa-var-mars-stroke-v); }
.#{$fa-css-prefix}-maxcdn:before { content: fa-content($fa-var-maxcdn); }
.#{$fa-css-prefix}-medapps:before { content: fa-content($fa-var-medapps); }
.#{$fa-css-prefix}-medium:before { content: fa-content($fa-var-medium); }
.#{$fa-css-prefix}-medium-m:before { content: fa-content($fa-var-medium-m); }
.#{$fa-css-prefix}-medkit:before { content: fa-content($fa-var-medkit); }
.#{$fa-css-prefix}-medrt:before { content: fa-content($fa-var-medrt); }
.#{$fa-css-prefix}-meetup:before { content: fa-content($fa-var-meetup); }
.#{$fa-css-prefix}-meh:before { content: fa-content($fa-var-meh); }
.#{$fa-css-prefix}-mercury:before { content: fa-content($fa-var-mercury); }
.#{$fa-css-prefix}-microchip:before { content: fa-content($fa-var-microchip); }
.#{$fa-css-prefix}-microphone:before { content: fa-content($fa-var-microphone); }
.#{$fa-css-prefix}-microphone-slash:before { content: fa-content($fa-var-microphone-slash); }
.#{$fa-css-prefix}-microsoft:before { content: fa-content($fa-var-microsoft); }
.#{$fa-css-prefix}-minus:before { content: fa-content($fa-var-minus); }
.#{$fa-css-prefix}-minus-circle:before { content: fa-content($fa-var-minus-circle); }
.#{$fa-css-prefix}-minus-square:before { content: fa-content($fa-var-minus-square); }
.#{$fa-css-prefix}-mix:before { content: fa-content($fa-var-mix); }
.#{$fa-css-prefix}-mixcloud:before { content: fa-content($fa-var-mixcloud); }
.#{$fa-css-prefix}-mizuni:before { content: fa-content($fa-var-mizuni); }
.#{$fa-css-prefix}-mobile:before { content: fa-content($fa-var-mobile); }
.#{$fa-css-prefix}-mobile-alt:before { content: fa-content($fa-var-mobile-alt); }
.#{$fa-css-prefix}-modx:before { content: fa-content($fa-var-modx); }
.#{$fa-css-prefix}-monero:before { content: fa-content($fa-var-monero); }
.#{$fa-css-prefix}-money-bill-alt:before { content: fa-content($fa-var-money-bill-alt); }
.#{$fa-css-prefix}-moon:before { content: fa-content($fa-var-moon); }
.#{$fa-css-prefix}-motorcycle:before { content: fa-content($fa-var-motorcycle); }
.#{$fa-css-prefix}-mouse-pointer:before { content: fa-content($fa-var-mouse-pointer); }
.#{$fa-css-prefix}-music:before { content: fa-content($fa-var-music); }
.#{$fa-css-prefix}-napster:before { content: fa-content($fa-var-napster); }
.#{$fa-css-prefix}-neuter:before { content: fa-content($fa-var-neuter); }
.#{$fa-css-prefix}-newspaper:before { content: fa-content($fa-var-newspaper); }
.#{$fa-css-prefix}-nintendo-switch:before { content: fa-content($fa-var-nintendo-switch); }
.#{$fa-css-prefix}-node:before { content: fa-content($fa-var-node); }
.#{$fa-css-prefix}-node-js:before { content: fa-content($fa-var-node-js); }
.#{$fa-css-prefix}-notes-medical:before { content: fa-content($fa-var-notes-medical); }
.#{$fa-css-prefix}-npm:before { content: fa-content($fa-var-npm); }
.#{$fa-css-prefix}-ns8:before { content: fa-content($fa-var-ns8); }
.#{$fa-css-prefix}-nutritionix:before { content: fa-content($fa-var-nutritionix); }
.#{$fa-css-prefix}-object-group:before { content: fa-content($fa-var-object-group); }
.#{$fa-css-prefix}-object-ungroup:before { content: fa-content($fa-var-object-ungroup); }
.#{$fa-css-prefix}-odnoklassniki:before { content: fa-content($fa-var-odnoklassniki); }
.#{$fa-css-prefix}-odnoklassniki-square:before { content: fa-content($fa-var-odnoklassniki-square); }
.#{$fa-css-prefix}-opencart:before { content: fa-content($fa-var-opencart); }
.#{$fa-css-prefix}-openid:before { content: fa-content($fa-var-openid); }
.#{$fa-css-prefix}-opera:before { content: fa-content($fa-var-opera); }
.#{$fa-css-prefix}-optin-monster:before { content: fa-content($fa-var-optin-monster); }
.#{$fa-css-prefix}-osi:before { content: fa-content($fa-var-osi); }
.#{$fa-css-prefix}-outdent:before { content: fa-content($fa-var-outdent); }
.#{$fa-css-prefix}-page4:before { content: fa-content($fa-var-page4); }
.#{$fa-css-prefix}-pagelines:before { content: fa-content($fa-var-pagelines); }
.#{$fa-css-prefix}-paint-brush:before { content: fa-content($fa-var-paint-brush); }
.#{$fa-css-prefix}-palfed:before { content: fa-content($fa-var-palfed); }
.#{$fa-css-prefix}-pallet:before { content: fa-content($fa-var-pallet); }
.#{$fa-css-prefix}-paper-plane:before { content: fa-content($fa-var-paper-plane); }
.#{$fa-css-prefix}-paperclip:before { content: fa-content($fa-var-paperclip); }
.#{$fa-css-prefix}-parachute-box:before { content: fa-content($fa-var-parachute-box); }
.#{$fa-css-prefix}-paragraph:before { content: fa-content($fa-var-paragraph); }
.#{$fa-css-prefix}-paste:before { content: fa-content($fa-var-paste); }
.#{$fa-css-prefix}-patreon:before { content: fa-content($fa-var-patreon); }
.#{$fa-css-prefix}-pause:before { content: fa-content($fa-var-pause); }
.#{$fa-css-prefix}-pause-circle:before { content: fa-content($fa-var-pause-circle); }
.#{$fa-css-prefix}-paw:before { content: fa-content($fa-var-paw); }
.#{$fa-css-prefix}-paypal:before { content: fa-content($fa-var-paypal); }
.#{$fa-css-prefix}-pen-square:before { content: fa-content($fa-var-pen-square); }
.#{$fa-css-prefix}-pencil-alt:before { content: fa-content($fa-var-pencil-alt); }
.#{$fa-css-prefix}-people-carry:before { content: fa-content($fa-var-people-carry); }
.#{$fa-css-prefix}-percent:before { content: fa-content($fa-var-percent); }
.#{$fa-css-prefix}-periscope:before { content: fa-content($fa-var-periscope); }
.#{$fa-css-prefix}-phabricator:before { content: fa-content($fa-var-phabricator); }
.#{$fa-css-prefix}-phoenix-framework:before { content: fa-content($fa-var-phoenix-framework); }
.#{$fa-css-prefix}-phone:before { content: fa-content($fa-var-phone); }
.#{$fa-css-prefix}-phone-slash:before { content: fa-content($fa-var-phone-slash); }
.#{$fa-css-prefix}-phone-square:before { content: fa-content($fa-var-phone-square); }
.#{$fa-css-prefix}-phone-volume:before { content: fa-content($fa-var-phone-volume); }
.#{$fa-css-prefix}-php:before { content: fa-content($fa-var-php); }
.#{$fa-css-prefix}-pied-piper:before { content: fa-content($fa-var-pied-piper); }
.#{$fa-css-prefix}-pied-piper-alt:before { content: fa-content($fa-var-pied-piper-alt); }
.#{$fa-css-prefix}-pied-piper-pp:before { content: fa-content($fa-var-pied-piper-pp); }
.#{$fa-css-prefix}-piggy-bank:before { content: fa-content($fa-var-piggy-bank); }
.#{$fa-css-prefix}-pills:before { content: fa-content($fa-var-pills); }
.#{$fa-css-prefix}-pinterest:before { content: fa-content($fa-var-pinterest); }
.#{$fa-css-prefix}-pinterest-p:before { content: fa-content($fa-var-pinterest-p); }
.#{$fa-css-prefix}-pinterest-square:before { content: fa-content($fa-var-pinterest-square); }
.#{$fa-css-prefix}-plane:before { content: fa-content($fa-var-plane); }
.#{$fa-css-prefix}-play:before { content: fa-content($fa-var-play); }
.#{$fa-css-prefix}-play-circle:before { content: fa-content($fa-var-play-circle); }
.#{$fa-css-prefix}-playstation:before { content: fa-content($fa-var-playstation); }
.#{$fa-css-prefix}-plug:before { content: fa-content($fa-var-plug); }
.#{$fa-css-prefix}-plus:before { content: fa-content($fa-var-plus); }
.#{$fa-css-prefix}-plus-circle:before { content: fa-content($fa-var-plus-circle); }
.#{$fa-css-prefix}-plus-square:before { content: fa-content($fa-var-plus-square); }
.#{$fa-css-prefix}-podcast:before { content: fa-content($fa-var-podcast); }
.#{$fa-css-prefix}-poo:before { content: fa-content($fa-var-poo); }
.#{$fa-css-prefix}-pound-sign:before { content: fa-content($fa-var-pound-sign); }
.#{$fa-css-prefix}-power-off:before { content: fa-content($fa-var-power-off); }
.#{$fa-css-prefix}-prescription-bottle:before { content: fa-content($fa-var-prescription-bottle); }
.#{$fa-css-prefix}-prescription-bottle-alt:before { content: fa-content($fa-var-prescription-bottle-alt); }
.#{$fa-css-prefix}-print:before { content: fa-content($fa-var-print); }
.#{$fa-css-prefix}-procedures:before { content: fa-content($fa-var-procedures); }
.#{$fa-css-prefix}-product-hunt:before { content: fa-content($fa-var-product-hunt); }
.#{$fa-css-prefix}-pushed:before { content: fa-content($fa-var-pushed); }
.#{$fa-css-prefix}-puzzle-piece:before { content: fa-content($fa-var-puzzle-piece); }
.#{$fa-css-prefix}-python:before { content: fa-content($fa-var-python); }
.#{$fa-css-prefix}-qq:before { content: fa-content($fa-var-qq); }
.#{$fa-css-prefix}-qrcode:before { content: fa-content($fa-var-qrcode); }
.#{$fa-css-prefix}-question:before { content: fa-content($fa-var-question); }
.#{$fa-css-prefix}-question-circle:before { content: fa-content($fa-var-question-circle); }
.#{$fa-css-prefix}-quidditch:before { content: fa-content($fa-var-quidditch); }
.#{$fa-css-prefix}-quinscape:before { content: fa-content($fa-var-quinscape); }
.#{$fa-css-prefix}-quora:before { content: fa-content($fa-var-quora); }
.#{$fa-css-prefix}-quote-left:before { content: fa-content($fa-var-quote-left); }
.#{$fa-css-prefix}-quote-right:before { content: fa-content($fa-var-quote-right); }
.#{$fa-css-prefix}-random:before { content: fa-content($fa-var-random); }
.#{$fa-css-prefix}-ravelry:before { content: fa-content($fa-var-ravelry); }
.#{$fa-css-prefix}-react:before { content: fa-content($fa-var-react); }
.#{$fa-css-prefix}-readme:before { content: fa-content($fa-var-readme); }
.#{$fa-css-prefix}-rebel:before { content: fa-content($fa-var-rebel); }
.#{$fa-css-prefix}-recycle:before { content: fa-content($fa-var-recycle); }
.#{$fa-css-prefix}-red-river:before { content: fa-content($fa-var-red-river); }
.#{$fa-css-prefix}-reddit:before { content: fa-content($fa-var-reddit); }
.#{$fa-css-prefix}-reddit-alien:before { content: fa-content($fa-var-reddit-alien); }
.#{$fa-css-prefix}-reddit-square:before { content: fa-content($fa-var-reddit-square); }
.#{$fa-css-prefix}-redo:before { content: fa-content($fa-var-redo); }
.#{$fa-css-prefix}-redo-alt:before { content: fa-content($fa-var-redo-alt); }
.#{$fa-css-prefix}-registered:before { content: fa-content($fa-var-registered); }
.#{$fa-css-prefix}-rendact:before { content: fa-content($fa-var-rendact); }
.#{$fa-css-prefix}-renren:before { content: fa-content($fa-var-renren); }
.#{$fa-css-prefix}-reply:before { content: fa-content($fa-var-reply); }
.#{$fa-css-prefix}-reply-all:before { content: fa-content($fa-var-reply-all); }
.#{$fa-css-prefix}-replyd:before { content: fa-content($fa-var-replyd); }
.#{$fa-css-prefix}-resolving:before { content: fa-content($fa-var-resolving); }
.#{$fa-css-prefix}-retweet:before { content: fa-content($fa-var-retweet); }
.#{$fa-css-prefix}-ribbon:before { content: fa-content($fa-var-ribbon); }
.#{$fa-css-prefix}-road:before { content: fa-content($fa-var-road); }
.#{$fa-css-prefix}-rocket:before { content: fa-content($fa-var-rocket); }
.#{$fa-css-prefix}-rocketchat:before { content: fa-content($fa-var-rocketchat); }
.#{$fa-css-prefix}-rockrms:before { content: fa-content($fa-var-rockrms); }
.#{$fa-css-prefix}-rss:before { content: fa-content($fa-var-rss); }
.#{$fa-css-prefix}-rss-square:before { content: fa-content($fa-var-rss-square); }
.#{$fa-css-prefix}-ruble-sign:before { content: fa-content($fa-var-ruble-sign); }
.#{$fa-css-prefix}-rupee-sign:before { content: fa-content($fa-var-rupee-sign); }
.#{$fa-css-prefix}-safari:before { content: fa-content($fa-var-safari); }
.#{$fa-css-prefix}-sass:before { content: fa-content($fa-var-sass); }
.#{$fa-css-prefix}-save:before { content: fa-content($fa-var-save); }
.#{$fa-css-prefix}-schlix:before { content: fa-content($fa-var-schlix); }
.#{$fa-css-prefix}-scribd:before { content: fa-content($fa-var-scribd); }
.#{$fa-css-prefix}-search:before { content: fa-content($fa-var-search); }
.#{$fa-css-prefix}-search-minus:before { content: fa-content($fa-var-search-minus); }
.#{$fa-css-prefix}-search-plus:before { content: fa-content($fa-var-search-plus); }
.#{$fa-css-prefix}-searchengin:before { content: fa-content($fa-var-searchengin); }
.#{$fa-css-prefix}-seedling:before { content: fa-content($fa-var-seedling); }
.#{$fa-css-prefix}-sellcast:before { content: fa-content($fa-var-sellcast); }
.#{$fa-css-prefix}-sellsy:before { content: fa-content($fa-var-sellsy); }
.#{$fa-css-prefix}-server:before { content: fa-content($fa-var-server); }
.#{$fa-css-prefix}-servicestack:before { content: fa-content($fa-var-servicestack); }
.#{$fa-css-prefix}-share:before { content: fa-content($fa-var-share); }
.#{$fa-css-prefix}-share-alt:before { content: fa-content($fa-var-share-alt); }
.#{$fa-css-prefix}-share-alt-square:before { content: fa-content($fa-var-share-alt-square); }
.#{$fa-css-prefix}-share-square:before { content: fa-content($fa-var-share-square); }
.#{$fa-css-prefix}-shekel-sign:before { content: fa-content($fa-var-shekel-sign); }
.#{$fa-css-prefix}-shield-alt:before { content: fa-content($fa-var-shield-alt); }
.#{$fa-css-prefix}-ship:before { content: fa-content($fa-var-ship); }
.#{$fa-css-prefix}-shipping-fast:before { content: fa-content($fa-var-shipping-fast); }
.#{$fa-css-prefix}-shirtsinbulk:before { content: fa-content($fa-var-shirtsinbulk); }
.#{$fa-css-prefix}-shopping-bag:before { content: fa-content($fa-var-shopping-bag); }
.#{$fa-css-prefix}-shopping-basket:before { content: fa-content($fa-var-shopping-basket); }
.#{$fa-css-prefix}-shopping-cart:before { content: fa-content($fa-var-shopping-cart); }
.#{$fa-css-prefix}-shower:before { content: fa-content($fa-var-shower); }
.#{$fa-css-prefix}-sign:before { content: fa-content($fa-var-sign); }
.#{$fa-css-prefix}-sign-in-alt:before { content: fa-content($fa-var-sign-in-alt); }
.#{$fa-css-prefix}-sign-language:before { content: fa-content($fa-var-sign-language); }
.#{$fa-css-prefix}-sign-out-alt:before { content: fa-content($fa-var-sign-out-alt); }
.#{$fa-css-prefix}-signal:before { content: fa-content($fa-var-signal); }
.#{$fa-css-prefix}-simplybuilt:before { content: fa-content($fa-var-simplybuilt); }
.#{$fa-css-prefix}-sistrix:before { content: fa-content($fa-var-sistrix); }
.#{$fa-css-prefix}-sitemap:before { content: fa-content($fa-var-sitemap); }
.#{$fa-css-prefix}-skyatlas:before { content: fa-content($fa-var-skyatlas); }
.#{$fa-css-prefix}-skype:before { content: fa-content($fa-var-skype); }
.#{$fa-css-prefix}-slack:before { content: fa-content($fa-var-slack); }
.#{$fa-css-prefix}-slack-hash:before { content: fa-content($fa-var-slack-hash); }
.#{$fa-css-prefix}-sliders-h:before { content: fa-content($fa-var-sliders-h); }
.#{$fa-css-prefix}-slideshare:before { content: fa-content($fa-var-slideshare); }
.#{$fa-css-prefix}-smile:before { content: fa-content($fa-var-smile); }
.#{$fa-css-prefix}-smoking:before { content: fa-content($fa-var-smoking); }
.#{$fa-css-prefix}-snapchat:before { content: fa-content($fa-var-snapchat); }
.#{$fa-css-prefix}-snapchat-ghost:before { content: fa-content($fa-var-snapchat-ghost); }
.#{$fa-css-prefix}-snapchat-square:before { content: fa-content($fa-var-snapchat-square); }
.#{$fa-css-prefix}-snowflake:before { content: fa-content($fa-var-snowflake); }
.#{$fa-css-prefix}-sort:before { content: fa-content($fa-var-sort); }
.#{$fa-css-prefix}-sort-alpha-down:before { content: fa-content($fa-var-sort-alpha-down); }
.#{$fa-css-prefix}-sort-alpha-up:before { content: fa-content($fa-var-sort-alpha-up); }
.#{$fa-css-prefix}-sort-amount-down:before { content: fa-content($fa-var-sort-amount-down); }
.#{$fa-css-prefix}-sort-amount-up:before { content: fa-content($fa-var-sort-amount-up); }
.#{$fa-css-prefix}-sort-down:before { content: fa-content($fa-var-sort-down); }
.#{$fa-css-prefix}-sort-numeric-down:before { content: fa-content($fa-var-sort-numeric-down); }
.#{$fa-css-prefix}-sort-numeric-up:before { content: fa-content($fa-var-sort-numeric-up); }
.#{$fa-css-prefix}-sort-up:before { content: fa-content($fa-var-sort-up); }
.#{$fa-css-prefix}-soundcloud:before { content: fa-content($fa-var-soundcloud); }
.#{$fa-css-prefix}-space-shuttle:before { content: fa-content($fa-var-space-shuttle); }
.#{$fa-css-prefix}-speakap:before { content: fa-content($fa-var-speakap); }
.#{$fa-css-prefix}-spinner:before { content: fa-content($fa-var-spinner); }
.#{$fa-css-prefix}-spotify:before { content: fa-content($fa-var-spotify); }
.#{$fa-css-prefix}-square:before { content: fa-content($fa-var-square); }
.#{$fa-css-prefix}-square-full:before { content: fa-content($fa-var-square-full); }
.#{$fa-css-prefix}-stack-exchange:before { content: fa-content($fa-var-stack-exchange); }
.#{$fa-css-prefix}-stack-overflow:before { content: fa-content($fa-var-stack-overflow); }
.#{$fa-css-prefix}-star:before { content: fa-content($fa-var-star); }
.#{$fa-css-prefix}-star-half:before { content: fa-content($fa-var-star-half); }
.#{$fa-css-prefix}-staylinked:before { content: fa-content($fa-var-staylinked); }
.#{$fa-css-prefix}-steam:before { content: fa-content($fa-var-steam); }
.#{$fa-css-prefix}-steam-square:before { content: fa-content($fa-var-steam-square); }
.#{$fa-css-prefix}-steam-symbol:before { content: fa-content($fa-var-steam-symbol); }
.#{$fa-css-prefix}-step-backward:before { content: fa-content($fa-var-step-backward); }
.#{$fa-css-prefix}-step-forward:before { content: fa-content($fa-var-step-forward); }
.#{$fa-css-prefix}-stethoscope:before { content: fa-content($fa-var-stethoscope); }
.#{$fa-css-prefix}-sticker-mule:before { content: fa-content($fa-var-sticker-mule); }
.#{$fa-css-prefix}-sticky-note:before { content: fa-content($fa-var-sticky-note); }
.#{$fa-css-prefix}-stop:before { content: fa-content($fa-var-stop); }
.#{$fa-css-prefix}-stop-circle:before { content: fa-content($fa-var-stop-circle); }
.#{$fa-css-prefix}-stopwatch:before { content: fa-content($fa-var-stopwatch); }
.#{$fa-css-prefix}-strava:before { content: fa-content($fa-var-strava); }
.#{$fa-css-prefix}-street-view:before { content: fa-content($fa-var-street-view); }
.#{$fa-css-prefix}-strikethrough:before { content: fa-content($fa-var-strikethrough); }
.#{$fa-css-prefix}-stripe:before { content: fa-content($fa-var-stripe); }
.#{$fa-css-prefix}-stripe-s:before { content: fa-content($fa-var-stripe-s); }
.#{$fa-css-prefix}-studiovinari:before { content: fa-content($fa-var-studiovinari); }
.#{$fa-css-prefix}-stumbleupon:before { content: fa-content($fa-var-stumbleupon); }
.#{$fa-css-prefix}-stumbleupon-circle:before { content: fa-content($fa-var-stumbleupon-circle); }
.#{$fa-css-prefix}-subscript:before { content: fa-content($fa-var-subscript); }
.#{$fa-css-prefix}-subway:before { content: fa-content($fa-var-subway); }
.#{$fa-css-prefix}-suitcase:before { content: fa-content($fa-var-suitcase); }
.#{$fa-css-prefix}-sun:before { content: fa-content($fa-var-sun); }
.#{$fa-css-prefix}-superpowers:before { content: fa-content($fa-var-superpowers); }
.#{$fa-css-prefix}-superscript:before { content: fa-content($fa-var-superscript); }
.#{$fa-css-prefix}-supple:before { content: fa-content($fa-var-supple); }
.#{$fa-css-prefix}-sync:before { content: fa-content($fa-var-sync); }
.#{$fa-css-prefix}-sync-alt:before { content: fa-content($fa-var-sync-alt); }
.#{$fa-css-prefix}-syringe:before { content: fa-content($fa-var-syringe); }
.#{$fa-css-prefix}-table:before { content: fa-content($fa-var-table); }
.#{$fa-css-prefix}-table-tennis:before { content: fa-content($fa-var-table-tennis); }
.#{$fa-css-prefix}-tablet:before { content: fa-content($fa-var-tablet); }
.#{$fa-css-prefix}-tablet-alt:before { content: fa-content($fa-var-tablet-alt); }
.#{$fa-css-prefix}-tablets:before { content: fa-content($fa-var-tablets); }
.#{$fa-css-prefix}-tachometer-alt:before { content: fa-content($fa-var-tachometer-alt); }
.#{$fa-css-prefix}-tag:before { content: fa-content($fa-var-tag); }
.#{$fa-css-prefix}-tags:before { content: fa-content($fa-var-tags); }
.#{$fa-css-prefix}-tape:before { content: fa-content($fa-var-tape); }
.#{$fa-css-prefix}-tasks:before { content: fa-content($fa-var-tasks); }
.#{$fa-css-prefix}-taxi:before { content: fa-content($fa-var-taxi); }
.#{$fa-css-prefix}-telegram:before { content: fa-content($fa-var-telegram); }
.#{$fa-css-prefix}-telegram-plane:before { content: fa-content($fa-var-telegram-plane); }
.#{$fa-css-prefix}-tencent-weibo:before { content: fa-content($fa-var-tencent-weibo); }
.#{$fa-css-prefix}-terminal:before { content: fa-content($fa-var-terminal); }
.#{$fa-css-prefix}-text-height:before { content: fa-content($fa-var-text-height); }
.#{$fa-css-prefix}-text-width:before { content: fa-content($fa-var-text-width); }
.#{$fa-css-prefix}-th:before { content: fa-content($fa-var-th); }
.#{$fa-css-prefix}-th-large:before { content: fa-content($fa-var-th-large); }
.#{$fa-css-prefix}-th-list:before { content: fa-content($fa-var-th-list); }
.#{$fa-css-prefix}-themeisle:before { content: fa-content($fa-var-themeisle); }
.#{$fa-css-prefix}-thermometer:before { content: fa-content($fa-var-thermometer); }
.#{$fa-css-prefix}-thermometer-empty:before { content: fa-content($fa-var-thermometer-empty); }
.#{$fa-css-prefix}-thermometer-full:before { content: fa-content($fa-var-thermometer-full); }
.#{$fa-css-prefix}-thermometer-half:before { content: fa-content($fa-var-thermometer-half); }
.#{$fa-css-prefix}-thermometer-quarter:before { content: fa-content($fa-var-thermometer-quarter); }
.#{$fa-css-prefix}-thermometer-three-quarters:before { content: fa-content($fa-var-thermometer-three-quarters); }
.#{$fa-css-prefix}-thumbs-down:before { content: fa-content($fa-var-thumbs-down); }
.#{$fa-css-prefix}-thumbs-up:before { content: fa-content($fa-var-thumbs-up); }
.#{$fa-css-prefix}-thumbtack:before { content: fa-content($fa-var-thumbtack); }
.#{$fa-css-prefix}-ticket-alt:before { content: fa-content($fa-var-ticket-alt); }
.#{$fa-css-prefix}-times:before { content: fa-content($fa-var-times); }
.#{$fa-css-prefix}-times-circle:before { content: fa-content($fa-var-times-circle); }
.#{$fa-css-prefix}-tint:before { content: fa-content($fa-var-tint); }
.#{$fa-css-prefix}-toggle-off:before { content: fa-content($fa-var-toggle-off); }
.#{$fa-css-prefix}-toggle-on:before { content: fa-content($fa-var-toggle-on); }
.#{$fa-css-prefix}-trademark:before { content: fa-content($fa-var-trademark); }
.#{$fa-css-prefix}-train:before { content: fa-content($fa-var-train); }
.#{$fa-css-prefix}-transgender:before { content: fa-content($fa-var-transgender); }
.#{$fa-css-prefix}-transgender-alt:before { content: fa-content($fa-var-transgender-alt); }
.#{$fa-css-prefix}-trash:before { content: fa-content($fa-var-trash); }
.#{$fa-css-prefix}-trash-alt:before { content: fa-content($fa-var-trash-alt); }
.#{$fa-css-prefix}-tree:before { content: fa-content($fa-var-tree); }
.#{$fa-css-prefix}-trello:before { content: fa-content($fa-var-trello); }
.#{$fa-css-prefix}-tripadvisor:before { content: fa-content($fa-var-tripadvisor); }
.#{$fa-css-prefix}-trophy:before { content: fa-content($fa-var-trophy); }
.#{$fa-css-prefix}-truck:before { content: fa-content($fa-var-truck); }
.#{$fa-css-prefix}-truck-loading:before { content: fa-content($fa-var-truck-loading); }
.#{$fa-css-prefix}-truck-moving:before { content: fa-content($fa-var-truck-moving); }
.#{$fa-css-prefix}-tty:before { content: fa-content($fa-var-tty); }
.#{$fa-css-prefix}-tumblr:before { content: fa-content($fa-var-tumblr); }
.#{$fa-css-prefix}-tumblr-square:before { content: fa-content($fa-var-tumblr-square); }
.#{$fa-css-prefix}-tv:before { content: fa-content($fa-var-tv); }
.#{$fa-css-prefix}-twitch:before { content: fa-content($fa-var-twitch); }
.#{$fa-css-prefix}-twitter:before { content: fa-content($fa-var-twitter); }
.#{$fa-css-prefix}-twitter-square:before { content: fa-content($fa-var-twitter-square); }
.#{$fa-css-prefix}-typo3:before { content: fa-content($fa-var-typo3); }
.#{$fa-css-prefix}-uber:before { content: fa-content($fa-var-uber); }
.#{$fa-css-prefix}-uikit:before { content: fa-content($fa-var-uikit); }
.#{$fa-css-prefix}-umbrella:before { content: fa-content($fa-var-umbrella); }
.#{$fa-css-prefix}-underline:before { content: fa-content($fa-var-underline); }
.#{$fa-css-prefix}-undo:before { content: fa-content($fa-var-undo); }
.#{$fa-css-prefix}-undo-alt:before { content: fa-content($fa-var-undo-alt); }
.#{$fa-css-prefix}-uniregistry:before { content: fa-content($fa-var-uniregistry); }
.#{$fa-css-prefix}-universal-access:before { content: fa-content($fa-var-universal-access); }
.#{$fa-css-prefix}-university:before { content: fa-content($fa-var-university); }
.#{$fa-css-prefix}-unlink:before { content: fa-content($fa-var-unlink); }
.#{$fa-css-prefix}-unlock:before { content: fa-content($fa-var-unlock); }
.#{$fa-css-prefix}-unlock-alt:before { content: fa-content($fa-var-unlock-alt); }
.#{$fa-css-prefix}-untappd:before { content: fa-content($fa-var-untappd); }
.#{$fa-css-prefix}-upload:before { content: fa-content($fa-var-upload); }
.#{$fa-css-prefix}-usb:before { content: fa-content($fa-var-usb); }
.#{$fa-css-prefix}-user:before { content: fa-content($fa-var-user); }
.#{$fa-css-prefix}-user-circle:before { content: fa-content($fa-var-user-circle); }
.#{$fa-css-prefix}-user-md:before { content: fa-content($fa-var-user-md); }
.#{$fa-css-prefix}-user-plus:before { content: fa-content($fa-var-user-plus); }
.#{$fa-css-prefix}-user-secret:before { content: fa-content($fa-var-user-secret); }
.#{$fa-css-prefix}-user-times:before { content: fa-content($fa-var-user-times); }
.#{$fa-css-prefix}-users:before { content: fa-content($fa-var-users); }
.#{$fa-css-prefix}-ussunnah:before { content: fa-content($fa-var-ussunnah); }
.#{$fa-css-prefix}-utensil-spoon:before { content: fa-content($fa-var-utensil-spoon); }
.#{$fa-css-prefix}-utensils:before { content: fa-content($fa-var-utensils); }
.#{$fa-css-prefix}-vaadin:before { content: fa-content($fa-var-vaadin); }
.#{$fa-css-prefix}-venus:before { content: fa-content($fa-var-venus); }
.#{$fa-css-prefix}-venus-double:before { content: fa-content($fa-var-venus-double); }
.#{$fa-css-prefix}-venus-mars:before { content: fa-content($fa-var-venus-mars); }
.#{$fa-css-prefix}-viacoin:before { content: fa-content($fa-var-viacoin); }
.#{$fa-css-prefix}-viadeo:before { content: fa-content($fa-var-viadeo); }
.#{$fa-css-prefix}-viadeo-square:before { content: fa-content($fa-var-viadeo-square); }
.#{$fa-css-prefix}-vial:before { content: fa-content($fa-var-vial); }
.#{$fa-css-prefix}-vials:before { content: fa-content($fa-var-vials); }
.#{$fa-css-prefix}-viber:before { content: fa-content($fa-var-viber); }
.#{$fa-css-prefix}-video:before { content: fa-content($fa-var-video); }
.#{$fa-css-prefix}-video-slash:before { content: fa-content($fa-var-video-slash); }
.#{$fa-css-prefix}-vimeo:before { content: fa-content($fa-var-vimeo); }
.#{$fa-css-prefix}-vimeo-square:before { content: fa-content($fa-var-vimeo-square); }
.#{$fa-css-prefix}-vimeo-v:before { content: fa-content($fa-var-vimeo-v); }
.#{$fa-css-prefix}-vine:before { content: fa-content($fa-var-vine); }
.#{$fa-css-prefix}-vk:before { content: fa-content($fa-var-vk); }
.#{$fa-css-prefix}-vnv:before { content: fa-content($fa-var-vnv); }
.#{$fa-css-prefix}-volleyball-ball:before { content: fa-content($fa-var-volleyball-ball); }
.#{$fa-css-prefix}-volume-down:before { content: fa-content($fa-var-volume-down); }
.#{$fa-css-prefix}-volume-off:before { content: fa-content($fa-var-volume-off); }
.#{$fa-css-prefix}-volume-up:before { content: fa-content($fa-var-volume-up); }
.#{$fa-css-prefix}-vuejs:before { content: fa-content($fa-var-vuejs); }
.#{$fa-css-prefix}-warehouse:before { content: fa-content($fa-var-warehouse); }
.#{$fa-css-prefix}-weibo:before { content: fa-content($fa-var-weibo); }
.#{$fa-css-prefix}-weight:before { content: fa-content($fa-var-weight); }
.#{$fa-css-prefix}-weixin:before { content: fa-content($fa-var-weixin); }
.#{$fa-css-prefix}-whatsapp:before { content: fa-content($fa-var-whatsapp); }
.#{$fa-css-prefix}-whatsapp-square:before { content: fa-content($fa-var-whatsapp-square); }
.#{$fa-css-prefix}-wheelchair:before { content: fa-content($fa-var-wheelchair); }
.#{$fa-css-prefix}-whmcs:before { content: fa-content($fa-var-whmcs); }
.#{$fa-css-prefix}-wifi:before { content: fa-content($fa-var-wifi); }
.#{$fa-css-prefix}-wikipedia-w:before { content: fa-content($fa-var-wikipedia-w); }
.#{$fa-css-prefix}-window-close:before { content: fa-content($fa-var-window-close); }
.#{$fa-css-prefix}-window-maximize:before { content: fa-content($fa-var-window-maximize); }
.#{$fa-css-prefix}-window-minimize:before { content: fa-content($fa-var-window-minimize); }
.#{$fa-css-prefix}-window-restore:before { content: fa-content($fa-var-window-restore); }
.#{$fa-css-prefix}-windows:before { content: fa-content($fa-var-windows); }
.#{$fa-css-prefix}-wine-glass:before { content: fa-content($fa-var-wine-glass); }
.#{$fa-css-prefix}-won-sign:before { content: fa-content($fa-var-won-sign); }
.#{$fa-css-prefix}-wordpress:before { content: fa-content($fa-var-wordpress); }
.#{$fa-css-prefix}-wordpress-simple:before { content: fa-content($fa-var-wordpress-simple); }
.#{$fa-css-prefix}-wpbeginner:before { content: fa-content($fa-var-wpbeginner); }
.#{$fa-css-prefix}-wpexplorer:before { content: fa-content($fa-var-wpexplorer); }
.#{$fa-css-prefix}-wpforms:before { content: fa-content($fa-var-wpforms); }
.#{$fa-css-prefix}-wrench:before { content: fa-content($fa-var-wrench); }
.#{$fa-css-prefix}-x-ray:before { content: fa-content($fa-var-x-ray); }
.#{$fa-css-prefix}-xbox:before { content: fa-content($fa-var-xbox); }
.#{$fa-css-prefix}-xing:before { content: fa-content($fa-var-xing); }
.#{$fa-css-prefix}-xing-square:before { content: fa-content($fa-var-xing-square); }
.#{$fa-css-prefix}-y-combinator:before { content: fa-content($fa-var-y-combinator); }
.#{$fa-css-prefix}-yahoo:before { content: fa-content($fa-var-yahoo); }
.#{$fa-css-prefix}-yandex:before { content: fa-content($fa-var-yandex); }
.#{$fa-css-prefix}-yandex-international:before { content: fa-content($fa-var-yandex-international); }
.#{$fa-css-prefix}-yelp:before { content: fa-content($fa-var-yelp); }
.#{$fa-css-prefix}-yen-sign:before { content: fa-content($fa-var-yen-sign); }
.#{$fa-css-prefix}-yoast:before { content: fa-content($fa-var-yoast); }
.#{$fa-css-prefix}-youtube:before { content: fa-content($fa-var-youtube); }
.#{$fa-css-prefix}-youtube-square:before { content: fa-content($fa-var-youtube-square); }
================================================
FILE: public/admin-panel/dist/css/icons/font-awesome/scss/_larger.scss
================================================
// Icon Sizes
// -------------------------
// makes the font 33% larger relative to the icon container
.#{$fa-css-prefix}-lg {
font-size: (4em / 3);
line-height: (3em / 4);
vertical-align: -.0667em;
}
.#{$fa-css-prefix}-xs {
font-size: .75em;
}
.#{$fa-css-prefix}-sm {
font-size: .875em;
}
@for $i from 1 through 10 {
.#{$fa-css-prefix}-#{$i}x {
font-size: $i * 1em;
}
}
================================================
FILE: public/admin-panel/dist/css/icons/font-awesome/scss/_list.scss
================================================
// List Icons
// -------------------------
.#{$fa-css-prefix}-ul {
list-style-type: none;
margin-left: $fa-li-width * 5/4;
padding-left: 0;
> li { position: relative; }
}
.#{$fa-css-prefix}-li {
left: -$fa-li-width;
position: absolute;
text-align: center;
width: $fa-li-width;
line-height: inherit;
}
================================================
FILE: public/admin-panel/dist/css/icons/font-awesome/scss/_mixins.scss
================================================
// Mixins
// --------------------------
@mixin fa-icon {
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
display: inline-block;
font-style: normal;
font-variant: normal;
font-weight: normal;
line-height: 1;
vertical-align: -.125em;
}
@mixin fa-icon-rotate($degrees, $rotation) {
-ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=#{$rotation})";
transform: rotate($degrees);
}
@mixin fa-icon-flip($horiz, $vert, $rotation) {
-ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=#{$rotation}, mirror=1)";
transform: scale($horiz, $vert);
}
// Only display content to screen readers. A la Bootstrap 4.
//
// See: http://a11yproject.com/posts/how-to-hide-content/
@mixin sr-only {
border: 0;
clip: rect(0, 0, 0, 0);
height: 1px;
margin: -1px;
overflow: hidden;
padding: 0;
position: absolute;
width: 1px;
}
// Use in conjunction with .sr-only to only display content when it's focused.
//
// Useful for "Skip to main content" links; see http://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/G1
//
// Credit: HTML5 Boilerplate
@mixin sr-only-focusable {
&:active,
&:focus {
clip: auto;
height: auto;
margin: 0;
overflow: visible;
position: static;
width: auto;
}
}
================================================
FILE: public/admin-panel/dist/css/icons/font-awesome/scss/_rotated-flipped.scss
================================================
// Rotated & Flipped Icons
// -------------------------
.#{$fa-css-prefix}-rotate-90 { @include fa-icon-rotate(90deg, 1); }
.#{$fa-css-prefix}-rotate-180 { @include fa-icon-rotate(180deg, 2); }
.#{$fa-css-prefix}-rotate-270 { @include fa-icon-rotate(270deg, 3); }
.#{$fa-css-prefix}-flip-horizontal { @include fa-icon-flip(-1, 1, 0); }
.#{$fa-css-prefix}-flip-vertical { @include fa-icon-flip(1, -1, 2); }
.#{$fa-css-prefix}-flip-horizontal.#{$fa-css-prefix}-flip-vertical { @include fa-icon-flip(-1, -1, 2); }
// Hook for IE8-9
// -------------------------
:root {
.#{$fa-css-prefix}-rotate-90,
.#{$fa-css-prefix}-rotate-180,
.#{$fa-css-prefix}-rotate-270,
.#{$fa-css-prefix}-flip-horizontal,
.#{$fa-css-prefix}-flip-vertical {
filter: none;
}
}
================================================
FILE: public/admin-panel/dist/css/icons/font-awesome/scss/_screen-reader.scss
================================================
// Screen Readers
// -------------------------
.sr-only { @include sr-only; }
.sr-only-focusable { @include sr-only-focusable; }
================================================
FILE: public/admin-panel/dist/css/icons/font-awesome/scss/_stacked.scss
================================================
// Stacked Icons
// -------------------------
.#{$fa-css-prefix}-stack {
display: inline-block;
height: 2em;
line-height: 2em;
position: relative;
vertical-align: middle;
width: 2em;
}
.#{$fa-css-prefix}-stack-1x,
.#{$fa-css-prefix}-stack-2x {
left: 0;
position: absolute;
text-align: center;
width: 100%;
}
.#{$fa-css-prefix}-stack-1x {
line-height: inherit;
}
.#{$fa-css-prefix}-stack-2x {
font-size: 2em;
}
.#{$fa-css-prefix}-inverse {
color: $fa-inverse;
}
================================================
FILE: public/admin-panel/dist/css/icons/font-awesome/scss/_variables.scss
================================================
// Variables
// --------------------------
$fa-font-path: "../webfonts" !default;
$fa-font-size-base: 16px !default;
$fa-css-prefix: fa !default;
$fa-version: "5.0.9" !default;
$fa-border-color: #eee !default;
$fa-inverse: #fff !default;
$fa-li-width: 2em !default;
// Convenience function used to set content property
@function fa-content($fa-var) {
@return unquote("\"#{ $fa-var }\"");
}
$fa-var-500px: \f26e;
$fa-var-accessible-icon: \f368;
$fa-var-accusoft: \f369;
$fa-var-address-book: \f2b9;
$fa-var-address-card: \f2bb;
$fa-var-adjust: \f042;
$fa-var-adn: \f170;
$fa-var-adversal: \f36a;
$fa-var-affiliatetheme: \f36b;
$fa-var-algolia: \f36c;
$fa-var-align-center: \f037;
$fa-var-align-justify: \f039;
$fa-var-align-left: \f036;
$fa-var-align-right: \f038;
$fa-var-allergies: \f461;
$fa-var-amazon: \f270;
$fa-var-amazon-pay: \f42c;
$fa-var-ambulance: \f0f9;
$fa-var-american-sign-language-interpreting: \f2a3;
$fa-var-amilia: \f36d;
$fa-var-anchor: \f13d;
$fa-var-android: \f17b;
$fa-var-angellist: \f209;
$fa-var-angle-double-down: \f103;
$fa-var-angle-double-left: \f100;
$fa-var-angle-double-right: \f101;
$fa-var-angle-double-up: \f102;
$fa-var-angle-down: \f107;
$fa-var-angle-left: \f104;
$fa-var-angle-right: \f105;
$fa-var-angle-up: \f106;
$fa-var-angrycreative: \f36e;
$fa-var-angular: \f420;
$fa-var-app-store: \f36f;
$fa-var-app-store-ios: \f370;
$fa-var-apper: \f371;
$fa-var-apple: \f179;
$fa-var-apple-pay: \f415;
$fa-var-archive: \f187;
$fa-var-arrow-alt-circle-down: \f358;
$fa-var-arrow-alt-circle-left: \f359;
$fa-var-arrow-alt-circle-right: \f35a;
$fa-var-arrow-alt-circle-up: \f35b;
$fa-var-arrow-circle-down: \f0ab;
$fa-var-arrow-circle-left: \f0a8;
$fa-var-arrow-circle-right: \f0a9;
$fa-var-arrow-circle-up: \f0aa;
$fa-var-arrow-down: \f063;
$fa-var-arrow-left: \f060;
$fa-var-arrow-right: \f061;
$fa-var-arrow-up: \f062;
$fa-var-arrows-alt: \f0b2;
$fa-var-arrows-alt-h: \f337;
$fa-var-arrows-alt-v: \f338;
$fa-var-assistive-listening-systems: \f2a2;
$fa-var-asterisk: \f069;
$fa-var-asymmetrik: \f372;
$fa-var-at: \f1fa;
$fa-var-audible: \f373;
$fa-var-audio-description: \f29e;
$fa-var-autoprefixer: \f41c;
$fa-var-avianex: \f374;
$fa-var-aviato: \f421;
$fa-var-aws: \f375;
$fa-var-backward: \f04a;
$fa-var-balance-scale: \f24e;
$fa-var-ban: \f05e;
$fa-var-band-aid: \f462;
$fa-var-bandcamp: \f2d5;
$fa-var-barcode: \f02a;
$fa-var-bars: \f0c9;
$fa-var-baseball-ball: \f433;
$fa-var-basketball-ball: \f434;
$fa-var-bath: \f2cd;
$fa-var-battery-empty: \f244;
$fa-var-battery-full: \f240;
$fa-var-battery-half: \f242;
$fa-var-battery-quarter: \f243;
$fa-var-battery-three-quarters: \f241;
$fa-var-bed: \f236;
$fa-var-beer: \f0fc;
$fa-var-behance: \f1b4;
$fa-var-behance-square: \f1b5;
$fa-var-bell: \f0f3;
$fa-var-bell-slash: \f1f6;
$fa-var-bicycle: \f206;
$fa-var-bimobject: \f378;
$fa-var-binoculars: \f1e5;
$fa-var-birthday-cake: \f1fd;
$fa-var-bitbucket: \f171;
$fa-var-bitcoin: \f379;
$fa-var-bity: \f37a;
$fa-var-black-tie: \f27e;
$fa-var-blackberry: \f37b;
$fa-var-blind: \f29d;
$fa-var-blogger: \f37c;
$fa-var-blogger-b: \f37d;
$fa-var-bluetooth: \f293;
$fa-var-bluetooth-b: \f294;
$fa-var-bold: \f032;
$fa-var-bolt: \f0e7;
$fa-var-bomb: \f1e2;
$fa-var-book: \f02d;
$fa-var-bookmark: \f02e;
$fa-var-bowling-ball: \f436;
$fa-var-box: \f466;
$fa-var-box-open: \f49e;
$fa-var-boxes: \f468;
$fa-var-braille: \f2a1;
$fa-var-briefcase: \f0b1;
$fa-var-briefcase-medical: \f469;
$fa-var-btc: \f15a;
$fa-var-bug: \f188;
$fa-var-building: \f1ad;
$fa-var-bullhorn: \f0a1;
$fa-var-bullseye: \f140;
$fa-var-burn: \f46a;
$fa-var-buromobelexperte: \f37f;
$fa-var-bus: \f207;
$fa-var-buysellads: \f20d;
$fa-var-calculator: \f1ec;
$fa-var-calendar: \f133;
$fa-var-calendar-alt: \f073;
$fa-var-calendar-check: \f274;
$fa-var-calendar-minus: \f272;
$fa-var-calendar-plus: \f271;
$fa-var-calendar-times: \f273;
$fa-var-camera: \f030;
$fa-var-camera-retro: \f083;
$fa-var-capsules: \f46b;
$fa-var-car: \f1b9;
$fa-var-caret-down: \f0d7;
$fa-var-caret-left: \f0d9;
$fa-var-caret-right: \f0da;
$fa-var-caret-square-down: \f150;
$fa-var-caret-square-left: \f191;
$fa-var-caret-square-right: \f152;
$fa-var-caret-square-up: \f151;
$fa-var-caret-up: \f0d8;
$fa-var-cart-arrow-down: \f218;
$fa-var-cart-plus: \f217;
$fa-var-cc-amazon-pay: \f42d;
$fa-var-cc-amex: \f1f3;
$fa-var-cc-apple-pay: \f416;
$fa-var-cc-diners-club: \f24c;
$fa-var-cc-discover: \f1f2;
$fa-var-cc-jcb: \f24b;
$fa-var-cc-mastercard: \f1f1;
$fa-var-cc-paypal: \f1f4;
$fa-var-cc-stripe: \f1f5;
$fa-var-cc-visa: \f1f0;
$fa-var-centercode: \f380;
$fa-var-certificate: \f0a3;
$fa-var-chart-area: \f1fe;
$fa-var-chart-bar: \f080;
$fa-var-chart-line: \f201;
$fa-var-chart-pie: \f200;
$fa-var-check: \f00c;
$fa-var-check-circle: \f058;
$fa-var-check-square: \f14a;
$fa-var-chess: \f439;
$fa-var-chess-bishop: \f43a;
$fa-var-chess-board: \f43c;
$fa-var-chess-king: \f43f;
$fa-var-chess-knight: \f441;
$fa-var-chess-pawn: \f443;
$fa-var-chess-queen: \f445;
$fa-var-chess-rook: \f447;
$fa-var-chevron-circle-down: \f13a;
$fa-var-chevron-circle-left: \f137;
$fa-var-chevron-circle-right: \f138;
$fa-var-chevron-circle-up: \f139;
$fa-var-chevron-down: \f078;
$fa-var-chevron-left: \f053;
$fa-var-chevron-right: \f054;
$fa-var-chevron-up: \f077;
$fa-var-child: \f1ae;
$fa-var-chrome: \f268;
$fa-var-circle: \f111;
$fa-var-circle-notch: \f1ce;
$fa-var-clipboard: \f328;
$fa-var-clipboard-check: \f46c;
$fa-var-clipboard-list: \f46d;
$fa-var-clock: \f017;
$fa-var-clone: \f24d;
$fa-var-closed-captioning: \f20a;
$fa-var-cloud: \f0c2;
$fa-var-cloud-download-alt: \f381;
$fa-var-cloud-upload-alt: \f382;
$fa-var-cloudscale: \f383;
$fa-var-cloudsmith: \f384;
$fa-var-cloudversify: \f385;
$fa-var-code: \f121;
$fa-var-code-branch: \f126;
$fa-var-codepen: \f1cb;
$fa-var-codiepie: \f284;
$fa-var-coffee: \f0f4;
$fa-var-cog: \f013;
$fa-var-cogs: \f085;
$fa-var-columns: \f0db;
$fa-var-comment: \f075;
$fa-var-comment-alt: \f27a;
$fa-var-comment-dots: \f4ad;
$fa-var-comment-slash: \f4b3;
$fa-var-comments: \f086;
$fa-var-compass: \f14e;
$fa-var-compress: \f066;
$fa-var-connectdevelop: \f20e;
$fa-var-contao: \f26d;
$fa-var-copy: \f0c5;
$fa-var-copyright: \f1f9;
$fa-var-couch: \f4b8;
$fa-var-cpanel: \f388;
$fa-var-creative-commons: \f25e;
$fa-var-credit-card: \f09d;
$fa-var-crop: \f125;
$fa-var-crosshairs: \f05b;
$fa-var-css3: \f13c;
$fa-var-css3-alt: \f38b;
$fa-var-cube: \f1b2;
$fa-var-cubes: \f1b3;
$fa-var-cut: \f0c4;
$fa-var-cuttlefish: \f38c;
$fa-var-d-and-d: \f38d;
$fa-var-dashcube: \f210;
$fa-var-database: \f1c0;
$fa-var-deaf: \f2a4;
$fa-var-delicious: \f1a5;
$fa-var-deploydog: \f38e;
$fa-var-deskpro: \f38f;
$fa-var-desktop: \f108;
$fa-var-deviantart: \f1bd;
$fa-var-diagnoses: \f470;
$fa-var-digg: \f1a6;
$fa-var-digital-ocean: \f391;
$fa-var-discord: \f392;
$fa-var-discourse: \f393;
$fa-var-dna: \f471;
$fa-var-dochub: \f394;
$fa-var-docker: \f395;
$fa-var-dollar-sign: \f155;
$fa-var-dolly: \f472;
$fa-var-dolly-flatbed: \f474;
$fa-var-donate: \f4b9;
$fa-var-dot-circle: \f192;
$fa-var-dove: \f4ba;
$fa-var-download: \f019;
$fa-var-draft2digital: \f396;
$fa-var-dribbble: \f17d;
$fa-var-dribbble-square: \f397;
$fa-var-dropbox: \f16b;
$fa-var-drupal: \f1a9;
$fa-var-dyalog: \f399;
$fa-var-earlybirds: \f39a;
$fa-var-edge: \f282;
$fa-var-edit: \f044;
$fa-var-eject: \f052;
$fa-var-elementor: \f430;
$fa-var-ellipsis-h: \f141;
$fa-var-ellipsis-v: \f142;
$fa-var-ember: \f423;
$fa-var-empire: \f1d1;
$fa-var-envelope: \f0e0;
$fa-var-envelope-open: \f2b6;
$fa-var-envelope-square: \f199;
$fa-var-envira: \f299;
$fa-var-eraser: \f12d;
$fa-var-erlang: \f39d;
$fa-var-ethereum: \f42e;
$fa-var-etsy: \f2d7;
$fa-var-euro-sign: \f153;
$fa-var-exchange-alt: \f362;
$fa-var-exclamation: \f12a;
$fa-var-exclamation-circle: \f06a;
$fa-var-exclamation-triangle: \f071;
$fa-var-expand: \f065;
$fa-var-expand-arrows-alt: \f31e;
$fa-var-expeditedssl: \f23e;
$fa-var-external-link-alt: \f35d;
$fa-var-external-link-square-alt: \f360;
$fa-var-eye: \f06e;
$fa-var-eye-dropper: \f1fb;
$fa-var-eye-slash: \f070;
$fa-var-facebook: \f09a;
$fa-var-facebook-f: \f39e;
$fa-var-facebook-messenger: \f39f;
$fa-var-facebook-square: \f082;
$fa-var-fast-backward: \f049;
$fa-var-fast-forward: \f050;
$fa-var-fax: \f1ac;
$fa-var-female: \f182;
$fa-var-fighter-jet: \f0fb;
$fa-var-file: \f15b;
$fa-var-file-alt: \f15c;
$fa-var-file-archive: \f1c6;
$fa-var-file-audio: \f1c7;
$fa-var-file-code: \f1c9;
$fa-var-file-excel: \f1c3;
$fa-var-file-image: \f1c5;
$fa-var-file-medical: \f477;
$fa-var-file-medical-alt: \f478;
$fa-var-file-pdf: \f1c1;
$fa-var-file-powerpoint: \f1c4;
$fa-var-file-video: \f1c8;
$fa-var-file-word: \f1c2;
$fa-var-film: \f008;
$fa-var-filter: \f0b0;
$fa-var-fire: \f06d;
$fa-var-fire-extinguisher: \f134;
$fa-var-firefox: \f269;
$fa-var-first-aid: \f479;
$fa-var-first-order: \f2b0;
$fa-var-firstdraft: \f3a1;
$fa-var-flag: \f024;
$fa-var-flag-checkered: \f11e;
$fa-var-flask: \f0c3;
$fa-var-flickr: \f16e;
$fa-var-flipboard: \f44d;
$fa-var-fly: \f417;
$fa-var-folder: \f07b;
$fa-var-folder-open: \f07c;
$fa-var-font: \f031;
$fa-var-font-awesome: \f2b4;
$fa-var-font-awesome-alt: \f35c;
$fa-var-font-awesome-flag: \f425;
$fa-var-fonticons: \f280;
$fa-var-fonticons-fi: \f3a2;
$fa-var-football-ball: \f44e;
$fa-var-fort-awesome: \f286;
$fa-var-fort-awesome-alt: \f3a3;
$fa-var-forumbee: \f211;
$fa-var-forward: \f04e;
$fa-var-foursquare: \f180;
$fa-var-free-code-camp: \f2c5;
$fa-var-freebsd: \f3a4;
$fa-var-frown: \f119;
$fa-var-futbol: \f1e3;
$fa-var-gamepad: \f11b;
$fa-var-gavel: \f0e3;
$fa-var-gem: \f3a5;
$fa-var-genderless: \f22d;
$fa-var-get-pocket: \f265;
$fa-var-gg: \f260;
$fa-var-gg-circle: \f261;
$fa-var-gift: \f06b;
$fa-var-git: \f1d3;
$fa-var-git-square: \f1d2;
$fa-var-github: \f09b;
$fa-var-github-alt: \f113;
$fa-var-github-square: \f092;
$fa-var-gitkraken: \f3a6;
$fa-var-gitlab: \f296;
$fa-var-gitter: \f426;
$fa-var-glass-martini: \f000;
$fa-var-glide: \f2a5;
$fa-var-glide-g: \f2a6;
$fa-var-globe: \f0ac;
$fa-var-gofore: \f3a7;
$fa-var-golf-ball: \f450;
$fa-var-goodreads: \f3a8;
$fa-var-goodreads-g: \f3a9;
$fa-var-google: \f1a0;
$fa-var-google-drive: \f3aa;
$fa-var-google-play: \f3ab;
$fa-var-google-plus: \f2b3;
$fa-var-google-plus-g: \f0d5;
$fa-var-google-plus-square: \f0d4;
$fa-var-google-wallet: \f1ee;
$fa-var-graduation-cap: \f19d;
$fa-var-gratipay: \f184;
$fa-var-grav: \f2d6;
$fa-var-gripfire: \f3ac;
$fa-var-grunt: \f3ad;
$fa-var-gulp: \f3ae;
$fa-var-h-square: \f0fd;
$fa-var-hacker-news: \f1d4;
$fa-var-hacker-news-square: \f3af;
$fa-var-hand-holding: \f4bd;
$fa-var-hand-holding-heart: \f4be;
$fa-var-hand-holding-usd: \f4c0;
$fa-var-hand-lizard: \f258;
$fa-var-hand-paper: \f256;
$fa-var-hand-peace: \f25b;
$fa-var-hand-point-down: \f0a7;
$fa-var-hand-point-left: \f0a5;
$fa-var-hand-point-right: \f0a4;
$fa-var-hand-point-up: \f0a6;
$fa-var-hand-pointer: \f25a;
$fa-var-hand-rock: \f255;
$fa-var-hand-scissors: \f257;
$fa-var-hand-spock: \f259;
$fa-var-hands: \f4c2;
$fa-var-hands-helping: \f4c4;
$fa-var-handshake: \f2b5;
$fa-var-hashtag: \f292;
$fa-var-hdd: \f0a0;
$fa-var-heading: \f1dc;
$fa-var-headphones: \f025;
$fa-var-heart: \f004;
$fa-var-heartbeat: \f21e;
$fa-var-hips: \f452;
$fa-var-hire-a-helper: \f3b0;
$fa-var-history: \f1da;
$fa-var-hockey-puck: \f453;
$fa-var-home: \f015;
$fa-var-hooli: \f427;
$fa-var-hospital: \f0f8;
$fa-var-hospital-alt: \f47d;
$fa-var-hospital-symbol: \f47e;
$fa-var-hotjar: \f3b1;
$fa-var-hourglass: \f254;
$fa-var-hourglass-end: \f253;
$fa-var-hourglass-half: \f252;
$fa-var-hourglass-start: \f251;
$fa-var-houzz: \f27c;
$fa-var-html5: \f13b;
$fa-var-hubspot: \f3b2;
$fa-var-i-cursor: \f246;
$fa-var-id-badge: \f2c1;
$fa-var-id-card: \f2c2;
$fa-var-id-card-alt: \f47f;
$fa-var-image: \f03e;
$fa-var-images: \f302;
$fa-var-imdb: \f2d8;
$fa-var-inbox: \f01c;
$fa-var-indent: \f03c;
$fa-var-industry: \f275;
$fa-var-info: \f129;
$fa-var-info-circle: \f05a;
$fa-var-instagram: \f16d;
$fa-var-internet-explorer: \f26b;
$fa-var-ioxhost: \f208;
$fa-var-italic: \f033;
$fa-var-itunes: \f3b4;
$fa-var-itunes-note: \f3b5;
$fa-var-jenkins: \f3b6;
$fa-var-joget: \f3b7;
$fa-var-joomla: \f1aa;
$fa-var-js: \f3b8;
$fa-var-js-square: \f3b9;
$fa-var-jsfiddle: \f1cc;
$fa-var-key: \f084;
$fa-var-keyboard: \f11c;
$fa-var-keycdn: \f3ba;
$fa-var-kickstarter: \f3bb;
$fa-var-kickstarter-k: \f3bc;
$fa-var-korvue: \f42f;
$fa-var-language: \f1ab;
$fa-var-laptop: \f109;
$fa-var-laravel: \f3bd;
$fa-var-lastfm: \f202;
$fa-var-lastfm-square: \f203;
$fa-var-leaf: \f06c;
$fa-var-leanpub: \f212;
$fa-var-lemon: \f094;
$fa-var-less: \f41d;
$fa-var-level-down-alt: \f3be;
$fa-var-level-up-alt: \f3bf;
$fa-var-life-ring: \f1cd;
$fa-var-lightbulb: \f0eb;
$fa-var-line: \f3c0;
$fa-var-link: \f0c1;
$fa-var-linkedin: \f08c;
$fa-var-linkedin-in: \f0e1;
$fa-var-linode: \f2b8;
$fa-var-linux: \f17c;
$fa-var-lira-sign: \f195;
$fa-var-list: \f03a;
$fa-var-list-alt: \f022;
$fa-var-list-ol: \f0cb;
$fa-var-list-ul: \f0ca;
$fa-var-location-arrow: \f124;
$fa-var-lock: \f023;
$fa-var-lock-open: \f3c1;
$fa-var-long-arrow-alt-down: \f309;
$fa-var-long-arrow-alt-left: \f30a;
$fa-var-long-arrow-alt-right: \f30b;
$fa-var-long-arrow-alt-up: \f30c;
$fa-var-low-vision: \f2a8;
$fa-var-lyft: \f3c3;
$fa-var-magento: \f3c4;
$fa-var-magic: \f0d0;
$fa-var-magnet: \f076;
$fa-var-male: \f183;
$fa-var-map: \f279;
$fa-var-map-marker: \f041;
$fa-var-map-marker-alt: \f3c5;
$fa-var-map-pin: \f276;
$fa-var-map-signs: \f277;
$fa-var-mars: \f222;
$fa-var-mars-double: \f227;
$fa-var-mars-stroke: \f229;
$fa-var-mars-stroke-h: \f22b;
$fa-var-mars-stroke-v: \f22a;
$fa-var-maxcdn: \f136;
$fa-var-medapps: \f3c6;
$fa-var-medium: \f23a;
$fa-var-medium-m: \f3c7;
$fa-var-medkit: \f0fa;
$fa-var-medrt: \f3c8;
$fa-var-meetup: \f2e0;
$fa-var-meh: \f11a;
$fa-var-mercury: \f223;
$fa-var-microchip: \f2db;
$fa-var-microphone: \f130;
$fa-var-microphone-slash: \f131;
$fa-var-microsoft: \f3ca;
$fa-var-minus: \f068;
$fa-var-minus-circle: \f056;
$fa-var-minus-square: \f146;
$fa-var-mix: \f3cb;
$fa-var-mixcloud: \f289;
$fa-var-mizuni: \f3cc;
$fa-var-mobile: \f10b;
$fa-var-mobile-alt: \f3cd;
$fa-var-modx: \f285;
$fa-var-monero: \f3d0;
$fa-var-money-bill-alt: \f3d1;
$fa-var-moon: \f186;
$fa-var-motorcycle: \f21c;
$fa-var-mouse-pointer: \f245;
$fa-var-music: \f001;
$fa-var-napster: \f3d2;
$fa-var-neuter: \f22c;
$fa-var-newspaper: \f1ea;
$fa-var-nintendo-switch: \f418;
$fa-var-node: \f419;
$fa-var-node-js: \f3d3;
$fa-var-notes-medical: \f481;
$fa-var-npm: \f3d4;
$fa-var-ns8: \f3d5;
$fa-var-nutritionix: \f3d6;
$fa-var-object-group: \f247;
$fa-var-object-ungroup: \f248;
$fa-var-odnoklassniki: \f263;
$fa-var-odnoklassniki-square: \f264;
$fa-var-opencart: \f23d;
$fa-var-openid: \f19b;
$fa-var-opera: \f26a;
$fa-var-optin-monster: \f23c;
$fa-var-osi: \f41a;
$fa-var-outdent: \f03b;
$fa-var-page4: \f3d7;
$fa-var-pagelines: \f18c;
$fa-var-paint-brush: \f1fc;
$fa-var-palfed: \f3d8;
$fa-var-pallet: \f482;
$fa-var-paper-plane: \f1d8;
$fa-var-paperclip: \f0c6;
$fa-var-parachute-box: \f4cd;
$fa-var-paragraph: \f1dd;
$fa-var-paste: \f0ea;
$fa-var-patreon: \f3d9;
$fa-var-pause: \f04c;
$fa-var-pause-circle: \f28b;
$fa-var-paw: \f1b0;
$fa-var-paypal: \f1ed;
$fa-var-pen-square: \f14b;
$fa-var-pencil-alt: \f303;
$fa-var-people-carry: \f4ce;
$fa-var-percent: \f295;
$fa-var-periscope: \f3da;
$fa-var-phabricator: \f3db;
$fa-var-phoenix-framework: \f3dc;
$fa-var-phone: \f095;
$fa-var-phone-slash: \f3dd;
$fa-var-phone-square: \f098;
$fa-var-phone-volume: \f2a0;
$fa-var-php: \f457;
$fa-var-pied-piper: \f2ae;
$fa-var-pied-piper-alt: \f1a8;
$fa-var-pied-piper-pp: \f1a7;
$fa-var-piggy-bank: \f4d3;
$fa-var-pills: \f484;
$fa-var-pinterest: \f0d2;
$fa-var-pinterest-p: \f231;
$fa-var-pinterest-square: \f0d3;
$fa-var-plane: \f072;
$fa-var-play: \f04b;
$fa-var-play-circle: \f144;
$fa-var-playstation: \f3df;
$fa-var-plug: \f1e6;
$fa-var-plus: \f067;
$fa-var-plus-circle: \f055;
$fa-var-plus-square: \f0fe;
$fa-var-podcast: \f2ce;
$fa-var-poo: \f2fe;
$fa-var-pound-sign: \f154;
$fa-var-power-off: \f011;
$fa-var-prescription-bottle: \f485;
$fa-var-prescription-bottle-alt: \f486;
$fa-var-print: \f02f;
$fa-var-procedures: \f487;
$fa-var-product-hunt: \f288;
$fa-var-pushed: \f3e1;
$fa-var-puzzle-piece: \f12e;
$fa-var-python: \f3e2;
$fa-var-qq: \f1d6;
$fa-var-qrcode: \f029;
$fa-var-question: \f128;
$fa-var-question-circle: \f059;
$fa-var-quidditch: \f458;
$fa-var-quinscape: \f459;
$fa-var-quora: \f2c4;
$fa-var-quote-left: \f10d;
$fa-var-quote-right: \f10e;
$fa-var-random: \f074;
$fa-var-ravelry: \f2d9;
$fa-var-react: \f41b;
$fa-var-readme: \f4d5;
$fa-var-rebel: \f1d0;
$fa-var-recycle: \f1b8;
$fa-var-red-river: \f3e3;
$fa-var-reddit: \f1a1;
$fa-var-reddit-alien: \f281;
$fa-var-reddit-square: \f1a2;
$fa-var-redo: \f01e;
$fa-var-redo-alt: \f2f9;
$fa-var-registered: \f25d;
$fa-var-rendact: \f3e4;
$fa-var-renren: \f18b;
$fa-var-reply: \f3e5;
$fa-var-reply-all: \f122;
$fa-var-replyd: \f3e6;
$fa-var-resolving: \f3e7;
$fa-var-retweet: \f079;
$fa-var-ribbon: \f4d6;
$fa-var-road: \f018;
$fa-var-rocket: \f135;
$fa-var-rocketchat: \f3e8;
$fa-var-rockrms: \f3e9;
$fa-var-rss: \f09e;
$fa-var-rss-square: \f143;
$fa-var-ruble-sign: \f158;
$fa-var-rupee-sign: \f156;
$fa-var-safari: \f267;
$fa-var-sass: \f41e;
$fa-var-save: \f0c7;
$fa-var-schlix: \f3ea;
$fa-var-scribd: \f28a;
$fa-var-search: \f002;
$fa-var-search-minus: \f010;
$fa-var-search-plus: \f00e;
$fa-var-searchengin: \f3eb;
$fa-var-seedling: \f4d8;
$fa-var-sellcast: \f2da;
$fa-var-sellsy: \f213;
$fa-var-server: \f233;
$fa-var-servicestack: \f3ec;
$fa-var-share: \f064;
$fa-var-share-alt: \f1e0;
$fa-var-share-alt-square: \f1e1;
$fa-var-share-square: \f14d;
$fa-var-shekel-sign: \f20b;
$fa-var-shield-alt: \f3ed;
$fa-var-ship: \f21a;
$fa-var-shipping-fast: \f48b;
$fa-var-shirtsinbulk: \f214;
$fa-var-shopping-bag: \f290;
$fa-var-shopping-basket: \f291;
$fa-var-shopping-cart: \f07a;
$fa-var-shower: \f2cc;
$fa-var-sign: \f4d9;
$fa-var-sign-in-alt: \f2f6;
$fa-var-sign-language: \f2a7;
$fa-var-sign-out-alt: \f2f5;
$fa-var-signal: \f012;
$fa-var-simplybuilt: \f215;
$fa-var-sistrix: \f3ee;
$fa-var-sitemap: \f0e8;
$fa-var-skyatlas: \f216;
$fa-var-skype: \f17e;
$fa-var-slack: \f198;
$fa-var-slack-hash: \f3ef;
$fa-var-sliders-h: \f1de;
$fa-var-slideshare: \f1e7;
$fa-var-smile: \f118;
$fa-var-smoking: \f48d;
$fa-var-snapchat: \f2ab;
$fa-var-snapchat-ghost: \f2ac;
$fa-var-snapchat-square: \f2ad;
$fa-var-snowflake: \f2dc;
$fa-var-sort: \f0dc;
$fa-var-sort-alpha-down: \f15d;
$fa-var-sort-alpha-up: \f15e;
$fa-var-sort-amount-down: \f160;
$fa-var-sort-amount-up: \f161;
$fa-var-sort-down: \f0dd;
$fa-var-sort-numeric-down: \f162;
$fa-var-sort-numeric-up: \f163;
$fa-var-sort-up: \f0de;
$fa-var-soundcloud: \f1be;
$fa-var-space-shuttle: \f197;
$fa-var-speakap: \f3f3;
$fa-var-spinner: \f110;
$fa-var-spotify: \f1bc;
$fa-var-square: \f0c8;
$fa-var-square-full: \f45c;
$fa-var-stack-exchange: \f18d;
$fa-var-stack-overflow: \f16c;
$fa-var-star: \f005;
$fa-var-star-half: \f089;
$fa-var-staylinked: \f3f5;
$fa-var-steam: \f1b6;
$fa-var-steam-square: \f1b7;
$fa-var-steam-symbol: \f3f6;
$fa-var-step-backward: \f048;
$fa-var-step-forward: \f051;
$fa-var-stethoscope: \f0f1;
$fa-var-sticker-mule: \f3f7;
$fa-var-sticky-note: \f249;
$fa-var-stop: \f04d;
$fa-var-stop-circle: \f28d;
$fa-var-stopwatch: \f2f2;
$fa-var-strava: \f428;
$fa-var-street-view: \f21d;
$fa-var-strikethrough: \f0cc;
$fa-var-stripe: \f429;
$fa-var-stripe-s: \f42a;
$fa-var-studiovinari: \f3f8;
$fa-var-stumbleupon: \f1a4;
$fa-var-stumbleupon-circle: \f1a3;
$fa-var-subscript: \f12c;
$fa-var-subway: \f239;
$fa-var-suitcase: \f0f2;
$fa-var-sun: \f185;
$fa-var-superpowers: \f2dd;
$fa-var-superscript: \f12b;
$fa-var-supple: \f3f9;
$fa-var-sync: \f021;
$fa-var-sync-alt: \f2f1;
$fa-var-syringe: \f48e;
$fa-var-table: \f0ce;
$fa-var-table-tennis: \f45d;
$fa-var-tablet: \f10a;
$fa-var-tablet-alt: \f3fa;
$fa-var-tablets: \f490;
$fa-var-tachometer-alt: \f3fd;
$fa-var-tag: \f02b;
$fa-var-tags: \f02c;
$fa-var-tape: \f4db;
$fa-var-tasks: \f0ae;
$fa-var-taxi: \f1ba;
$fa-var-telegram: \f2c6;
$fa-var-telegram-plane: \f3fe;
$fa-var-tencent-weibo: \f1d5;
$fa-var-terminal: \f120;
$fa-var-text-height: \f034;
$fa-var-text-width: \f035;
$fa-var-th: \f00a;
$fa-var-th-large: \f009;
$fa-var-th-list: \f00b;
$fa-var-themeisle: \f2b2;
$fa-var-thermometer: \f491;
$fa-var-thermometer-empty: \f2cb;
$fa-var-thermometer-full: \f2c7;
$fa-var-thermometer-half: \f2c9;
$fa-var-thermometer-quarter: \f2ca;
$fa-var-thermometer-three-quarters: \f2c8;
$fa-var-thumbs-down: \f165;
$fa-var-thumbs-up: \f164;
$fa-var-thumbtack: \f08d;
$fa-var-ticket-alt: \f3ff;
$fa-var-times: \f00d;
$fa-var-times-circle: \f057;
$fa-var-tint: \f043;
$fa-var-toggle-off: \f204;
$fa-var-toggle-on: \f205;
$fa-var-trademark: \f25c;
$fa-var-train: \f238;
$fa-var-transgender: \f224;
$fa-var-transgender-alt: \f225;
$fa-var-trash: \f1f8;
$fa-var-trash-alt: \f2ed;
$fa-var-tree: \f1bb;
$fa-var-trello: \f181;
$fa-var-tripadvisor: \f262;
$fa-var-trophy: \f091;
$fa-var-truck: \f0d1;
$fa-var-truck-loading: \f4de;
$fa-var-truck-moving: \f4df;
$fa-var-tty: \f1e4;
$fa-var-tumblr: \f173;
$fa-var-tumblr-square: \f174;
$fa-var-tv: \f26c;
$fa-var-twitch: \f1e8;
$fa-var-twitter: \f099;
$fa-var-twitter-square: \f081;
$fa-var-typo3: \f42b;
$fa-var-uber: \f402;
$fa-var-uikit: \f403;
$fa-var-umbrella: \f0e9;
$fa-var-underline: \f0cd;
$fa-var-undo: \f0e2;
$fa-var-undo-alt: \f2ea;
$fa-var-uniregistry: \f404;
$fa-var-universal-access: \f29a;
$fa-var-university: \f19c;
$fa-var-unlink: \f127;
$fa-var-unlock: \f09c;
$fa-var-unlock-alt: \f13e;
$fa-var-untappd: \f405;
$fa-var-upload: \f093;
$fa-var-usb: \f287;
$fa-var-user: \f007;
$fa-var-user-circle: \f2bd;
$fa-var-user-md: \f0f0;
$fa-var-user-plus: \f234;
$fa-var-user-secret: \f21b;
$fa-var-user-times: \f235;
$fa-var-users: \f0c0;
$fa-var-ussunnah: \f407;
$fa-var-utensil-spoon: \f2e5;
$fa-var-utensils: \f2e7;
$fa-var-vaadin: \f408;
$fa-var-venus: \f221;
$fa-var-venus-double: \f226;
$fa-var-venus-mars: \f228;
$fa-var-viacoin: \f237;
$fa-var-viadeo: \f2a9;
$fa-var-viadeo-square: \f2aa;
$fa-var-vial: \f492;
$fa-var-vials: \f493;
$fa-var-viber: \f409;
$fa-var-video: \f03d;
$fa-var-video-slash: \f4e2;
$fa-var-vimeo: \f40a;
$fa-var-vimeo-square: \f194;
$fa-var-vimeo-v: \f27d;
$fa-var-vine: \f1ca;
$fa-var-vk: \f189;
$fa-var-vnv: \f40b;
$fa-var-volleyball-ball: \f45f;
$fa-var-volume-down: \f027;
$fa-var-volume-off: \f026;
$fa-var-volume-up: \f028;
$fa-var-vuejs: \f41f;
$fa-var-warehouse: \f494;
$fa-var-weibo: \f18a;
$fa-var-weight: \f496;
$fa-var-weixin: \f1d7;
$fa-var-whatsapp: \f232;
$fa-var-whatsapp-square: \f40c;
$fa-var-wheelchair: \f193;
$fa-var-whmcs: \f40d;
$fa-var-wifi: \f1eb;
$fa-var-wikipedia-w: \f266;
$fa-var-window-close: \f410;
$fa-var-window-maximize: \f2d0;
$fa-var-window-minimize: \f2d1;
$fa-var-window-restore: \f2d2;
$fa-var-windows: \f17a;
$fa-var-wine-glass: \f4e3;
$fa-var-won-sign: \f159;
$fa-var-wordpress: \f19a;
$fa-var-wordpress-simple: \f411;
$fa-var-wpbeginner: \f297;
$fa-var-wpexplorer: \f2de;
$fa-var-wpforms: \f298;
$fa-var-wrench: \f0ad;
$fa-var-x-ray: \f497;
$fa-var-xbox: \f412;
$fa-var-xing: \f168;
$fa-var-xing-square: \f169;
$fa-var-y-combinator: \f23b;
$fa-var-yahoo: \f19e;
$fa-var-yandex: \f413;
$fa-var-yandex-international: \f414;
$fa-var-yelp: \f1e9;
$fa-var-yen-sign: \f157;
$fa-var-yoast: \f2b1;
$fa-var-youtube: \f167;
$fa-var-youtube-square: \f431;
================================================
FILE: public/admin-panel/dist/css/icons/font-awesome/scss/fa-brands.scss
================================================
/*!
* Font Awesome Free 5.0.9 by @fontawesome - https://fontawesome.com
* License - https://fontawesome.com/license (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
*/
@import 'variables';
@font-face {
font-family: 'Font Awesome 5 Brands';
font-style: normal;
font-weight: normal;
src: url('#{$fa-font-path}/fa-brands-400.eot');
src: url('#{$fa-font-path}/fa-brands-400.eot?#iefix') format('embedded-opentype'),
url('#{$fa-font-path}/fa-brands-400.woff2') format('woff2'),
url('#{$fa-font-path}/fa-brands-400.woff') format('woff'),
url('#{$fa-font-path}/fa-brands-400.ttf') format('truetype'),
url('#{$fa-font-path}/fa-brands-400.svg#fontawesome') format('svg');
}
.fab {
font-family: 'Font Awesome 5 Brands';
}
================================================
FILE: public/admin-panel/dist/css/icons/font-awesome/scss/fa-regular.scss
================================================
/*!
* Font Awesome Free 5.0.9 by @fontawesome - https://fontawesome.com
* License - https://fontawesome.com/license (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
*/
@import 'variables';
@font-face {
font-family: 'Font Awesome 5 Free';
font-style: normal;
font-weight: 400;
src: url('#{$fa-font-path}/fa-regular-400.eot');
src: url('#{$fa-font-path}/fa-regular-400.eot?#iefix') format('embedded-opentype'),
url('#{$fa-font-path}/fa-regular-400.woff2') format('woff2'),
url('#{$fa-font-path}/fa-regular-400.woff') format('woff'),
url('#{$fa-font-path}/fa-regular-400.ttf') format('truetype'),
url('#{$fa-font-path}/fa-regular-400.svg#fontawesome') format('svg');
}
.far {
font-family: 'Font Awesome 5 Free';
font-weight: 400;
}
================================================
FILE: public/admin-panel/dist/css/icons/font-awesome/scss/fa-solid.scss
================================================
/*!
* Font Awesome Free 5.0.9 by @fontawesome - https://fontawesome.com
* License - https://fontawesome.com/license (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
*/
@import 'variables';
@font-face {
font-family: 'Font Awesome 5 Free';
font-style: normal;
font-weight: 900;
src: url('#{$fa-font-path}/fa-solid-900.eot');
src: url('#{$fa-font-path}/fa-solid-900.eot?#iefix') format('embedded-opentype'),
url('#{$fa-font-path}/fa-solid-900.woff2') format('woff2'),
url('#{$fa-font-path}/fa-solid-900.woff') format('woff'),
url('#{$fa-font-path}/fa-solid-900.ttf') format('truetype'),
url('#{$fa-font-path}/fa-solid-900.svg#fontawesome') format('svg');
}
.fa,
.fas {
font-family: 'Font Awesome 5 Free';
font-weight: 900;
}
================================================
FILE: public/admin-panel/dist/css/icons/font-awesome/scss/fontawesome.scss
================================================
/*!
* Font Awesome Free 5.0.9 by @fontawesome - https://fontawesome.com
* License - https://fontawesome.com/license (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
*/
@import 'variables';
@import 'mixins';
@import 'core';
@import 'larger';
@import 'fixed-width';
@import 'list';
@import 'bordered-pulled';
@import 'animated';
@import 'rotated-flipped';
@import 'stacked';
@import 'icons';
@import 'screen-reader';
================================================
FILE: public/admin-panel/dist/css/icons/material-design-iconic-font/css/material-design-iconic-font.css
================================================
/*!
* Material Design Iconic Font by Sergey Kupletsky (@zavoloklom) - http://zavoloklom.github.io/material-design-iconic-font/
* License - http://zavoloklom.github.io/material-design-iconic-font/license (Font: SIL OFL 1.1, CSS: MIT License)
*/
@font-face {
font-family: 'Material-Design-Iconic-Font';
src: url('..//fonts/Material-Design-Iconic-Font.woff2?v=2.2.0') format('woff2'), url('..//fonts/Material-Design-Iconic-Font.woff?v=2.2.0') format('woff'), url('..//fonts/Material-Design-Iconic-Font.ttf?v=2.2.0') format('truetype');
font-weight: normal;
font-style: normal;
}
.zmdi {
display: inline-block;
font: normal normal normal 14px/1 'Material-Design-Iconic-Font';
font-size: inherit;
text-rendering: auto;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
.zmdi-hc-lg {
font-size: 1.33333333em;
line-height: 0.75em;
vertical-align: -15%;
}
.zmdi-hc-2x {
font-size: 2em;
}
.zmdi-hc-3x {
font-size: 3em;
}
.zmdi-hc-4x {
font-size: 4em;
}
.zmdi-hc-5x {
font-size: 5em;
}
.zmdi-hc-fw {
width: 1.28571429em;
text-align: center;
}
.zmdi-hc-ul {
padding-left: 0;
margin-left: 2.14285714em;
list-style-type: none;
}
.zmdi-hc-ul > li {
position: relative;
}
.zmdi-hc-li {
position: absolute;
left: -2.14285714em;
width: 2.14285714em;
top: 0.14285714em;
text-align: center;
}
.zmdi-hc-li.zmdi-hc-lg {
left: -1.85714286em;
}
.zmdi-hc-border {
padding: .1em .25em;
border: solid 0.1em #9e9e9e;
border-radius: 2px;
}
.zmdi-hc-border-circle {
padding: .1em .25em;
border: solid 0.1em #9e9e9e;
border-radius: 50%;
}
.zmdi.pull-left {
float: left;
margin-right: .15em;
}
.zmdi.pull-right {
float: right;
margin-left: .15em;
}
.zmdi-hc-spin {
-webkit-animation: zmdi-spin 1.5s infinite linear;
animation: zmdi-spin 1.5s infinite linear;
}
.zmdi-hc-spin-reverse {
-webkit-animation: zmdi-spin-reverse 1.5s infinite linear;
animation: zmdi-spin-reverse 1.5s infinite linear;
}
@-webkit-keyframes zmdi-spin {
0% {
-webkit-transform: rotate(0deg);
transform: rotate(0deg);
}
100% {
-webkit-transform: rotate(359deg);
transform: rotate(359deg);
}
}
@keyframes zmdi-spin {
0% {
-webkit-transform: rotate(0deg);
transform: rotate(0deg);
}
100% {
-webkit-transform: rotate(359deg);
transform: rotate(359deg);
}
}
@-webkit-keyframes zmdi-spin-reverse {
0% {
-webkit-transform: rotate(0deg);
transform: rotate(0deg);
}
100% {
-webkit-transform: rotate(-359deg);
transform: rotate(-359deg);
}
}
@keyframes zmdi-spin-reverse {
0% {
-webkit-transform: rotate(0deg);
transform: rotate(0deg);
}
100% {
-webkit-transform: rotate(-359deg);
transform: rotate(-359deg);
}
}
.zmdi-hc-rotate-90 {
-webkit-transform: rotate(90deg);
-ms-transform: rotate(90deg);
transform: rotate(90deg);
}
.zmdi-hc-rotate-180 {
-webkit-transform: rotate(180deg);
-ms-transform: rotate(180deg);
transform: rotate(180deg);
}
.zmdi-hc-rotate-270 {
-webkit-transform: rotate(270deg);
-ms-transform: rotate(270deg);
transform: rotate(270deg);
}
.zmdi-hc-flip-horizontal {
-webkit-transform: scale(-1, 1);
-ms-transform: scale(-1, 1);
transform: scale(-1, 1);
}
.zmdi-hc-flip-vertical {
-webkit-transform: scale(1, -1);
-ms-transform: scale(1, -1);
transform: scale(1, -1);
}
.zmdi-hc-stack {
position: relative;
display: inline-block;
width: 2em;
height: 2em;
line-height: 2em;
vertical-align: middle;
}
.zmdi-hc-stack-1x,
.zmdi-hc-stack-2x {
position: absolute;
left: 0;
width: 100%;
text-align: center;
}
.zmdi-hc-stack-1x {
line-height: inherit;
}
.zmdi-hc-stack-2x {
font-size: 2em;
}
.zmdi-hc-inverse {
color: #ffffff;
}
/* Material Design Iconic Font uses the Unicode Private Use Area (PUA) to ensure screen
readers do not read off random characters that represent icons */
.zmdi-3d-rotation:before {
content: '\f101';
}
.zmdi-airplane-off:before {
content: '\f102';
}
.zmdi-airplane:before {
content: '\f103';
}
.zmdi-album:before {
content: '\f104';
}
.zmdi-archive:before {
content: '\f105';
}
.zmdi-assignment-account:before {
content: '\f106';
}
.zmdi-assignment-alert:before {
content: '\f107';
}
.zmdi-assignment-check:before {
content: '\f108';
}
.zmdi-assignment-o:before {
content: '\f109';
}
.zmdi-assignment-return:before {
content: '\f10a';
}
.zmdi-assignment-returned:before {
content: '\f10b';
}
.zmdi-assignment:before {
content: '\f10c';
}
.zmdi-attachment-alt:before {
content: '\f10d';
}
.zmdi-attachment:before {
content: '\f10e';
}
.zmdi-audio:before {
content: '\f10f';
}
.zmdi-badge-check:before {
content: '\f110';
}
.zmdi-balance-wallet:before {
content: '\f111';
}
.zmdi-balance:before {
content: '\f112';
}
.zmdi-battery-alert:before {
content: '\f113';
}
.zmdi-battery-flash:before {
content: '\f114';
}
.zmdi-battery-unknown:before {
content: '\f115';
}
.zmdi-battery:before {
content: '\f116';
}
.zmdi-bike:before {
content: '\f117';
}
.zmdi-block-alt:before {
content: '\f118';
}
.zmdi-block:before {
content: '\f119';
}
.zmdi-boat:before {
content: '\f11a';
}
.zmdi-book-image:before {
content: '\f11b';
}
.zmdi-book:before {
content: '\f11c';
}
.zmdi-bookmark-outline:before {
content: '\f11d';
}
.zmdi-bookmark:before {
content: '\f11e';
}
.zmdi-brush:before {
content: '\f11f';
}
.zmdi-bug:before {
content: '\f120';
}
.zmdi-bus:before {
content: '\f121';
}
.zmdi-cake:before {
content: '\f122';
}
.zmdi-car-taxi:before {
content: '\f123';
}
.zmdi-car-wash:before {
content: '\f124';
}
.zmdi-car:before {
content: '\f125';
}
.zmdi-card-giftcard:before {
content: '\f126';
}
.zmdi-card-membership:before {
content: '\f127';
}
.zmdi-card-travel:before {
content: '\f128';
}
.zmdi-card:before {
content: '\f129';
}
.zmdi-case-check:before {
content: '\f12a';
}
.zmdi-case-download:before {
content: '\f12b';
}
.zmdi-case-play:before {
content: '\f12c';
}
.zmdi-case:before {
content: '\f12d';
}
.zmdi-cast-connected:before {
content: '\f12e';
}
.zmdi-cast:before {
content: '\f12f';
}
.zmdi-chart-donut:before {
content: '\f130';
}
.zmdi-chart:before {
content: '\f131';
}
.zmdi-city-alt:before {
content: '\f132';
}
.zmdi-city:before {
content: '\f133';
}
.zmdi-close-circle-o:before {
content: '\f134';
}
.zmdi-close-circle:before {
content: '\f135';
}
.zmdi-close:before {
content: '\f136';
}
.zmdi-cocktail:before {
content: '\f137';
}
.zmdi-code-setting:before {
content: '\f138';
}
.zmdi-code-smartphone:before {
content: '\f139';
}
.zmdi-code:before {
content: '\f13a';
}
.zmdi-coffee:before {
content: '\f13b';
}
.zmdi-collection-bookmark:before {
content: '\f13c';
}
.zmdi-collection-case-play:before {
content: '\f13d';
}
.zmdi-collection-folder-image:before {
content: '\f13e';
}
.zmdi-collection-image-o:before {
content: '\f13f';
}
.zmdi-collection-image:before {
content: '\f140';
}
.zmdi-collection-item-1:before {
content: '\f141';
}
.zmdi-collection-item-2:before {
content: '\f142';
}
.zmdi-collection-item-3:before {
content: '\f143';
}
.zmdi-collection-item-4:before {
content: '\f144';
}
.zmdi-collection-item-5:before {
content: '\f145';
}
.zmdi-collection-item-6:before {
content: '\f146';
}
.zmdi-collection-item-7:before {
content: '\f147';
}
.zmdi-collection-item-8:before {
content: '\f148';
}
.zmdi-collection-item-9-plus:before {
content: '\f149';
}
.zmdi-collection-item-9:before {
content: '\f14a';
}
.zmdi-collection-item:before {
content: '\f14b';
}
.zmdi-collection-music:before {
content: '\f14c';
}
.zmdi-collection-pdf:before {
content: '\f14d';
}
.zmdi-collection-plus:before {
content: '\f14e';
}
.zmdi-collection-speaker:before {
content: '\f14f';
}
.zmdi-collection-text:before {
content: '\f150';
}
.zmdi-collection-video:before {
content: '\f151';
}
.zmdi-compass:before {
content: '\f152';
}
.zmdi-cutlery:before {
content: '\f153';
}
.zmdi-delete:before {
content: '\f154';
}
.zmdi-dialpad:before {
content: '\f155';
}
.zmdi-dns:before {
content: '\f156';
}
.zmdi-drink:before {
content: '\f157';
}
.zmdi-edit:before {
content: '\f158';
}
.zmdi-email-open:before {
content: '\f159';
}
.zmdi-email:before {
content: '\f15a';
}
.zmdi-eye-off:before {
content: '\f15b';
}
.zmdi-eye:before {
content: '\f15c';
}
.zmdi-eyedropper:before {
content: '\f15d';
}
.zmdi-favorite-outline:before {
content: '\f15e';
}
.zmdi-favorite:before {
content: '\f15f';
}
.zmdi-filter-list:before {
content: '\f160';
}
.zmdi-fire:before {
content: '\f161';
}
.zmdi-flag:before {
content: '\f162';
}
.zmdi-flare:before {
content: '\f163';
}
.zmdi-flash-auto:before {
content: '\f164';
}
.zmdi-flash-off:before {
content: '\f165';
}
.zmdi-flash:before {
content: '\f166';
}
.zmdi-flip:before {
content: '\f167';
}
.zmdi-flower-alt:before {
content: '\f168';
}
.zmdi-flower:before {
content: '\f169';
}
.zmdi-font:before {
content: '\f16a';
}
.zmdi-fullscreen-alt:before {
content: '\f16b';
}
.zmdi-fullscreen-exit:before {
content: '\f16c';
}
.zmdi-fullscreen:before {
content: '\f16d';
}
.zmdi-functions:before {
content: '\f16e';
}
.zmdi-gas-station:before {
content: '\f16f';
}
.zmdi-gesture:before {
content: '\f170';
}
.zmdi-globe-alt:before {
content: '\f171';
}
.zmdi-globe-lock:before {
content: '\f172';
}
.zmdi-globe:before {
content: '\f173';
}
.zmdi-graduation-cap:before {
content: '\f174';
}
.zmdi-home:before {
content: '\f175';
}
.zmdi-hospital-alt:before {
content: '\f176';
}
.zmdi-hospital:before {
content: '\f177';
}
.zmdi-hotel:before {
content: '\f178';
}
.zmdi-hourglass-alt:before {
content: '\f179';
}
.zmdi-hourglass-outline:before {
content: '\f17a';
}
.zmdi-hourglass:before {
content: '\f17b';
}
.zmdi-http:before {
content: '\f17c';
}
.zmdi-image-alt:before {
content: '\f17d';
}
.zmdi-image-o:before {
content: '\f17e';
}
.zmdi-image:before {
content: '\f17f';
}
.zmdi-inbox:before {
content: '\f180';
}
.zmdi-invert-colors-off:before {
content: '\f181';
}
.zmdi-invert-colors:before {
content: '\f182';
}
.zmdi-key:before {
content: '\f183';
}
.zmdi-label-alt-outline:before {
content: '\f184';
}
.zmdi-label-alt:before {
content: '\f185';
}
.zmdi-label-heart:before {
content: '\f186';
}
.zmdi-label:before {
content: '\f187';
}
.zmdi-labels:before {
content: '\f188';
}
.zmdi-lamp:before {
content: '\f189';
}
.zmdi-landscape:before {
content: '\f18a';
}
.zmdi-layers-off:before {
content: '\f18b';
}
.zmdi-layers:before {
content: '\f18c';
}
.zmdi-library:before {
content: '\f18d';
}
.zmdi-link:before {
content: '\f18e';
}
.zmdi-lock-open:before {
content: '\f18f';
}
.zmdi-lock-outline:before {
content: '\f190';
}
.zmdi-lock:before {
content: '\f191';
}
.zmdi-mail-reply-all:before {
content: '\f192';
}
.zmdi-mail-reply:before {
content: '\f193';
}
.zmdi-mail-send:before {
content: '\f194';
}
.zmdi-mall:before {
content: '\f195';
}
.zmdi-map:before {
content: '\f196';
}
.zmdi-menu:before {
content: '\f197';
}
.zmdi-money-box:before {
content: '\f198';
}
.zmdi-money-off:before {
content: '\f199';
}
.zmdi-money:before {
content: '\f19a';
}
.zmdi-more-vert:before {
content: '\f19b';
}
.zmdi-more:before {
content: '\f19c';
}
.zmdi-movie-alt:before {
content: '\f19d';
}
.zmdi-movie:before {
content: '\f19e';
}
.zmdi-nature-people:before {
content: '\f19f';
}
.zmdi-nature:before {
content: '\f1a0';
}
.zmdi-navigation:before {
content: '\f1a1';
}
.zmdi-open-in-browser:before {
content: '\f1a2';
}
.zmdi-open-in-new:before {
content: '\f1a3';
}
.zmdi-palette:before {
content: '\f1a4';
}
.zmdi-parking:before {
content: '\f1a5';
}
.zmdi-pin-account:before {
content: '\f1a6';
}
.zmdi-pin-assistant:before {
content: '\f1a7';
}
.zmdi-pin-drop:before {
content: '\f1a8';
}
.zmdi-pin-help:before {
content: '\f1a9';
}
.zmdi-pin-off:before {
content: '\f1aa';
}
.zmdi-pin:before {
content: '\f1ab';
}
.zmdi-pizza:before {
content: '\f1ac';
}
.zmdi-plaster:before {
content: '\f1ad';
}
.zmdi-power-setting:before {
content: '\f1ae';
}
.zmdi-power:before {
content: '\f1af';
}
.zmdi-print:before {
content: '\f1b0';
}
.zmdi-puzzle-piece:before {
content: '\f1b1';
}
.zmdi-quote:before {
content: '\f1b2';
}
.zmdi-railway:before {
content: '\f1b3';
}
.zmdi-receipt:before {
content: '\f1b4';
}
.zmdi-refresh-alt:before {
content: '\f1b5';
}
.zmdi-refresh-sync-alert:before {
content: '\f1b6';
}
.zmdi-refresh-sync-off:before {
content: '\f1b7';
}
.zmdi-refresh-sync:before {
content: '\f1b8';
}
.zmdi-refresh:before {
content: '\f1b9';
}
.zmdi-roller:before {
content: '\f1ba';
}
.zmdi-ruler:before {
content: '\f1bb';
}
.zmdi-scissors:before {
content: '\f1bc';
}
.zmdi-screen-rotation-lock:before {
content: '\f1bd';
}
.zmdi-screen-rotation:before {
content: '\f1be';
}
.zmdi-search-for:before {
content: '\f1bf';
}
.zmdi-search-in-file:before {
content: '\f1c0';
}
.zmdi-search-in-page:before {
content: '\f1c1';
}
.zmdi-search-replace:before {
content: '\f1c2';
}
.zmdi-search:before {
content: '\f1c3';
}
.zmdi-seat:before {
content: '\f1c4';
}
.zmdi-settings-square:before {
content: '\f1c5';
}
.zmdi-settings:before {
content: '\f1c6';
}
.zmdi-shield-check:before {
content: '\f1c7';
}
.zmdi-shield-security:before {
content: '\f1c8';
}
.zmdi-shopping-basket:before {
content: '\f1c9';
}
.zmdi-shopping-cart-plus:before {
content: '\f1ca';
}
.zmdi-shopping-cart:before {
content: '\f1cb';
}
.zmdi-sign-in:before {
content: '\f1cc';
}
.zmdi-sort-amount-asc:before {
content: '\f1cd';
}
.zmdi-sort-amount-desc:before {
content: '\f1ce';
}
.zmdi-sort-asc:before {
content: '\f1cf';
}
.zmdi-sort-desc:before {
content: '\f1d0';
}
.zmdi-spellcheck:before {
content: '\f1d1';
}
.zmdi-storage:before {
content: '\f1d2';
}
.zmdi-store-24:before {
content: '\f1d3';
}
.zmdi-store:before {
content: '\f1d4';
}
.zmdi-subway:before {
content: '\f1d5';
}
.zmdi-sun:before {
content: '\f1d6';
}
.zmdi-tab-unselected:before {
content: '\f1d7';
}
.zmdi-tab:before {
content: '\f1d8';
}
.zmdi-tag-close:before {
content: '\f1d9';
}
.zmdi-tag-more:before {
content: '\f1da';
}
.zmdi-tag:before {
content: '\f1db';
}
.zmdi-thumb-down:before {
content: '\f1dc';
}
.zmdi-thumb-up-down:before {
content: '\f1dd';
}
.zmdi-thumb-up:before {
content: '\f1de';
}
.zmdi-ticket-star:before {
content: '\f1df';
}
.zmdi-toll:before {
content: '\f1e0';
}
.zmdi-toys:before {
content: '\f1e1';
}
.zmdi-traffic:before {
content: '\f1e2';
}
.zmdi-translate:before {
content: '\f1e3';
}
.zmdi-triangle-down:before {
content: '\f1e4';
}
.zmdi-triangle-up:before {
content: '\f1e5';
}
.zmdi-truck:before {
content: '\f1e6';
}
.zmdi-turning-sign:before {
content: '\f1e7';
}
.zmdi-wallpaper:before {
content: '\f1e8';
}
.zmdi-washing-machine:before {
content: '\f1e9';
}
.zmdi-window-maximize:before {
content: '\f1ea';
}
.zmdi-window-minimize:before {
content: '\f1eb';
}
.zmdi-window-restore:before {
content: '\f1ec';
}
.zmdi-wrench:before {
content: '\f1ed';
}
.zmdi-zoom-in:before {
content: '\f1ee';
}
.zmdi-zoom-out:before {
content: '\f1ef';
}
.zmdi-alert-circle-o:before {
content: '\f1f0';
}
.zmdi-alert-circle:before {
content: '\f1f1';
}
.zmdi-alert-octagon:before {
content: '\f1f2';
}
.zmdi-alert-polygon:before {
content: '\f1f3';
}
.zmdi-alert-triangle:before {
content: '\f1f4';
}
.zmdi-help-outline:before {
content: '\f1f5';
}
.zmdi-help:before {
content: '\f1f6';
}
.zmdi-info-outline:before {
content: '\f1f7';
}
.zmdi-info:before {
content: '\f1f8';
}
.zmdi-notifications-active:before {
content: '\f1f9';
}
.zmdi-notifications-add:before {
content: '\f1fa';
}
.zmdi-notifications-none:before {
content: '\f1fb';
}
.zmdi-notifications-off:before {
content: '\f1fc';
}
.zmdi-notifications-paused:before {
content: '\f1fd';
}
.zmdi-notifications:before {
content: '\f1fe';
}
.zmdi-account-add:before {
content: '\f1ff';
}
.zmdi-account-box-mail:before {
content: '\f200';
}
.zmdi-account-box-o:before {
content: '\f201';
}
.zmdi-account-box-phone:before {
content: '\f202';
}
.zmdi-account-box:before {
content: '\f203';
}
.zmdi-account-calendar:before {
content: '\f204';
}
.zmdi-account-circle:before {
content: '\f205';
}
.zmdi-account-o:before {
content: '\f206';
}
.zmdi-account:before {
content: '\f207';
}
.zmdi-accounts-add:before {
content: '\f208';
}
.zmdi-accounts-alt:before {
content: '\f209';
}
.zmdi-accounts-list-alt:before {
content: '\f20a';
}
.zmdi-accounts-list:before {
content: '\f20b';
}
.zmdi-accounts-outline:before {
content: '\f20c';
}
.zmdi-accounts:before {
content: '\f20d';
}
.zmdi-face:before {
content: '\f20e';
}
.zmdi-female:before {
content: '\f20f';
}
.zmdi-male-alt:before {
content: '\f210';
}
.zmdi-male-female:before {
content: '\f211';
}
.zmdi-male:before {
content: '\f212';
}
.zmdi-mood-bad:before {
content: '\f213';
}
.zmdi-mood:before {
content: '\f214';
}
.zmdi-run:before {
content: '\f215';
}
.zmdi-walk:before {
content: '\f216';
}
.zmdi-cloud-box:before {
content: '\f217';
}
.zmdi-cloud-circle:before {
content: '\f218';
}
.zmdi-cloud-done:before {
content: '\f219';
}
.zmdi-cloud-download:before {
content: '\f21a';
}
.zmdi-cloud-off:before {
content: '\f21b';
}
.zmdi-cloud-outline-alt:before {
content: '\f21c';
}
.zmdi-cloud-outline:before {
content: '\f21d';
}
.zmdi-cloud-upload:before {
content: '\f21e';
}
.zmdi-cloud:before {
content: '\f21f';
}
.zmdi-download:before {
content: '\f220';
}
.zmdi-file-plus:before {
content: '\f221';
}
.zmdi-file-text:before {
content: '\f222';
}
.zmdi-file:before {
content: '\f223';
}
.zmdi-folder-outline:before {
content: '\f224';
}
.zmdi-folder-person:before {
content: '\f225';
}
.zmdi-folder-star-alt:before {
content: '\f226';
}
.zmdi-folder-star:before {
content: '\f227';
}
.zmdi-folder:before {
content: '\f228';
}
.zmdi-gif:before {
content: '\f229';
}
.zmdi-upload:before {
content: '\f22a';
}
.zmdi-border-all:before {
content: '\f22b';
}
.zmdi-border-bottom:before {
content: '\f22c';
}
.zmdi-border-clear:before {
content: '\f22d';
}
.zmdi-border-color:before {
content: '\f22e';
}
.zmdi-border-horizontal:before {
content: '\f22f';
}
.zmdi-border-inner:before {
content: '\f230';
}
.zmdi-border-left:before {
content: '\f231';
}
.zmdi-border-outer:before {
content: '\f232';
}
.zmdi-border-right:before {
content: '\f233';
}
.zmdi-border-style:before {
content: '\f234';
}
.zmdi-border-top:before {
content: '\f235';
}
.zmdi-border-vertical:before {
content: '\f236';
}
.zmdi-copy:before {
content: '\f237';
}
.zmdi-crop:before {
content: '\f238';
}
.zmdi-format-align-center:before {
content: '\f239';
}
.zmdi-format-align-justify:before {
content: '\f23a';
}
.zmdi-format-align-left:before {
content: '\f23b';
}
.zmdi-format-align-right:before {
content: '\f23c';
}
.zmdi-format-bold:before {
content: '\f23d';
}
.zmdi-format-clear-all:before {
content: '\f23e';
}
.zmdi-format-clear:before {
content: '\f23f';
}
.zmdi-format-color-fill:before {
content: '\f240';
}
.zmdi-format-color-reset:before {
content: '\f241';
}
.zmdi-format-color-text:before {
content: '\f242';
}
.zmdi-format-indent-decrease:before {
content: '\f243';
}
.zmdi-format-indent-increase:before {
content: '\f244';
}
.zmdi-format-italic:before {
content: '\f245';
}
.zmdi-format-line-spacing:before {
content: '\f246';
}
.zmdi-format-list-bulleted:before {
content: '\f247';
}
.zmdi-format-list-numbered:before {
content: '\f248';
}
.zmdi-format-ltr:before {
content: '\f249';
}
.zmdi-format-rtl:before {
content: '\f24a';
}
.zmdi-format-size:before {
content: '\f24b';
}
.zmdi-format-strikethrough-s:before {
content: '\f24c';
}
.zmdi-format-strikethrough:before {
content: '\f24d';
}
.zmdi-format-subject:before {
content: '\f24e';
}
.zmdi-format-underlined:before {
content: '\f24f';
}
.zmdi-format-valign-bottom:before {
content: '\f250';
}
.zmdi-format-valign-center:before {
content: '\f251';
}
.zmdi-format-valign-top:before {
content: '\f252';
}
.zmdi-redo:before {
content: '\f253';
}
.zmdi-select-all:before {
content: '\f254';
}
.zmdi-space-bar:before {
content: '\f255';
}
.zmdi-text-format:before {
content: '\f256';
}
.zmdi-transform:before {
content: '\f257';
}
.zmdi-undo:before {
content: '\f258';
}
.zmdi-wrap-text:before {
content: '\f259';
}
.zmdi-comment-alert:before {
content: '\f25a';
}
.zmdi-comment-alt-text:before {
content: '\f25b';
}
.zmdi-comment-alt:before {
content: '\f25c';
}
.zmdi-comment-edit:before {
content: '\f25d';
}
.zmdi-comment-image:before {
content: '\f25e';
}
.zmdi-comment-list:before {
content: '\f25f';
}
.zmdi-comment-more:before {
content: '\f260';
}
.zmdi-comment-outline:before {
content: '\f261';
}
.zmdi-comment-text-alt:before {
content: '\f262';
}
.zmdi-comment-text:before {
content: '\f263';
}
.zmdi-comment-video:before {
content: '\f264';
}
.zmdi-comment:before {
content: '\f265';
}
.zmdi-comments:before {
content: '\f266';
}
.zmdi-check-all:before {
content: '\f267';
}
.zmdi-check-circle-u:before {
content: '\f268';
}
.zmdi-check-circle:before {
content: '\f269';
}
.zmdi-check-square:before {
content: '\f26a';
}
.zmdi-check:before {
content: '\f26b';
}
.zmdi-circle-o:before {
content: '\f26c';
}
.zmdi-circle:before {
content: '\f26d';
}
.zmdi-dot-circle-alt:before {
content: '\f26e';
}
.zmdi-dot-circle:before {
content: '\f26f';
}
.zmdi-minus-circle-outline:before {
content: '\f270';
}
.zmdi-minus-circle:before {
content: '\f271';
}
.zmdi-minus-square:before {
content: '\f272';
}
.zmdi-minus:before {
content: '\f273';
}
.zmdi-plus-circle-o-duplicate:before {
content: '\f274';
}
.zmdi-plus-circle-o:before {
content: '\f275';
}
.zmdi-plus-circle:before {
content: '\f276';
}
.zmdi-plus-square:before {
content: '\f277';
}
.zmdi-plus:before {
content: '\f278';
}
.zmdi-square-o:before {
content: '\f279';
}
.zmdi-star-circle:before {
content: '\f27a';
}
.zmdi-star-half:before {
content: '\f27b';
}
.zmdi-star-outline:before {
content: '\f27c';
}
.zmdi-star:before {
content: '\f27d';
}
.zmdi-bluetooth-connected:before {
content: '\f27e';
}
.zmdi-bluetooth-off:before {
content: '\f27f';
}
.zmdi-bluetooth-search:before {
content: '\f280';
}
.zmdi-bluetooth-setting:before {
content: '\f281';
}
.zmdi-bluetooth:before {
content: '\f282';
}
.zmdi-camera-add:before {
content: '\f283';
}
.zmdi-camera-alt:before {
content: '\f284';
}
.zmdi-camera-bw:before {
content: '\f285';
}
.zmdi-camera-front:before {
content: '\f286';
}
.zmdi-camera-mic:before {
content: '\f287';
}
.zmdi-camera-party-mode:before {
content: '\f288';
}
.zmdi-camera-rear:before {
content: '\f289';
}
.zmdi-camera-roll:before {
content: '\f28a';
}
.zmdi-camera-switch:before {
content: '\f28b';
}
.zmdi-camera:before {
content: '\f28c';
}
.zmdi-card-alert:before {
content: '\f28d';
}
.zmdi-card-off:before {
content: '\f28e';
}
.zmdi-card-sd:before {
content: '\f28f';
}
.zmdi-card-sim:before {
content: '\f290';
}
.zmdi-desktop-mac:before {
content: '\f291';
}
.zmdi-desktop-windows:before {
content: '\f292';
}
.zmdi-device-hub:before {
content: '\f293';
}
.zmdi-devices-off:before {
content: '\f294';
}
.zmdi-devices:before {
content: '\f295';
}
.zmdi-dock:before {
content: '\f296';
}
.zmdi-floppy:before {
content: '\f297';
}
.zmdi-gamepad:before {
content: '\f298';
}
.zmdi-gps-dot:before {
content: '\f299';
}
.zmdi-gps-off:before {
content: '\f29a';
}
.zmdi-gps:before {
content: '\f29b';
}
.zmdi-headset-mic:before {
content: '\f29c';
}
.zmdi-headset:before {
content: '\f29d';
}
.zmdi-input-antenna:before {
content: '\f29e';
}
.zmdi-input-composite:before {
content: '\f29f';
}
.zmdi-input-hdmi:before {
content: '\f2a0';
}
.zmdi-input-power:before {
content: '\f2a1';
}
.zmdi-input-svideo:before {
content: '\f2a2';
}
.zmdi-keyboard-hide:before {
content: '\f2a3';
}
.zmdi-keyboard:before {
content: '\f2a4';
}
.zmdi-laptop-chromebook:before {
content: '\f2a5';
}
.zmdi-laptop-mac:before {
content: '\f2a6';
}
.zmdi-laptop:before {
content: '\f2a7';
}
.zmdi-mic-off:before {
content: '\f2a8';
}
.zmdi-mic-outline:before {
content: '\f2a9';
}
.zmdi-mic-setting:before {
content: '\f2aa';
}
.zmdi-mic:before {
content: '\f2ab';
}
.zmdi-mouse:before {
content: '\f2ac';
}
.zmdi-network-alert:before {
content: '\f2ad';
}
.zmdi-network-locked:before {
content: '\f2ae';
}
.zmdi-network-off:before {
content: '\f2af';
}
.zmdi-network-outline:before {
content: '\f2b0';
}
.zmdi-network-setting:before {
content: '\f2b1';
}
.zmdi-network:before {
content: '\f2b2';
}
.zmdi-phone-bluetooth:before {
content: '\f2b3';
}
.zmdi-phone-end:before {
content: '\f2b4';
}
.zmdi-phone-forwarded:before {
content: '\f2b5';
}
.zmdi-phone-in-talk:before {
content: '\f2b6';
}
.zmdi-phone-locked:before {
content: '\f2b7';
}
.zmdi-phone-missed:before {
content: '\f2b8';
}
.zmdi-phone-msg:before {
content: '\f2b9';
}
.zmdi-phone-paused:before {
content: '\f2ba';
}
.zmdi-phone-ring:before {
content: '\f2bb';
}
.zmdi-phone-setting:before {
content: '\f2bc';
}
.zmdi-phone-sip:before {
content: '\f2bd';
}
.zmdi-phone:before {
content: '\f2be';
}
.zmdi-portable-wifi-changes:before {
content: '\f2bf';
}
.zmdi-portable-wifi-off:before {
content: '\f2c0';
}
.zmdi-portable-wifi:before {
content: '\f2c1';
}
.zmdi-radio:before {
content: '\f2c2';
}
.zmdi-reader:before {
content: '\f2c3';
}
.zmdi-remote-control-alt:before {
content: '\f2c4';
}
.zmdi-remote-control:before {
content: '\f2c5';
}
.zmdi-router:before {
content: '\f2c6';
}
.zmdi-scanner:before {
content: '\f2c7';
}
.zmdi-smartphone-andrAdminid:before {
content: '\f2c8';
}
.zmdi-smartphone-download:before {
content: '\f2c9';
}
.zmdi-smartphone-erase:before {
content: '\f2ca';
}
.zmdi-smartphone-info:before {
content: '\f2cb';
}
.zmdi-smartphone-iphone:before {
content: '\f2cc';
}
.zmdi-smartphone-landscape-lock:before {
content: '\f2cd';
}
.zmdi-smartphone-landscape:before {
content: '\f2ce';
}
.zmdi-smartphone-lock:before {
content: '\f2cf';
}
.zmdi-smartphone-portrait-lock:before {
content: '\f2d0';
}
.zmdi-smartphone-ring:before {
content: '\f2d1';
}
.zmdi-smartphone-setting:before {
content: '\f2d2';
}
.zmdi-smartphone-setup:before {
content: '\f2d3';
}
.zmdi-smartphone:before {
content: '\f2d4';
}
.zmdi-speaker:before {
content: '\f2d5';
}
.zmdi-tablet-andrAdminid:before {
content: '\f2d6';
}
.zmdi-tablet-mac:before {
content: '\f2d7';
}
.zmdi-tablet:before {
content: '\f2d8';
}
.zmdi-tv-alt-play:before {
content: '\f2d9';
}
.zmdi-tv-list:before {
content: '\f2da';
}
.zmdi-tv-play:before {
content: '\f2db';
}
.zmdi-tv:before {
content: '\f2dc';
}
.zmdi-usb:before {
content: '\f2dd';
}
.zmdi-videocam-off:before {
content: '\f2de';
}
.zmdi-videocam-switch:before {
content: '\f2df';
}
.zmdi-videocam:before {
content: '\f2e0';
}
.zmdi-watch:before {
content: '\f2e1';
}
.zmdi-wifi-alt-2:before {
content: '\f2e2';
}
.zmdi-wifi-alt:before {
content: '\f2e3';
}
.zmdi-wifi-info:before {
content: '\f2e4';
}
.zmdi-wifi-lock:before {
content: '\f2e5';
}
.zmdi-wifi-off:before {
content: '\f2e6';
}
.zmdi-wifi-outline:before {
content: '\f2e7';
}
.zmdi-wifi:before {
content: '\f2e8';
}
.zmdi-arrow-left-bottom:before {
content: '\f2e9';
}
.zmdi-arrow-left:before {
content: '\f2ea';
}
.zmdi-arrow-merge:before {
content: '\f2eb';
}
.zmdi-arrow-missed:before {
content: '\f2ec';
}
.zmdi-arrow-right-top:before {
content: '\f2ed';
}
.zmdi-arrow-right:before {
content: '\f2ee';
}
.zmdi-arrow-split:before {
content: '\f2ef';
}
.zmdi-arrows:before {
content: '\f2f0';
}
.zmdi-caret-down-circle:before {
content: '\f2f1';
}
.zmdi-caret-down:before {
content: '\f2f2';
}
.zmdi-caret-left-circle:before {
content: '\f2f3';
}
.zmdi-caret-left:before {
content: '\f2f4';
}
.zmdi-caret-right-circle:before {
content: '\f2f5';
}
.zmdi-caret-right:before {
content: '\f2f6';
}
.zmdi-caret-up-circle:before {
content: '\f2f7';
}
.zmdi-caret-up:before {
content: '\f2f8';
}
.zmdi-chevron-down:before {
content: '\f2f9';
}
.zmdi-chevron-left:before {
content: '\f2fa';
}
.zmdi-chevron-right:before {
content: '\f2fb';
}
.zmdi-chevron-up:before {
content: '\f2fc';
}
.zmdi-forward:before {
content: '\f2fd';
}
.zmdi-long-arrow-down:before {
content: '\f2fe';
}
.zmdi-long-arrow-left:before {
content: '\f2ff';
}
.zmdi-long-arrow-return:before {
content: '\f300';
}
.zmdi-long-arrow-right:before {
content: '\f301';
}
.zmdi-long-arrow-tab:before {
content: '\f302';
}
.zmdi-long-arrow-up:before {
content: '\f303';
}
.zmdi-rotate-ccw:before {
content: '\f304';
}
.zmdi-rotate-cw:before {
content: '\f305';
}
.zmdi-rotate-left:before {
content: '\f306';
}
.zmdi-rotate-right:before {
content: '\f307';
}
.zmdi-square-down:before {
content: '\f308';
}
.zmdi-square-right:before {
content: '\f309';
}
.zmdi-swap-alt:before {
content: '\f30a';
}
.zmdi-swap-vertical-circle:before {
content: '\f30b';
}
.zmdi-swap-vertical:before {
content: '\f30c';
}
.zmdi-swap:before {
content: '\f30d';
}
.zmdi-trending-down:before {
content: '\f30e';
}
.zmdi-trending-flat:before {
content: '\f30f';
}
.zmdi-trending-up:before {
content: '\f310';
}
.zmdi-unfold-less:before {
content: '\f311';
}
.zmdi-unfold-more:before {
content: '\f312';
}
.zmdi-apps:before {
content: '\f313';
}
.zmdi-grid-off:before {
content: '\f314';
}
.zmdi-grid:before {
content: '\f315';
}
.zmdi-view-agenda:before {
content: '\f316';
}
.zmdi-view-array:before {
content: '\f317';
}
.zmdi-view-carousel:before {
content: '\f318';
}
.zmdi-view-column:before {
content: '\f319';
}
.zmdi-view-comfy:before {
content: '\f31a';
}
.zmdi-view-compact:before {
content: '\f31b';
}
.zmdi-view-dashboard:before {
content: '\f31c';
}
.zmdi-view-day:before {
content: '\f31d';
}
.zmdi-view-headline:before {
content: '\f31e';
}
.zmdi-view-list-alt:before {
content: '\f31f';
}
.zmdi-view-list:before {
content: '\f320';
}
.zmdi-view-module:before {
content: '\f321';
}
.zmdi-view-quilt:before {
content: '\f322';
}
.zmdi-view-stream:before {
content: '\f323';
}
.zmdi-view-subtitles:before {
content: '\f324';
}
.zmdi-view-toc:before {
content: '\f325';
}
.zmdi-view-web:before {
content: '\f326';
}
.zmdi-view-week:before {
content: '\f327';
}
.zmdi-widgets:before {
content: '\f328';
}
.zmdi-alarm-check:before {
content: '\f329';
}
.zmdi-alarm-off:before {
content: '\f32a';
}
.zmdi-alarm-plus:before {
content: '\f32b';
}
.zmdi-alarm-snooze:before {
content: '\f32c';
}
.zmdi-alarm:before {
content: '\f32d';
}
.zmdi-calendar-alt:before {
content: '\f32e';
}
.zmdi-calendar-check:before {
content: '\f32f';
}
.zmdi-calendar-close:before {
content: '\f330';
}
.zmdi-calendar-note:before {
content: '\f331';
}
.zmdi-calendar:before {
content: '\f332';
}
.zmdi-time-countdown:before {
content: '\f333';
}
.zmdi-time-interval:before {
content: '\f334';
}
.zmdi-time-restore-setting:before {
content: '\f335';
}
.zmdi-time-restore:before {
content: '\f336';
}
.zmdi-time:before {
content: '\f337';
}
.zmdi-timer-off:before {
content: '\f338';
}
.zmdi-timer:before {
content: '\f339';
}
.zmdi-andrAdminid-alt:before {
content: '\f33a';
}
.zmdi-andrAdminid:before {
content: '\f33b';
}
.zmdi-apple:before {
content: '\f33c';
}
.zmdi-behance:before {
content: '\f33d';
}
.zmdi-codepen:before {
content: '\f33e';
}
.zmdi-dribbble:before {
content: '\f33f';
}
.zmdi-dropbox:before {
content: '\f340';
}
.zmdi-evernote:before {
content: '\f341';
}
.zmdi-facebook-box:before {
content: '\f342';
}
.zmdi-facebook:before {
content: '\f343';
}
.zmdi-github-box:before {
content: '\f344';
}
.zmdi-github:before {
content: '\f345';
}
.zmdi-google-drive:before {
content: '\f346';
}
.zmdi-google-earth:before {
content: '\f347';
}
.zmdi-google-glass:before {
content: '\f348';
}
.zmdi-google-maps:before {
content: '\f349';
}
.zmdi-google-pages:before {
content: '\f34a';
}
.zmdi-google-play:before {
content: '\f34b';
}
.zmdi-google-plus-box:before {
content: '\f34c';
}
.zmdi-google-plus:before {
content: '\f34d';
}
.zmdi-google:before {
content: '\f34e';
}
.zmdi-instagram:before {
content: '\f34f';
}
.zmdi-language-css3:before {
content: '\f350';
}
.zmdi-language-html5:before {
content: '\f351';
}
.zmdi-language-javascript:before {
content: '\f352';
}
.zmdi-language-python-alt:before {
content: '\f353';
}
.zmdi-language-python:before {
content: '\f354';
}
.zmdi-lastfm:before {
content: '\f355';
}
.zmdi-linkedin-box:before {
content: '\f356';
}
.zmdi-paypal:before {
content: '\f357';
}
.zmdi-pinterest-box:before {
content: '\f358';
}
.zmdi-pocket:before {
content: '\f359';
}
.zmdi-polymer:before {
content: '\f35a';
}
.zmdi-share:before {
content: '\f35b';
}
.zmdi-stackoverflow:before {
content: '\f35c';
}
.zmdi-steam-square:before {
content: '\f35d';
}
.zmdi-steam:before {
content: '\f35e';
}
.zmdi-twitter-box:before {
content: '\f35f';
}
.zmdi-twitter:before {
content: '\f360';
}
.zmdi-vk:before {
content: '\f361';
}
.zmdi-wikipedia:before {
content: '\f362';
}
.zmdi-windows:before {
content: '\f363';
}
.zmdi-aspect-ratio-alt:before {
content: '\f364';
}
.zmdi-aspect-ratio:before {
content: '\f365';
}
.zmdi-blur-circular:before {
content: '\f366';
}
.zmdi-blur-linear:before {
content: '\f367';
}
.zmdi-blur-off:before {
content: '\f368';
}
.zmdi-blur:before {
content: '\f369';
}
.zmdi-brightness-2:before {
content: '\f36a';
}
.zmdi-brightness-3:before {
content: '\f36b';
}
.zmdi-brightness-4:before {
content: '\f36c';
}
.zmdi-brightness-5:before {
content: '\f36d';
}
.zmdi-brightness-6:before {
content: '\f36e';
}
.zmdi-brightness-7:before {
content: '\f36f';
}
.zmdi-brightness-auto:before {
content: '\f370';
}
.zmdi-brightness-setting:before {
content: '\f371';
}
.zmdi-broken-image:before {
content: '\f372';
}
.zmdi-center-focus-strong:before {
content: '\f373';
}
.zmdi-center-focus-weak:before {
content: '\f374';
}
.zmdi-compare:before {
content: '\f375';
}
.zmdi-crop-16-9:before {
content: '\f376';
}
.zmdi-crop-3-2:before {
content: '\f377';
}
.zmdi-crop-5-4:before {
content: '\f378';
}
.zmdi-crop-7-5:before {
content: '\f379';
}
.zmdi-crop-din:before {
content: '\f37a';
}
.zmdi-crop-free:before {
content: '\f37b';
}
.zmdi-crop-landscape:before {
content: '\f37c';
}
.zmdi-crop-portrait:before {
content: '\f37d';
}
.zmdi-crop-square:before {
content: '\f37e';
}
.zmdi-exposure-alt:before {
content: '\f37f';
}
.zmdi-exposure:before {
content: '\f380';
}
.zmdi-filter-b-and-w:before {
content: '\f381';
}
.zmdi-filter-center-focus:before {
content: '\f382';
}
.zmdi-filter-frames:before {
content: '\f383';
}
.zmdi-filter-tilt-shift:before {
content: '\f384';
}
.zmdi-gradient:before {
content: '\f385';
}
.zmdi-grain:before {
content: '\f386';
}
.zmdi-graphic-eq:before {
content: '\f387';
}
.zmdi-hdr-off:before {
content: '\f388';
}
.zmdi-hdr-strong:before {
content: '\f389';
}
.zmdi-hdr-weak:before {
content: '\f38a';
}
.zmdi-hdr:before {
content: '\f38b';
}
.zmdi-iridescent:before {
content: '\f38c';
}
.zmdi-leak-off:before {
content: '\f38d';
}
.zmdi-leak:before {
content: '\f38e';
}
.zmdi-looks:before {
content: '\f38f';
}
.zmdi-loupe:before {
content: '\f390';
}
.zmdi-panorama-horizontal:before {
content: '\f391';
}
.zmdi-panorama-vertical:before {
content: '\f392';
}
.zmdi-panorama-wide-angle:before {
content: '\f393';
}
.zmdi-photo-size-select-large:before {
content: '\f394';
}
.zmdi-photo-size-select-small:before {
content: '\f395';
}
.zmdi-picture-in-picture:before {
content: '\f396';
}
.zmdi-slideshow:before {
content: '\f397';
}
.zmdi-texture:before {
content: '\f398';
}
.zmdi-tonality:before {
content: '\f399';
}
.zmdi-vignette:before {
content: '\f39a';
}
.zmdi-wb-auto:before {
content: '\f39b';
}
.zmdi-eject-alt:before {
content: '\f39c';
}
.zmdi-eject:before {
content: '\f39d';
}
.zmdi-equalizer:before {
content: '\f39e';
}
.zmdi-fast-forward:before {
content: '\f39f';
}
.zmdi-fast-rewind:before {
content: '\f3a0';
}
.zmdi-forward-10:before {
content: '\f3a1';
}
.zmdi-forward-30:before {
content: '\f3a2';
}
.zmdi-forward-5:before {
content: '\f3a3';
}
.zmdi-hearing:before {
content: '\f3a4';
}
.zmdi-pause-circle-outline:before {
content: '\f3a5';
}
.zmdi-pause-circle:before {
content: '\f3a6';
}
.zmdi-pause:before {
content: '\f3a7';
}
.zmdi-play-circle-outline:before {
content: '\f3a8';
}
.zmdi-play-circle:before {
content: '\f3a9';
}
.zmdi-play:before {
content: '\f3aa';
}
.zmdi-playlist-audio:before {
content: '\f3ab';
}
.zmdi-playlist-plus:before {
content: '\f3ac';
}
.zmdi-repeat-one:before {
content: '\f3ad';
}
.zmdi-repeat:before {
content: '\f3ae';
}
.zmdi-replay-10:before {
content: '\f3af';
}
.zmdi-replay-30:before {
content: '\f3b0';
}
.zmdi-replay-5:before {
content: '\f3b1';
}
.zmdi-replay:before {
content: '\f3b2';
}
.zmdi-shuffle:before {
content: '\f3b3';
}
.zmdi-skip-next:before {
content: '\f3b4';
}
.zmdi-skip-previous:before {
content: '\f3b5';
}
.zmdi-stop:before {
content: '\f3b6';
}
.zmdi-surround-sound:before {
content: '\f3b7';
}
.zmdi-tune:before {
content: '\f3b8';
}
.zmdi-volume-down:before {
content: '\f3b9';
}
.zmdi-volume-mute:before {
content: '\f3ba';
}
.zmdi-volume-off:before {
content: '\f3bb';
}
.zmdi-volume-up:before {
content: '\f3bc';
}
.zmdi-n-1-square:before {
content: '\f3bd';
}
.zmdi-n-2-square:before {
content: '\f3be';
}
.zmdi-n-3-square:before {
content: '\f3bf';
}
.zmdi-n-4-square:before {
content: '\f3c0';
}
.zmdi-n-5-square:before {
content: '\f3c1';
}
.zmdi-n-6-square:before {
content: '\f3c2';
}
.zmdi-neg-1:before {
content: '\f3c3';
}
.zmdi-neg-2:before {
content: '\f3c4';
}
.zmdi-plus-1:before {
content: '\f3c5';
}
.zmdi-plus-2:before {
content: '\f3c6';
}
.zmdi-sec-10:before {
content: '\f3c7';
}
.zmdi-sec-3:before {
content: '\f3c8';
}
.zmdi-zero:before {
content: '\f3c9';
}
.zmdi-airline-seat-flat-angled:before {
content: '\f3ca';
}
.zmdi-airline-seat-flat:before {
content: '\f3cb';
}
.zmdi-airline-seat-individual-suite:before {
content: '\f3cc';
}
.zmdi-airline-seat-legroom-extra:before {
content: '\f3cd';
}
.zmdi-airline-seat-legroom-normal:before {
content: '\f3ce';
}
.zmdi-airline-seat-legroom-reduced:before {
content: '\f3cf';
}
.zmdi-airline-seat-recline-extra:before {
content: '\f3d0';
}
.zmdi-airline-seat-recline-normal:before {
content: '\f3d1';
}
.zmdi-airplay:before {
content: '\f3d2';
}
.zmdi-closed-caption:before {
content: '\f3d3';
}
.zmdi-confirmation-number:before {
content: '\f3d4';
}
.zmdi-developer-board:before {
content: '\f3d5';
}
.zmdi-disc-full:before {
content: '\f3d6';
}
.zmdi-explicit:before {
content: '\f3d7';
}
.zmdi-flight-land:before {
content: '\f3d8';
}
.zmdi-flight-takeoff:before {
content: '\f3d9';
}
.zmdi-flip-to-back:before {
content: '\f3da';
}
.zmdi-flip-to-front:before {
content: '\f3db';
}
.zmdi-group-work:before {
content: '\f3dc';
}
.zmdi-hd:before {
content: '\f3dd';
}
.zmdi-hq:before {
content: '\f3de';
}
.zmdi-markunread-mailbox:before {
content: '\f3df';
}
.zmdi-memory:before {
content: '\f3e0';
}
.zmdi-nfc:before {
content: '\f3e1';
}
.zmdi-play-for-work:before {
content: '\f3e2';
}
.zmdi-power-input:before {
content: '\f3e3';
}
.zmdi-present-to-all:before {
content: '\f3e4';
}
.zmdi-satellite:before {
content: '\f3e5';
}
.zmdi-tap-and-play:before {
content: '\f3e6';
}
.zmdi-vibration:before {
content: '\f3e7';
}
.zmdi-voicemail:before {
content: '\f3e8';
}
.zmdi-group:before {
content: '\f3e9';
}
.zmdi-rss:before {
content: '\f3ea';
}
.zmdi-shape:before {
content: '\f3eb';
}
.zmdi-spinner:before {
content: '\f3ec';
}
.zmdi-ungroup:before {
content: '\f3ed';
}
.zmdi-500px:before {
content: '\f3ee';
}
.zmdi-8tracks:before {
content: '\f3ef';
}
.zmdi-amazon:before {
content: '\f3f0';
}
.zmdi-blogger:before {
content: '\f3f1';
}
.zmdi-delicious:before {
content: '\f3f2';
}
.zmdi-disqus:before {
content: '\f3f3';
}
.zmdi-flattr:before {
content: '\f3f4';
}
.zmdi-flickr:before {
content: '\f3f5';
}
.zmdi-github-alt:before {
content: '\f3f6';
}
.zmdi-google-old:before {
content: '\f3f7';
}
.zmdi-linkedin:before {
content: '\f3f8';
}
.zmdi-odnoklassniki:before {
content: '\f3f9';
}
.zmdi-outlook:before {
content: '\f3fa';
}
.zmdi-paypal-alt:before {
content: '\f3fb';
}
.zmdi-pinterest:before {
content: '\f3fc';
}
.zmdi-playstation:before {
content: '\f3fd';
}
.zmdi-reddit:before {
content: '\f3fe';
}
.zmdi-skype:before {
content: '\f3ff';
}
.zmdi-slideshare:before {
content: '\f400';
}
.zmdi-soundcloud:before {
content: '\f401';
}
.zmdi-tumblr:before {
content: '\f402';
}
.zmdi-twitch:before {
content: '\f403';
}
.zmdi-vimeo:before {
content: '\f404';
}
.zmdi-whatsapp:before {
content: '\f405';
}
.zmdi-xbox:before {
content: '\f406';
}
.zmdi-yahoo:before {
content: '\f407';
}
.zmdi-youtube-play:before {
content: '\f408';
}
.zmdi-youtube:before {
content: '\f409';
}
.zmdi-3d-rotation:before {
content: '\f101';
}
.zmdi-airplane-off:before {
content: '\f102';
}
.zmdi-airplane:before {
content: '\f103';
}
.zmdi-album:before {
content: '\f104';
}
.zmdi-archive:before {
content: '\f105';
}
.zmdi-assignment-account:before {
content: '\f106';
}
.zmdi-assignment-alert:before {
content: '\f107';
}
.zmdi-assignment-check:before {
content: '\f108';
}
.zmdi-assignment-o:before {
content: '\f109';
}
.zmdi-assignment-return:before {
content: '\f10a';
}
.zmdi-assignment-returned:before {
content: '\f10b';
}
.zmdi-assignment:before {
content: '\f10c';
}
.zmdi-attachment-alt:before {
content: '\f10d';
}
.zmdi-attachment:before {
content: '\f10e';
}
.zmdi-audio:before {
content: '\f10f';
}
.zmdi-badge-check:before {
content: '\f110';
}
.zmdi-balance-wallet:before {
content: '\f111';
}
.zmdi-balance:before {
content: '\f112';
}
.zmdi-battery-alert:before {
content: '\f113';
}
.zmdi-battery-flash:before {
content: '\f114';
}
.zmdi-battery-unknown:before {
content: '\f115';
}
.zmdi-battery:before {
content: '\f116';
}
.zmdi-bike:before {
content: '\f117';
}
.zmdi-block-alt:before {
content: '\f118';
}
.zmdi-block:before {
content: '\f119';
}
.zmdi-boat:before {
content: '\f11a';
}
.zmdi-book-image:before {
content: '\f11b';
}
.zmdi-book:before {
content: '\f11c';
}
.zmdi-bookmark-outline:before {
content: '\f11d';
}
.zmdi-bookmark:before {
content: '\f11e';
}
.zmdi-brush:before {
content: '\f11f';
}
.zmdi-bug:before {
content: '\f120';
}
.zmdi-bus:before {
content: '\f121';
}
.zmdi-cake:before {
content: '\f122';
}
.zmdi-car-taxi:before {
content: '\f123';
}
.zmdi-car-wash:before {
content: '\f124';
}
.zmdi-car:before {
content: '\f125';
}
.zmdi-card-giftcard:before {
content: '\f126';
}
.zmdi-card-membership:before {
content: '\f127';
}
.zmdi-card-travel:before {
content: '\f128';
}
.zmdi-card:before {
content: '\f129';
}
.zmdi-case-check:before {
content: '\f12a';
}
.zmdi-case-download:before {
content: '\f12b';
}
.zmdi-case-play:before {
content: '\f12c';
}
.zmdi-case:before {
content: '\f12d';
}
.zmdi-cast-connected:before {
content: '\f12e';
}
.zmdi-cast:before {
content: '\f12f';
}
.zmdi-chart-donut:before {
content: '\f130';
}
.zmdi-chart:before {
content: '\f131';
}
.zmdi-city-alt:before {
content: '\f132';
}
.zmdi-city:before {
content: '\f133';
}
.zmdi-close-circle-o:before {
content: '\f134';
}
.zmdi-close-circle:before {
content: '\f135';
}
.zmdi-close:before {
content: '\f136';
}
.zmdi-cocktail:before {
content: '\f137';
}
.zmdi-code-setting:before {
content: '\f138';
}
.zmdi-code-smartphone:before {
content: '\f139';
}
.zmdi-code:before {
content: '\f13a';
}
.zmdi-coffee:before {
content: '\f13b';
}
.zmdi-collection-bookmark:before {
content: '\f13c';
}
.zmdi-collection-case-play:before {
content: '\f13d';
}
.zmdi-collection-folder-image:before {
content: '\f13e';
}
.zmdi-collection-image-o:before {
content: '\f13f';
}
.zmdi-collection-image:before {
content: '\f140';
}
.zmdi-collection-item-1:before {
content: '\f141';
}
.zmdi-collection-item-2:before {
content: '\f142';
}
.zmdi-collection-item-3:before {
content: '\f143';
}
.zmdi-collection-item-4:before {
content: '\f144';
}
.zmdi-collection-item-5:before {
content: '\f145';
}
.zmdi-collection-item-6:before {
content: '\f146';
}
.zmdi-collection-item-7:before {
content: '\f147';
}
.zmdi-collection-item-8:before {
content: '\f148';
}
.zmdi-collection-item-9-plus:before {
content: '\f149';
}
.zmdi-collection-item-9:before {
content: '\f14a';
}
.zmdi-collection-item:before {
content: '\f14b';
}
.zmdi-collection-music:before {
content: '\f14c';
}
.zmdi-collection-pdf:before {
content: '\f14d';
}
.zmdi-collection-plus:before {
content: '\f14e';
}
.zmdi-collection-speaker:before {
content: '\f14f';
}
.zmdi-collection-text:before {
content: '\f150';
}
.zmdi-collection-video:before {
content: '\f151';
}
.zmdi-compass:before {
content: '\f152';
}
.zmdi-cutlery:before {
content: '\f153';
}
.zmdi-delete:before {
content: '\f154';
}
.zmdi-dialpad:before {
content: '\f155';
}
.zmdi-dns:before {
content: '\f156';
}
.zmdi-drink:before {
content: '\f157';
}
.zmdi-edit:before {
content: '\f158';
}
.zmdi-email-open:before {
content: '\f159';
}
.zmdi-email:before {
content: '\f15a';
}
.zmdi-eye-off:before {
content: '\f15b';
}
.zmdi-eye:before {
content: '\f15c';
}
.zmdi-eyedropper:before {
content: '\f15d';
}
.zmdi-favorite-outline:before {
content: '\f15e';
}
.zmdi-favorite:before {
content: '\f15f';
}
.zmdi-filter-list:before {
content: '\f160';
}
.zmdi-fire:before {
content: '\f161';
}
.zmdi-flag:before {
content: '\f162';
}
.zmdi-flare:before {
content: '\f163';
}
.zmdi-flash-auto:before {
content: '\f164';
}
.zmdi-flash-off:before {
content: '\f165';
}
.zmdi-flash:before {
content: '\f166';
}
.zmdi-flip:before {
content: '\f167';
}
.zmdi-flower-alt:before {
content: '\f168';
}
.zmdi-flower:before {
content: '\f169';
}
.zmdi-font:before {
content: '\f16a';
}
.zmdi-fullscreen-alt:before {
content: '\f16b';
}
.zmdi-fullscreen-exit:before {
content: '\f16c';
}
.zmdi-fullscreen:before {
content: '\f16d';
}
.zmdi-functions:before {
content: '\f16e';
}
.zmdi-gas-station:before {
content: '\f16f';
}
.zmdi-gesture:before {
content: '\f170';
}
.zmdi-globe-alt:before {
content: '\f171';
}
.zmdi-globe-lock:before {
content: '\f172';
}
.zmdi-globe:before {
content: '\f173';
}
.zmdi-graduation-cap:before {
content: '\f174';
}
.zmdi-home:before {
content: '\f175';
}
.zmdi-hospital-alt:before {
content: '\f176';
}
.zmdi-hospital:before {
content: '\f177';
}
.zmdi-hotel:before {
content: '\f178';
}
.zmdi-hourglass-alt:before {
content: '\f179';
}
.zmdi-hourglass-outline:before {
content: '\f17a';
}
.zmdi-hourglass:before {
content: '\f17b';
}
.zmdi-http:before {
content: '\f17c';
}
.zmdi-image-alt:before {
content: '\f17d';
}
.zmdi-image-o:before {
content: '\f17e';
}
.zmdi-image:before {
content: '\f17f';
}
.zmdi-inbox:before {
content: '\f180';
}
.zmdi-invert-colors-off:before {
content: '\f181';
}
.zmdi-invert-colors:before {
content: '\f182';
}
.zmdi-key:before {
content: '\f183';
}
.zmdi-label-alt-outline:before {
content: '\f184';
}
.zmdi-label-alt:before {
content: '\f185';
}
.zmdi-label-heart:before {
content: '\f186';
}
.zmdi-label:before {
content: '\f187';
}
.zmdi-labels:before {
content: '\f188';
}
.zmdi-lamp:before {
content: '\f189';
}
.zmdi-landscape:before {
content: '\f18a';
}
.zmdi-layers-off:before {
content: '\f18b';
}
.zmdi-layers:before {
content: '\f18c';
}
.zmdi-library:before {
content: '\f18d';
}
.zmdi-link:before {
content: '\f18e';
}
.zmdi-lock-open:before {
content: '\f18f';
}
.zmdi-lock-outline:before {
content: '\f190';
}
.zmdi-lock:before {
content: '\f191';
}
.zmdi-mail-reply-all:before {
content: '\f192';
}
.zmdi-mail-reply:before {
content: '\f193';
}
.zmdi-mail-send:before {
content: '\f194';
}
.zmdi-mall:before {
content: '\f195';
}
.zmdi-map:before {
content: '\f196';
}
.zmdi-menu:before {
content: '\f197';
}
.zmdi-money-box:before {
content: '\f198';
}
.zmdi-money-off:before {
content: '\f199';
}
.zmdi-money:before {
content: '\f19a';
}
.zmdi-more-vert:before {
content: '\f19b';
}
.zmdi-more:before {
content: '\f19c';
}
.zmdi-movie-alt:before {
content: '\f19d';
}
.zmdi-movie:before {
content: '\f19e';
}
.zmdi-nature-people:before {
content: '\f19f';
}
.zmdi-nature:before {
content: '\f1a0';
}
.zmdi-navigation:before {
content: '\f1a1';
}
.zmdi-open-in-browser:before {
content: '\f1a2';
}
.zmdi-open-in-new:before {
content: '\f1a3';
}
.zmdi-palette:before {
content: '\f1a4';
}
.zmdi-parking:before {
content: '\f1a5';
}
.zmdi-pin-account:before {
content: '\f1a6';
}
.zmdi-pin-assistant:before {
content: '\f1a7';
}
.zmdi-pin-drop:before {
content: '\f1a8';
}
.zmdi-pin-help:before {
content: '\f1a9';
}
.zmdi-pin-off:before {
content: '\f1aa';
}
.zmdi-pin:before {
content: '\f1ab';
}
.zmdi-pizza:before {
content: '\f1ac';
}
.zmdi-plaster:before {
content: '\f1ad';
}
.zmdi-power-setting:before {
content: '\f1ae';
}
.zmdi-power:before {
content: '\f1af';
}
.zmdi-print:before {
content: '\f1b0';
}
.zmdi-puzzle-piece:before {
content: '\f1b1';
}
.zmdi-quote:before {
content: '\f1b2';
}
.zmdi-railway:before {
content: '\f1b3';
}
.zmdi-receipt:before {
content: '\f1b4';
}
.zmdi-refresh-alt:before {
content: '\f1b5';
}
.zmdi-refresh-sync-alert:before {
content: '\f1b6';
}
.zmdi-refresh-sync-off:before {
content: '\f1b7';
}
.zmdi-refresh-sync:before {
content: '\f1b8';
}
.zmdi-refresh:before {
content: '\f1b9';
}
.zmdi-roller:before {
content: '\f1ba';
}
.zmdi-ruler:before {
content: '\f1bb';
}
.zmdi-scissors:before {
content: '\f1bc';
}
.zmdi-screen-rotation-lock:before {
content: '\f1bd';
}
.zmdi-screen-rotation:before {
content: '\f1be';
}
.zmdi-search-for:before {
content: '\f1bf';
}
.zmdi-search-in-file:before {
content: '\f1c0';
}
.zmdi-search-in-page:before {
content: '\f1c1';
}
.zmdi-search-replace:before {
content: '\f1c2';
}
.zmdi-search:before {
content: '\f1c3';
}
.zmdi-seat:before {
content: '\f1c4';
}
.zmdi-settings-square:before {
content: '\f1c5';
}
.zmdi-settings:before {
content: '\f1c6';
}
.zmdi-shield-check:before {
content: '\f1c7';
}
.zmdi-shield-security:before {
content: '\f1c8';
}
.zmdi-shopping-basket:before {
content: '\f1c9';
}
.zmdi-shopping-cart-plus:before {
content: '\f1ca';
}
.zmdi-shopping-cart:before {
content: '\f1cb';
}
.zmdi-sign-in:before {
content: '\f1cc';
}
.zmdi-sort-amount-asc:before {
content: '\f1cd';
}
.zmdi-sort-amount-desc:before {
content: '\f1ce';
}
.zmdi-sort-asc:before {
content: '\f1cf';
}
.zmdi-sort-desc:before {
content: '\f1d0';
}
.zmdi-spellcheck:before {
content: '\f1d1';
}
.zmdi-storage:before {
content: '\f1d2';
}
.zmdi-store-24:before {
content: '\f1d3';
}
.zmdi-store:before {
content: '\f1d4';
}
.zmdi-subway:before {
content: '\f1d5';
}
.zmdi-sun:before {
content: '\f1d6';
}
.zmdi-tab-unselected:before {
content: '\f1d7';
}
.zmdi-tab:before {
content: '\f1d8';
}
.zmdi-tag-close:before {
content: '\f1d9';
}
.zmdi-tag-more:before {
content: '\f1da';
}
.zmdi-tag:before {
content: '\f1db';
}
.zmdi-thumb-down:before {
content: '\f1dc';
}
.zmdi-thumb-up-down:before {
content: '\f1dd';
}
.zmdi-thumb-up:before {
content: '\f1de';
}
.zmdi-ticket-star:before {
content: '\f1df';
}
.zmdi-toll:before {
content: '\f1e0';
}
.zmdi-toys:before {
content: '\f1e1';
}
.zmdi-traffic:before {
content: '\f1e2';
}
.zmdi-translate:before {
content: '\f1e3';
}
.zmdi-triangle-down:before {
content: '\f1e4';
}
.zmdi-triangle-up:before {
content: '\f1e5';
}
.zmdi-truck:before {
content: '\f1e6';
}
.zmdi-turning-sign:before {
content: '\f1e7';
}
.zmdi-wallpaper:before {
content: '\f1e8';
}
.zmdi-washing-machine:before {
content: '\f1e9';
}
.zmdi-window-maximize:before {
content: '\f1ea';
}
.zmdi-window-minimize:before {
content: '\f1eb';
}
.zmdi-window-restore:before {
content: '\f1ec';
}
.zmdi-wrench:before {
content: '\f1ed';
}
.zmdi-zoom-in:before {
content: '\f1ee';
}
.zmdi-zoom-out:before {
content: '\f1ef';
}
.zmdi-alert-circle-o:before {
content: '\f1f0';
}
.zmdi-alert-circle:before {
content: '\f1f1';
}
.zmdi-alert-octagon:before {
content: '\f1f2';
}
.zmdi-alert-polygon:before {
content: '\f1f3';
}
.zmdi-alert-triangle:before {
content: '\f1f4';
}
.zmdi-help-outline:before {
content: '\f1f5';
}
.zmdi-help:before {
content: '\f1f6';
}
.zmdi-info-outline:before {
content: '\f1f7';
}
.zmdi-info:before {
content: '\f1f8';
}
.zmdi-notifications-active:before {
content: '\f1f9';
}
.zmdi-notifications-add:before {
content: '\f1fa';
}
.zmdi-notifications-none:before {
content: '\f1fb';
}
.zmdi-notifications-off:before {
content: '\f1fc';
}
.zmdi-notifications-paused:before {
content: '\f1fd';
}
.zmdi-notifications:before {
content: '\f1fe';
}
.zmdi-account-add:before {
content: '\f1ff';
}
.zmdi-account-box-mail:before {
content: '\f200';
}
.zmdi-account-box-o:before {
content: '\f201';
}
.zmdi-account-box-phone:before {
content: '\f202';
}
.zmdi-account-box:before {
content: '\f203';
}
.zmdi-account-calendar:before {
content: '\f204';
}
.zmdi-account-circle:before {
content: '\f205';
}
.zmdi-account-o:before {
content: '\f206';
}
.zmdi-account:before {
content: '\f207';
}
.zmdi-accounts-add:before {
content: '\f208';
}
.zmdi-accounts-alt:before {
content: '\f209';
}
.zmdi-accounts-list-alt:before {
content: '\f20a';
}
.zmdi-accounts-list:before {
content: '\f20b';
}
.zmdi-accounts-outline:before {
content: '\f20c';
}
.zmdi-accounts:before {
content: '\f20d';
}
.zmdi-face:before {
content: '\f20e';
}
.zmdi-female:before {
content: '\f20f';
}
.zmdi-male-alt:before {
content: '\f210';
}
.zmdi-male-female:before {
content: '\f211';
}
.zmdi-male:before {
content: '\f212';
}
.zmdi-mood-bad:before {
content: '\f213';
}
.zmdi-mood:before {
content: '\f214';
}
.zmdi-run:before {
content: '\f215';
}
.zmdi-walk:before {
content: '\f216';
}
.zmdi-cloud-box:before {
content: '\f217';
}
.zmdi-cloud-circle:before {
content: '\f218';
}
.zmdi-cloud-done:before {
content: '\f219';
}
.zmdi-cloud-download:before {
content: '\f21a';
}
.zmdi-cloud-off:before {
content: '\f21b';
}
.zmdi-cloud-outline-alt:before {
content: '\f21c';
}
.zmdi-cloud-outline:before {
content: '\f21d';
}
.zmdi-cloud-upload:before {
content: '\f21e';
}
.zmdi-cloud:before {
content: '\f21f';
}
.zmdi-download:before {
content: '\f220';
}
.zmdi-file-plus:before {
content: '\f221';
}
.zmdi-file-text:before {
content: '\f222';
}
.zmdi-file:before {
content: '\f223';
}
.zmdi-folder-outline:before {
content: '\f224';
}
.zmdi-folder-person:before {
content: '\f225';
}
.zmdi-folder-star-alt:before {
content: '\f226';
}
.zmdi-folder-star:before {
content: '\f227';
}
.zmdi-folder:before {
content: '\f228';
}
.zmdi-gif:before {
content: '\f229';
}
.zmdi-upload:before {
content: '\f22a';
}
.zmdi-border-all:before {
content: '\f22b';
}
.zmdi-border-bottom:before {
content: '\f22c';
}
.zmdi-border-clear:before {
content: '\f22d';
}
.zmdi-border-color:before {
content: '\f22e';
}
.zmdi-border-horizontal:before {
content: '\f22f';
}
.zmdi-border-inner:before {
content: '\f230';
}
.zmdi-border-left:before {
content: '\f231';
}
.zmdi-border-outer:before {
content: '\f232';
}
.zmdi-border-right:before {
content: '\f233';
}
.zmdi-border-style:before {
content: '\f234';
}
.zmdi-border-top:before {
content: '\f235';
}
.zmdi-border-vertical:before {
content: '\f236';
}
.zmdi-copy:before {
content: '\f237';
}
.zmdi-crop:before {
content: '\f238';
}
.zmdi-format-align-center:before {
content: '\f239';
}
.zmdi-format-align-justify:before {
content: '\f23a';
}
.zmdi-format-align-left:before {
content: '\f23b';
}
.zmdi-format-align-right:before {
content: '\f23c';
}
.zmdi-format-bold:before {
content: '\f23d';
}
.zmdi-format-clear-all:before {
content: '\f23e';
}
.zmdi-format-clear:before {
content: '\f23f';
}
.zmdi-format-color-fill:before {
content: '\f240';
}
.zmdi-format-color-reset:before {
content: '\f241';
}
.zmdi-format-color-text:before {
content: '\f242';
}
.zmdi-format-indent-decrease:before {
content: '\f243';
}
.zmdi-format-indent-increase:before {
content: '\f244';
}
.zmdi-format-italic:before {
content: '\f245';
}
.zmdi-format-line-spacing:before {
content: '\f246';
}
.zmdi-format-list-bulleted:before {
content: '\f247';
}
.zmdi-format-list-numbered:before {
content: '\f248';
}
.zmdi-format-ltr:before {
content: '\f249';
}
.zmdi-format-rtl:before {
content: '\f24a';
}
.zmdi-format-size:before {
content: '\f24b';
}
.zmdi-format-strikethrough-s:before {
content: '\f24c';
}
.zmdi-format-strikethrough:before {
content: '\f24d';
}
.zmdi-format-subject:before {
content: '\f24e';
}
.zmdi-format-underlined:before {
content: '\f24f';
}
.zmdi-format-valign-bottom:before {
content: '\f250';
}
.zmdi-format-valign-center:before {
content: '\f251';
}
.zmdi-format-valign-top:before {
content: '\f252';
}
.zmdi-redo:before {
content: '\f253';
}
.zmdi-select-all:before {
content: '\f254';
}
.zmdi-space-bar:before {
content: '\f255';
}
.zmdi-text-format:before {
content: '\f256';
}
.zmdi-transform:before {
content: '\f257';
}
.zmdi-undo:before {
content: '\f258';
}
.zmdi-wrap-text:before {
content: '\f259';
}
.zmdi-comment-alert:before {
content: '\f25a';
}
.zmdi-comment-alt-text:before {
content: '\f25b';
}
.zmdi-comment-alt:before {
content: '\f25c';
}
.zmdi-comment-edit:before {
content: '\f25d';
}
.zmdi-comment-image:before {
content: '\f25e';
}
.zmdi-comment-list:before {
content: '\f25f';
}
.zmdi-comment-more:before {
content: '\f260';
}
.zmdi-comment-outline:before {
content: '\f261';
}
.zmdi-comment-text-alt:before {
content: '\f262';
}
.zmdi-comment-text:before {
content: '\f263';
}
.zmdi-comment-video:before {
content: '\f264';
}
.zmdi-comment:before {
content: '\f265';
}
.zmdi-comments:before {
content: '\f266';
}
.zmdi-check-all:before {
content: '\f267';
}
.zmdi-check-circle-u:before {
content: '\f268';
}
.zmdi-check-circle:before {
content: '\f269';
}
.zmdi-check-square:before {
content: '\f26a';
}
.zmdi-check:before {
content: '\f26b';
}
.zmdi-circle-o:before {
content: '\f26c';
}
.zmdi-circle:before {
content: '\f26d';
}
.zmdi-dot-circle-alt:before {
content: '\f26e';
}
.zmdi-dot-circle:before {
content: '\f26f';
}
.zmdi-minus-circle-outline:before {
content: '\f270';
}
.zmdi-minus-circle:before {
content: '\f271';
}
.zmdi-minus-square:before {
content: '\f272';
}
.zmdi-minus:before {
content: '\f273';
}
.zmdi-plus-circle-o-duplicate:before {
content: '\f274';
}
.zmdi-plus-circle-o:before {
content: '\f275';
}
.zmdi-plus-circle:before {
content: '\f276';
}
.zmdi-plus-square:before {
content: '\f277';
}
.zmdi-plus:before {
content: '\f278';
}
.zmdi-square-o:before {
content: '\f279';
}
.zmdi-star-circle:before {
content: '\f27a';
}
.zmdi-star-half:before {
content: '\f27b';
}
.zmdi-star-outline:before {
content: '\f27c';
}
.zmdi-star:before {
content: '\f27d';
}
.zmdi-bluetooth-connected:before {
content: '\f27e';
}
.zmdi-bluetooth-off:before {
content: '\f27f';
}
.zmdi-bluetooth-search:before {
content: '\f280';
}
.zmdi-bluetooth-setting:before {
content: '\f281';
}
.zmdi-bluetooth:before {
content: '\f282';
}
.zmdi-camera-add:before {
content: '\f283';
}
.zmdi-camera-alt:before {
content: '\f284';
}
.zmdi-camera-bw:before {
content: '\f285';
}
.zmdi-camera-front:before {
content: '\f286';
}
.zmdi-camera-mic:before {
content: '\f287';
}
.zmdi-camera-party-mode:before {
content: '\f288';
}
.zmdi-camera-rear:before {
content: '\f289';
}
.zmdi-camera-roll:before {
content: '\f28a';
}
.zmdi-camera-switch:before {
content: '\f28b';
}
.zmdi-camera:before {
content: '\f28c';
}
.zmdi-card-alert:before {
content: '\f28d';
}
.zmdi-card-off:before {
content: '\f28e';
}
.zmdi-card-sd:before {
content: '\f28f';
}
.zmdi-card-sim:before {
content: '\f290';
}
.zmdi-desktop-mac:before {
content: '\f291';
}
.zmdi-desktop-windows:before {
content: '\f292';
}
.zmdi-device-hub:before {
content: '\f293';
}
.zmdi-devices-off:before {
content: '\f294';
}
.zmdi-devices:before {
content: '\f295';
}
.zmdi-dock:before {
content: '\f296';
}
.zmdi-floppy:before {
content: '\f297';
}
.zmdi-gamepad:before {
content: '\f298';
}
.zmdi-gps-dot:before {
content: '\f299';
}
.zmdi-gps-off:before {
content: '\f29a';
}
.zmdi-gps:before {
content: '\f29b';
}
.zmdi-headset-mic:before {
content: '\f29c';
}
.zmdi-headset:before {
content: '\f29d';
}
.zmdi-input-antenna:before {
content: '\f29e';
}
.zmdi-input-composite:before {
content: '\f29f';
}
.zmdi-input-hdmi:before {
content: '\f2a0';
}
.zmdi-input-power:before {
content: '\f2a1';
}
.zmdi-input-svideo:before {
content: '\f2a2';
}
.zmdi-keyboard-hide:before {
content: '\f2a3';
}
.zmdi-keyboard:before {
content: '\f2a4';
}
.zmdi-laptop-chromebook:before {
content: '\f2a5';
}
.zmdi-laptop-mac:before {
content: '\f2a6';
}
.zmdi-laptop:before {
content: '\f2a7';
}
.zmdi-mic-off:before {
content: '\f2a8';
}
.zmdi-mic-outline:before {
content: '\f2a9';
}
.zmdi-mic-setting:before {
content: '\f2aa';
}
.zmdi-mic:before {
content: '\f2ab';
}
.zmdi-mouse:before {
content: '\f2ac';
}
.zmdi-network-alert:before {
content: '\f2ad';
}
.zmdi-network-locked:before {
content: '\f2ae';
}
.zmdi-network-off:before {
content: '\f2af';
}
.zmdi-network-outline:before {
content: '\f2b0';
}
.zmdi-network-setting:before {
content: '\f2b1';
}
.zmdi-network:before {
content: '\f2b2';
}
.zmdi-phone-bluetooth:before {
content: '\f2b3';
}
.zmdi-phone-end:before {
content: '\f2b4';
}
.zmdi-phone-forwarded:before {
content: '\f2b5';
}
.zmdi-phone-in-talk:before {
content: '\f2b6';
}
.zmdi-phone-locked:before {
content: '\f2b7';
}
.zmdi-phone-missed:before {
content: '\f2b8';
}
.zmdi-phone-msg:before {
content: '\f2b9';
}
.zmdi-phone-paused:before {
content: '\f2ba';
}
.zmdi-phone-ring:before {
content: '\f2bb';
}
.zmdi-phone-setting:before {
content: '\f2bc';
}
.zmdi-phone-sip:before {
content: '\f2bd';
}
.zmdi-phone:before {
content: '\f2be';
}
.zmdi-portable-wifi-changes:before {
content: '\f2bf';
}
.zmdi-portable-wifi-off:before {
content: '\f2c0';
}
.zmdi-portable-wifi:before {
content: '\f2c1';
}
.zmdi-radio:before {
content: '\f2c2';
}
.zmdi-reader:before {
content: '\f2c3';
}
.zmdi-remote-control-alt:before {
content: '\f2c4';
}
.zmdi-remote-control:before {
content: '\f2c5';
}
.zmdi-router:before {
content: '\f2c6';
}
.zmdi-scanner:before {
content: '\f2c7';
}
.zmdi-smartphone-andrAdminid:before {
content: '\f2c8';
}
.zmdi-smartphone-download:before {
content: '\f2c9';
}
.zmdi-smartphone-erase:before {
content: '\f2ca';
}
.zmdi-smartphone-info:before {
content: '\f2cb';
}
.zmdi-smartphone-iphone:before {
content: '\f2cc';
}
.zmdi-smartphone-landscape-lock:before {
content: '\f2cd';
}
.zmdi-smartphone-landscape:before {
content: '\f2ce';
}
.zmdi-smartphone-lock:before {
content: '\f2cf';
}
.zmdi-smartphone-portrait-lock:before {
content: '\f2d0';
}
.zmdi-smartphone-ring:before {
content: '\f2d1';
}
.zmdi-smartphone-setting:before {
content: '\f2d2';
}
.zmdi-smartphone-setup:before {
content: '\f2d3';
}
.zmdi-smartphone:before {
content: '\f2d4';
}
.zmdi-speaker:before {
content: '\f2d5';
}
.zmdi-tablet-andrAdminid:before {
content: '\f2d6';
}
.zmdi-tablet-mac:before {
content: '\f2d7';
}
.zmdi-tablet:before {
content: '\f2d8';
}
.zmdi-tv-alt-play:before {
content: '\f2d9';
}
.zmdi-tv-list:before {
content: '\f2da';
}
.zmdi-tv-play:before {
content: '\f2db';
}
.zmdi-tv:before {
content: '\f2dc';
}
.zmdi-usb:before {
content: '\f2dd';
}
.zmdi-videocam-off:before {
content: '\f2de';
}
.zmdi-videocam-switch:before {
content: '\f2df';
}
.zmdi-videocam:before {
content: '\f2e0';
}
.zmdi-watch:before {
content: '\f2e1';
}
.zmdi-wifi-alt-2:before {
content: '\f2e2';
}
.zmdi-wifi-alt:before {
content: '\f2e3';
}
.zmdi-wifi-info:before {
content: '\f2e4';
}
.zmdi-wifi-lock:before {
content: '\f2e5';
}
.zmdi-wifi-off:before {
content: '\f2e6';
}
.zmdi-wifi-outline:before {
content: '\f2e7';
}
.zmdi-wifi:before {
content: '\f2e8';
}
.zmdi-arrow-left-bottom:before {
content: '\f2e9';
}
.zmdi-arrow-left:before {
content: '\f2ea';
}
.zmdi-arrow-merge:before {
content: '\f2eb';
}
.zmdi-arrow-missed:before {
content: '\f2ec';
}
.zmdi-arrow-right-top:before {
content: '\f2ed';
}
.zmdi-arrow-right:before {
content: '\f2ee';
}
.zmdi-arrow-split:before {
content: '\f2ef';
}
.zmdi-arrows:before {
content: '\f2f0';
}
.zmdi-caret-down-circle:before {
content: '\f2f1';
}
.zmdi-caret-down:before {
content: '\f2f2';
}
.zmdi-caret-left-circle:before {
content: '\f2f3';
}
.zmdi-caret-left:before {
content: '\f2f4';
}
.zmdi-caret-right-circle:before {
content: '\f2f5';
}
.zmdi-caret-right:before {
content: '\f2f6';
}
.zmdi-caret-up-circle:before {
content: '\f2f7';
}
.zmdi-caret-up:before {
content: '\f2f8';
}
.zmdi-chevron-down:before {
content: '\f2f9';
}
.zmdi-chevron-left:before {
content: '\f2fa';
}
.zmdi-chevron-right:before {
content: '\f2fb';
}
.zmdi-chevron-up:before {
content: '\f2fc';
}
.zmdi-forward:before {
content: '\f2fd';
}
.zmdi-long-arrow-down:before {
content: '\f2fe';
}
.zmdi-long-arrow-left:before {
content: '\f2ff';
}
.zmdi-long-arrow-return:before {
content: '\f300';
}
.zmdi-long-arrow-right:before {
content: '\f301';
}
.zmdi-long-arrow-tab:before {
content: '\f302';
}
.zmdi-long-arrow-up:before {
content: '\f303';
}
.zmdi-rotate-ccw:before {
content: '\f304';
}
.zmdi-rotate-cw:before {
content: '\f305';
}
.zmdi-rotate-left:before {
content: '\f306';
}
.zmdi-rotate-right:before {
content: '\f307';
}
.zmdi-square-down:before {
content: '\f308';
}
.zmdi-square-right:before {
content: '\f309';
}
.zmdi-swap-alt:before {
content: '\f30a';
}
.zmdi-swap-vertical-circle:before {
content: '\f30b';
}
.zmdi-swap-vertical:before {
content: '\f30c';
}
.zmdi-swap:before {
content: '\f30d';
}
.zmdi-trending-down:before {
content: '\f30e';
}
.zmdi-trending-flat:before {
content: '\f30f';
}
.zmdi-trending-up:before {
content: '\f310';
}
.zmdi-unfold-less:before {
content: '\f311';
}
.zmdi-unfold-more:before {
content: '\f312';
}
.zmdi-apps:before {
content: '\f313';
}
.zmdi-grid-off:before {
content: '\f314';
}
.zmdi-grid:before {
content: '\f315';
}
.zmdi-view-agenda:before {
content: '\f316';
}
.zmdi-view-array:before {
content: '\f317';
}
.zmdi-view-carousel:before {
content: '\f318';
}
.zmdi-view-column:before {
content: '\f319';
}
.zmdi-view-comfy:before {
content: '\f31a';
}
.zmdi-view-compact:before {
content: '\f31b';
}
.zmdi-view-dashboard:before {
content: '\f31c';
}
.zmdi-view-day:before {
content: '\f31d';
}
.zmdi-view-headline:before {
content: '\f31e';
}
.zmdi-view-list-alt:before {
content: '\f31f';
}
.zmdi-view-list:before {
content: '\f320';
}
.zmdi-view-module:before {
content: '\f321';
}
.zmdi-view-quilt:before {
content: '\f322';
}
.zmdi-view-stream:before {
content: '\f323';
}
.zmdi-view-subtitles:before {
content: '\f324';
}
.zmdi-view-toc:before {
content: '\f325';
}
.zmdi-view-web:before {
content: '\f326';
}
.zmdi-view-week:before {
content: '\f327';
}
.zmdi-widgets:before {
content: '\f328';
}
.zmdi-alarm-check:before {
content: '\f329';
}
.zmdi-alarm-off:before {
content: '\f32a';
}
.zmdi-alarm-plus:before {
content: '\f32b';
}
.zmdi-alarm-snooze:before {
content: '\f32c';
}
.zmdi-alarm:before {
content: '\f32d';
}
.zmdi-calendar-alt:before {
content: '\f32e';
}
.zmdi-calendar-check:before {
content: '\f32f';
}
.zmdi-calendar-close:before {
content: '\f330';
}
.zmdi-calendar-note:before {
content: '\f331';
}
.zmdi-calendar:before {
content: '\f332';
}
.zmdi-time-countdown:before {
content: '\f333';
}
.zmdi-time-interval:before {
content: '\f334';
}
.zmdi-time-restore-setting:before {
content: '\f335';
}
.zmdi-time-restore:before {
content: '\f336';
}
.zmdi-time:before {
content: '\f337';
}
.zmdi-timer-off:before {
content: '\f338';
}
.zmdi-timer:before {
content: '\f339';
}
.zmdi-andrAdminid-alt:before {
content: '\f33a';
}
.zmdi-andrAdminid:before {
content: '\f33b';
}
.zmdi-apple:before {
content: '\f33c';
}
.zmdi-behance:before {
content: '\f33d';
}
.zmdi-codepen:before {
content: '\f33e';
}
.zmdi-dribbble:before {
content: '\f33f';
}
.zmdi-dropbox:before {
content: '\f340';
}
.zmdi-evernote:before {
content: '\f341';
}
.zmdi-facebook-box:before {
content: '\f342';
}
.zmdi-facebook:before {
content: '\f343';
}
.zmdi-github-box:before {
content: '\f344';
}
.zmdi-github:before {
content: '\f345';
}
.zmdi-google-drive:before {
content: '\f346';
}
.zmdi-google-earth:before {
content: '\f347';
}
.zmdi-google-glass:before {
content: '\f348';
}
.zmdi-google-maps:before {
content: '\f349';
}
.zmdi-google-pages:before {
content: '\f34a';
}
.zmdi-google-play:before {
content: '\f34b';
}
.zmdi-google-plus-box:before {
content: '\f34c';
}
.zmdi-google-plus:before {
content: '\f34d';
}
.zmdi-google:before {
content: '\f34e';
}
.zmdi-instagram:before {
content: '\f34f';
}
.zmdi-language-css3:before {
content: '\f350';
}
.zmdi-language-html5:before {
content: '\f351';
}
.zmdi-language-javascript:before {
content: '\f352';
}
.zmdi-language-python-alt:before {
content: '\f353';
}
.zmdi-language-python:before {
content: '\f354';
}
.zmdi-lastfm:before {
content: '\f355';
}
.zmdi-linkedin-box:before {
content: '\f356';
}
.zmdi-paypal:before {
content: '\f357';
}
.zmdi-pinterest-box:before {
content: '\f358';
}
.zmdi-pocket:before {
content: '\f359';
}
.zmdi-polymer:before {
content: '\f35a';
}
.zmdi-share:before {
content: '\f35b';
}
.zmdi-stackoverflow:before {
content: '\f35c';
}
.zmdi-steam-square:before {
content: '\f35d';
}
.zmdi-steam:before {
content: '\f35e';
}
.zmdi-twitter-box:before {
content: '\f35f';
}
.zmdi-twitter:before {
content: '\f360';
}
.zmdi-vk:before {
content: '\f361';
}
.zmdi-wikipedia:before {
content: '\f362';
}
.zmdi-windows:before {
content: '\f363';
}
.zmdi-aspect-ratio-alt:before {
content: '\f364';
}
.zmdi-aspect-ratio:before {
content: '\f365';
}
.zmdi-blur-circular:before {
content: '\f366';
}
.zmdi-blur-linear:before {
content: '\f367';
}
.zmdi-blur-off:before {
content: '\f368';
}
.zmdi-blur:before {
content: '\f369';
}
.zmdi-brightness-2:before {
content: '\f36a';
}
.zmdi-brightness-3:before {
content: '\f36b';
}
.zmdi-brightness-4:before {
content: '\f36c';
}
.zmdi-brightness-5:before {
content: '\f36d';
}
.zmdi-brightness-6:before {
content: '\f36e';
}
.zmdi-brightness-7:before {
content: '\f36f';
}
.zmdi-brightness-auto:before {
content: '\f370';
}
.zmdi-brightness-setting:before {
content: '\f371';
}
.zmdi-broken-image:before {
content: '\f372';
}
.zmdi-center-focus-strong:before {
content: '\f373';
}
.zmdi-center-focus-weak:before {
content: '\f374';
}
.zmdi-compare:before {
content: '\f375';
}
.zmdi-crop-16-9:before {
content: '\f376';
}
.zmdi-crop-3-2:before {
content: '\f377';
}
.zmdi-crop-5-4:before {
content: '\f378';
}
.zmdi-crop-7-5:before {
content: '\f379';
}
.zmdi-crop-din:before {
content: '\f37a';
}
.zmdi-crop-free:before {
content: '\f37b';
}
.zmdi-crop-landscape:before {
content: '\f37c';
}
.zmdi-crop-portrait:before {
content: '\f37d';
}
.zmdi-crop-square:before {
content: '\f37e';
}
.zmdi-exposure-alt:before {
content: '\f37f';
}
.zmdi-exposure:before {
content: '\f380';
}
.zmdi-filter-b-and-w:before {
content: '\f381';
}
.zmdi-filter-center-focus:before {
content: '\f382';
}
.zmdi-filter-frames:before {
content: '\f383';
}
.zmdi-filter-tilt-shift:before {
content: '\f384';
}
.zmdi-gradient:before {
content: '\f385';
}
.zmdi-grain:before {
content: '\f386';
}
.zmdi-graphic-eq:before {
content: '\f387';
}
.zmdi-hdr-off:before {
content: '\f388';
}
.zmdi-hdr-strong:before {
content: '\f389';
}
.zmdi-hdr-weak:before {
content: '\f38a';
}
.zmdi-hdr:before {
content: '\f38b';
}
.zmdi-iridescent:before {
content: '\f38c';
}
.zmdi-leak-off:before {
content: '\f38d';
}
.zmdi-leak:before {
content: '\f38e';
}
.zmdi-looks:before {
content: '\f38f';
}
.zmdi-loupe:before {
content: '\f390';
}
.zmdi-panorama-horizontal:before {
content: '\f391';
}
.zmdi-panorama-vertical:before {
content: '\f392';
}
.zmdi-panorama-wide-angle:before {
content: '\f393';
}
.zmdi-photo-size-select-large:before {
content: '\f394';
}
.zmdi-photo-size-select-small:before {
content: '\f395';
}
.zmdi-picture-in-picture:before {
content: '\f396';
}
.zmdi-slideshow:before {
content: '\f397';
}
.zmdi-texture:before {
content: '\f398';
}
.zmdi-tonality:before {
content: '\f399';
}
.zmdi-vignette:before {
content: '\f39a';
}
.zmdi-wb-auto:before {
content: '\f39b';
}
.zmdi-eject-alt:before {
content: '\f39c';
}
.zmdi-eject:before {
content: '\f39d';
}
.zmdi-equalizer:before {
content: '\f39e';
}
.zmdi-fast-forward:before {
content: '\f39f';
}
.zmdi-fast-rewind:before {
content: '\f3a0';
}
.zmdi-forward-10:before {
content: '\f3a1';
}
.zmdi-forward-30:before {
content: '\f3a2';
}
.zmdi-forward-5:before {
content: '\f3a3';
}
.zmdi-hearing:before {
content: '\f3a4';
}
.zmdi-pause-circle-outline:before {
content: '\f3a5';
}
.zmdi-pause-circle:before {
content: '\f3a6';
}
.zmdi-pause:before {
content: '\f3a7';
}
.zmdi-play-circle-outline:before {
content: '\f3a8';
}
.zmdi-play-circle:before {
content: '\f3a9';
}
.zmdi-play:before {
content: '\f3aa';
}
.zmdi-playlist-audio:before {
content: '\f3ab';
}
.zmdi-playlist-plus:before {
content: '\f3ac';
}
.zmdi-repeat-one:before {
content: '\f3ad';
}
.zmdi-repeat:before {
content: '\f3ae';
}
.zmdi-replay-10:before {
content: '\f3af';
}
.zmdi-replay-30:before {
content: '\f3b0';
}
.zmdi-replay-5:before {
content: '\f3b1';
}
.zmdi-replay:before {
content: '\f3b2';
}
.zmdi-shuffle:before {
content: '\f3b3';
}
.zmdi-skip-next:before {
content: '\f3b4';
}
.zmdi-skip-previous:before {
content: '\f3b5';
}
.zmdi-stop:before {
content: '\f3b6';
}
.zmdi-surround-sound:before {
content: '\f3b7';
}
.zmdi-tune:before {
content: '\f3b8';
}
.zmdi-volume-down:before {
content: '\f3b9';
}
.zmdi-volume-mute:before {
content: '\f3ba';
}
.zmdi-volume-off:before {
content: '\f3bb';
}
.zmdi-volume-up:before {
content: '\f3bc';
}
.zmdi-n-1-square:before {
content: '\f3bd';
}
.zmdi-n-2-square:before {
content: '\f3be';
}
.zmdi-n-3-square:before {
content: '\f3bf';
}
.zmdi-n-4-square:before {
content: '\f3c0';
}
.zmdi-n-5-square:before {
content: '\f3c1';
}
.zmdi-n-6-square:before {
content: '\f3c2';
}
.zmdi-neg-1:before {
content: '\f3c3';
}
.zmdi-neg-2:before {
content: '\f3c4';
}
.zmdi-plus-1:before {
content: '\f3c5';
}
.zmdi-plus-2:before {
content: '\f3c6';
}
.zmdi-sec-10:before {
content: '\f3c7';
}
.zmdi-sec-3:before {
content: '\f3c8';
}
.zmdi-zero:before {
content: '\f3c9';
}
.zmdi-airline-seat-flat-angled:before {
content: '\f3ca';
}
.zmdi-airline-seat-flat:before {
content: '\f3cb';
}
.zmdi-airline-seat-individual-suite:before {
content: '\f3cc';
}
.zmdi-airline-seat-legroom-extra:before {
content: '\f3cd';
}
.zmdi-airline-seat-legroom-normal:before {
content: '\f3ce';
}
.zmdi-airline-seat-legroom-reduced:before {
content: '\f3cf';
}
.zmdi-airline-seat-recline-extra:before {
content: '\f3d0';
}
.zmdi-airline-seat-recline-normal:before {
content: '\f3d1';
}
.zmdi-airplay:before {
content: '\f3d2';
}
.zmdi-closed-caption:before {
content: '\f3d3';
}
.zmdi-confirmation-number:before {
content: '\f3d4';
}
.zmdi-developer-board:before {
content: '\f3d5';
}
.zmdi-disc-full:before {
content: '\f3d6';
}
.zmdi-explicit:before {
content: '\f3d7';
}
.zmdi-flight-land:before {
content: '\f3d8';
}
.zmdi-flight-takeoff:before {
content: '\f3d9';
}
.zmdi-flip-to-back:before {
content: '\f3da';
}
.zmdi-flip-to-front:before {
content: '\f3db';
}
.zmdi-group-work:before {
content: '\f3dc';
}
.zmdi-hd:before {
content: '\f3dd';
}
.zmdi-hq:before {
content: '\f3de';
}
.zmdi-markunread-mailbox:before {
content: '\f3df';
}
.zmdi-memory:before {
content: '\f3e0';
}
.zmdi-nfc:before {
content: '\f3e1';
}
.zmdi-play-for-work:before {
content: '\f3e2';
}
.zmdi-power-input:before {
content: '\f3e3';
}
.zmdi-present-to-all:before {
content: '\f3e4';
}
.zmdi-satellite:before {
content: '\f3e5';
}
.zmdi-tap-and-play:before {
content: '\f3e6';
}
.zmdi-vibration:before {
content: '\f3e7';
}
.zmdi-voicemail:before {
content: '\f3e8';
}
.zmdi-group:before {
content: '\f3e9';
}
.zmdi-rss:before {
content: '\f3ea';
}
.zmdi-shape:before {
content: '\f3eb';
}
.zmdi-spinner:before {
content: '\f3ec';
}
.zmdi-ungroup:before {
content: '\f3ed';
}
.zmdi-500px:before {
content: '\f3ee';
}
.zmdi-8tracks:before {
content: '\f3ef';
}
.zmdi-amazon:before {
content: '\f3f0';
}
.zmdi-blogger:before {
content: '\f3f1';
}
.zmdi-delicious:before {
content: '\f3f2';
}
.zmdi-disqus:before {
content: '\f3f3';
}
.zmdi-flattr:before {
content: '\f3f4';
}
.zmdi-flickr:before {
content: '\f3f5';
}
.zmdi-github-alt:before {
content: '\f3f6';
}
.zmdi-google-old:before {
content: '\f3f7';
}
.zmdi-linkedin:before {
content: '\f3f8';
}
.zmdi-odnoklassniki:before {
content: '\f3f9';
}
.zmdi-outlook:before {
content: '\f3fa';
}
.zmdi-paypal-alt:before {
content: '\f3fb';
}
.zmdi-pinterest:before {
content: '\f3fc';
}
.zmdi-playstation:before {
content: '\f3fd';
}
.zmdi-reddit:before {
content: '\f3fe';
}
.zmdi-skype:before {
content: '\f3ff';
}
.zmdi-slideshare:before {
content: '\f400';
}
.zmdi-soundcloud:before {
content: '\f401';
}
.zmdi-tumblr:before {
content: '\f402';
}
.zmdi-twitch:before {
content: '\f403';
}
.zmdi-vimeo:before {
content: '\f404';
}
.zmdi-whatsapp:before {
content: '\f405';
}
.zmdi-xbox:before {
content: '\f406';
}
.zmdi-yahoo:before {
content: '\f407';
}
.zmdi-youtube-play:before {
content: '\f408';
}
.zmdi-youtube:before {
content: '\f409';
}
.zmdi-import-export:before {
content: '\f30c';
}
.zmdi-swap-vertical-:before {
content: '\f30c';
}
.zmdi-airplanemode-inactive:before {
content: '\f102';
}
.zmdi-airplanemode-active:before {
content: '\f103';
}
.zmdi-rate-review:before {
content: '\f103';
}
.zmdi-comment-sign:before {
content: '\f25a';
}
.zmdi-network-warning:before {
content: '\f2ad';
}
.zmdi-shopping-cart-add:before {
content: '\f1ca';
}
.zmdi-file-add:before {
content: '\f221';
}
.zmdi-network-wifi-scan:before {
content: '\f2e4';
}
.zmdi-collection-add:before {
content: '\f14e';
}
.zmdi-format-playlist-add:before {
content: '\f3ac';
}
.zmdi-format-queue-music:before {
content: '\f3ab';
}
.zmdi-plus-box:before {
content: '\f277';
}
.zmdi-tag-backspace:before {
content: '\f1d9';
}
.zmdi-alarm-add:before {
content: '\f32b';
}
.zmdi-battery-charging:before {
content: '\f114';
}
.zmdi-daydream-setting:before {
content: '\f217';
}
.zmdi-more-horiz:before {
content: '\f19c';
}
.zmdi-book-photo:before {
content: '\f11b';
}
.zmdi-incandescent:before {
content: '\f189';
}
.zmdi-wb-iridescent:before {
content: '\f38c';
}
.zmdi-calendar-remove:before {
content: '\f330';
}
.zmdi-refresh-sync-disabled:before {
content: '\f1b7';
}
.zmdi-refresh-sync-problem:before {
content: '\f1b6';
}
.zmdi-crop-original:before {
content: '\f17e';
}
.zmdi-power-off:before {
content: '\f1af';
}
.zmdi-power-off-setting:before {
content: '\f1ae';
}
.zmdi-leak-remove:before {
content: '\f38d';
}
.zmdi-star-border:before {
content: '\f27c';
}
.zmdi-brightness-low:before {
content: '\f36d';
}
.zmdi-brightness-medium:before {
content: '\f36e';
}
.zmdi-brightness-high:before {
content: '\f36f';
}
.zmdi-smartphone-portrait:before {
content: '\f2d4';
}
.zmdi-live-tv:before {
content: '\f2d9';
}
.zmdi-format-textdirection-l-to-r:before {
content: '\f249';
}
.zmdi-format-textdirection-r-to-l:before {
content: '\f24a';
}
.zmdi-arrow-back:before {
content: '\f2ea';
}
.zmdi-arrow-forward:before {
content: '\f2ee';
}
.zmdi-arrow-in:before {
content: '\f2e9';
}
.zmdi-arrow-out:before {
content: '\f2ed';
}
.zmdi-rotate-90-degrees-ccw:before {
content: '\f304';
}
.zmdi-adb:before {
content: '\f33a';
}
.zmdi-network-wifi:before {
content: '\f2e8';
}
.zmdi-network-wifi-alt:before {
content: '\f2e3';
}
.zmdi-network-wifi-lock:before {
content: '\f2e5';
}
.zmdi-network-wifi-off:before {
content: '\f2e6';
}
.zmdi-network-wifi-outline:before {
content: '\f2e7';
}
.zmdi-network-wifi-info:before {
content: '\f2e4';
}
.zmdi-layers-clear:before {
content: '\f18b';
}
.zmdi-colorize:before {
content: '\f15d';
}
.zmdi-format-paint:before {
content: '\f1ba';
}
.zmdi-format-quote:before {
content: '\f1b2';
}
.zmdi-camera-monochrome-photos:before {
content: '\f285';
}
.zmdi-sort-by-alpha:before {
content: '\f1cf';
}
.zmdi-folder-shared:before {
content: '\f225';
}
.zmdi-folder-special:before {
content: '\f226';
}
.zmdi-comment-dots:before {
content: '\f260';
}
.zmdi-reorder:before {
content: '\f31e';
}
.zmdi-dehaze:before {
content: '\f197';
}
.zmdi-sort:before {
content: '\f1ce';
}
.zmdi-pages:before {
content: '\f34a';
}
.zmdi-stack-overflow:before {
content: '\f35c';
}
.zmdi-calendar-account:before {
content: '\f204';
}
.zmdi-paste:before {
content: '\f109';
}
.zmdi-cut:before {
content: '\f1bc';
}
.zmdi-save:before {
content: '\f297';
}
.zmdi-smartphone-code:before {
content: '\f139';
}
.zmdi-directions-bike:before {
content: '\f117';
}
.zmdi-directions-boat:before {
content: '\f11a';
}
.zmdi-directions-bus:before {
content: '\f121';
}
.zmdi-directions-car:before {
content: '\f125';
}
.zmdi-directions-railway:before {
content: '\f1b3';
}
.zmdi-directions-run:before {
content: '\f215';
}
.zmdi-directions-subway:before {
content: '\f1d5';
}
.zmdi-directions-walk:before {
content: '\f216';
}
.zmdi-local-hotel:before {
content: '\f178';
}
.zmdi-local-activity:before {
content: '\f1df';
}
.zmdi-local-play:before {
content: '\f1df';
}
.zmdi-local-airport:before {
content: '\f103';
}
.zmdi-local-atm:before {
content: '\f198';
}
.zmdi-local-bar:before {
content: '\f137';
}
.zmdi-local-cafe:before {
content: '\f13b';
}
.zmdi-local-car-wash:before {
content: '\f124';
}
.zmdi-local-convenience-store:before {
content: '\f1d3';
}
.zmdi-local-dining:before {
content: '\f153';
}
.zmdi-local-drink:before {
content: '\f157';
}
.zmdi-local-florist:before {
content: '\f168';
}
.zmdi-local-gas-station:before {
content: '\f16f';
}
.zmdi-local-grocery-store:before {
content: '\f1cb';
}
.zmdi-local-hospital:before {
content: '\f177';
}
.zmdi-local-laundry-service:before {
content: '\f1e9';
}
.zmdi-local-library:before {
content: '\f18d';
}
.zmdi-local-mall:before {
content: '\f195';
}
.zmdi-local-movies:before {
content: '\f19d';
}
.zmdi-local-offer:before {
content: '\f187';
}
.zmdi-local-parking:before {
content: '\f1a5';
}
.zmdi-local-parking:before {
content: '\f1a5';
}
.zmdi-local-pharmacy:before {
content: '\f176';
}
.zmdi-local-phone:before {
content: '\f2be';
}
.zmdi-local-pizza:before {
content: '\f1ac';
}
.zmdi-local-post-office:before {
content: '\f15a';
}
.zmdi-local-printshop:before {
content: '\f1b0';
}
.zmdi-local-see:before {
content: '\f28c';
}
.zmdi-local-shipping:before {
content: '\f1e6';
}
.zmdi-local-store:before {
content: '\f1d4';
}
.zmdi-local-taxi:before {
content: '\f123';
}
.zmdi-local-wc:before {
content: '\f211';
}
.zmdi-my-location:before {
content: '\f299';
}
.zmdi-directions:before {
content: '\f1e7';
}
================================================
FILE: public/admin-panel/dist/css/icons/themify-icons/ie7/ie7.css
================================================
.ti-wand {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-volume {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-user {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-unlock {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-unlink {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-trash {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-thought {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-target {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-tag {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-tablet {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-star {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-spray {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-signal {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-shopping-cart {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-shopping-cart-full {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-settings {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-search {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-zoom-in {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-zoom-out {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-cut {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-ruler {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-ruler-pencil {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-ruler-alt {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-bookmark {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-bookmark-alt {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-reload {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-plus {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-pin {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-pencil {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-pencil-alt {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-paint-roller {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-paint-bucket {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-na {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-mobile {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-minus {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-medall {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-medall-alt {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-marker {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-marker-alt {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-arrow-up {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-arrow-right {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-arrow-left {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-arrow-down {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-lock {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-location-arrow {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-link {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-layout {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-layers {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-layers-alt {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-key {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-import {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-image {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-heart {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-heart-broken {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-hand-stop {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-hand-open {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-hand-drag {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-folder {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-flag {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-flag-alt {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-flag-alt-2 {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-eye {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-export {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-exchange-vertical {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-desktop {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-cup {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-crown {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-comments {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-comment {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-comment-alt {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-close {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-clip {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-angle-up {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-angle-right {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-angle-left {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-angle-down {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-check {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-check-box {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-camera {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-announcement {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-brush {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-briefcase {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-bolt {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-bolt-alt {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-blackboard {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-bag {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-move {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-arrows-vertical {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-arrows-horizontal {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-fullscreen {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-arrow-top-right {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-arrow-top-left {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-arrow-circle-up {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-arrow-circle-right {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-arrow-circle-left {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-arrow-circle-down {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-angle-double-up {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-angle-double-right {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-angle-double-left {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-angle-double-down {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-zip {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-world {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-wheelchair {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-view-list {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-view-list-alt {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-view-grid {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-uppercase {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-upload {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-underline {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-truck {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-timer {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-ticket {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-thumb-up {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-thumb-down {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-text {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-stats-up {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-stats-down {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-split-v {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-split-h {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-smallcap {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-shine {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-shift-right {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-shift-left {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-shield {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-notepad {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-server {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-quote-right {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-quote-left {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-pulse {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-printer {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-power-off {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-plug {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-pie-chart {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-paragraph {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-panel {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-package {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-music {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-music-alt {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-mouse {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-mouse-alt {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-money {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-microphone {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-menu {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-menu-alt {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-map {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-map-alt {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-loop {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-location-pin {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-list {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-light-bulb {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-Italic {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-info {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-infinite {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-id-badge {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-hummer {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-home {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-help {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-headphone {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-harddrives {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-harddrive {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-gift {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-game {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-filter {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-files {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-file {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-eraser {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-envelope {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-download {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-direction {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-direction-alt {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-dashboard {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-control-stop {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-control-shuffle {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-control-play {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-control-pause {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-control-forward {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-control-backward {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-cloud {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-cloud-up {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-cloud-down {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-clipboard {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-car {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-calendar {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-book {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-bell {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-basketball {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-bar-chart {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-bar-chart-alt {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-back-right {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-back-left {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-arrows-corner {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-archive {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-anchor {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-align-right {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-align-left {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-align-justify {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-align-center {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-alert {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-alarm-clock {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-agenda {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-write {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-window {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-widgetized {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-widget {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-widget-alt {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-wallet {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-video-clapper {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-video-camera {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-vector {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-themify-logo {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-themify-favicon {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-themify-favicon-alt {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-support {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-stamp {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-split-v-alt {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-slice {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-shortcode {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-shift-right-alt {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-shift-left-alt {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-ruler-alt-2 {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-receipt {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-pin2 {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-pin-alt {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-pencil-alt2 {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-palette {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-more {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-more-alt {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-microphone-alt {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-magnet {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-line-double {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-line-dotted {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-line-dashed {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-layout-width-full {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-layout-width-default {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-layout-width-default-alt {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-layout-tab {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-layout-tab-window {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-layout-tab-v {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-layout-tab-min {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-layout-slider {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-layout-slider-alt {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-layout-sidebar-right {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-layout-sidebar-none {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-layout-sidebar-left {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-layout-placeholder {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-layout-menu {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-layout-menu-v {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-layout-menu-separated {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-layout-menu-full {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-layout-media-right-alt {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-layout-media-right {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-layout-media-overlay {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-layout-media-overlay-alt {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-layout-media-overlay-alt-2 {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-layout-media-left-alt {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-layout-media-left {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-layout-media-center-alt {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-layout-media-center {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-layout-list-thumb {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-layout-list-thumb-alt {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-layout-list-post {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-layout-list-large-image {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-layout-line-solid {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-layout-grid4 {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-layout-grid3 {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-layout-grid2 {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-layout-grid2-thumb {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-layout-cta-right {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-layout-cta-left {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-layout-cta-center {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-layout-cta-btn-right {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-layout-cta-btn-left {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-layout-column4 {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-layout-column3 {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-layout-column2 {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-layout-accordion-separated {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-layout-accordion-merged {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-layout-accordion-list {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-ink-pen {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-info-alt {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-help-alt {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-headphone-alt {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-hand-point-up {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-hand-point-right {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-hand-point-left {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-hand-point-down {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-gallery {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-face-smile {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-face-sad {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-credit-card {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-control-skip-forward {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-control-skip-backward {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-control-record {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-control-eject {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-comments-smiley {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-brush-alt {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-youtube {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-vimeo {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-twitter {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-time {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-tumblr {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-skype {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-share {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-share-alt {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-rocket {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-pinterest {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-new-window {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-microsoft {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-list-ol {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-linkedin {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-layout-sidebar-2 {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-layout-grid4-alt {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-layout-grid3-alt {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-layout-grid2-alt {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-layout-column4-alt {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-layout-column3-alt {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-layout-column2-alt {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-instagram {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-google {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-github {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-flickr {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-facebook {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-dropbox {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-dribbble {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-apple {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-andrAdminid {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-save {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-save-alt {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-yahoo {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-wordpress {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-vimeo-alt {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-twitter-alt {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-tumblr-alt {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-trello {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-stack-overflow {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-soundcloud {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-sharethis {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-sharethis-alt {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-reddit {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-pinterest-alt {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-microsoft-alt {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-linux {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-jsfiddle {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-joomla {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-html5 {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-flickr-alt {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-email {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-drupal {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-dropbox-alt {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-css3 {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-rss {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
.ti-rss-alt {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
================================================
FILE: public/admin-panel/dist/css/icons/themify-icons/ie7/ie7.js
================================================
/* To avAdminid CSS expressions while still supporting IE 7 and IE 6, use this script */
/* The script tag referring to this file must be placed before the ending body tag. */
/* Use conditional comments in order to target IE 7 and older:
*/
(function() {
function addIcon(el, entity) {
var html = el.innerHTML;
el.innerHTML = '' + entity + ' ' + html;
}
var icons = {
'ti-wand': '',
'ti-volume': '',
'ti-user': '',
'ti-unlock': '',
'ti-unlink': '',
'ti-trash': '',
'ti-thought': '',
'ti-target': '',
'ti-tag': '',
'ti-tablet': '',
'ti-star': '',
'ti-spray': '',
'ti-signal': '',
'ti-shopping-cart': '',
'ti-shopping-cart-full': '',
'ti-settings': '',
'ti-search': '',
'ti-zoom-in': '',
'ti-zoom-out': '',
'ti-cut': '',
'ti-ruler': '',
'ti-ruler-pencil': '',
'ti-ruler-alt': '',
'ti-bookmark': '',
'ti-bookmark-alt': '',
'ti-reload': '',
'ti-plus': '',
'ti-pin': '',
'ti-pencil': '',
'ti-pencil-alt': '',
'ti-paint-roller': '',
'ti-paint-bucket': '',
'ti-na': '',
'ti-mobile': '',
'ti-minus': '',
'ti-medall': '',
'ti-medall-alt': '',
'ti-marker': '',
'ti-marker-alt': '',
'ti-arrow-up': '',
'ti-arrow-right': '',
'ti-arrow-left': '',
'ti-arrow-down': '',
'ti-lock': '',
'ti-location-arrow': '',
'ti-link': '',
'ti-layout': '',
'ti-layers': '',
'ti-layers-alt': '',
'ti-key': '',
'ti-import': '',
'ti-image': '',
'ti-heart': '',
'ti-heart-broken': '',
'ti-hand-stop': '',
'ti-hand-open': '',
'ti-hand-drag': '',
'ti-folder': '',
'ti-flag': '',
'ti-flag-alt': '',
'ti-flag-alt-2': '',
'ti-eye': '',
'ti-export': '',
'ti-exchange-vertical': '',
'ti-desktop': '',
'ti-cup': '',
'ti-crown': '',
'ti-comments': '',
'ti-comment': '',
'ti-comment-alt': '',
'ti-close': '',
'ti-clip': '',
'ti-angle-up': '',
'ti-angle-right': '',
'ti-angle-left': '',
'ti-angle-down': '',
'ti-check': '',
'ti-check-box': '',
'ti-camera': '',
'ti-announcement': '',
'ti-brush': '',
'ti-briefcase': '',
'ti-bolt': '',
'ti-bolt-alt': '',
'ti-blackboard': '',
'ti-bag': '',
'ti-move': '',
'ti-arrows-vertical': '',
'ti-arrows-horizontal': '',
'ti-fullscreen': '',
'ti-arrow-top-right': '',
'ti-arrow-top-left': '',
'ti-arrow-circle-up': '',
'ti-arrow-circle-right': '',
'ti-arrow-circle-left': '',
'ti-arrow-circle-down': '',
'ti-angle-double-up': '',
'ti-angle-double-right': '',
'ti-angle-double-left': '',
'ti-angle-double-down': '',
'ti-zip': '',
'ti-world': '',
'ti-wheelchair': '',
'ti-view-list': '',
'ti-view-list-alt': '',
'ti-view-grid': '',
'ti-uppercase': '',
'ti-upload': '',
'ti-underline': '',
'ti-truck': '',
'ti-timer': '',
'ti-ticket': '',
'ti-thumb-up': '',
'ti-thumb-down': '',
'ti-text': '',
'ti-stats-up': '',
'ti-stats-down': '',
'ti-split-v': '',
'ti-split-h': '',
'ti-smallcap': '',
'ti-shine': '',
'ti-shift-right': '',
'ti-shift-left': '',
'ti-shield': '',
'ti-notepad': '',
'ti-server': '',
'ti-quote-right': '',
'ti-quote-left': '',
'ti-pulse': '',
'ti-printer': '',
'ti-power-off': '',
'ti-plug': '',
'ti-pie-chart': '',
'ti-paragraph': '',
'ti-panel': '',
'ti-package': '',
'ti-music': '',
'ti-music-alt': '',
'ti-mouse': '',
'ti-mouse-alt': '',
'ti-money': '',
'ti-microphone': '',
'ti-menu': '',
'ti-menu-alt': '',
'ti-map': '',
'ti-map-alt': '',
'ti-loop': '',
'ti-location-pin': '',
'ti-list': '',
'ti-light-bulb': '',
'ti-Italic': '',
'ti-info': '',
'ti-infinite': '',
'ti-id-badge': '',
'ti-hummer': '',
'ti-home': '',
'ti-help': '',
'ti-headphone': '',
'ti-harddrives': '',
'ti-harddrive': '',
'ti-gift': '',
'ti-game': '',
'ti-filter': '',
'ti-files': '',
'ti-file': '',
'ti-eraser': '',
'ti-envelope': '',
'ti-download': '',
'ti-direction': '',
'ti-direction-alt': '',
'ti-dashboard': '',
'ti-control-stop': '',
'ti-control-shuffle': '',
'ti-control-play': '',
'ti-control-pause': '',
'ti-control-forward': '',
'ti-control-backward': '',
'ti-cloud': '',
'ti-cloud-up': '',
'ti-cloud-down': '',
'ti-clipboard': '',
'ti-car': '',
'ti-calendar': '',
'ti-book': '',
'ti-bell': '',
'ti-basketball': '',
'ti-bar-chart': '',
'ti-bar-chart-alt': '',
'ti-back-right': '',
'ti-back-left': '',
'ti-arrows-corner': '',
'ti-archive': '',
'ti-anchor': '',
'ti-align-right': '',
'ti-align-left': '',
'ti-align-justify': '',
'ti-align-center': '',
'ti-alert': '',
'ti-alarm-clock': '',
'ti-agenda': '',
'ti-write': '',
'ti-window': '',
'ti-widgetized': '',
'ti-widget': '',
'ti-widget-alt': '',
'ti-wallet': '',
'ti-video-clapper': '',
'ti-video-camera': '',
'ti-vector': '',
'ti-themify-logo': '',
'ti-themify-favicon': '',
'ti-themify-favicon-alt': '',
'ti-support': '',
'ti-stamp': '',
'ti-split-v-alt': '',
'ti-slice': '',
'ti-shortcode': '',
'ti-shift-right-alt': '',
'ti-shift-left-alt': '',
'ti-ruler-alt-2': '',
'ti-receipt': '',
'ti-pin2': '',
'ti-pin-alt': '',
'ti-pencil-alt2': '',
'ti-palette': '',
'ti-more': '',
'ti-more-alt': '',
'ti-microphone-alt': '',
'ti-magnet': '',
'ti-line-double': '',
'ti-line-dotted': '',
'ti-line-dashed': '',
'ti-layout-width-full': '',
'ti-layout-width-default': '',
'ti-layout-width-default-alt': '',
'ti-layout-tab': '',
'ti-layout-tab-window': '',
'ti-layout-tab-v': '',
'ti-layout-tab-min': '',
'ti-layout-slider': '',
'ti-layout-slider-alt': '',
'ti-layout-sidebar-right': '',
'ti-layout-sidebar-none': '',
'ti-layout-sidebar-left': '',
'ti-layout-placeholder': '',
'ti-layout-menu': '',
'ti-layout-menu-v': '',
'ti-layout-menu-separated': '',
'ti-layout-menu-full': '',
'ti-layout-media-right-alt': '',
'ti-layout-media-right': '',
'ti-layout-media-overlay': '',
'ti-layout-media-overlay-alt': '',
'ti-layout-media-overlay-alt-2': '',
'ti-layout-media-left-alt': '',
'ti-layout-media-left': '',
'ti-layout-media-center-alt': '',
'ti-layout-media-center': '',
'ti-layout-list-thumb': '',
'ti-layout-list-thumb-alt': '',
'ti-layout-list-post': '',
'ti-layout-list-large-image': '',
'ti-layout-line-solid': '',
'ti-layout-grid4': '',
'ti-layout-grid3': '',
'ti-layout-grid2': '',
'ti-layout-grid2-thumb': '',
'ti-layout-cta-right': '',
'ti-layout-cta-left': '',
'ti-layout-cta-center': '',
'ti-layout-cta-btn-right': '',
'ti-layout-cta-btn-left': '',
'ti-layout-column4': '',
'ti-layout-column3': '',
'ti-layout-column2': '',
'ti-layout-accordion-separated': '',
'ti-layout-accordion-merged': '',
'ti-layout-accordion-list': '',
'ti-ink-pen': '',
'ti-info-alt': '',
'ti-help-alt': '',
'ti-headphone-alt': '',
'ti-hand-point-up': '',
'ti-hand-point-right': '',
'ti-hand-point-left': '',
'ti-hand-point-down': '',
'ti-gallery': '',
'ti-face-smile': '',
'ti-face-sad': '',
'ti-credit-card': '',
'ti-control-skip-forward': '',
'ti-control-skip-backward': '',
'ti-control-record': '',
'ti-control-eject': '',
'ti-comments-smiley': '',
'ti-brush-alt': '',
'ti-youtube': '',
'ti-vimeo': '',
'ti-twitter': '',
'ti-time': '',
'ti-tumblr': '',
'ti-skype': '',
'ti-share': '',
'ti-share-alt': '',
'ti-rocket': '',
'ti-pinterest': '',
'ti-new-window': '',
'ti-microsoft': '',
'ti-list-ol': '',
'ti-linkedin': '',
'ti-layout-sidebar-2': '',
'ti-layout-grid4-alt': '',
'ti-layout-grid3-alt': '',
'ti-layout-grid2-alt': '',
'ti-layout-column4-alt': '',
'ti-layout-column3-alt': '',
'ti-layout-column2-alt': '',
'ti-instagram': '',
'ti-google': '',
'ti-github': '',
'ti-flickr': '',
'ti-facebook': '',
'ti-dropbox': '',
'ti-dribbble': '',
'ti-apple': '',
'ti-andrAdminid': '',
'ti-save': '',
'ti-save-alt': '',
'ti-yahoo': '',
'ti-wordpress': '',
'ti-vimeo-alt': '',
'ti-twitter-alt': '',
'ti-tumblr-alt': '',
'ti-trello': '',
'ti-stack-overflow': '',
'ti-soundcloud': '',
'ti-sharethis': '',
'ti-sharethis-alt': '',
'ti-reddit': '',
'ti-pinterest-alt': '',
'ti-microsoft-alt': '',
'ti-linux': '',
'ti-jsfiddle': '',
'ti-joomla': '',
'ti-html5': '',
'ti-flickr-alt': '',
'ti-email': '',
'ti-drupal': '',
'ti-dropbox-alt': '',
'ti-css3': '',
'ti-rss': '',
'ti-rss-alt': '',
'0': 0
},
els = document.getElementsByTagName('*'),
i, c, el;
for (i = 0; ; i += 1) {
el = els[i];
if(!el) {
break;
}
c = el.className;
c = c.match(/ti-[^\s'"]+/);
if (c && icons[c[0]]) {
addIcon(el, icons[c[0]]);
}
}
}());
================================================
FILE: public/admin-panel/dist/css/icons/themify-icons/themify-icons.css
================================================
@font-face {
font-family: 'themify';
src:url('fonts/themify.eot?-fvbane');
src:url('fonts/themify.eot?#iefix-fvbane') format('embedded-opentype'),
url('fonts/themify.woff') format('woff'),
url('fonts/themify.ttf') format('truetype'),
url('fonts/themify.svg?-fvbane#themify') format('svg');
font-weight: normal;
font-style: normal;
}
[class^="ti-"], [class*=" ti-"] {
font-family: 'themify';
speak: none;
font-style: normal;
font-weight: normal;
font-variant: normal;
text-transform: none;
line-height: 1;
/* Better Font Rendering =========== */
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
.ti-wand:before {
content: "\e600";
}
.ti-volume:before {
content: "\e601";
}
.ti-user:before {
content: "\e602";
}
.ti-unlock:before {
content: "\e603";
}
.ti-unlink:before {
content: "\e604";
}
.ti-trash:before {
content: "\e605";
}
.ti-thought:before {
content: "\e606";
}
.ti-target:before {
content: "\e607";
}
.ti-tag:before {
content: "\e608";
}
.ti-tablet:before {
content: "\e609";
}
.ti-star:before {
content: "\e60a";
}
.ti-spray:before {
content: "\e60b";
}
.ti-signal:before {
content: "\e60c";
}
.ti-shopping-cart:before {
content: "\e60d";
}
.ti-shopping-cart-full:before {
content: "\e60e";
}
.ti-settings:before {
content: "\e60f";
}
.ti-search:before {
content: "\e610";
}
.ti-zoom-in:before {
content: "\e611";
}
.ti-zoom-out:before {
content: "\e612";
}
.ti-cut:before {
content: "\e613";
}
.ti-ruler:before {
content: "\e614";
}
.ti-ruler-pencil:before {
content: "\e615";
}
.ti-ruler-alt:before {
content: "\e616";
}
.ti-bookmark:before {
content: "\e617";
}
.ti-bookmark-alt:before {
content: "\e618";
}
.ti-reload:before {
content: "\e619";
}
.ti-plus:before {
content: "\e61a";
}
.ti-pin:before {
content: "\e61b";
}
.ti-pencil:before {
content: "\e61c";
}
.ti-pencil-alt:before {
content: "\e61d";
}
.ti-paint-roller:before {
content: "\e61e";
}
.ti-paint-bucket:before {
content: "\e61f";
}
.ti-na:before {
content: "\e620";
}
.ti-mobile:before {
content: "\e621";
}
.ti-minus:before {
content: "\e622";
}
.ti-medall:before {
content: "\e623";
}
.ti-medall-alt:before {
content: "\e624";
}
.ti-marker:before {
content: "\e625";
}
.ti-marker-alt:before {
content: "\e626";
}
.ti-arrow-up:before {
content: "\e627";
}
.ti-arrow-right:before {
content: "\e628";
}
.ti-arrow-left:before {
content: "\e629";
}
.ti-arrow-down:before {
content: "\e62a";
}
.ti-lock:before {
content: "\e62b";
}
.ti-location-arrow:before {
content: "\e62c";
}
.ti-link:before {
content: "\e62d";
}
.ti-layout:before {
content: "\e62e";
}
.ti-layers:before {
content: "\e62f";
}
.ti-layers-alt:before {
content: "\e630";
}
.ti-key:before {
content: "\e631";
}
.ti-import:before {
content: "\e632";
}
.ti-image:before {
content: "\e633";
}
.ti-heart:before {
content: "\e634";
}
.ti-heart-broken:before {
content: "\e635";
}
.ti-hand-stop:before {
content: "\e636";
}
.ti-hand-open:before {
content: "\e637";
}
.ti-hand-drag:before {
content: "\e638";
}
.ti-folder:before {
content: "\e639";
}
.ti-flag:before {
content: "\e63a";
}
.ti-flag-alt:before {
content: "\e63b";
}
.ti-flag-alt-2:before {
content: "\e63c";
}
.ti-eye:before {
content: "\e63d";
}
.ti-export:before {
content: "\e63e";
}
.ti-exchange-vertical:before {
content: "\e63f";
}
.ti-desktop:before {
content: "\e640";
}
.ti-cup:before {
content: "\e641";
}
.ti-crown:before {
content: "\e642";
}
.ti-comments:before {
content: "\e643";
}
.ti-comment:before {
content: "\e644";
}
.ti-comment-alt:before {
content: "\e645";
}
.ti-close:before {
content: "\e646";
}
.ti-clip:before {
content: "\e647";
}
.ti-angle-up:before {
content: "\e648";
}
.ti-angle-right:before {
content: "\e649";
}
.ti-angle-left:before {
content: "\e64a";
}
.ti-angle-down:before {
content: "\e64b";
}
.ti-check:before {
content: "\e64c";
}
.ti-check-box:before {
content: "\e64d";
}
.ti-camera:before {
content: "\e64e";
}
.ti-announcement:before {
content: "\e64f";
}
.ti-brush:before {
content: "\e650";
}
.ti-briefcase:before {
content: "\e651";
}
.ti-bolt:before {
content: "\e652";
}
.ti-bolt-alt:before {
content: "\e653";
}
.ti-blackboard:before {
content: "\e654";
}
.ti-bag:before {
content: "\e655";
}
.ti-move:before {
content: "\e656";
}
.ti-arrows-vertical:before {
content: "\e657";
}
.ti-arrows-horizontal:before {
content: "\e658";
}
.ti-fullscreen:before {
content: "\e659";
}
.ti-arrow-top-right:before {
content: "\e65a";
}
.ti-arrow-top-left:before {
content: "\e65b";
}
.ti-arrow-circle-up:before {
content: "\e65c";
}
.ti-arrow-circle-right:before {
content: "\e65d";
}
.ti-arrow-circle-left:before {
content: "\e65e";
}
.ti-arrow-circle-down:before {
content: "\e65f";
}
.ti-angle-double-up:before {
content: "\e660";
}
.ti-angle-double-right:before {
content: "\e661";
}
.ti-angle-double-left:before {
content: "\e662";
}
.ti-angle-double-down:before {
content: "\e663";
}
.ti-zip:before {
content: "\e664";
}
.ti-world:before {
content: "\e665";
}
.ti-wheelchair:before {
content: "\e666";
}
.ti-view-list:before {
content: "\e667";
}
.ti-view-list-alt:before {
content: "\e668";
}
.ti-view-grid:before {
content: "\e669";
}
.ti-uppercase:before {
content: "\e66a";
}
.ti-upload:before {
content: "\e66b";
}
.ti-underline:before {
content: "\e66c";
}
.ti-truck:before {
content: "\e66d";
}
.ti-timer:before {
content: "\e66e";
}
.ti-ticket:before {
content: "\e66f";
}
.ti-thumb-up:before {
content: "\e670";
}
.ti-thumb-down:before {
content: "\e671";
}
.ti-text:before {
content: "\e672";
}
.ti-stats-up:before {
content: "\e673";
}
.ti-stats-down:before {
content: "\e674";
}
.ti-split-v:before {
content: "\e675";
}
.ti-split-h:before {
content: "\e676";
}
.ti-smallcap:before {
content: "\e677";
}
.ti-shine:before {
content: "\e678";
}
.ti-shift-right:before {
content: "\e679";
}
.ti-shift-left:before {
content: "\e67a";
}
.ti-shield:before {
content: "\e67b";
}
.ti-notepad:before {
content: "\e67c";
}
.ti-server:before {
content: "\e67d";
}
.ti-quote-right:before {
content: "\e67e";
}
.ti-quote-left:before {
content: "\e67f";
}
.ti-pulse:before {
content: "\e680";
}
.ti-printer:before {
content: "\e681";
}
.ti-power-off:before {
content: "\e682";
}
.ti-plug:before {
content: "\e683";
}
.ti-pie-chart:before {
content: "\e684";
}
.ti-paragraph:before {
content: "\e685";
}
.ti-panel:before {
content: "\e686";
}
.ti-package:before {
content: "\e687";
}
.ti-music:before {
content: "\e688";
}
.ti-music-alt:before {
content: "\e689";
}
.ti-mouse:before {
content: "\e68a";
}
.ti-mouse-alt:before {
content: "\e68b";
}
.ti-money:before {
content: "\e68c";
}
.ti-microphone:before {
content: "\e68d";
}
.ti-menu:before {
content: "\e68e";
}
.ti-menu-alt:before {
content: "\e68f";
}
.ti-map:before {
content: "\e690";
}
.ti-map-alt:before {
content: "\e691";
}
.ti-loop:before {
content: "\e692";
}
.ti-location-pin:before {
content: "\e693";
}
.ti-list:before {
content: "\e694";
}
.ti-light-bulb:before {
content: "\e695";
}
.ti-Italic:before {
content: "\e696";
}
.ti-info:before {
content: "\e697";
}
.ti-infinite:before {
content: "\e698";
}
.ti-id-badge:before {
content: "\e699";
}
.ti-hummer:before {
content: "\e69a";
}
.ti-home:before {
content: "\e69b";
}
.ti-help:before {
content: "\e69c";
}
.ti-headphone:before {
content: "\e69d";
}
.ti-harddrives:before {
content: "\e69e";
}
.ti-harddrive:before {
content: "\e69f";
}
.ti-gift:before {
content: "\e6a0";
}
.ti-game:before {
content: "\e6a1";
}
.ti-filter:before {
content: "\e6a2";
}
.ti-files:before {
content: "\e6a3";
}
.ti-file:before {
content: "\e6a4";
}
.ti-eraser:before {
content: "\e6a5";
}
.ti-envelope:before {
content: "\e6a6";
}
.ti-download:before {
content: "\e6a7";
}
.ti-direction:before {
content: "\e6a8";
}
.ti-direction-alt:before {
content: "\e6a9";
}
.ti-dashboard:before {
content: "\e6aa";
}
.ti-control-stop:before {
content: "\e6ab";
}
.ti-control-shuffle:before {
content: "\e6ac";
}
.ti-control-play:before {
content: "\e6ad";
}
.ti-control-pause:before {
content: "\e6ae";
}
.ti-control-forward:before {
content: "\e6af";
}
.ti-control-backward:before {
content: "\e6b0";
}
.ti-cloud:before {
content: "\e6b1";
}
.ti-cloud-up:before {
content: "\e6b2";
}
.ti-cloud-down:before {
content: "\e6b3";
}
.ti-clipboard:before {
content: "\e6b4";
}
.ti-car:before {
content: "\e6b5";
}
.ti-calendar:before {
content: "\e6b6";
}
.ti-book:before {
content: "\e6b7";
}
.ti-bell:before {
content: "\e6b8";
}
.ti-basketball:before {
content: "\e6b9";
}
.ti-bar-chart:before {
content: "\e6ba";
}
.ti-bar-chart-alt:before {
content: "\e6bb";
}
.ti-back-right:before {
content: "\e6bc";
}
.ti-back-left:before {
content: "\e6bd";
}
.ti-arrows-corner:before {
content: "\e6be";
}
.ti-archive:before {
content: "\e6bf";
}
.ti-anchor:before {
content: "\e6c0";
}
.ti-align-right:before {
content: "\e6c1";
}
.ti-align-left:before {
content: "\e6c2";
}
.ti-align-justify:before {
content: "\e6c3";
}
.ti-align-center:before {
content: "\e6c4";
}
.ti-alert:before {
content: "\e6c5";
}
.ti-alarm-clock:before {
content: "\e6c6";
}
.ti-agenda:before {
content: "\e6c7";
}
.ti-write:before {
content: "\e6c8";
}
.ti-window:before {
content: "\e6c9";
}
.ti-widgetized:before {
content: "\e6ca";
}
.ti-widget:before {
content: "\e6cb";
}
.ti-widget-alt:before {
content: "\e6cc";
}
.ti-wallet:before {
content: "\e6cd";
}
.ti-video-clapper:before {
content: "\e6ce";
}
.ti-video-camera:before {
content: "\e6cf";
}
.ti-vector:before {
content: "\e6d0";
}
.ti-themify-logo:before {
content: "\e6d1";
}
.ti-themify-favicon:before {
content: "\e6d2";
}
.ti-themify-favicon-alt:before {
content: "\e6d3";
}
.ti-support:before {
content: "\e6d4";
}
.ti-stamp:before {
content: "\e6d5";
}
.ti-split-v-alt:before {
content: "\e6d6";
}
.ti-slice:before {
content: "\e6d7";
}
.ti-shortcode:before {
content: "\e6d8";
}
.ti-shift-right-alt:before {
content: "\e6d9";
}
.ti-shift-left-alt:before {
content: "\e6da";
}
.ti-ruler-alt-2:before {
content: "\e6db";
}
.ti-receipt:before {
content: "\e6dc";
}
.ti-pin2:before {
content: "\e6dd";
}
.ti-pin-alt:before {
content: "\e6de";
}
.ti-pencil-alt2:before {
content: "\e6df";
}
.ti-palette:before {
content: "\e6e0";
}
.ti-more:before {
content: "\e6e1";
}
.ti-more-alt:before {
content: "\e6e2";
}
.ti-microphone-alt:before {
content: "\e6e3";
}
.ti-magnet:before {
content: "\e6e4";
}
.ti-line-double:before {
content: "\e6e5";
}
.ti-line-dotted:before {
content: "\e6e6";
}
.ti-line-dashed:before {
content: "\e6e7";
}
.ti-layout-width-full:before {
content: "\e6e8";
}
.ti-layout-width-default:before {
content: "\e6e9";
}
.ti-layout-width-default-alt:before {
content: "\e6ea";
}
.ti-layout-tab:before {
content: "\e6eb";
}
.ti-layout-tab-window:before {
content: "\e6ec";
}
.ti-layout-tab-v:before {
content: "\e6ed";
}
.ti-layout-tab-min:before {
content: "\e6ee";
}
.ti-layout-slider:before {
content: "\e6ef";
}
.ti-layout-slider-alt:before {
content: "\e6f0";
}
.ti-layout-sidebar-right:before {
content: "\e6f1";
}
.ti-layout-sidebar-none:before {
content: "\e6f2";
}
.ti-layout-sidebar-left:before {
content: "\e6f3";
}
.ti-layout-placeholder:before {
content: "\e6f4";
}
.ti-layout-menu:before {
content: "\e6f5";
}
.ti-layout-menu-v:before {
content: "\e6f6";
}
.ti-layout-menu-separated:before {
content: "\e6f7";
}
.ti-layout-menu-full:before {
content: "\e6f8";
}
.ti-layout-media-right-alt:before {
content: "\e6f9";
}
.ti-layout-media-right:before {
content: "\e6fa";
}
.ti-layout-media-overlay:before {
content: "\e6fb";
}
.ti-layout-media-overlay-alt:before {
content: "\e6fc";
}
.ti-layout-media-overlay-alt-2:before {
content: "\e6fd";
}
.ti-layout-media-left-alt:before {
content: "\e6fe";
}
.ti-layout-media-left:before {
content: "\e6ff";
}
.ti-layout-media-center-alt:before {
content: "\e700";
}
.ti-layout-media-center:before {
content: "\e701";
}
.ti-layout-list-thumb:before {
content: "\e702";
}
.ti-layout-list-thumb-alt:before {
content: "\e703";
}
.ti-layout-list-post:before {
content: "\e704";
}
.ti-layout-list-large-image:before {
content: "\e705";
}
.ti-layout-line-solid:before {
content: "\e706";
}
.ti-layout-grid4:before {
content: "\e707";
}
.ti-layout-grid3:before {
content: "\e708";
}
.ti-layout-grid2:before {
content: "\e709";
}
.ti-layout-grid2-thumb:before {
content: "\e70a";
}
.ti-layout-cta-right:before {
content: "\e70b";
}
.ti-layout-cta-left:before {
content: "\e70c";
}
.ti-layout-cta-center:before {
content: "\e70d";
}
.ti-layout-cta-btn-right:before {
content: "\e70e";
}
.ti-layout-cta-btn-left:before {
content: "\e70f";
}
.ti-layout-column4:before {
content: "\e710";
}
.ti-layout-column3:before {
content: "\e711";
}
.ti-layout-column2:before {
content: "\e712";
}
.ti-layout-accordion-separated:before {
content: "\e713";
}
.ti-layout-accordion-merged:before {
content: "\e714";
}
.ti-layout-accordion-list:before {
content: "\e715";
}
.ti-ink-pen:before {
content: "\e716";
}
.ti-info-alt:before {
content: "\e717";
}
.ti-help-alt:before {
content: "\e718";
}
.ti-headphone-alt:before {
content: "\e719";
}
.ti-hand-point-up:before {
content: "\e71a";
}
.ti-hand-point-right:before {
content: "\e71b";
}
.ti-hand-point-left:before {
content: "\e71c";
}
.ti-hand-point-down:before {
content: "\e71d";
}
.ti-gallery:before {
content: "\e71e";
}
.ti-face-smile:before {
content: "\e71f";
}
.ti-face-sad:before {
content: "\e720";
}
.ti-credit-card:before {
content: "\e721";
}
.ti-control-skip-forward:before {
content: "\e722";
}
.ti-control-skip-backward:before {
content: "\e723";
}
.ti-control-record:before {
content: "\e724";
}
.ti-control-eject:before {
content: "\e725";
}
.ti-comments-smiley:before {
content: "\e726";
}
.ti-brush-alt:before {
content: "\e727";
}
.ti-youtube:before {
content: "\e728";
}
.ti-vimeo:before {
content: "\e729";
}
.ti-twitter:before {
content: "\e72a";
}
.ti-time:before {
content: "\e72b";
}
.ti-tumblr:before {
content: "\e72c";
}
.ti-skype:before {
content: "\e72d";
}
.ti-share:before {
content: "\e72e";
}
.ti-share-alt:before {
content: "\e72f";
}
.ti-rocket:before {
content: "\e730";
}
.ti-pinterest:before {
content: "\e731";
}
.ti-new-window:before {
content: "\e732";
}
.ti-microsoft:before {
content: "\e733";
}
.ti-list-ol:before {
content: "\e734";
}
.ti-linkedin:before {
content: "\e735";
}
.ti-layout-sidebar-2:before {
content: "\e736";
}
.ti-layout-grid4-alt:before {
content: "\e737";
}
.ti-layout-grid3-alt:before {
content: "\e738";
}
.ti-layout-grid2-alt:before {
content: "\e739";
}
.ti-layout-column4-alt:before {
content: "\e73a";
}
.ti-layout-column3-alt:before {
content: "\e73b";
}
.ti-layout-column2-alt:before {
content: "\e73c";
}
.ti-instagram:before {
content: "\e73d";
}
.ti-google:before {
content: "\e73e";
}
.ti-github:before {
content: "\e73f";
}
.ti-flickr:before {
content: "\e740";
}
.ti-facebook:before {
content: "\e741";
}
.ti-dropbox:before {
content: "\e742";
}
.ti-dribbble:before {
content: "\e743";
}
.ti-apple:before {
content: "\e744";
}
.ti-andrAdminid:before {
content: "\e745";
}
.ti-save:before {
content: "\e746";
}
.ti-save-alt:before {
content: "\e747";
}
.ti-yahoo:before {
content: "\e748";
}
.ti-wordpress:before {
content: "\e749";
}
.ti-vimeo-alt:before {
content: "\e74a";
}
.ti-twitter-alt:before {
content: "\e74b";
}
.ti-tumblr-alt:before {
content: "\e74c";
}
.ti-trello:before {
content: "\e74d";
}
.ti-stack-overflow:before {
content: "\e74e";
}
.ti-soundcloud:before {
content: "\e74f";
}
.ti-sharethis:before {
content: "\e750";
}
.ti-sharethis-alt:before {
content: "\e751";
}
.ti-reddit:before {
content: "\e752";
}
.ti-pinterest-alt:before {
content: "\e753";
}
.ti-microsoft-alt:before {
content: "\e754";
}
.ti-linux:before {
content: "\e755";
}
.ti-jsfiddle:before {
content: "\e756";
}
.ti-joomla:before {
content: "\e757";
}
.ti-html5:before {
content: "\e758";
}
.ti-flickr-alt:before {
content: "\e759";
}
.ti-email:before {
content: "\e75a";
}
.ti-drupal:before {
content: "\e75b";
}
.ti-dropbox-alt:before {
content: "\e75c";
}
.ti-css3:before {
content: "\e75d";
}
.ti-rss:before {
content: "\e75e";
}
.ti-rss-alt:before {
content: "\e75f";
}
================================================
FILE: public/admin-panel/dist/css/icons/themify-icons/themify-icons.less
================================================
@font-face {
font-family: 'themify';
src:url('../scss/icons/themify-icons//fonts/themify.eot?-fvbane');
src:url('../scss/icons/themify-icons//fonts/themify.eot?#iefix-fvbane') format('embedded-opentype'),
url('../scss/icons/themify-icons//fonts/themify.woff?-fvbane') format('woff'),
url('../scss/icons/themify-icons//fonts/themify.ttf?-fvbane') format('truetype'),
url('../scss/icons/themify-icons//fonts/themify.svg?-fvbane#themify') format('svg');
font-weight: normal;
font-style: normal;
}
[class^="ti-"], [class*=" ti-"] {
font-family: 'themify';
speak: none;
font-style: normal;
font-weight: normal;
font-variant: normal;
text-transform: none;
line-height: 1;
/* Better Font Rendering =========== */
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
.ti-wand:before {
content: "\e600";
}
.ti-volume:before {
content: "\e601";
}
.ti-user:before {
content: "\e602";
}
.ti-unlock:before {
content: "\e603";
}
.ti-unlink:before {
content: "\e604";
}
.ti-trash:before {
content: "\e605";
}
.ti-thought:before {
content: "\e606";
}
.ti-target:before {
content: "\e607";
}
.ti-tag:before {
content: "\e608";
}
.ti-tablet:before {
content: "\e609";
}
.ti-star:before {
content: "\e60a";
}
.ti-spray:before {
content: "\e60b";
}
.ti-signal:before {
content: "\e60c";
}
.ti-shopping-cart:before {
content: "\e60d";
}
.ti-shopping-cart-full:before {
content: "\e60e";
}
.ti-settings:before {
content: "\e60f";
}
.ti-search:before {
content: "\e610";
}
.ti-zoom-in:before {
content: "\e611";
}
.ti-zoom-out:before {
content: "\e612";
}
.ti-cut:before {
content: "\e613";
}
.ti-ruler:before {
content: "\e614";
}
.ti-ruler-pencil:before {
content: "\e615";
}
.ti-ruler-alt:before {
content: "\e616";
}
.ti-bookmark:before {
content: "\e617";
}
.ti-bookmark-alt:before {
content: "\e618";
}
.ti-reload:before {
content: "\e619";
}
.ti-plus:before {
content: "\e61a";
}
.ti-pin:before {
content: "\e61b";
}
.ti-pencil:before {
content: "\e61c";
}
.ti-pencil-alt:before {
content: "\e61d";
}
.ti-paint-roller:before {
content: "\e61e";
}
.ti-paint-bucket:before {
content: "\e61f";
}
.ti-na:before {
content: "\e620";
}
.ti-mobile:before {
content: "\e621";
}
.ti-minus:before {
content: "\e622";
}
.ti-medall:before {
content: "\e623";
}
.ti-medall-alt:before {
content: "\e624";
}
.ti-marker:before {
content: "\e625";
}
.ti-marker-alt:before {
content: "\e626";
}
.ti-arrow-up:before {
content: "\e627";
}
.ti-arrow-right:before {
content: "\e628";
}
.ti-arrow-left:before {
content: "\e629";
}
.ti-arrow-down:before {
content: "\e62a";
}
.ti-lock:before {
content: "\e62b";
}
.ti-location-arrow:before {
content: "\e62c";
}
.ti-link:before {
content: "\e62d";
}
.ti-layout:before {
content: "\e62e";
}
.ti-layers:before {
content: "\e62f";
}
.ti-layers-alt:before {
content: "\e630";
}
.ti-key:before {
content: "\e631";
}
.ti-import:before {
content: "\e632";
}
.ti-image:before {
content: "\e633";
}
.ti-heart:before {
content: "\e634";
}
.ti-heart-broken:before {
content: "\e635";
}
.ti-hand-stop:before {
content: "\e636";
}
.ti-hand-open:before {
content: "\e637";
}
.ti-hand-drag:before {
content: "\e638";
}
.ti-folder:before {
content: "\e639";
}
.ti-flag:before {
content: "\e63a";
}
.ti-flag-alt:before {
content: "\e63b";
}
.ti-flag-alt-2:before {
content: "\e63c";
}
.ti-eye:before {
content: "\e63d";
}
.ti-export:before {
content: "\e63e";
}
.ti-exchange-vertical:before {
content: "\e63f";
}
.ti-desktop:before {
content: "\e640";
}
.ti-cup:before {
content: "\e641";
}
.ti-crown:before {
content: "\e642";
}
.ti-comments:before {
content: "\e643";
}
.ti-comment:before {
content: "\e644";
}
.ti-comment-alt:before {
content: "\e645";
}
.ti-close:before {
content: "\e646";
}
.ti-clip:before {
content: "\e647";
}
.ti-angle-up:before {
content: "\e648";
}
.ti-angle-right:before {
content: "\e649";
}
.ti-angle-left:before {
content: "\e64a";
}
.ti-angle-down:before {
content: "\e64b";
}
.ti-check:before {
content: "\e64c";
}
.ti-check-box:before {
content: "\e64d";
}
.ti-camera:before {
content: "\e64e";
}
.ti-announcement:before {
content: "\e64f";
}
.ti-brush:before {
content: "\e650";
}
.ti-briefcase:before {
content: "\e651";
}
.ti-bolt:before {
content: "\e652";
}
.ti-bolt-alt:before {
content: "\e653";
}
.ti-blackboard:before {
content: "\e654";
}
.ti-bag:before {
content: "\e655";
}
.ti-move:before {
content: "\e656";
}
.ti-arrows-vertical:before {
content: "\e657";
}
.ti-arrows-horizontal:before {
content: "\e658";
}
.ti-fullscreen:before {
content: "\e659";
}
.ti-arrow-top-right:before {
content: "\e65a";
}
.ti-arrow-top-left:before {
content: "\e65b";
}
.ti-arrow-circle-up:before {
content: "\e65c";
}
.ti-arrow-circle-right:before {
content: "\e65d";
}
.ti-arrow-circle-left:before {
content: "\e65e";
}
.ti-arrow-circle-down:before {
content: "\e65f";
}
.ti-angle-double-up:before {
content: "\e660";
}
.ti-angle-double-right:before {
content: "\e661";
}
.ti-angle-double-left:before {
content: "\e662";
}
.ti-angle-double-down:before {
content: "\e663";
}
.ti-zip:before {
content: "\e664";
}
.ti-world:before {
content: "\e665";
}
.ti-wheelchair:before {
content: "\e666";
}
.ti-view-list:before {
content: "\e667";
}
.ti-view-list-alt:before {
content: "\e668";
}
.ti-view-grid:before {
content: "\e669";
}
.ti-uppercase:before {
content: "\e66a";
}
.ti-upload:before {
content: "\e66b";
}
.ti-underline:before {
content: "\e66c";
}
.ti-truck:before {
content: "\e66d";
}
.ti-timer:before {
content: "\e66e";
}
.ti-ticket:before {
content: "\e66f";
}
.ti-thumb-up:before {
content: "\e670";
}
.ti-thumb-down:before {
content: "\e671";
}
.ti-text:before {
content: "\e672";
}
.ti-stats-up:before {
content: "\e673";
}
.ti-stats-down:before {
content: "\e674";
}
.ti-split-v:before {
content: "\e675";
}
.ti-split-h:before {
content: "\e676";
}
.ti-smallcap:before {
content: "\e677";
}
.ti-shine:before {
content: "\e678";
}
.ti-shift-right:before {
content: "\e679";
}
.ti-shift-left:before {
content: "\e67a";
}
.ti-shield:before {
content: "\e67b";
}
.ti-notepad:before {
content: "\e67c";
}
.ti-server:before {
content: "\e67d";
}
.ti-quote-right:before {
content: "\e67e";
}
.ti-quote-left:before {
content: "\e67f";
}
.ti-pulse:before {
content: "\e680";
}
.ti-printer:before {
content: "\e681";
}
.ti-power-off:before {
content: "\e682";
}
.ti-plug:before {
content: "\e683";
}
.ti-pie-chart:before {
content: "\e684";
}
.ti-paragraph:before {
content: "\e685";
}
.ti-panel:before {
content: "\e686";
}
.ti-package:before {
content: "\e687";
}
.ti-music:before {
content: "\e688";
}
.ti-music-alt:before {
content: "\e689";
}
.ti-mouse:before {
content: "\e68a";
}
.ti-mouse-alt:before {
content: "\e68b";
}
.ti-money:before {
content: "\e68c";
}
.ti-microphone:before {
content: "\e68d";
}
.ti-menu:before {
content: "\e68e";
}
.ti-menu-alt:before {
content: "\e68f";
}
.ti-map:before {
content: "\e690";
}
.ti-map-alt:before {
content: "\e691";
}
.ti-loop:before {
content: "\e692";
}
.ti-location-pin:before {
content: "\e693";
}
.ti-list:before {
content: "\e694";
}
.ti-light-bulb:before {
content: "\e695";
}
.ti-Italic:before {
content: "\e696";
}
.ti-info:before {
content: "\e697";
}
.ti-infinite:before {
content: "\e698";
}
.ti-id-badge:before {
content: "\e699";
}
.ti-hummer:before {
content: "\e69a";
}
.ti-home:before {
content: "\e69b";
}
.ti-help:before {
content: "\e69c";
}
.ti-headphone:before {
content: "\e69d";
}
.ti-harddrives:before {
content: "\e69e";
}
.ti-harddrive:before {
content: "\e69f";
}
.ti-gift:before {
content: "\e6a0";
}
.ti-game:before {
content: "\e6a1";
}
.ti-filter:before {
content: "\e6a2";
}
.ti-files:before {
content: "\e6a3";
}
.ti-file:before {
content: "\e6a4";
}
.ti-eraser:before {
content: "\e6a5";
}
.ti-envelope:before {
content: "\e6a6";
}
.ti-download:before {
content: "\e6a7";
}
.ti-direction:before {
content: "\e6a8";
}
.ti-direction-alt:before {
content: "\e6a9";
}
.ti-dashboard:before {
content: "\e6aa";
}
.ti-control-stop:before {
content: "\e6ab";
}
.ti-control-shuffle:before {
content: "\e6ac";
}
.ti-control-play:before {
content: "\e6ad";
}
.ti-control-pause:before {
content: "\e6ae";
}
.ti-control-forward:before {
content: "\e6af";
}
.ti-control-backward:before {
content: "\e6b0";
}
.ti-cloud:before {
content: "\e6b1";
}
.ti-cloud-up:before {
content: "\e6b2";
}
.ti-cloud-down:before {
content: "\e6b3";
}
.ti-clipboard:before {
content: "\e6b4";
}
.ti-car:before {
content: "\e6b5";
}
.ti-calendar:before {
content: "\e6b6";
}
.ti-book:before {
content: "\e6b7";
}
.ti-bell:before {
content: "\e6b8";
}
.ti-basketball:before {
content: "\e6b9";
}
.ti-bar-chart:before {
content: "\e6ba";
}
.ti-bar-chart-alt:before {
content: "\e6bb";
}
.ti-back-right:before {
content: "\e6bc";
}
.ti-back-left:before {
content: "\e6bd";
}
.ti-arrows-corner:before {
content: "\e6be";
}
.ti-archive:before {
content: "\e6bf";
}
.ti-anchor:before {
content: "\e6c0";
}
.ti-align-right:before {
content: "\e6c1";
}
.ti-align-left:before {
content: "\e6c2";
}
.ti-align-justify:before {
content: "\e6c3";
}
.ti-align-center:before {
content: "\e6c4";
}
.ti-alert:before {
content: "\e6c5";
}
.ti-alarm-clock:before {
content: "\e6c6";
}
.ti-agenda:before {
content: "\e6c7";
}
.ti-write:before {
content: "\e6c8";
}
.ti-window:before {
content: "\e6c9";
}
.ti-widgetized:before {
content: "\e6ca";
}
.ti-widget:before {
content: "\e6cb";
}
.ti-widget-alt:before {
content: "\e6cc";
}
.ti-wallet:before {
content: "\e6cd";
}
.ti-video-clapper:before {
content: "\e6ce";
}
.ti-video-camera:before {
content: "\e6cf";
}
.ti-vector:before {
content: "\e6d0";
}
.ti-themify-logo:before {
content: "\e6d1";
}
.ti-themify-favicon:before {
content: "\e6d2";
}
.ti-themify-favicon-alt:before {
content: "\e6d3";
}
.ti-support:before {
content: "\e6d4";
}
.ti-stamp:before {
content: "\e6d5";
}
.ti-split-v-alt:before {
content: "\e6d6";
}
.ti-slice:before {
content: "\e6d7";
}
.ti-shortcode:before {
content: "\e6d8";
}
.ti-shift-right-alt:before {
content: "\e6d9";
}
.ti-shift-left-alt:before {
content: "\e6da";
}
.ti-ruler-alt-2:before {
content: "\e6db";
}
.ti-receipt:before {
content: "\e6dc";
}
.ti-pin2:before {
content: "\e6dd";
}
.ti-pin-alt:before {
content: "\e6de";
}
.ti-pencil-alt2:before {
content: "\e6df";
}
.ti-palette:before {
content: "\e6e0";
}
.ti-more:before {
content: "\e6e1";
}
.ti-more-alt:before {
content: "\e6e2";
}
.ti-microphone-alt:before {
content: "\e6e3";
}
.ti-magnet:before {
content: "\e6e4";
}
.ti-line-double:before {
content: "\e6e5";
}
.ti-line-dotted:before {
content: "\e6e6";
}
.ti-line-dashed:before {
content: "\e6e7";
}
.ti-layout-width-full:before {
content: "\e6e8";
}
.ti-layout-width-default:before {
content: "\e6e9";
}
.ti-layout-width-default-alt:before {
content: "\e6ea";
}
.ti-layout-tab:before {
content: "\e6eb";
}
.ti-layout-tab-window:before {
content: "\e6ec";
}
.ti-layout-tab-v:before {
content: "\e6ed";
}
.ti-layout-tab-min:before {
content: "\e6ee";
}
.ti-layout-slider:before {
content: "\e6ef";
}
.ti-layout-slider-alt:before {
content: "\e6f0";
}
.ti-layout-sidebar-right:before {
content: "\e6f1";
}
.ti-layout-sidebar-none:before {
content: "\e6f2";
}
.ti-layout-sidebar-left:before {
content: "\e6f3";
}
.ti-layout-placeholder:before {
content: "\e6f4";
}
.ti-layout-menu:before {
content: "\e6f5";
}
.ti-layout-menu-v:before {
content: "\e6f6";
}
.ti-layout-menu-separated:before {
content: "\e6f7";
}
.ti-layout-menu-full:before {
content: "\e6f8";
}
.ti-layout-media-right-alt:before {
content: "\e6f9";
}
.ti-layout-media-right:before {
content: "\e6fa";
}
.ti-layout-media-overlay:before {
content: "\e6fb";
}
.ti-layout-media-overlay-alt:before {
content: "\e6fc";
}
.ti-layout-media-overlay-alt-2:before {
content: "\e6fd";
}
.ti-layout-media-left-alt:before {
content: "\e6fe";
}
.ti-layout-media-left:before {
content: "\e6ff";
}
.ti-layout-media-center-alt:before {
content: "\e700";
}
.ti-layout-media-center:before {
content: "\e701";
}
.ti-layout-list-thumb:before {
content: "\e702";
}
.ti-layout-list-thumb-alt:before {
content: "\e703";
}
.ti-layout-list-post:before {
content: "\e704";
}
.ti-layout-list-large-image:before {
content: "\e705";
}
.ti-layout-line-solid:before {
content: "\e706";
}
.ti-layout-grid4:before {
content: "\e707";
}
.ti-layout-grid3:before {
content: "\e708";
}
.ti-layout-grid2:before {
content: "\e709";
}
.ti-layout-grid2-thumb:before {
content: "\e70a";
}
.ti-layout-cta-right:before {
content: "\e70b";
}
.ti-layout-cta-left:before {
content: "\e70c";
}
.ti-layout-cta-center:before {
content: "\e70d";
}
.ti-layout-cta-btn-right:before {
content: "\e70e";
}
.ti-layout-cta-btn-left:before {
content: "\e70f";
}
.ti-layout-column4:before {
content: "\e710";
}
.ti-layout-column3:before {
content: "\e711";
}
.ti-layout-column2:before {
content: "\e712";
}
.ti-layout-accordion-separated:before {
content: "\e713";
}
.ti-layout-accordion-merged:before {
content: "\e714";
}
.ti-layout-accordion-list:before {
content: "\e715";
}
.ti-ink-pen:before {
content: "\e716";
}
.ti-info-alt:before {
content: "\e717";
}
.ti-help-alt:before {
content: "\e718";
}
.ti-headphone-alt:before {
content: "\e719";
}
.ti-hand-point-up:before {
content: "\e71a";
}
.ti-hand-point-right:before {
content: "\e71b";
}
.ti-hand-point-left:before {
content: "\e71c";
}
.ti-hand-point-down:before {
content: "\e71d";
}
.ti-gallery:before {
content: "\e71e";
}
.ti-face-smile:before {
content: "\e71f";
}
.ti-face-sad:before {
content: "\e720";
}
.ti-credit-card:before {
content: "\e721";
}
.ti-control-skip-forward:before {
content: "\e722";
}
.ti-control-skip-backward:before {
content: "\e723";
}
.ti-control-record:before {
content: "\e724";
}
.ti-control-eject:before {
content: "\e725";
}
.ti-comments-smiley:before {
content: "\e726";
}
.ti-brush-alt:before {
content: "\e727";
}
.ti-youtube:before {
content: "\e728";
}
.ti-vimeo:before {
content: "\e729";
}
.ti-twitter:before {
content: "\e72a";
}
.ti-time:before {
content: "\e72b";
}
.ti-tumblr:before {
content: "\e72c";
}
.ti-skype:before {
content: "\e72d";
}
.ti-share:before {
content: "\e72e";
}
.ti-share-alt:before {
content: "\e72f";
}
.ti-rocket:before {
content: "\e730";
}
.ti-pinterest:before {
content: "\e731";
}
.ti-new-window:before {
content: "\e732";
}
.ti-microsoft:before {
content: "\e733";
}
.ti-list-ol:before {
content: "\e734";
}
.ti-linkedin:before {
content: "\e735";
}
.ti-layout-sidebar-2:before {
content: "\e736";
}
.ti-layout-grid4-alt:before {
content: "\e737";
}
.ti-layout-grid3-alt:before {
content: "\e738";
}
.ti-layout-grid2-alt:before {
content: "\e739";
}
.ti-layout-column4-alt:before {
content: "\e73a";
}
.ti-layout-column3-alt:before {
content: "\e73b";
}
.ti-layout-column2-alt:before {
content: "\e73c";
}
.ti-instagram:before {
content: "\e73d";
}
.ti-google:before {
content: "\e73e";
}
.ti-github:before {
content: "\e73f";
}
.ti-flickr:before {
content: "\e740";
}
.ti-facebook:before {
content: "\e741";
}
.ti-dropbox:before {
content: "\e742";
}
.ti-dribbble:before {
content: "\e743";
}
.ti-apple:before {
content: "\e744";
}
.ti-andrAdminid:before {
content: "\e745";
}
.ti-save:before {
content: "\e746";
}
.ti-save-alt:before {
content: "\e747";
}
.ti-yahoo:before {
content: "\e748";
}
.ti-wordpress:before {
content: "\e749";
}
.ti-vimeo-alt:before {
content: "\e74a";
}
.ti-twitter-alt:before {
content: "\e74b";
}
.ti-tumblr-alt:before {
content: "\e74c";
}
.ti-trello:before {
content: "\e74d";
}
.ti-stack-overflow:before {
content: "\e74e";
}
.ti-soundcloud:before {
content: "\e74f";
}
.ti-sharethis:before {
content: "\e750";
}
.ti-sharethis-alt:before {
content: "\e751";
}
.ti-reddit:before {
content: "\e752";
}
.ti-pinterest-alt:before {
content: "\e753";
}
.ti-microsoft-alt:before {
content: "\e754";
}
.ti-linux:before {
content: "\e755";
}
.ti-jsfiddle:before {
content: "\e756";
}
.ti-joomla:before {
content: "\e757";
}
.ti-html5:before {
content: "\e758";
}
.ti-flickr-alt:before {
content: "\e759";
}
.ti-email:before {
content: "\e75a";
}
.ti-drupal:before {
content: "\e75b";
}
.ti-dropbox-alt:before {
content: "\e75c";
}
.ti-css3:before {
content: "\e75d";
}
.ti-rss:before {
content: "\e75e";
}
.ti-rss-alt:before {
content: "\e75f";
}
================================================
FILE: public/admin-panel/dist/css/icons/weather-icons/css/weather-icons-core.css
================================================
@font-face {
font-family: 'weathericons';
src: url('..//fonts/weathericons-regular-webfont.eot');
src: url('..//fonts/weathericons-regular-webfont.eot?#iefix') format('embedded-opentype'), url('..//fonts/weathericons-regular-webfont.woff2') format('woff2'), url('..//fonts/weathericons-regular-webfont.woff') format('woff'), url('..//fonts/weathericons-regular-webfont.ttf') format('truetype'), url('..//fonts/weathericons-regular-webfont.svg#weather_iconsregular') format('svg');
font-weight: normal;
font-style: normal;
}
.wi {
display: inline-block;
font-family: 'weathericons';
font-style: normal;
font-weight: normal;
line-height: 1;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
.wi-fw {
text-align: center;
width: 1.4em;
}
.wi-rotate-90 {
filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=1);
-webkit-transform: rotate(90deg);
-ms-transform: rotate(90deg);
transform: rotate(90deg);
}
.wi-rotate-180 {
filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2);
-webkit-transform: rotate(180deg);
-ms-transform: rotate(180deg);
transform: rotate(180deg);
}
.wi-rotate-270 {
filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3);
-webkit-transform: rotate(270deg);
-ms-transform: rotate(270deg);
transform: rotate(270deg);
}
.wi-flip-horizontal {
filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1);
-webkit-transform: scale(-1, 1);
-ms-transform: scale(-1, 1);
transform: scale(-1, 1);
}
.wi-flip-vertical {
filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1);
-webkit-transform: scale(1, -1);
-ms-transform: scale(1, -1);
transform: scale(1, -1);
}
================================================
FILE: public/admin-panel/dist/css/icons/weather-icons/css/weather-icons-variables.css
================================================
================================================
FILE: public/admin-panel/dist/css/icons/weather-icons/css/weather-icons-wind.css
================================================
@font-face {
font-family: 'weathericons';
src: url('..//fonts/weathericons-regular-webfont.eot');
src: url('..//fonts/weathericons-regular-webfont.eot?#iefix') format('embedded-opentype'), url('..//fonts/weathericons-regular-webfont.woff2') format('woff2'), url('..//fonts/weathericons-regular-webfont.woff') format('woff'), url('..//fonts/weathericons-regular-webfont.ttf') format('truetype'), url('..//fonts/weathericons-regular-webfont.svg#weather_iconsregular') format('svg');
font-weight: normal;
font-style: normal;
}
.wi {
display: inline-block;
font-family: 'weathericons';
font-style: normal;
font-weight: normal;
line-height: 1;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
.wi-fw {
text-align: center;
width: 1.4em;
}
.wi-rotate-90 {
filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=1);
-webkit-transform: rotate(90deg);
-ms-transform: rotate(90deg);
transform: rotate(90deg);
}
.wi-rotate-180 {
filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2);
-webkit-transform: rotate(180deg);
-ms-transform: rotate(180deg);
transform: rotate(180deg);
}
.wi-rotate-270 {
filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3);
-webkit-transform: rotate(270deg);
-ms-transform: rotate(270deg);
transform: rotate(270deg);
}
.wi-flip-horizontal {
filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1);
-webkit-transform: scale(-1, 1);
-ms-transform: scale(-1, 1);
transform: scale(-1, 1);
}
.wi-flip-vertical {
filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1);
-webkit-transform: scale(1, -1);
-ms-transform: scale(1, -1);
transform: scale(1, -1);
}
.wi-wind:before {
content: "\f0b1";
}
.wi-wind.towards-0-deg {
-webkit-transform: rotate(0deg);
-moz-transform: rotate(0deg);
-ms-transform: rotate(0deg);
-o-transform: rotate(0deg);
transform: rotate(0deg);
}
.wi-wind.towards-1-deg {
-webkit-transform: rotate(1deg);
-moz-transform: rotate(1deg);
-ms-transform: rotate(1deg);
-o-transform: rotate(1deg);
transform: rotate(1deg);
}
.wi-wind.towards-2-deg {
-webkit-transform: rotate(2deg);
-moz-transform: rotate(2deg);
-ms-transform: rotate(2deg);
-o-transform: rotate(2deg);
transform: rotate(2deg);
}
.wi-wind.towards-3-deg {
-webkit-transform: rotate(3deg);
-moz-transform: rotate(3deg);
-ms-transform: rotate(3deg);
-o-transform: rotate(3deg);
transform: rotate(3deg);
}
.wi-wind.towards-4-deg {
-webkit-transform: rotate(4deg);
-moz-transform: rotate(4deg);
-ms-transform: rotate(4deg);
-o-transform: rotate(4deg);
transform: rotate(4deg);
}
.wi-wind.towards-5-deg {
-webkit-transform: rotate(5deg);
-moz-transform: rotate(5deg);
-ms-transform: rotate(5deg);
-o-transform: rotate(5deg);
transform: rotate(5deg);
}
.wi-wind.towards-6-deg {
-webkit-transform: rotate(6deg);
-moz-transform: rotate(6deg);
-ms-transform: rotate(6deg);
-o-transform: rotate(6deg);
transform: rotate(6deg);
}
.wi-wind.towards-7-deg {
-webkit-transform: rotate(7deg);
-moz-transform: rotate(7deg);
-ms-transform: rotate(7deg);
-o-transform: rotate(7deg);
transform: rotate(7deg);
}
.wi-wind.towards-8-deg {
-webkit-transform: rotate(8deg);
-moz-transform: rotate(8deg);
-ms-transform: rotate(8deg);
-o-transform: rotate(8deg);
transform: rotate(8deg);
}
.wi-wind.towards-9-deg {
-webkit-transform: rotate(9deg);
-moz-transform: rotate(9deg);
-ms-transform: rotate(9deg);
-o-transform: rotate(9deg);
transform: rotate(9deg);
}
.wi-wind.towards-10-deg {
-webkit-transform: rotate(10deg);
-moz-transform: rotate(10deg);
-ms-transform: rotate(10deg);
-o-transform: rotate(10deg);
transform: rotate(10deg);
}
.wi-wind.towards-11-deg {
-webkit-transform: rotate(11deg);
-moz-transform: rotate(11deg);
-ms-transform: rotate(11deg);
-o-transform: rotate(11deg);
transform: rotate(11deg);
}
.wi-wind.towards-12-deg {
-webkit-transform: rotate(12deg);
-moz-transform: rotate(12deg);
-ms-transform: rotate(12deg);
-o-transform: rotate(12deg);
transform: rotate(12deg);
}
.wi-wind.towards-13-deg {
-webkit-transform: rotate(13deg);
-moz-transform: rotate(13deg);
-ms-transform: rotate(13deg);
-o-transform: rotate(13deg);
transform: rotate(13deg);
}
.wi-wind.towards-14-deg {
-webkit-transform: rotate(14deg);
-moz-transform: rotate(14deg);
-ms-transform: rotate(14deg);
-o-transform: rotate(14deg);
transform: rotate(14deg);
}
.wi-wind.towards-15-deg {
-webkit-transform: rotate(15deg);
-moz-transform: rotate(15deg);
-ms-transform: rotate(15deg);
-o-transform: rotate(15deg);
transform: rotate(15deg);
}
.wi-wind.towards-16-deg {
-webkit-transform: rotate(16deg);
-moz-transform: rotate(16deg);
-ms-transform: rotate(16deg);
-o-transform: rotate(16deg);
transform: rotate(16deg);
}
.wi-wind.towards-17-deg {
-webkit-transform: rotate(17deg);
-moz-transform: rotate(17deg);
-ms-transform: rotate(17deg);
-o-transform: rotate(17deg);
transform: rotate(17deg);
}
.wi-wind.towards-18-deg {
-webkit-transform: rotate(18deg);
-moz-transform: rotate(18deg);
-ms-transform: rotate(18deg);
-o-transform: rotate(18deg);
transform: rotate(18deg);
}
.wi-wind.towards-19-deg {
-webkit-transform: rotate(19deg);
-moz-transform: rotate(19deg);
-ms-transform: rotate(19deg);
-o-transform: rotate(19deg);
transform: rotate(19deg);
}
.wi-wind.towards-20-deg {
-webkit-transform: rotate(20deg);
-moz-transform: rotate(20deg);
-ms-transform: rotate(20deg);
-o-transform: rotate(20deg);
transform: rotate(20deg);
}
.wi-wind.towards-21-deg {
-webkit-transform: rotate(21deg);
-moz-transform: rotate(21deg);
-ms-transform: rotate(21deg);
-o-transform: rotate(21deg);
transform: rotate(21deg);
}
.wi-wind.towards-22-deg {
-webkit-transform: rotate(22deg);
-moz-transform: rotate(22deg);
-ms-transform: rotate(22deg);
-o-transform: rotate(22deg);
transform: rotate(22deg);
}
.wi-wind.towards-23-deg {
-webkit-transform: rotate(23deg);
-moz-transform: rotate(23deg);
-ms-transform: rotate(23deg);
-o-transform: rotate(23deg);
transform: rotate(23deg);
}
.wi-wind.towards-24-deg {
-webkit-transform: rotate(24deg);
-moz-transform: rotate(24deg);
-ms-transform: rotate(24deg);
-o-transform: rotate(24deg);
transform: rotate(24deg);
}
.wi-wind.towards-25-deg {
-webkit-transform: rotate(25deg);
-moz-transform: rotate(25deg);
-ms-transform: rotate(25deg);
-o-transform: rotate(25deg);
transform: rotate(25deg);
}
.wi-wind.towards-26-deg {
-webkit-transform: rotate(26deg);
-moz-transform: rotate(26deg);
-ms-transform: rotate(26deg);
-o-transform: rotate(26deg);
transform: rotate(26deg);
}
.wi-wind.towards-27-deg {
-webkit-transform: rotate(27deg);
-moz-transform: rotate(27deg);
-ms-transform: rotate(27deg);
-o-transform: rotate(27deg);
transform: rotate(27deg);
}
.wi-wind.towards-28-deg {
-webkit-transform: rotate(28deg);
-moz-transform: rotate(28deg);
-ms-transform: rotate(28deg);
-o-transform: rotate(28deg);
transform: rotate(28deg);
}
.wi-wind.towards-29-deg {
-webkit-transform: rotate(29deg);
-moz-transform: rotate(29deg);
-ms-transform: rotate(29deg);
-o-transform: rotate(29deg);
transform: rotate(29deg);
}
.wi-wind.towards-30-deg {
-webkit-transform: rotate(30deg);
-moz-transform: rotate(30deg);
-ms-transform: rotate(30deg);
-o-transform: rotate(30deg);
transform: rotate(30deg);
}
.wi-wind.towards-31-deg {
-webkit-transform: rotate(31deg);
-moz-transform: rotate(31deg);
-ms-transform: rotate(31deg);
-o-transform: rotate(31deg);
transform: rotate(31deg);
}
.wi-wind.towards-32-deg {
-webkit-transform: rotate(32deg);
-moz-transform: rotate(32deg);
-ms-transform: rotate(32deg);
-o-transform: rotate(32deg);
transform: rotate(32deg);
}
.wi-wind.towards-33-deg {
-webkit-transform: rotate(33deg);
-moz-transform: rotate(33deg);
-ms-transform: rotate(33deg);
-o-transform: rotate(33deg);
transform: rotate(33deg);
}
.wi-wind.towards-34-deg {
-webkit-transform: rotate(34deg);
-moz-transform: rotate(34deg);
-ms-transform: rotate(34deg);
-o-transform: rotate(34deg);
transform: rotate(34deg);
}
.wi-wind.towards-35-deg {
-webkit-transform: rotate(35deg);
-moz-transform: rotate(35deg);
-ms-transform: rotate(35deg);
-o-transform: rotate(35deg);
transform: rotate(35deg);
}
.wi-wind.towards-36-deg {
-webkit-transform: rotate(36deg);
-moz-transform: rotate(36deg);
-ms-transform: rotate(36deg);
-o-transform: rotate(36deg);
transform: rotate(36deg);
}
.wi-wind.towards-37-deg {
-webkit-transform: rotate(37deg);
-moz-transform: rotate(37deg);
-ms-transform: rotate(37deg);
-o-transform: rotate(37deg);
transform: rotate(37deg);
}
.wi-wind.towards-38-deg {
-webkit-transform: rotate(38deg);
-moz-transform: rotate(38deg);
-ms-transform: rotate(38deg);
-o-transform: rotate(38deg);
transform: rotate(38deg);
}
.wi-wind.towards-39-deg {
-webkit-transform: rotate(39deg);
-moz-transform: rotate(39deg);
-ms-transform: rotate(39deg);
-o-transform: rotate(39deg);
transform: rotate(39deg);
}
.wi-wind.towards-40-deg {
-webkit-transform: rotate(40deg);
-moz-transform: rotate(40deg);
-ms-transform: rotate(40deg);
-o-transform: rotate(40deg);
transform: rotate(40deg);
}
.wi-wind.towards-41-deg {
-webkit-transform: rotate(41deg);
-moz-transform: rotate(41deg);
-ms-transform: rotate(41deg);
-o-transform: rotate(41deg);
transform: rotate(41deg);
}
.wi-wind.towards-42-deg {
-webkit-transform: rotate(42deg);
-moz-transform: rotate(42deg);
-ms-transform: rotate(42deg);
-o-transform: rotate(42deg);
transform: rotate(42deg);
}
.wi-wind.towards-43-deg {
-webkit-transform: rotate(43deg);
-moz-transform: rotate(43deg);
-ms-transform: rotate(43deg);
-o-transform: rotate(43deg);
transform: rotate(43deg);
}
.wi-wind.towards-44-deg {
-webkit-transform: rotate(44deg);
-moz-transform: rotate(44deg);
-ms-transform: rotate(44deg);
-o-transform: rotate(44deg);
transform: rotate(44deg);
}
.wi-wind.towards-45-deg {
-webkit-transform: rotate(45deg);
-moz-transform: rotate(45deg);
-ms-transform: rotate(45deg);
-o-transform: rotate(45deg);
transform: rotate(45deg);
}
.wi-wind.towards-46-deg {
-webkit-transform: rotate(46deg);
-moz-transform: rotate(46deg);
-ms-transform: rotate(46deg);
-o-transform: rotate(46deg);
transform: rotate(46deg);
}
.wi-wind.towards-47-deg {
-webkit-transform: rotate(47deg);
-moz-transform: rotate(47deg);
-ms-transform: rotate(47deg);
-o-transform: rotate(47deg);
transform: rotate(47deg);
}
.wi-wind.towards-48-deg {
-webkit-transform: rotate(48deg);
-moz-transform: rotate(48deg);
-ms-transform: rotate(48deg);
-o-transform: rotate(48deg);
transform: rotate(48deg);
}
.wi-wind.towards-49-deg {
-webkit-transform: rotate(49deg);
-moz-transform: rotate(49deg);
-ms-transform: rotate(49deg);
-o-transform: rotate(49deg);
transform: rotate(49deg);
}
.wi-wind.towards-50-deg {
-webkit-transform: rotate(50deg);
-moz-transform: rotate(50deg);
-ms-transform: rotate(50deg);
-o-transform: rotate(50deg);
transform: rotate(50deg);
}
.wi-wind.towards-51-deg {
-webkit-transform: rotate(51deg);
-moz-transform: rotate(51deg);
-ms-transform: rotate(51deg);
-o-transform: rotate(51deg);
transform: rotate(51deg);
}
.wi-wind.towards-52-deg {
-webkit-transform: rotate(52deg);
-moz-transform: rotate(52deg);
-ms-transform: rotate(52deg);
-o-transform: rotate(52deg);
transform: rotate(52deg);
}
.wi-wind.towards-53-deg {
-webkit-transform: rotate(53deg);
-moz-transform: rotate(53deg);
-ms-transform: rotate(53deg);
-o-transform: rotate(53deg);
transform: rotate(53deg);
}
.wi-wind.towards-54-deg {
-webkit-transform: rotate(54deg);
-moz-transform: rotate(54deg);
-ms-transform: rotate(54deg);
-o-transform: rotate(54deg);
transform: rotate(54deg);
}
.wi-wind.towards-55-deg {
-webkit-transform: rotate(55deg);
-moz-transform: rotate(55deg);
-ms-transform: rotate(55deg);
-o-transform: rotate(55deg);
transform: rotate(55deg);
}
.wi-wind.towards-56-deg {
-webkit-transform: rotate(56deg);
-moz-transform: rotate(56deg);
-ms-transform: rotate(56deg);
-o-transform: rotate(56deg);
transform: rotate(56deg);
}
.wi-wind.towards-57-deg {
-webkit-transform: rotate(57deg);
-moz-transform: rotate(57deg);
-ms-transform: rotate(57deg);
-o-transform: rotate(57deg);
transform: rotate(57deg);
}
.wi-wind.towards-58-deg {
-webkit-transform: rotate(58deg);
-moz-transform: rotate(58deg);
-ms-transform: rotate(58deg);
-o-transform: rotate(58deg);
transform: rotate(58deg);
}
.wi-wind.towards-59-deg {
-webkit-transform: rotate(59deg);
-moz-transform: rotate(59deg);
-ms-transform: rotate(59deg);
-o-transform: rotate(59deg);
transform: rotate(59deg);
}
.wi-wind.towards-60-deg {
-webkit-transform: rotate(60deg);
-moz-transform: rotate(60deg);
-ms-transform: rotate(60deg);
-o-transform: rotate(60deg);
transform: rotate(60deg);
}
.wi-wind.towards-61-deg {
-webkit-transform: rotate(61deg);
-moz-transform: rotate(61deg);
-ms-transform: rotate(61deg);
-o-transform: rotate(61deg);
transform: rotate(61deg);
}
.wi-wind.towards-62-deg {
-webkit-transform: rotate(62deg);
-moz-transform: rotate(62deg);
-ms-transform: rotate(62deg);
-o-transform: rotate(62deg);
transform: rotate(62deg);
}
.wi-wind.towards-63-deg {
-webkit-transform: rotate(63deg);
-moz-transform: rotate(63deg);
-ms-transform: rotate(63deg);
-o-transform: rotate(63deg);
transform: rotate(63deg);
}
.wi-wind.towards-64-deg {
-webkit-transform: rotate(64deg);
-moz-transform: rotate(64deg);
-ms-transform: rotate(64deg);
-o-transform: rotate(64deg);
transform: rotate(64deg);
}
.wi-wind.towards-65-deg {
-webkit-transform: rotate(65deg);
-moz-transform: rotate(65deg);
-ms-transform: rotate(65deg);
-o-transform: rotate(65deg);
transform: rotate(65deg);
}
.wi-wind.towards-66-deg {
-webkit-transform: rotate(66deg);
-moz-transform: rotate(66deg);
-ms-transform: rotate(66deg);
-o-transform: rotate(66deg);
transform: rotate(66deg);
}
.wi-wind.towards-67-deg {
-webkit-transform: rotate(67deg);
-moz-transform: rotate(67deg);
-ms-transform: rotate(67deg);
-o-transform: rotate(67deg);
transform: rotate(67deg);
}
.wi-wind.towards-68-deg {
-webkit-transform: rotate(68deg);
-moz-transform: rotate(68deg);
-ms-transform: rotate(68deg);
-o-transform: rotate(68deg);
transform: rotate(68deg);
}
.wi-wind.towards-69-deg {
-webkit-transform: rotate(69deg);
-moz-transform: rotate(69deg);
-ms-transform: rotate(69deg);
-o-transform: rotate(69deg);
transform: rotate(69deg);
}
.wi-wind.towards-70-deg {
-webkit-transform: rotate(70deg);
-moz-transform: rotate(70deg);
-ms-transform: rotate(70deg);
-o-transform: rotate(70deg);
transform: rotate(70deg);
}
.wi-wind.towards-71-deg {
-webkit-transform: rotate(71deg);
-moz-transform: rotate(71deg);
-ms-transform: rotate(71deg);
-o-transform: rotate(71deg);
transform: rotate(71deg);
}
.wi-wind.towards-72-deg {
-webkit-transform: rotate(72deg);
-moz-transform: rotate(72deg);
-ms-transform: rotate(72deg);
-o-transform: rotate(72deg);
transform: rotate(72deg);
}
.wi-wind.towards-73-deg {
-webkit-transform: rotate(73deg);
-moz-transform: rotate(73deg);
-ms-transform: rotate(73deg);
-o-transform: rotate(73deg);
transform: rotate(73deg);
}
.wi-wind.towards-74-deg {
-webkit-transform: rotate(74deg);
-moz-transform: rotate(74deg);
-ms-transform: rotate(74deg);
-o-transform: rotate(74deg);
transform: rotate(74deg);
}
.wi-wind.towards-75-deg {
-webkit-transform: rotate(75deg);
-moz-transform: rotate(75deg);
-ms-transform: rotate(75deg);
-o-transform: rotate(75deg);
transform: rotate(75deg);
}
.wi-wind.towards-76-deg {
-webkit-transform: rotate(76deg);
-moz-transform: rotate(76deg);
-ms-transform: rotate(76deg);
-o-transform: rotate(76deg);
transform: rotate(76deg);
}
.wi-wind.towards-77-deg {
-webkit-transform: rotate(77deg);
-moz-transform: rotate(77deg);
-ms-transform: rotate(77deg);
-o-transform: rotate(77deg);
transform: rotate(77deg);
}
.wi-wind.towards-78-deg {
-webkit-transform: rotate(78deg);
-moz-transform: rotate(78deg);
-ms-transform: rotate(78deg);
-o-transform: rotate(78deg);
transform: rotate(78deg);
}
.wi-wind.towards-79-deg {
-webkit-transform: rotate(79deg);
-moz-transform: rotate(79deg);
-ms-transform: rotate(79deg);
-o-transform: rotate(79deg);
transform: rotate(79deg);
}
.wi-wind.towards-80-deg {
-webkit-transform: rotate(80deg);
-moz-transform: rotate(80deg);
-ms-transform: rotate(80deg);
-o-transform: rotate(80deg);
transform: rotate(80deg);
}
.wi-wind.towards-81-deg {
-webkit-transform: rotate(81deg);
-moz-transform: rotate(81deg);
-ms-transform: rotate(81deg);
-o-transform: rotate(81deg);
transform: rotate(81deg);
}
.wi-wind.towards-82-deg {
-webkit-transform: rotate(82deg);
-moz-transform: rotate(82deg);
-ms-transform: rotate(82deg);
-o-transform: rotate(82deg);
transform: rotate(82deg);
}
.wi-wind.towards-83-deg {
-webkit-transform: rotate(83deg);
-moz-transform: rotate(83deg);
-ms-transform: rotate(83deg);
-o-transform: rotate(83deg);
transform: rotate(83deg);
}
.wi-wind.towards-84-deg {
-webkit-transform: rotate(84deg);
-moz-transform: rotate(84deg);
-ms-transform: rotate(84deg);
-o-transform: rotate(84deg);
transform: rotate(84deg);
}
.wi-wind.towards-85-deg {
-webkit-transform: rotate(85deg);
-moz-transform: rotate(85deg);
-ms-transform: rotate(85deg);
-o-transform: rotate(85deg);
transform: rotate(85deg);
}
.wi-wind.towards-86-deg {
-webkit-transform: rotate(86deg);
-moz-transform: rotate(86deg);
-ms-transform: rotate(86deg);
-o-transform: rotate(86deg);
transform: rotate(86deg);
}
.wi-wind.towards-87-deg {
-webkit-transform: rotate(87deg);
-moz-transform: rotate(87deg);
-ms-transform: rotate(87deg);
-o-transform: rotate(87deg);
transform: rotate(87deg);
}
.wi-wind.towards-88-deg {
-webkit-transform: rotate(88deg);
-moz-transform: rotate(88deg);
-ms-transform: rotate(88deg);
-o-transform: rotate(88deg);
transform: rotate(88deg);
}
.wi-wind.towards-89-deg {
-webkit-transform: rotate(89deg);
-moz-transform: rotate(89deg);
-ms-transform: rotate(89deg);
-o-transform: rotate(89deg);
transform: rotate(89deg);
}
.wi-wind.towards-90-deg {
-webkit-transform: rotate(90deg);
-moz-transform: rotate(90deg);
-ms-transform: rotate(90deg);
-o-transform: rotate(90deg);
transform: rotate(90deg);
}
.wi-wind.towards-91-deg {
-webkit-transform: rotate(91deg);
-moz-transform: rotate(91deg);
-ms-transform: rotate(91deg);
-o-transform: rotate(91deg);
transform: rotate(91deg);
}
.wi-wind.towards-92-deg {
-webkit-transform: rotate(92deg);
-moz-transform: rotate(92deg);
-ms-transform: rotate(92deg);
-o-transform: rotate(92deg);
transform: rotate(92deg);
}
.wi-wind.towards-93-deg {
-webkit-transform: rotate(93deg);
-moz-transform: rotate(93deg);
-ms-transform: rotate(93deg);
-o-transform: rotate(93deg);
transform: rotate(93deg);
}
.wi-wind.towards-94-deg {
-webkit-transform: rotate(94deg);
-moz-transform: rotate(94deg);
-ms-transform: rotate(94deg);
-o-transform: rotate(94deg);
transform: rotate(94deg);
}
.wi-wind.towards-95-deg {
-webkit-transform: rotate(95deg);
-moz-transform: rotate(95deg);
-ms-transform: rotate(95deg);
-o-transform: rotate(95deg);
transform: rotate(95deg);
}
.wi-wind.towards-96-deg {
-webkit-transform: rotate(96deg);
-moz-transform: rotate(96deg);
-ms-transform: rotate(96deg);
-o-transform: rotate(96deg);
transform: rotate(96deg);
}
.wi-wind.towards-97-deg {
-webkit-transform: rotate(97deg);
-moz-transform: rotate(97deg);
-ms-transform: rotate(97deg);
-o-transform: rotate(97deg);
transform: rotate(97deg);
}
.wi-wind.towards-98-deg {
-webkit-transform: rotate(98deg);
-moz-transform: rotate(98deg);
-ms-transform: rotate(98deg);
-o-transform: rotate(98deg);
transform: rotate(98deg);
}
.wi-wind.towards-99-deg {
-webkit-transform: rotate(99deg);
-moz-transform: rotate(99deg);
-ms-transform: rotate(99deg);
-o-transform: rotate(99deg);
transform: rotate(99deg);
}
.wi-wind.towards-100-deg {
-webkit-transform: rotate(100deg);
-moz-transform: rotate(100deg);
-ms-transform: rotate(100deg);
-o-transform: rotate(100deg);
transform: rotate(100deg);
}
.wi-wind.towards-101-deg {
-webkit-transform: rotate(101deg);
-moz-transform: rotate(101deg);
-ms-transform: rotate(101deg);
-o-transform: rotate(101deg);
transform: rotate(101deg);
}
.wi-wind.towards-102-deg {
-webkit-transform: rotate(102deg);
-moz-transform: rotate(102deg);
-ms-transform: rotate(102deg);
-o-transform: rotate(102deg);
transform: rotate(102deg);
}
.wi-wind.towards-103-deg {
-webkit-transform: rotate(103deg);
-moz-transform: rotate(103deg);
-ms-transform: rotate(103deg);
-o-transform: rotate(103deg);
transform: rotate(103deg);
}
.wi-wind.towards-104-deg {
-webkit-transform: rotate(104deg);
-moz-transform: rotate(104deg);
-ms-transform: rotate(104deg);
-o-transform: rotate(104deg);
transform: rotate(104deg);
}
.wi-wind.towards-105-deg {
-webkit-transform: rotate(105deg);
-moz-transform: rotate(105deg);
-ms-transform: rotate(105deg);
-o-transform: rotate(105deg);
transform: rotate(105deg);
}
.wi-wind.towards-106-deg {
-webkit-transform: rotate(106deg);
-moz-transform: rotate(106deg);
-ms-transform: rotate(106deg);
-o-transform: rotate(106deg);
transform: rotate(106deg);
}
.wi-wind.towards-107-deg {
-webkit-transform: rotate(107deg);
-moz-transform: rotate(107deg);
-ms-transform: rotate(107deg);
-o-transform: rotate(107deg);
transform: rotate(107deg);
}
.wi-wind.towards-108-deg {
-webkit-transform: rotate(108deg);
-moz-transform: rotate(108deg);
-ms-transform: rotate(108deg);
-o-transform: rotate(108deg);
transform: rotate(108deg);
}
.wi-wind.towards-109-deg {
-webkit-transform: rotate(109deg);
-moz-transform: rotate(109deg);
-ms-transform: rotate(109deg);
-o-transform: rotate(109deg);
transform: rotate(109deg);
}
.wi-wind.towards-110-deg {
-webkit-transform: rotate(110deg);
-moz-transform: rotate(110deg);
-ms-transform: rotate(110deg);
-o-transform: rotate(110deg);
transform: rotate(110deg);
}
.wi-wind.towards-111-deg {
-webkit-transform: rotate(111deg);
-moz-transform: rotate(111deg);
-ms-transform: rotate(111deg);
-o-transform: rotate(111deg);
transform: rotate(111deg);
}
.wi-wind.towards-112-deg {
-webkit-transform: rotate(112deg);
-moz-transform: rotate(112deg);
-ms-transform: rotate(112deg);
-o-transform: rotate(112deg);
transform: rotate(112deg);
}
.wi-wind.towards-113-deg {
-webkit-transform: rotate(113deg);
-moz-transform: rotate(113deg);
-ms-transform: rotate(113deg);
-o-transform: rotate(113deg);
transform: rotate(113deg);
}
.wi-wind.towards-114-deg {
-webkit-transform: rotate(114deg);
-moz-transform: rotate(114deg);
-ms-transform: rotate(114deg);
-o-transform: rotate(114deg);
transform: rotate(114deg);
}
.wi-wind.towards-115-deg {
-webkit-transform: rotate(115deg);
-moz-transform: rotate(115deg);
-ms-transform: rotate(115deg);
-o-transform: rotate(115deg);
transform: rotate(115deg);
}
.wi-wind.towards-116-deg {
-webkit-transform: rotate(116deg);
-moz-transform: rotate(116deg);
-ms-transform: rotate(116deg);
-o-transform: rotate(116deg);
transform: rotate(116deg);
}
.wi-wind.towards-117-deg {
-webkit-transform: rotate(117deg);
-moz-transform: rotate(117deg);
-ms-transform: rotate(117deg);
-o-transform: rotate(117deg);
transform: rotate(117deg);
}
.wi-wind.towards-118-deg {
-webkit-transform: rotate(118deg);
-moz-transform: rotate(118deg);
-ms-transform: rotate(118deg);
-o-transform: rotate(118deg);
transform: rotate(118deg);
}
.wi-wind.towards-119-deg {
-webkit-transform: rotate(119deg);
-moz-transform: rotate(119deg);
-ms-transform: rotate(119deg);
-o-transform: rotate(119deg);
transform: rotate(119deg);
}
.wi-wind.towards-120-deg {
-webkit-transform: rotate(120deg);
-moz-transform: rotate(120deg);
-ms-transform: rotate(120deg);
-o-transform: rotate(120deg);
transform: rotate(120deg);
}
.wi-wind.towards-121-deg {
-webkit-transform: rotate(121deg);
-moz-transform: rotate(121deg);
-ms-transform: rotate(121deg);
-o-transform: rotate(121deg);
transform: rotate(121deg);
}
.wi-wind.towards-122-deg {
-webkit-transform: rotate(122deg);
-moz-transform: rotate(122deg);
-ms-transform: rotate(122deg);
-o-transform: rotate(122deg);
transform: rotate(122deg);
}
.wi-wind.towards-123-deg {
-webkit-transform: rotate(123deg);
-moz-transform: rotate(123deg);
-ms-transform: rotate(123deg);
-o-transform: rotate(123deg);
transform: rotate(123deg);
}
.wi-wind.towards-124-deg {
-webkit-transform: rotate(124deg);
-moz-transform: rotate(124deg);
-ms-transform: rotate(124deg);
-o-transform: rotate(124deg);
transform: rotate(124deg);
}
.wi-wind.towards-125-deg {
-webkit-transform: rotate(125deg);
-moz-transform: rotate(125deg);
-ms-transform: rotate(125deg);
-o-transform: rotate(125deg);
transform: rotate(125deg);
}
.wi-wind.towards-126-deg {
-webkit-transform: rotate(126deg);
-moz-transform: rotate(126deg);
-ms-transform: rotate(126deg);
-o-transform: rotate(126deg);
transform: rotate(126deg);
}
.wi-wind.towards-127-deg {
-webkit-transform: rotate(127deg);
-moz-transform: rotate(127deg);
-ms-transform: rotate(127deg);
-o-transform: rotate(127deg);
transform: rotate(127deg);
}
.wi-wind.towards-128-deg {
-webkit-transform: rotate(128deg);
-moz-transform: rotate(128deg);
-ms-transform: rotate(128deg);
-o-transform: rotate(128deg);
transform: rotate(128deg);
}
.wi-wind.towards-129-deg {
-webkit-transform: rotate(129deg);
-moz-transform: rotate(129deg);
-ms-transform: rotate(129deg);
-o-transform: rotate(129deg);
transform: rotate(129deg);
}
.wi-wind.towards-130-deg {
-webkit-transform: rotate(130deg);
-moz-transform: rotate(130deg);
-ms-transform: rotate(130deg);
-o-transform: rotate(130deg);
transform: rotate(130deg);
}
.wi-wind.towards-131-deg {
-webkit-transform: rotate(131deg);
-moz-transform: rotate(131deg);
-ms-transform: rotate(131deg);
-o-transform: rotate(131deg);
transform: rotate(131deg);
}
.wi-wind.towards-132-deg {
-webkit-transform: rotate(132deg);
-moz-transform: rotate(132deg);
-ms-transform: rotate(132deg);
-o-transform: rotate(132deg);
transform: rotate(132deg);
}
.wi-wind.towards-133-deg {
-webkit-transform: rotate(133deg);
-moz-transform: rotate(133deg);
-ms-transform: rotate(133deg);
-o-transform: rotate(133deg);
transform: rotate(133deg);
}
.wi-wind.towards-134-deg {
-webkit-transform: rotate(134deg);
-moz-transform: rotate(134deg);
-ms-transform: rotate(134deg);
-o-transform: rotate(134deg);
transform: rotate(134deg);
}
.wi-wind.towards-135-deg {
-webkit-transform: rotate(135deg);
-moz-transform: rotate(135deg);
-ms-transform: rotate(135deg);
-o-transform: rotate(135deg);
transform: rotate(135deg);
}
.wi-wind.towards-136-deg {
-webkit-transform: rotate(136deg);
-moz-transform: rotate(136deg);
-ms-transform: rotate(136deg);
-o-transform: rotate(136deg);
transform: rotate(136deg);
}
.wi-wind.towards-137-deg {
-webkit-transform: rotate(137deg);
-moz-transform: rotate(137deg);
-ms-transform: rotate(137deg);
-o-transform: rotate(137deg);
transform: rotate(137deg);
}
.wi-wind.towards-138-deg {
-webkit-transform: rotate(138deg);
-moz-transform: rotate(138deg);
-ms-transform: rotate(138deg);
-o-transform: rotate(138deg);
transform: rotate(138deg);
}
.wi-wind.towards-139-deg {
-webkit-transform: rotate(139deg);
-moz-transform: rotate(139deg);
-ms-transform: rotate(139deg);
-o-transform: rotate(139deg);
transform: rotate(139deg);
}
.wi-wind.towards-140-deg {
-webkit-transform: rotate(140deg);
-moz-transform: rotate(140deg);
-ms-transform: rotate(140deg);
-o-transform: rotate(140deg);
transform: rotate(140deg);
}
.wi-wind.towards-141-deg {
-webkit-transform: rotate(141deg);
-moz-transform: rotate(141deg);
-ms-transform: rotate(141deg);
-o-transform: rotate(141deg);
transform: rotate(141deg);
}
.wi-wind.towards-142-deg {
-webkit-transform: rotate(142deg);
-moz-transform: rotate(142deg);
-ms-transform: rotate(142deg);
-o-transform: rotate(142deg);
transform: rotate(142deg);
}
.wi-wind.towards-143-deg {
-webkit-transform: rotate(143deg);
-moz-transform: rotate(143deg);
-ms-transform: rotate(143deg);
-o-transform: rotate(143deg);
transform: rotate(143deg);
}
.wi-wind.towards-144-deg {
-webkit-transform: rotate(144deg);
-moz-transform: rotate(144deg);
-ms-transform: rotate(144deg);
-o-transform: rotate(144deg);
transform: rotate(144deg);
}
.wi-wind.towards-145-deg {
-webkit-transform: rotate(145deg);
-moz-transform: rotate(145deg);
-ms-transform: rotate(145deg);
-o-transform: rotate(145deg);
transform: rotate(145deg);
}
.wi-wind.towards-146-deg {
-webkit-transform: rotate(146deg);
-moz-transform: rotate(146deg);
-ms-transform: rotate(146deg);
-o-transform: rotate(146deg);
transform: rotate(146deg);
}
.wi-wind.towards-147-deg {
-webkit-transform: rotate(147deg);
-moz-transform: rotate(147deg);
-ms-transform: rotate(147deg);
-o-transform: rotate(147deg);
transform: rotate(147deg);
}
.wi-wind.towards-148-deg {
-webkit-transform: rotate(148deg);
-moz-transform: rotate(148deg);
-ms-transform: rotate(148deg);
-o-transform: rotate(148deg);
transform: rotate(148deg);
}
.wi-wind.towards-149-deg {
-webkit-transform: rotate(149deg);
-moz-transform: rotate(149deg);
-ms-transform: rotate(149deg);
-o-transform: rotate(149deg);
transform: rotate(149deg);
}
.wi-wind.towards-150-deg {
-webkit-transform: rotate(150deg);
-moz-transform: rotate(150deg);
-ms-transform: rotate(150deg);
-o-transform: rotate(150deg);
transform: rotate(150deg);
}
.wi-wind.towards-151-deg {
-webkit-transform: rotate(151deg);
-moz-transform: rotate(151deg);
-ms-transform: rotate(151deg);
-o-transform: rotate(151deg);
transform: rotate(151deg);
}
.wi-wind.towards-152-deg {
-webkit-transform: rotate(152deg);
-moz-transform: rotate(152deg);
-ms-transform: rotate(152deg);
-o-transform: rotate(152deg);
transform: rotate(152deg);
}
.wi-wind.towards-153-deg {
-webkit-transform: rotate(153deg);
-moz-transform: rotate(153deg);
-ms-transform: rotate(153deg);
-o-transform: rotate(153deg);
transform: rotate(153deg);
}
.wi-wind.towards-154-deg {
-webkit-transform: rotate(154deg);
-moz-transform: rotate(154deg);
-ms-transform: rotate(154deg);
-o-transform: rotate(154deg);
transform: rotate(154deg);
}
.wi-wind.towards-155-deg {
-webkit-transform: rotate(155deg);
-moz-transform: rotate(155deg);
-ms-transform: rotate(155deg);
-o-transform: rotate(155deg);
transform: rotate(155deg);
}
.wi-wind.towards-156-deg {
-webkit-transform: rotate(156deg);
-moz-transform: rotate(156deg);
-ms-transform: rotate(156deg);
-o-transform: rotate(156deg);
transform: rotate(156deg);
}
.wi-wind.towards-157-deg {
-webkit-transform: rotate(157deg);
-moz-transform: rotate(157deg);
-ms-transform: rotate(157deg);
-o-transform: rotate(157deg);
transform: rotate(157deg);
}
.wi-wind.towards-158-deg {
-webkit-transform: rotate(158deg);
-moz-transform: rotate(158deg);
-ms-transform: rotate(158deg);
-o-transform: rotate(158deg);
transform: rotate(158deg);
}
.wi-wind.towards-159-deg {
-webkit-transform: rotate(159deg);
-moz-transform: rotate(159deg);
-ms-transform: rotate(159deg);
-o-transform: rotate(159deg);
transform: rotate(159deg);
}
.wi-wind.towards-160-deg {
-webkit-transform: rotate(160deg);
-moz-transform: rotate(160deg);
-ms-transform: rotate(160deg);
-o-transform: rotate(160deg);
transform: rotate(160deg);
}
.wi-wind.towards-161-deg {
-webkit-transform: rotate(161deg);
-moz-transform: rotate(161deg);
-ms-transform: rotate(161deg);
-o-transform: rotate(161deg);
transform: rotate(161deg);
}
.wi-wind.towards-162-deg {
-webkit-transform: rotate(162deg);
-moz-transform: rotate(162deg);
-ms-transform: rotate(162deg);
-o-transform: rotate(162deg);
transform: rotate(162deg);
}
.wi-wind.towards-163-deg {
-webkit-transform: rotate(163deg);
-moz-transform: rotate(163deg);
-ms-transform: rotate(163deg);
-o-transform: rotate(163deg);
transform: rotate(163deg);
}
.wi-wind.towards-164-deg {
-webkit-transform: rotate(164deg);
-moz-transform: rotate(164deg);
-ms-transform: rotate(164deg);
-o-transform: rotate(164deg);
transform: rotate(164deg);
}
.wi-wind.towards-165-deg {
-webkit-transform: rotate(165deg);
-moz-transform: rotate(165deg);
-ms-transform: rotate(165deg);
-o-transform: rotate(165deg);
transform: rotate(165deg);
}
.wi-wind.towards-166-deg {
-webkit-transform: rotate(166deg);
-moz-transform: rotate(166deg);
-ms-transform: rotate(166deg);
-o-transform: rotate(166deg);
transform: rotate(166deg);
}
.wi-wind.towards-167-deg {
-webkit-transform: rotate(167deg);
-moz-transform: rotate(167deg);
-ms-transform: rotate(167deg);
-o-transform: rotate(167deg);
transform: rotate(167deg);
}
.wi-wind.towards-168-deg {
-webkit-transform: rotate(168deg);
-moz-transform: rotate(168deg);
-ms-transform: rotate(168deg);
-o-transform: rotate(168deg);
transform: rotate(168deg);
}
.wi-wind.towards-169-deg {
-webkit-transform: rotate(169deg);
-moz-transform: rotate(169deg);
-ms-transform: rotate(169deg);
-o-transform: rotate(169deg);
transform: rotate(169deg);
}
.wi-wind.towards-170-deg {
-webkit-transform: rotate(170deg);
-moz-transform: rotate(170deg);
-ms-transform: rotate(170deg);
-o-transform: rotate(170deg);
transform: rotate(170deg);
}
.wi-wind.towards-171-deg {
-webkit-transform: rotate(171deg);
-moz-transform: rotate(171deg);
-ms-transform: rotate(171deg);
-o-transform: rotate(171deg);
transform: rotate(171deg);
}
.wi-wind.towards-172-deg {
-webkit-transform: rotate(172deg);
-moz-transform: rotate(172deg);
-ms-transform: rotate(172deg);
-o-transform: rotate(172deg);
transform: rotate(172deg);
}
.wi-wind.towards-173-deg {
-webkit-transform: rotate(173deg);
-moz-transform: rotate(173deg);
-ms-transform: rotate(173deg);
-o-transform: rotate(173deg);
transform: rotate(173deg);
}
.wi-wind.towards-174-deg {
-webkit-transform: rotate(174deg);
-moz-transform: rotate(174deg);
-ms-transform: rotate(174deg);
-o-transform: rotate(174deg);
transform: rotate(174deg);
}
.wi-wind.towards-175-deg {
-webkit-transform: rotate(175deg);
-moz-transform: rotate(175deg);
-ms-transform: rotate(175deg);
-o-transform: rotate(175deg);
transform: rotate(175deg);
}
.wi-wind.towards-176-deg {
-webkit-transform: rotate(176deg);
-moz-transform: rotate(176deg);
-ms-transform: rotate(176deg);
-o-transform: rotate(176deg);
transform: rotate(176deg);
}
.wi-wind.towards-177-deg {
-webkit-transform: rotate(177deg);
-moz-transform: rotate(177deg);
-ms-transform: rotate(177deg);
-o-transform: rotate(177deg);
transform: rotate(177deg);
}
.wi-wind.towards-178-deg {
-webkit-transform: rotate(178deg);
-moz-transform: rotate(178deg);
-ms-transform: rotate(178deg);
-o-transform: rotate(178deg);
transform: rotate(178deg);
}
.wi-wind.towards-179-deg {
-webkit-transform: rotate(179deg);
-moz-transform: rotate(179deg);
-ms-transform: rotate(179deg);
-o-transform: rotate(179deg);
transform: rotate(179deg);
}
.wi-wind.towards-180-deg {
-webkit-transform: rotate(180deg);
-moz-transform: rotate(180deg);
-ms-transform: rotate(180deg);
-o-transform: rotate(180deg);
transform: rotate(180deg);
}
.wi-wind.towards-181-deg {
-webkit-transform: rotate(181deg);
-moz-transform: rotate(181deg);
-ms-transform: rotate(181deg);
-o-transform: rotate(181deg);
transform: rotate(181deg);
}
.wi-wind.towards-182-deg {
-webkit-transform: rotate(182deg);
-moz-transform: rotate(182deg);
-ms-transform: rotate(182deg);
-o-transform: rotate(182deg);
transform: rotate(182deg);
}
.wi-wind.towards-183-deg {
-webkit-transform: rotate(183deg);
-moz-transform: rotate(183deg);
-ms-transform: rotate(183deg);
-o-transform: rotate(183deg);
transform: rotate(183deg);
}
.wi-wind.towards-184-deg {
-webkit-transform: rotate(184deg);
-moz-transform: rotate(184deg);
-ms-transform: rotate(184deg);
-o-transform: rotate(184deg);
transform: rotate(184deg);
}
.wi-wind.towards-185-deg {
-webkit-transform: rotate(185deg);
-moz-transform: rotate(185deg);
-ms-transform: rotate(185deg);
-o-transform: rotate(185deg);
transform: rotate(185deg);
}
.wi-wind.towards-186-deg {
-webkit-transform: rotate(186deg);
-moz-transform: rotate(186deg);
-ms-transform: rotate(186deg);
-o-transform: rotate(186deg);
transform: rotate(186deg);
}
.wi-wind.towards-187-deg {
-webkit-transform: rotate(187deg);
-moz-transform: rotate(187deg);
-ms-transform: rotate(187deg);
-o-transform: rotate(187deg);
transform: rotate(187deg);
}
.wi-wind.towards-188-deg {
-webkit-transform: rotate(188deg);
-moz-transform: rotate(188deg);
-ms-transform: rotate(188deg);
-o-transform: rotate(188deg);
transform: rotate(188deg);
}
.wi-wind.towards-189-deg {
-webkit-transform: rotate(189deg);
-moz-transform: rotate(189deg);
-ms-transform: rotate(189deg);
-o-transform: rotate(189deg);
transform: rotate(189deg);
}
.wi-wind.towards-190-deg {
-webkit-transform: rotate(190deg);
-moz-transform: rotate(190deg);
-ms-transform: rotate(190deg);
-o-transform: rotate(190deg);
transform: rotate(190deg);
}
.wi-wind.towards-191-deg {
-webkit-transform: rotate(191deg);
-moz-transform: rotate(191deg);
-ms-transform: rotate(191deg);
-o-transform: rotate(191deg);
transform: rotate(191deg);
}
.wi-wind.towards-192-deg {
-webkit-transform: rotate(192deg);
-moz-transform: rotate(192deg);
-ms-transform: rotate(192deg);
-o-transform: rotate(192deg);
transform: rotate(192deg);
}
.wi-wind.towards-193-deg {
-webkit-transform: rotate(193deg);
-moz-transform: rotate(193deg);
-ms-transform: rotate(193deg);
-o-transform: rotate(193deg);
transform: rotate(193deg);
}
.wi-wind.towards-194-deg {
-webkit-transform: rotate(194deg);
-moz-transform: rotate(194deg);
-ms-transform: rotate(194deg);
-o-transform: rotate(194deg);
transform: rotate(194deg);
}
.wi-wind.towards-195-deg {
-webkit-transform: rotate(195deg);
-moz-transform: rotate(195deg);
-ms-transform: rotate(195deg);
-o-transform: rotate(195deg);
transform: rotate(195deg);
}
.wi-wind.towards-196-deg {
-webkit-transform: rotate(196deg);
-moz-transform: rotate(196deg);
-ms-transform: rotate(196deg);
-o-transform: rotate(196deg);
transform: rotate(196deg);
}
.wi-wind.towards-197-deg {
-webkit-transform: rotate(197deg);
-moz-transform: rotate(197deg);
-ms-transform: rotate(197deg);
-o-transform: rotate(197deg);
transform: rotate(197deg);
}
.wi-wind.towards-198-deg {
-webkit-transform: rotate(198deg);
-moz-transform: rotate(198deg);
-ms-transform: rotate(198deg);
-o-transform: rotate(198deg);
transform: rotate(198deg);
}
.wi-wind.towards-199-deg {
-webkit-transform: rotate(199deg);
-moz-transform: rotate(199deg);
-ms-transform: rotate(199deg);
-o-transform: rotate(199deg);
transform: rotate(199deg);
}
.wi-wind.towards-200-deg {
-webkit-transform: rotate(200deg);
-moz-transform: rotate(200deg);
-ms-transform: rotate(200deg);
-o-transform: rotate(200deg);
transform: rotate(200deg);
}
.wi-wind.towards-201-deg {
-webkit-transform: rotate(201deg);
-moz-transform: rotate(201deg);
-ms-transform: rotate(201deg);
-o-transform: rotate(201deg);
transform: rotate(201deg);
}
.wi-wind.towards-202-deg {
-webkit-transform: rotate(202deg);
-moz-transform: rotate(202deg);
-ms-transform: rotate(202deg);
-o-transform: rotate(202deg);
transform: rotate(202deg);
}
.wi-wind.towards-203-deg {
-webkit-transform: rotate(203deg);
-moz-transform: rotate(203deg);
-ms-transform: rotate(203deg);
-o-transform: rotate(203deg);
transform: rotate(203deg);
}
.wi-wind.towards-204-deg {
-webkit-transform: rotate(204deg);
-moz-transform: rotate(204deg);
-ms-transform: rotate(204deg);
-o-transform: rotate(204deg);
transform: rotate(204deg);
}
.wi-wind.towards-205-deg {
-webkit-transform: rotate(205deg);
-moz-transform: rotate(205deg);
-ms-transform: rotate(205deg);
-o-transform: rotate(205deg);
transform: rotate(205deg);
}
.wi-wind.towards-206-deg {
-webkit-transform: rotate(206deg);
-moz-transform: rotate(206deg);
-ms-transform: rotate(206deg);
-o-transform: rotate(206deg);
transform: rotate(206deg);
}
.wi-wind.towards-207-deg {
-webkit-transform: rotate(207deg);
-moz-transform: rotate(207deg);
-ms-transform: rotate(207deg);
-o-transform: rotate(207deg);
transform: rotate(207deg);
}
.wi-wind.towards-208-deg {
-webkit-transform: rotate(208deg);
-moz-transform: rotate(208deg);
-ms-transform: rotate(208deg);
-o-transform: rotate(208deg);
transform: rotate(208deg);
}
.wi-wind.towards-209-deg {
-webkit-transform: rotate(209deg);
-moz-transform: rotate(209deg);
-ms-transform: rotate(209deg);
-o-transform: rotate(209deg);
transform: rotate(209deg);
}
.wi-wind.towards-210-deg {
-webkit-transform: rotate(210deg);
-moz-transform: rotate(210deg);
-ms-transform: rotate(210deg);
-o-transform: rotate(210deg);
transform: rotate(210deg);
}
.wi-wind.towards-211-deg {
-webkit-transform: rotate(211deg);
-moz-transform: rotate(211deg);
-ms-transform: rotate(211deg);
-o-transform: rotate(211deg);
transform: rotate(211deg);
}
.wi-wind.towards-212-deg {
-webkit-transform: rotate(212deg);
-moz-transform: rotate(212deg);
-ms-transform: rotate(212deg);
-o-transform: rotate(212deg);
transform: rotate(212deg);
}
.wi-wind.towards-213-deg {
-webkit-transform: rotate(213deg);
-moz-transform: rotate(213deg);
-ms-transform: rotate(213deg);
-o-transform: rotate(213deg);
transform: rotate(213deg);
}
.wi-wind.towards-214-deg {
-webkit-transform: rotate(214deg);
-moz-transform: rotate(214deg);
-ms-transform: rotate(214deg);
-o-transform: rotate(214deg);
transform: rotate(214deg);
}
.wi-wind.towards-215-deg {
-webkit-transform: rotate(215deg);
-moz-transform: rotate(215deg);
-ms-transform: rotate(215deg);
-o-transform: rotate(215deg);
transform: rotate(215deg);
}
.wi-wind.towards-216-deg {
-webkit-transform: rotate(216deg);
-moz-transform: rotate(216deg);
-ms-transform: rotate(216deg);
-o-transform: rotate(216deg);
transform: rotate(216deg);
}
.wi-wind.towards-217-deg {
-webkit-transform: rotate(217deg);
-moz-transform: rotate(217deg);
-ms-transform: rotate(217deg);
-o-transform: rotate(217deg);
transform: rotate(217deg);
}
.wi-wind.towards-218-deg {
-webkit-transform: rotate(218deg);
-moz-transform: rotate(218deg);
-ms-transform: rotate(218deg);
-o-transform: rotate(218deg);
transform: rotate(218deg);
}
.wi-wind.towards-219-deg {
-webkit-transform: rotate(219deg);
-moz-transform: rotate(219deg);
-ms-transform: rotate(219deg);
-o-transform: rotate(219deg);
transform: rotate(219deg);
}
.wi-wind.towards-220-deg {
-webkit-transform: rotate(220deg);
-moz-transform: rotate(220deg);
-ms-transform: rotate(220deg);
-o-transform: rotate(220deg);
transform: rotate(220deg);
}
.wi-wind.towards-221-deg {
-webkit-transform: rotate(221deg);
-moz-transform: rotate(221deg);
-ms-transform: rotate(221deg);
-o-transform: rotate(221deg);
transform: rotate(221deg);
}
.wi-wind.towards-222-deg {
-webkit-transform: rotate(222deg);
-moz-transform: rotate(222deg);
-ms-transform: rotate(222deg);
-o-transform: rotate(222deg);
transform: rotate(222deg);
}
.wi-wind.towards-223-deg {
-webkit-transform: rotate(223deg);
-moz-transform: rotate(223deg);
-ms-transform: rotate(223deg);
-o-transform: rotate(223deg);
transform: rotate(223deg);
}
.wi-wind.towards-224-deg {
-webkit-transform: rotate(224deg);
-moz-transform: rotate(224deg);
-ms-transform: rotate(224deg);
-o-transform: rotate(224deg);
transform: rotate(224deg);
}
.wi-wind.towards-225-deg {
-webkit-transform: rotate(225deg);
-moz-transform: rotate(225deg);
-ms-transform: rotate(225deg);
-o-transform: rotate(225deg);
transform: rotate(225deg);
}
.wi-wind.towards-226-deg {
-webkit-transform: rotate(226deg);
-moz-transform: rotate(226deg);
-ms-transform: rotate(226deg);
-o-transform: rotate(226deg);
transform: rotate(226deg);
}
.wi-wind.towards-227-deg {
-webkit-transform: rotate(227deg);
-moz-transform: rotate(227deg);
-ms-transform: rotate(227deg);
-o-transform: rotate(227deg);
transform: rotate(227deg);
}
.wi-wind.towards-228-deg {
-webkit-transform: rotate(228deg);
-moz-transform: rotate(228deg);
-ms-transform: rotate(228deg);
-o-transform: rotate(228deg);
transform: rotate(228deg);
}
.wi-wind.towards-229-deg {
-webkit-transform: rotate(229deg);
-moz-transform: rotate(229deg);
-ms-transform: rotate(229deg);
-o-transform: rotate(229deg);
transform: rotate(229deg);
}
.wi-wind.towards-230-deg {
-webkit-transform: rotate(230deg);
-moz-transform: rotate(230deg);
-ms-transform: rotate(230deg);
-o-transform: rotate(230deg);
transform: rotate(230deg);
}
.wi-wind.towards-231-deg {
-webkit-transform: rotate(231deg);
-moz-transform: rotate(231deg);
-ms-transform: rotate(231deg);
-o-transform: rotate(231deg);
transform: rotate(231deg);
}
.wi-wind.towards-232-deg {
-webkit-transform: rotate(232deg);
-moz-transform: rotate(232deg);
-ms-transform: rotate(232deg);
-o-transform: rotate(232deg);
transform: rotate(232deg);
}
.wi-wind.towards-233-deg {
-webkit-transform: rotate(233deg);
-moz-transform: rotate(233deg);
-ms-transform: rotate(233deg);
-o-transform: rotate(233deg);
transform: rotate(233deg);
}
.wi-wind.towards-234-deg {
-webkit-transform: rotate(234deg);
-moz-transform: rotate(234deg);
-ms-transform: rotate(234deg);
-o-transform: rotate(234deg);
transform: rotate(234deg);
}
.wi-wind.towards-235-deg {
-webkit-transform: rotate(235deg);
-moz-transform: rotate(235deg);
-ms-transform: rotate(235deg);
-o-transform: rotate(235deg);
transform: rotate(235deg);
}
.wi-wind.towards-236-deg {
-webkit-transform: rotate(236deg);
-moz-transform: rotate(236deg);
-ms-transform: rotate(236deg);
-o-transform: rotate(236deg);
transform: rotate(236deg);
}
.wi-wind.towards-237-deg {
-webkit-transform: rotate(237deg);
-moz-transform: rotate(237deg);
-ms-transform: rotate(237deg);
-o-transform: rotate(237deg);
transform: rotate(237deg);
}
.wi-wind.towards-238-deg {
-webkit-transform: rotate(238deg);
-moz-transform: rotate(238deg);
-ms-transform: rotate(238deg);
-o-transform: rotate(238deg);
transform: rotate(238deg);
}
.wi-wind.towards-239-deg {
-webkit-transform: rotate(239deg);
-moz-transform: rotate(239deg);
-ms-transform: rotate(239deg);
-o-transform: rotate(239deg);
transform: rotate(239deg);
}
.wi-wind.towards-240-deg {
-webkit-transform: rotate(240deg);
-moz-transform: rotate(240deg);
-ms-transform: rotate(240deg);
-o-transform: rotate(240deg);
transform: rotate(240deg);
}
.wi-wind.towards-241-deg {
-webkit-transform: rotate(241deg);
-moz-transform: rotate(241deg);
-ms-transform: rotate(241deg);
-o-transform: rotate(241deg);
transform: rotate(241deg);
}
.wi-wind.towards-242-deg {
-webkit-transform: rotate(242deg);
-moz-transform: rotate(242deg);
-ms-transform: rotate(242deg);
-o-transform: rotate(242deg);
transform: rotate(242deg);
}
.wi-wind.towards-243-deg {
-webkit-transform: rotate(243deg);
-moz-transform: rotate(243deg);
-ms-transform: rotate(243deg);
-o-transform: rotate(243deg);
transform: rotate(243deg);
}
.wi-wind.towards-244-deg {
-webkit-transform: rotate(244deg);
-moz-transform: rotate(244deg);
-ms-transform: rotate(244deg);
-o-transform: rotate(244deg);
transform: rotate(244deg);
}
.wi-wind.towards-245-deg {
-webkit-transform: rotate(245deg);
-moz-transform: rotate(245deg);
-ms-transform: rotate(245deg);
-o-transform: rotate(245deg);
transform: rotate(245deg);
}
.wi-wind.towards-246-deg {
-webkit-transform: rotate(246deg);
-moz-transform: rotate(246deg);
-ms-transform: rotate(246deg);
-o-transform: rotate(246deg);
transform: rotate(246deg);
}
.wi-wind.towards-247-deg {
-webkit-transform: rotate(247deg);
-moz-transform: rotate(247deg);
-ms-transform: rotate(247deg);
-o-transform: rotate(247deg);
transform: rotate(247deg);
}
.wi-wind.towards-248-deg {
-webkit-transform: rotate(248deg);
-moz-transform: rotate(248deg);
-ms-transform: rotate(248deg);
-o-transform: rotate(248deg);
transform: rotate(248deg);
}
.wi-wind.towards-249-deg {
-webkit-transform: rotate(249deg);
-moz-transform: rotate(249deg);
-ms-transform: rotate(249deg);
-o-transform: rotate(249deg);
transform: rotate(249deg);
}
.wi-wind.towards-250-deg {
-webkit-transform: rotate(250deg);
-moz-transform: rotate(250deg);
-ms-transform: rotate(250deg);
-o-transform: rotate(250deg);
transform: rotate(250deg);
}
.wi-wind.towards-251-deg {
-webkit-transform: rotate(251deg);
-moz-transform: rotate(251deg);
-ms-transform: rotate(251deg);
-o-transform: rotate(251deg);
transform: rotate(251deg);
}
.wi-wind.towards-252-deg {
-webkit-transform: rotate(252deg);
-moz-transform: rotate(252deg);
-ms-transform: rotate(252deg);
-o-transform: rotate(252deg);
transform: rotate(252deg);
}
.wi-wind.towards-253-deg {
-webkit-transform: rotate(253deg);
-moz-transform: rotate(253deg);
-ms-transform: rotate(253deg);
-o-transform: rotate(253deg);
transform: rotate(253deg);
}
.wi-wind.towards-254-deg {
-webkit-transform: rotate(254deg);
-moz-transform: rotate(254deg);
-ms-transform: rotate(254deg);
-o-transform: rotate(254deg);
transform: rotate(254deg);
}
.wi-wind.towards-255-deg {
-webkit-transform: rotate(255deg);
-moz-transform: rotate(255deg);
-ms-transform: rotate(255deg);
-o-transform: rotate(255deg);
transform: rotate(255deg);
}
.wi-wind.towards-256-deg {
-webkit-transform: rotate(256deg);
-moz-transform: rotate(256deg);
-ms-transform: rotate(256deg);
-o-transform: rotate(256deg);
transform: rotate(256deg);
}
.wi-wind.towards-257-deg {
-webkit-transform: rotate(257deg);
-moz-transform: rotate(257deg);
-ms-transform: rotate(257deg);
-o-transform: rotate(257deg);
transform: rotate(257deg);
}
.wi-wind.towards-258-deg {
-webkit-transform: rotate(258deg);
-moz-transform: rotate(258deg);
-ms-transform: rotate(258deg);
-o-transform: rotate(258deg);
transform: rotate(258deg);
}
.wi-wind.towards-259-deg {
-webkit-transform: rotate(259deg);
-moz-transform: rotate(259deg);
-ms-transform: rotate(259deg);
-o-transform: rotate(259deg);
transform: rotate(259deg);
}
.wi-wind.towards-260-deg {
-webkit-transform: rotate(260deg);
-moz-transform: rotate(260deg);
-ms-transform: rotate(260deg);
-o-transform: rotate(260deg);
transform: rotate(260deg);
}
.wi-wind.towards-261-deg {
-webkit-transform: rotate(261deg);
-moz-transform: rotate(261deg);
-ms-transform: rotate(261deg);
-o-transform: rotate(261deg);
transform: rotate(261deg);
}
.wi-wind.towards-262-deg {
-webkit-transform: rotate(262deg);
-moz-transform: rotate(262deg);
-ms-transform: rotate(262deg);
-o-transform: rotate(262deg);
transform: rotate(262deg);
}
.wi-wind.towards-263-deg {
-webkit-transform: rotate(263deg);
-moz-transform: rotate(263deg);
-ms-transform: rotate(263deg);
-o-transform: rotate(263deg);
transform: rotate(263deg);
}
.wi-wind.towards-264-deg {
-webkit-transform: rotate(264deg);
-moz-transform: rotate(264deg);
-ms-transform: rotate(264deg);
-o-transform: rotate(264deg);
transform: rotate(264deg);
}
.wi-wind.towards-265-deg {
-webkit-transform: rotate(265deg);
-moz-transform: rotate(265deg);
-ms-transform: rotate(265deg);
-o-transform: rotate(265deg);
transform: rotate(265deg);
}
.wi-wind.towards-266-deg {
-webkit-transform: rotate(266deg);
-moz-transform: rotate(266deg);
-ms-transform: rotate(266deg);
-o-transform: rotate(266deg);
transform: rotate(266deg);
}
.wi-wind.towards-267-deg {
-webkit-transform: rotate(267deg);
-moz-transform: rotate(267deg);
-ms-transform: rotate(267deg);
-o-transform: rotate(267deg);
transform: rotate(267deg);
}
.wi-wind.towards-268-deg {
-webkit-transform: rotate(268deg);
-moz-transform: rotate(268deg);
-ms-transform: rotate(268deg);
-o-transform: rotate(268deg);
transform: rotate(268deg);
}
.wi-wind.towards-269-deg {
-webkit-transform: rotate(269deg);
-moz-transform: rotate(269deg);
-ms-transform: rotate(269deg);
-o-transform: rotate(269deg);
transform: rotate(269deg);
}
.wi-wind.towards-270-deg {
-webkit-transform: rotate(270deg);
-moz-transform: rotate(270deg);
-ms-transform: rotate(270deg);
-o-transform: rotate(270deg);
transform: rotate(270deg);
}
.wi-wind.towards-271-deg {
-webkit-transform: rotate(271deg);
-moz-transform: rotate(271deg);
-ms-transform: rotate(271deg);
-o-transform: rotate(271deg);
transform: rotate(271deg);
}
.wi-wind.towards-272-deg {
-webkit-transform: rotate(272deg);
-moz-transform: rotate(272deg);
-ms-transform: rotate(272deg);
-o-transform: rotate(272deg);
transform: rotate(272deg);
}
.wi-wind.towards-273-deg {
-webkit-transform: rotate(273deg);
-moz-transform: rotate(273deg);
-ms-transform: rotate(273deg);
-o-transform: rotate(273deg);
transform: rotate(273deg);
}
.wi-wind.towards-274-deg {
-webkit-transform: rotate(274deg);
-moz-transform: rotate(274deg);
-ms-transform: rotate(274deg);
-o-transform: rotate(274deg);
transform: rotate(274deg);
}
.wi-wind.towards-275-deg {
-webkit-transform: rotate(275deg);
-moz-transform: rotate(275deg);
-ms-transform: rotate(275deg);
-o-transform: rotate(275deg);
transform: rotate(275deg);
}
.wi-wind.towards-276-deg {
-webkit-transform: rotate(276deg);
-moz-transform: rotate(276deg);
-ms-transform: rotate(276deg);
-o-transform: rotate(276deg);
transform: rotate(276deg);
}
.wi-wind.towards-277-deg {
-webkit-transform: rotate(277deg);
-moz-transform: rotate(277deg);
-ms-transform: rotate(277deg);
-o-transform: rotate(277deg);
transform: rotate(277deg);
}
.wi-wind.towards-278-deg {
-webkit-transform: rotate(278deg);
-moz-transform: rotate(278deg);
-ms-transform: rotate(278deg);
-o-transform: rotate(278deg);
transform: rotate(278deg);
}
.wi-wind.towards-279-deg {
-webkit-transform: rotate(279deg);
-moz-transform: rotate(279deg);
-ms-transform: rotate(279deg);
-o-transform: rotate(279deg);
transform: rotate(279deg);
}
.wi-wind.towards-280-deg {
-webkit-transform: rotate(280deg);
-moz-transform: rotate(280deg);
-ms-transform: rotate(280deg);
-o-transform: rotate(280deg);
transform: rotate(280deg);
}
.wi-wind.towards-281-deg {
-webkit-transform: rotate(281deg);
-moz-transform: rotate(281deg);
-ms-transform: rotate(281deg);
-o-transform: rotate(281deg);
transform: rotate(281deg);
}
.wi-wind.towards-282-deg {
-webkit-transform: rotate(282deg);
-moz-transform: rotate(282deg);
-ms-transform: rotate(282deg);
-o-transform: rotate(282deg);
transform: rotate(282deg);
}
.wi-wind.towards-283-deg {
-webkit-transform: rotate(283deg);
-moz-transform: rotate(283deg);
-ms-transform: rotate(283deg);
-o-transform: rotate(283deg);
transform: rotate(283deg);
}
.wi-wind.towards-284-deg {
-webkit-transform: rotate(284deg);
-moz-transform: rotate(284deg);
-ms-transform: rotate(284deg);
-o-transform: rotate(284deg);
transform: rotate(284deg);
}
.wi-wind.towards-285-deg {
-webkit-transform: rotate(285deg);
-moz-transform: rotate(285deg);
-ms-transform: rotate(285deg);
-o-transform: rotate(285deg);
transform: rotate(285deg);
}
.wi-wind.towards-286-deg {
-webkit-transform: rotate(286deg);
-moz-transform: rotate(286deg);
-ms-transform: rotate(286deg);
-o-transform: rotate(286deg);
transform: rotate(286deg);
}
.wi-wind.towards-287-deg {
-webkit-transform: rotate(287deg);
-moz-transform: rotate(287deg);
-ms-transform: rotate(287deg);
-o-transform: rotate(287deg);
transform: rotate(287deg);
}
.wi-wind.towards-288-deg {
-webkit-transform: rotate(288deg);
-moz-transform: rotate(288deg);
-ms-transform: rotate(288deg);
-o-transform: rotate(288deg);
transform: rotate(288deg);
}
.wi-wind.towards-289-deg {
-webkit-transform: rotate(289deg);
-moz-transform: rotate(289deg);
-ms-transform: rotate(289deg);
-o-transform: rotate(289deg);
transform: rotate(289deg);
}
.wi-wind.towards-290-deg {
-webkit-transform: rotate(290deg);
-moz-transform: rotate(290deg);
-ms-transform: rotate(290deg);
-o-transform: rotate(290deg);
transform: rotate(290deg);
}
.wi-wind.towards-291-deg {
-webkit-transform: rotate(291deg);
-moz-transform: rotate(291deg);
-ms-transform: rotate(291deg);
-o-transform: rotate(291deg);
transform: rotate(291deg);
}
.wi-wind.towards-292-deg {
-webkit-transform: rotate(292deg);
-moz-transform: rotate(292deg);
-ms-transform: rotate(292deg);
-o-transform: rotate(292deg);
transform: rotate(292deg);
}
.wi-wind.towards-293-deg {
-webkit-transform: rotate(293deg);
-moz-transform: rotate(293deg);
-ms-transform: rotate(293deg);
-o-transform: rotate(293deg);
transform: rotate(293deg);
}
.wi-wind.towards-294-deg {
-webkit-transform: rotate(294deg);
-moz-transform: rotate(294deg);
-ms-transform: rotate(294deg);
-o-transform: rotate(294deg);
transform: rotate(294deg);
}
.wi-wind.towards-295-deg {
-webkit-transform: rotate(295deg);
-moz-transform: rotate(295deg);
-ms-transform: rotate(295deg);
-o-transform: rotate(295deg);
transform: rotate(295deg);
}
.wi-wind.towards-296-deg {
-webkit-transform: rotate(296deg);
-moz-transform: rotate(296deg);
-ms-transform: rotate(296deg);
-o-transform: rotate(296deg);
transform: rotate(296deg);
}
.wi-wind.towards-297-deg {
-webkit-transform: rotate(297deg);
-moz-transform: rotate(297deg);
-ms-transform: rotate(297deg);
-o-transform: rotate(297deg);
transform: rotate(297deg);
}
.wi-wind.towards-298-deg {
-webkit-transform: rotate(298deg);
-moz-transform: rotate(298deg);
-ms-transform: rotate(298deg);
-o-transform: rotate(298deg);
transform: rotate(298deg);
}
.wi-wind.towards-299-deg {
-webkit-transform: rotate(299deg);
-moz-transform: rotate(299deg);
-ms-transform: rotate(299deg);
-o-transform: rotate(299deg);
transform: rotate(299deg);
}
.wi-wind.towards-300-deg {
-webkit-transform: rotate(300deg);
-moz-transform: rotate(300deg);
-ms-transform: rotate(300deg);
-o-transform: rotate(300deg);
transform: rotate(300deg);
}
.wi-wind.towards-301-deg {
-webkit-transform: rotate(301deg);
-moz-transform: rotate(301deg);
-ms-transform: rotate(301deg);
-o-transform: rotate(301deg);
transform: rotate(301deg);
}
.wi-wind.towards-302-deg {
-webkit-transform: rotate(302deg);
-moz-transform: rotate(302deg);
-ms-transform: rotate(302deg);
-o-transform: rotate(302deg);
transform: rotate(302deg);
}
.wi-wind.towards-303-deg {
-webkit-transform: rotate(303deg);
-moz-transform: rotate(303deg);
-ms-transform: rotate(303deg);
-o-transform: rotate(303deg);
transform: rotate(303deg);
}
.wi-wind.towards-304-deg {
-webkit-transform: rotate(304deg);
-moz-transform: rotate(304deg);
-ms-transform: rotate(304deg);
-o-transform: rotate(304deg);
transform: rotate(304deg);
}
.wi-wind.towards-305-deg {
-webkit-transform: rotate(305deg);
-moz-transform: rotate(305deg);
-ms-transform: rotate(305deg);
-o-transform: rotate(305deg);
transform: rotate(305deg);
}
.wi-wind.towards-306-deg {
-webkit-transform: rotate(306deg);
-moz-transform: rotate(306deg);
-ms-transform: rotate(306deg);
-o-transform: rotate(306deg);
transform: rotate(306deg);
}
.wi-wind.towards-307-deg {
-webkit-transform: rotate(307deg);
-moz-transform: rotate(307deg);
-ms-transform: rotate(307deg);
-o-transform: rotate(307deg);
transform: rotate(307deg);
}
.wi-wind.towards-308-deg {
-webkit-transform: rotate(308deg);
-moz-transform: rotate(308deg);
-ms-transform: rotate(308deg);
-o-transform: rotate(308deg);
transform: rotate(308deg);
}
.wi-wind.towards-309-deg {
-webkit-transform: rotate(309deg);
-moz-transform: rotate(309deg);
-ms-transform: rotate(309deg);
-o-transform: rotate(309deg);
transform: rotate(309deg);
}
.wi-wind.towards-310-deg {
-webkit-transform: rotate(310deg);
-moz-transform: rotate(310deg);
-ms-transform: rotate(310deg);
-o-transform: rotate(310deg);
transform: rotate(310deg);
}
.wi-wind.towards-311-deg {
-webkit-transform: rotate(311deg);
-moz-transform: rotate(311deg);
-ms-transform: rotate(311deg);
-o-transform: rotate(311deg);
transform: rotate(311deg);
}
.wi-wind.towards-312-deg {
-webkit-transform: rotate(312deg);
-moz-transform: rotate(312deg);
-ms-transform: rotate(312deg);
-o-transform: rotate(312deg);
transform: rotate(312deg);
}
.wi-wind.towards-313-deg {
-webkit-transform: rotate(313deg);
-moz-transform: rotate(313deg);
-ms-transform: rotate(313deg);
-o-transform: rotate(313deg);
transform: rotate(313deg);
}
.wi-wind.towards-314-deg {
-webkit-transform: rotate(314deg);
-moz-transform: rotate(314deg);
-ms-transform: rotate(314deg);
-o-transform: rotate(314deg);
transform: rotate(314deg);
}
.wi-wind.towards-315-deg {
-webkit-transform: rotate(315deg);
-moz-transform: rotate(315deg);
-ms-transform: rotate(315deg);
-o-transform: rotate(315deg);
transform: rotate(315deg);
}
.wi-wind.towards-316-deg {
-webkit-transform: rotate(316deg);
-moz-transform: rotate(316deg);
-ms-transform: rotate(316deg);
-o-transform: rotate(316deg);
transform: rotate(316deg);
}
.wi-wind.towards-317-deg {
-webkit-transform: rotate(317deg);
-moz-transform: rotate(317deg);
-ms-transform: rotate(317deg);
-o-transform: rotate(317deg);
transform: rotate(317deg);
}
.wi-wind.towards-318-deg {
-webkit-transform: rotate(318deg);
-moz-transform: rotate(318deg);
-ms-transform: rotate(318deg);
-o-transform: rotate(318deg);
transform: rotate(318deg);
}
.wi-wind.towards-319-deg {
-webkit-transform: rotate(319deg);
-moz-transform: rotate(319deg);
-ms-transform: rotate(319deg);
-o-transform: rotate(319deg);
transform: rotate(319deg);
}
.wi-wind.towards-320-deg {
-webkit-transform: rotate(320deg);
-moz-transform: rotate(320deg);
-ms-transform: rotate(320deg);
-o-transform: rotate(320deg);
transform: rotate(320deg);
}
.wi-wind.towards-321-deg {
-webkit-transform: rotate(321deg);
-moz-transform: rotate(321deg);
-ms-transform: rotate(321deg);
-o-transform: rotate(321deg);
transform: rotate(321deg);
}
.wi-wind.towards-322-deg {
-webkit-transform: rotate(322deg);
-moz-transform: rotate(322deg);
-ms-transform: rotate(322deg);
-o-transform: rotate(322deg);
transform: rotate(322deg);
}
.wi-wind.towards-323-deg {
-webkit-transform: rotate(323deg);
-moz-transform: rotate(323deg);
-ms-transform: rotate(323deg);
-o-transform: rotate(323deg);
transform: rotate(323deg);
}
.wi-wind.towards-324-deg {
-webkit-transform: rotate(324deg);
-moz-transform: rotate(324deg);
-ms-transform: rotate(324deg);
-o-transform: rotate(324deg);
transform: rotate(324deg);
}
.wi-wind.towards-325-deg {
-webkit-transform: rotate(325deg);
-moz-transform: rotate(325deg);
-ms-transform: rotate(325deg);
-o-transform: rotate(325deg);
transform: rotate(325deg);
}
.wi-wind.towards-326-deg {
-webkit-transform: rotate(326deg);
-moz-transform: rotate(326deg);
-ms-transform: rotate(326deg);
-o-transform: rotate(326deg);
transform: rotate(326deg);
}
.wi-wind.towards-327-deg {
-webkit-transform: rotate(327deg);
-moz-transform: rotate(327deg);
-ms-transform: rotate(327deg);
-o-transform: rotate(327deg);
transform: rotate(327deg);
}
.wi-wind.towards-328-deg {
-webkit-transform: rotate(328deg);
-moz-transform: rotate(328deg);
-ms-transform: rotate(328deg);
-o-transform: rotate(328deg);
transform: rotate(328deg);
}
.wi-wind.towards-329-deg {
-webkit-transform: rotate(329deg);
-moz-transform: rotate(329deg);
-ms-transform: rotate(329deg);
-o-transform: rotate(329deg);
transform: rotate(329deg);
}
.wi-wind.towards-330-deg {
-webkit-transform: rotate(330deg);
-moz-transform: rotate(330deg);
-ms-transform: rotate(330deg);
-o-transform: rotate(330deg);
transform: rotate(330deg);
}
.wi-wind.towards-331-deg {
-webkit-transform: rotate(331deg);
-moz-transform: rotate(331deg);
-ms-transform: rotate(331deg);
-o-transform: rotate(331deg);
transform: rotate(331deg);
}
.wi-wind.towards-332-deg {
-webkit-transform: rotate(332deg);
-moz-transform: rotate(332deg);
-ms-transform: rotate(332deg);
-o-transform: rotate(332deg);
transform: rotate(332deg);
}
.wi-wind.towards-333-deg {
-webkit-transform: rotate(333deg);
-moz-transform: rotate(333deg);
-ms-transform: rotate(333deg);
-o-transform: rotate(333deg);
transform: rotate(333deg);
}
.wi-wind.towards-334-deg {
-webkit-transform: rotate(334deg);
-moz-transform: rotate(334deg);
-ms-transform: rotate(334deg);
-o-transform: rotate(334deg);
transform: rotate(334deg);
}
.wi-wind.towards-335-deg {
-webkit-transform: rotate(335deg);
-moz-transform: rotate(335deg);
-ms-transform: rotate(335deg);
-o-transform: rotate(335deg);
transform: rotate(335deg);
}
.wi-wind.towards-336-deg {
-webkit-transform: rotate(336deg);
-moz-transform: rotate(336deg);
-ms-transform: rotate(336deg);
-o-transform: rotate(336deg);
transform: rotate(336deg);
}
.wi-wind.towards-337-deg {
-webkit-transform: rotate(337deg);
-moz-transform: rotate(337deg);
-ms-transform: rotate(337deg);
-o-transform: rotate(337deg);
transform: rotate(337deg);
}
.wi-wind.towards-338-deg {
-webkit-transform: rotate(338deg);
-moz-transform: rotate(338deg);
-ms-transform: rotate(338deg);
-o-transform: rotate(338deg);
transform: rotate(338deg);
}
.wi-wind.towards-339-deg {
-webkit-transform: rotate(339deg);
-moz-transform: rotate(339deg);
-ms-transform: rotate(339deg);
-o-transform: rotate(339deg);
transform: rotate(339deg);
}
.wi-wind.towards-340-deg {
-webkit-transform: rotate(340deg);
-moz-transform: rotate(340deg);
-ms-transform: rotate(340deg);
-o-transform: rotate(340deg);
transform: rotate(340deg);
}
.wi-wind.towards-341-deg {
-webkit-transform: rotate(341deg);
-moz-transform: rotate(341deg);
-ms-transform: rotate(341deg);
-o-transform: rotate(341deg);
transform: rotate(341deg);
}
.wi-wind.towards-342-deg {
-webkit-transform: rotate(342deg);
-moz-transform: rotate(342deg);
-ms-transform: rotate(342deg);
-o-transform: rotate(342deg);
transform: rotate(342deg);
}
.wi-wind.towards-343-deg {
-webkit-transform: rotate(343deg);
-moz-transform: rotate(343deg);
-ms-transform: rotate(343deg);
-o-transform: rotate(343deg);
transform: rotate(343deg);
}
.wi-wind.towards-344-deg {
-webkit-transform: rotate(344deg);
-moz-transform: rotate(344deg);
-ms-transform: rotate(344deg);
-o-transform: rotate(344deg);
transform: rotate(344deg);
}
.wi-wind.towards-345-deg {
-webkit-transform: rotate(345deg);
-moz-transform: rotate(345deg);
-ms-transform: rotate(345deg);
-o-transform: rotate(345deg);
transform: rotate(345deg);
}
.wi-wind.towards-346-deg {
-webkit-transform: rotate(346deg);
-moz-transform: rotate(346deg);
-ms-transform: rotate(346deg);
-o-transform: rotate(346deg);
transform: rotate(346deg);
}
.wi-wind.towards-347-deg {
-webkit-transform: rotate(347deg);
-moz-transform: rotate(347deg);
-ms-transform: rotate(347deg);
-o-transform: rotate(347deg);
transform: rotate(347deg);
}
.wi-wind.towards-348-deg {
-webkit-transform: rotate(348deg);
-moz-transform: rotate(348deg);
-ms-transform: rotate(348deg);
-o-transform: rotate(348deg);
transform: rotate(348deg);
}
.wi-wind.towards-349-deg {
-webkit-transform: rotate(349deg);
-moz-transform: rotate(349deg);
-ms-transform: rotate(349deg);
-o-transform: rotate(349deg);
transform: rotate(349deg);
}
.wi-wind.towards-350-deg {
-webkit-transform: rotate(350deg);
-moz-transform: rotate(350deg);
-ms-transform: rotate(350deg);
-o-transform: rotate(350deg);
transform: rotate(350deg);
}
.wi-wind.towards-351-deg {
-webkit-transform: rotate(351deg);
-moz-transform: rotate(351deg);
-ms-transform: rotate(351deg);
-o-transform: rotate(351deg);
transform: rotate(351deg);
}
.wi-wind.towards-352-deg {
-webkit-transform: rotate(352deg);
-moz-transform: rotate(352deg);
-ms-transform: rotate(352deg);
-o-transform: rotate(352deg);
transform: rotate(352deg);
}
.wi-wind.towards-353-deg {
-webkit-transform: rotate(353deg);
-moz-transform: rotate(353deg);
-ms-transform: rotate(353deg);
-o-transform: rotate(353deg);
transform: rotate(353deg);
}
.wi-wind.towards-354-deg {
-webkit-transform: rotate(354deg);
-moz-transform: rotate(354deg);
-ms-transform: rotate(354deg);
-o-transform: rotate(354deg);
transform: rotate(354deg);
}
.wi-wind.towards-355-deg {
-webkit-transform: rotate(355deg);
-moz-transform: rotate(355deg);
-ms-transform: rotate(355deg);
-o-transform: rotate(355deg);
transform: rotate(355deg);
}
.wi-wind.towards-356-deg {
-webkit-transform: rotate(356deg);
-moz-transform: rotate(356deg);
-ms-transform: rotate(356deg);
-o-transform: rotate(356deg);
transform: rotate(356deg);
}
.wi-wind.towards-357-deg {
-webkit-transform: rotate(357deg);
-moz-transform: rotate(357deg);
-ms-transform: rotate(357deg);
-o-transform: rotate(357deg);
transform: rotate(357deg);
}
.wi-wind.towards-358-deg {
-webkit-transform: rotate(358deg);
-moz-transform: rotate(358deg);
-ms-transform: rotate(358deg);
-o-transform: rotate(358deg);
transform: rotate(358deg);
}
.wi-wind.towards-359-deg {
-webkit-transform: rotate(359deg);
-moz-transform: rotate(359deg);
-ms-transform: rotate(359deg);
-o-transform: rotate(359deg);
transform: rotate(359deg);
}
.wi-wind.towards-360-deg {
-webkit-transform: rotate(0deg);
-moz-transform: rotate(0deg);
-ms-transform: rotate(0deg);
-o-transform: rotate(0deg);
transform: rotate(0deg);
}
.wi-wind.from-0-deg {
-webkit-transform: rotate(180deg);
-moz-transform: rotate(180deg);
-ms-transform: rotate(180deg);
-o-transform: rotate(180deg);
transform: rotate(180deg);
}
.wi-wind.from-1-deg {
-webkit-transform: rotate(181deg);
-moz-transform: rotate(181deg);
-ms-transform: rotate(181deg);
-o-transform: rotate(181deg);
transform: rotate(181deg);
}
.wi-wind.from-2-deg {
-webkit-transform: rotate(182deg);
-moz-transform: rotate(182deg);
-ms-transform: rotate(182deg);
-o-transform: rotate(182deg);
transform: rotate(182deg);
}
.wi-wind.from-3-deg {
-webkit-transform: rotate(183deg);
-moz-transform: rotate(183deg);
-ms-transform: rotate(183deg);
-o-transform: rotate(183deg);
transform: rotate(183deg);
}
.wi-wind.from-4-deg {
-webkit-transform: rotate(184deg);
-moz-transform: rotate(184deg);
-ms-transform: rotate(184deg);
-o-transform: rotate(184deg);
transform: rotate(184deg);
}
.wi-wind.from-5-deg {
-webkit-transform: rotate(185deg);
-moz-transform: rotate(185deg);
-ms-transform: rotate(185deg);
-o-transform: rotate(185deg);
transform: rotate(185deg);
}
.wi-wind.from-6-deg {
-webkit-transform: rotate(186deg);
-moz-transform: rotate(186deg);
-ms-transform: rotate(186deg);
-o-transform: rotate(186deg);
transform: rotate(186deg);
}
.wi-wind.from-7-deg {
-webkit-transform: rotate(187deg);
-moz-transform: rotate(187deg);
-ms-transform: rotate(187deg);
-o-transform: rotate(187deg);
transform: rotate(187deg);
}
.wi-wind.from-8-deg {
-webkit-transform: rotate(188deg);
-moz-transform: rotate(188deg);
-ms-transform: rotate(188deg);
-o-transform: rotate(188deg);
transform: rotate(188deg);
}
.wi-wind.from-9-deg {
-webkit-transform: rotate(189deg);
-moz-transform: rotate(189deg);
-ms-transform: rotate(189deg);
-o-transform: rotate(189deg);
transform: rotate(189deg);
}
.wi-wind.from-10-deg {
-webkit-transform: rotate(190deg);
-moz-transform: rotate(190deg);
-ms-transform: rotate(190deg);
-o-transform: rotate(190deg);
transform: rotate(190deg);
}
.wi-wind.from-11-deg {
-webkit-transform: rotate(191deg);
-moz-transform: rotate(191deg);
-ms-transform: rotate(191deg);
-o-transform: rotate(191deg);
transform: rotate(191deg);
}
.wi-wind.from-12-deg {
-webkit-transform: rotate(192deg);
-moz-transform: rotate(192deg);
-ms-transform: rotate(192deg);
-o-transform: rotate(192deg);
transform: rotate(192deg);
}
.wi-wind.from-13-deg {
-webkit-transform: rotate(193deg);
-moz-transform: rotate(193deg);
-ms-transform: rotate(193deg);
-o-transform: rotate(193deg);
transform: rotate(193deg);
}
.wi-wind.from-14-deg {
-webkit-transform: rotate(194deg);
-moz-transform: rotate(194deg);
-ms-transform: rotate(194deg);
-o-transform: rotate(194deg);
transform: rotate(194deg);
}
.wi-wind.from-15-deg {
-webkit-transform: rotate(195deg);
-moz-transform: rotate(195deg);
-ms-transform: rotate(195deg);
-o-transform: rotate(195deg);
transform: rotate(195deg);
}
.wi-wind.from-16-deg {
-webkit-transform: rotate(196deg);
-moz-transform: rotate(196deg);
-ms-transform: rotate(196deg);
-o-transform: rotate(196deg);
transform: rotate(196deg);
}
.wi-wind.from-17-deg {
-webkit-transform: rotate(197deg);
-moz-transform: rotate(197deg);
-ms-transform: rotate(197deg);
-o-transform: rotate(197deg);
transform: rotate(197deg);
}
.wi-wind.from-18-deg {
-webkit-transform: rotate(198deg);
-moz-transform: rotate(198deg);
-ms-transform: rotate(198deg);
-o-transform: rotate(198deg);
transform: rotate(198deg);
}
.wi-wind.from-19-deg {
-webkit-transform: rotate(199deg);
-moz-transform: rotate(199deg);
-ms-transform: rotate(199deg);
-o-transform: rotate(199deg);
transform: rotate(199deg);
}
.wi-wind.from-20-deg {
-webkit-transform: rotate(200deg);
-moz-transform: rotate(200deg);
-ms-transform: rotate(200deg);
-o-transform: rotate(200deg);
transform: rotate(200deg);
}
.wi-wind.from-21-deg {
-webkit-transform: rotate(201deg);
-moz-transform: rotate(201deg);
-ms-transform: rotate(201deg);
-o-transform: rotate(201deg);
transform: rotate(201deg);
}
.wi-wind.from-22-deg {
-webkit-transform: rotate(202deg);
-moz-transform: rotate(202deg);
-ms-transform: rotate(202deg);
-o-transform: rotate(202deg);
transform: rotate(202deg);
}
.wi-wind.from-23-deg {
-webkit-transform: rotate(203deg);
-moz-transform: rotate(203deg);
-ms-transform: rotate(203deg);
-o-transform: rotate(203deg);
transform: rotate(203deg);
}
.wi-wind.from-24-deg {
-webkit-transform: rotate(204deg);
-moz-transform: rotate(204deg);
-ms-transform: rotate(204deg);
-o-transform: rotate(204deg);
transform: rotate(204deg);
}
.wi-wind.from-25-deg {
-webkit-transform: rotate(205deg);
-moz-transform: rotate(205deg);
-ms-transform: rotate(205deg);
-o-transform: rotate(205deg);
transform: rotate(205deg);
}
.wi-wind.from-26-deg {
-webkit-transform: rotate(206deg);
-moz-transform: rotate(206deg);
-ms-transform: rotate(206deg);
-o-transform: rotate(206deg);
transform: rotate(206deg);
}
.wi-wind.from-27-deg {
-webkit-transform: rotate(207deg);
-moz-transform: rotate(207deg);
-ms-transform: rotate(207deg);
-o-transform: rotate(207deg);
transform: rotate(207deg);
}
.wi-wind.from-28-deg {
-webkit-transform: rotate(208deg);
-moz-transform: rotate(208deg);
-ms-transform: rotate(208deg);
-o-transform: rotate(208deg);
transform: rotate(208deg);
}
.wi-wind.from-29-deg {
-webkit-transform: rotate(209deg);
-moz-transform: rotate(209deg);
-ms-transform: rotate(209deg);
-o-transform: rotate(209deg);
transform: rotate(209deg);
}
.wi-wind.from-30-deg {
-webkit-transform: rotate(210deg);
-moz-transform: rotate(210deg);
-ms-transform: rotate(210deg);
-o-transform: rotate(210deg);
transform: rotate(210deg);
}
.wi-wind.from-31-deg {
-webkit-transform: rotate(211deg);
-moz-transform: rotate(211deg);
-ms-transform: rotate(211deg);
-o-transform: rotate(211deg);
transform: rotate(211deg);
}
.wi-wind.from-32-deg {
-webkit-transform: rotate(212deg);
-moz-transform: rotate(212deg);
-ms-transform: rotate(212deg);
-o-transform: rotate(212deg);
transform: rotate(212deg);
}
.wi-wind.from-33-deg {
-webkit-transform: rotate(213deg);
-moz-transform: rotate(213deg);
-ms-transform: rotate(213deg);
-o-transform: rotate(213deg);
transform: rotate(213deg);
}
.wi-wind.from-34-deg {
-webkit-transform: rotate(214deg);
-moz-transform: rotate(214deg);
-ms-transform: rotate(214deg);
-o-transform: rotate(214deg);
transform: rotate(214deg);
}
.wi-wind.from-35-deg {
-webkit-transform: rotate(215deg);
-moz-transform: rotate(215deg);
-ms-transform: rotate(215deg);
-o-transform: rotate(215deg);
transform: rotate(215deg);
}
.wi-wind.from-36-deg {
-webkit-transform: rotate(216deg);
-moz-transform: rotate(216deg);
-ms-transform: rotate(216deg);
-o-transform: rotate(216deg);
transform: rotate(216deg);
}
.wi-wind.from-37-deg {
-webkit-transform: rotate(217deg);
-moz-transform: rotate(217deg);
-ms-transform: rotate(217deg);
-o-transform: rotate(217deg);
transform: rotate(217deg);
}
.wi-wind.from-38-deg {
-webkit-transform: rotate(218deg);
-moz-transform: rotate(218deg);
-ms-transform: rotate(218deg);
-o-transform: rotate(218deg);
transform: rotate(218deg);
}
.wi-wind.from-39-deg {
-webkit-transform: rotate(219deg);
-moz-transform: rotate(219deg);
-ms-transform: rotate(219deg);
-o-transform: rotate(219deg);
transform: rotate(219deg);
}
.wi-wind.from-40-deg {
-webkit-transform: rotate(220deg);
-moz-transform: rotate(220deg);
-ms-transform: rotate(220deg);
-o-transform: rotate(220deg);
transform: rotate(220deg);
}
.wi-wind.from-41-deg {
-webkit-transform: rotate(221deg);
-moz-transform: rotate(221deg);
-ms-transform: rotate(221deg);
-o-transform: rotate(221deg);
transform: rotate(221deg);
}
.wi-wind.from-42-deg {
-webkit-transform: rotate(222deg);
-moz-transform: rotate(222deg);
-ms-transform: rotate(222deg);
-o-transform: rotate(222deg);
transform: rotate(222deg);
}
.wi-wind.from-43-deg {
-webkit-transform: rotate(223deg);
-moz-transform: rotate(223deg);
-ms-transform: rotate(223deg);
-o-transform: rotate(223deg);
transform: rotate(223deg);
}
.wi-wind.from-44-deg {
-webkit-transform: rotate(224deg);
-moz-transform: rotate(224deg);
-ms-transform: rotate(224deg);
-o-transform: rotate(224deg);
transform: rotate(224deg);
}
.wi-wind.from-45-deg {
-webkit-transform: rotate(225deg);
-moz-transform: rotate(225deg);
-ms-transform: rotate(225deg);
-o-transform: rotate(225deg);
transform: rotate(225deg);
}
.wi-wind.from-46-deg {
-webkit-transform: rotate(226deg);
-moz-transform: rotate(226deg);
-ms-transform: rotate(226deg);
-o-transform: rotate(226deg);
transform: rotate(226deg);
}
.wi-wind.from-47-deg {
-webkit-transform: rotate(227deg);
-moz-transform: rotate(227deg);
-ms-transform: rotate(227deg);
-o-transform: rotate(227deg);
transform: rotate(227deg);
}
.wi-wind.from-48-deg {
-webkit-transform: rotate(228deg);
-moz-transform: rotate(228deg);
-ms-transform: rotate(228deg);
-o-transform: rotate(228deg);
transform: rotate(228deg);
}
.wi-wind.from-49-deg {
-webkit-transform: rotate(229deg);
-moz-transform: rotate(229deg);
-ms-transform: rotate(229deg);
-o-transform: rotate(229deg);
transform: rotate(229deg);
}
.wi-wind.from-50-deg {
-webkit-transform: rotate(230deg);
-moz-transform: rotate(230deg);
-ms-transform: rotate(230deg);
-o-transform: rotate(230deg);
transform: rotate(230deg);
}
.wi-wind.from-51-deg {
-webkit-transform: rotate(231deg);
-moz-transform: rotate(231deg);
-ms-transform: rotate(231deg);
-o-transform: rotate(231deg);
transform: rotate(231deg);
}
.wi-wind.from-52-deg {
-webkit-transform: rotate(232deg);
-moz-transform: rotate(232deg);
-ms-transform: rotate(232deg);
-o-transform: rotate(232deg);
transform: rotate(232deg);
}
.wi-wind.from-53-deg {
-webkit-transform: rotate(233deg);
-moz-transform: rotate(233deg);
-ms-transform: rotate(233deg);
-o-transform: rotate(233deg);
transform: rotate(233deg);
}
.wi-wind.from-54-deg {
-webkit-transform: rotate(234deg);
-moz-transform: rotate(234deg);
-ms-transform: rotate(234deg);
-o-transform: rotate(234deg);
transform: rotate(234deg);
}
.wi-wind.from-55-deg {
-webkit-transform: rotate(235deg);
-moz-transform: rotate(235deg);
-ms-transform: rotate(235deg);
-o-transform: rotate(235deg);
transform: rotate(235deg);
}
.wi-wind.from-56-deg {
-webkit-transform: rotate(236deg);
-moz-transform: rotate(236deg);
-ms-transform: rotate(236deg);
-o-transform: rotate(236deg);
transform: rotate(236deg);
}
.wi-wind.from-57-deg {
-webkit-transform: rotate(237deg);
-moz-transform: rotate(237deg);
-ms-transform: rotate(237deg);
-o-transform: rotate(237deg);
transform: rotate(237deg);
}
.wi-wind.from-58-deg {
-webkit-transform: rotate(238deg);
-moz-transform: rotate(238deg);
-ms-transform: rotate(238deg);
-o-transform: rotate(238deg);
transform: rotate(238deg);
}
.wi-wind.from-59-deg {
-webkit-transform: rotate(239deg);
-moz-transform: rotate(239deg);
-ms-transform: rotate(239deg);
-o-transform: rotate(239deg);
transform: rotate(239deg);
}
.wi-wind.from-60-deg {
-webkit-transform: rotate(240deg);
-moz-transform: rotate(240deg);
-ms-transform: rotate(240deg);
-o-transform: rotate(240deg);
transform: rotate(240deg);
}
.wi-wind.from-61-deg {
-webkit-transform: rotate(241deg);
-moz-transform: rotate(241deg);
-ms-transform: rotate(241deg);
-o-transform: rotate(241deg);
transform: rotate(241deg);
}
.wi-wind.from-62-deg {
-webkit-transform: rotate(242deg);
-moz-transform: rotate(242deg);
-ms-transform: rotate(242deg);
-o-transform: rotate(242deg);
transform: rotate(242deg);
}
.wi-wind.from-63-deg {
-webkit-transform: rotate(243deg);
-moz-transform: rotate(243deg);
-ms-transform: rotate(243deg);
-o-transform: rotate(243deg);
transform: rotate(243deg);
}
.wi-wind.from-64-deg {
-webkit-transform: rotate(244deg);
-moz-transform: rotate(244deg);
-ms-transform: rotate(244deg);
-o-transform: rotate(244deg);
transform: rotate(244deg);
}
.wi-wind.from-65-deg {
-webkit-transform: rotate(245deg);
-moz-transform: rotate(245deg);
-ms-transform: rotate(245deg);
-o-transform: rotate(245deg);
transform: rotate(245deg);
}
.wi-wind.from-66-deg {
-webkit-transform: rotate(246deg);
-moz-transform: rotate(246deg);
-ms-transform: rotate(246deg);
-o-transform: rotate(246deg);
transform: rotate(246deg);
}
.wi-wind.from-67-deg {
-webkit-transform: rotate(247deg);
-moz-transform: rotate(247deg);
-ms-transform: rotate(247deg);
-o-transform: rotate(247deg);
transform: rotate(247deg);
}
.wi-wind.from-68-deg {
-webkit-transform: rotate(248deg);
-moz-transform: rotate(248deg);
-ms-transform: rotate(248deg);
-o-transform: rotate(248deg);
transform: rotate(248deg);
}
.wi-wind.from-69-deg {
-webkit-transform: rotate(249deg);
-moz-transform: rotate(249deg);
-ms-transform: rotate(249deg);
-o-transform: rotate(249deg);
transform: rotate(249deg);
}
.wi-wind.from-70-deg {
-webkit-transform: rotate(250deg);
-moz-transform: rotate(250deg);
-ms-transform: rotate(250deg);
-o-transform: rotate(250deg);
transform: rotate(250deg);
}
.wi-wind.from-71-deg {
-webkit-transform: rotate(251deg);
-moz-transform: rotate(251deg);
-ms-transform: rotate(251deg);
-o-transform: rotate(251deg);
transform: rotate(251deg);
}
.wi-wind.from-72-deg {
-webkit-transform: rotate(252deg);
-moz-transform: rotate(252deg);
-ms-transform: rotate(252deg);
-o-transform: rotate(252deg);
transform: rotate(252deg);
}
.wi-wind.from-73-deg {
-webkit-transform: rotate(253deg);
-moz-transform: rotate(253deg);
-ms-transform: rotate(253deg);
-o-transform: rotate(253deg);
transform: rotate(253deg);
}
.wi-wind.from-74-deg {
-webkit-transform: rotate(254deg);
-moz-transform: rotate(254deg);
-ms-transform: rotate(254deg);
-o-transform: rotate(254deg);
transform: rotate(254deg);
}
.wi-wind.from-75-deg {
-webkit-transform: rotate(255deg);
-moz-transform: rotate(255deg);
-ms-transform: rotate(255deg);
-o-transform: rotate(255deg);
transform: rotate(255deg);
}
.wi-wind.from-76-deg {
-webkit-transform: rotate(256deg);
-moz-transform: rotate(256deg);
-ms-transform: rotate(256deg);
-o-transform: rotate(256deg);
transform: rotate(256deg);
}
.wi-wind.from-77-deg {
-webkit-transform: rotate(257deg);
-moz-transform: rotate(257deg);
-ms-transform: rotate(257deg);
-o-transform: rotate(257deg);
transform: rotate(257deg);
}
.wi-wind.from-78-deg {
-webkit-transform: rotate(258deg);
-moz-transform: rotate(258deg);
-ms-transform: rotate(258deg);
-o-transform: rotate(258deg);
transform: rotate(258deg);
}
.wi-wind.from-79-deg {
-webkit-transform: rotate(259deg);
-moz-transform: rotate(259deg);
-ms-transform: rotate(259deg);
-o-transform: rotate(259deg);
transform: rotate(259deg);
}
.wi-wind.from-80-deg {
-webkit-transform: rotate(260deg);
-moz-transform: rotate(260deg);
-ms-transform: rotate(260deg);
-o-transform: rotate(260deg);
transform: rotate(260deg);
}
.wi-wind.from-81-deg {
-webkit-transform: rotate(261deg);
-moz-transform: rotate(261deg);
-ms-transform: rotate(261deg);
-o-transform: rotate(261deg);
transform: rotate(261deg);
}
.wi-wind.from-82-deg {
-webkit-transform: rotate(262deg);
-moz-transform: rotate(262deg);
-ms-transform: rotate(262deg);
-o-transform: rotate(262deg);
transform: rotate(262deg);
}
.wi-wind.from-83-deg {
-webkit-transform: rotate(263deg);
-moz-transform: rotate(263deg);
-ms-transform: rotate(263deg);
-o-transform: rotate(263deg);
transform: rotate(263deg);
}
.wi-wind.from-84-deg {
-webkit-transform: rotate(264deg);
-moz-transform: rotate(264deg);
-ms-transform: rotate(264deg);
-o-transform: rotate(264deg);
transform: rotate(264deg);
}
.wi-wind.from-85-deg {
-webkit-transform: rotate(265deg);
-moz-transform: rotate(265deg);
-ms-transform: rotate(265deg);
-o-transform: rotate(265deg);
transform: rotate(265deg);
}
.wi-wind.from-86-deg {
-webkit-transform: rotate(266deg);
-moz-transform: rotate(266deg);
-ms-transform: rotate(266deg);
-o-transform: rotate(266deg);
transform: rotate(266deg);
}
.wi-wind.from-87-deg {
-webkit-transform: rotate(267deg);
-moz-transform: rotate(267deg);
-ms-transform: rotate(267deg);
-o-transform: rotate(267deg);
transform: rotate(267deg);
}
.wi-wind.from-88-deg {
-webkit-transform: rotate(268deg);
-moz-transform: rotate(268deg);
-ms-transform: rotate(268deg);
-o-transform: rotate(268deg);
transform: rotate(268deg);
}
.wi-wind.from-89-deg {
-webkit-transform: rotate(269deg);
-moz-transform: rotate(269deg);
-ms-transform: rotate(269deg);
-o-transform: rotate(269deg);
transform: rotate(269deg);
}
.wi-wind.from-90-deg {
-webkit-transform: rotate(270deg);
-moz-transform: rotate(270deg);
-ms-transform: rotate(270deg);
-o-transform: rotate(270deg);
transform: rotate(270deg);
}
.wi-wind.from-91-deg {
-webkit-transform: rotate(271deg);
-moz-transform: rotate(271deg);
-ms-transform: rotate(271deg);
-o-transform: rotate(271deg);
transform: rotate(271deg);
}
.wi-wind.from-92-deg {
-webkit-transform: rotate(272deg);
-moz-transform: rotate(272deg);
-ms-transform: rotate(272deg);
-o-transform: rotate(272deg);
transform: rotate(272deg);
}
.wi-wind.from-93-deg {
-webkit-transform: rotate(273deg);
-moz-transform: rotate(273deg);
-ms-transform: rotate(273deg);
-o-transform: rotate(273deg);
transform: rotate(273deg);
}
.wi-wind.from-94-deg {
-webkit-transform: rotate(274deg);
-moz-transform: rotate(274deg);
-ms-transform: rotate(274deg);
-o-transform: rotate(274deg);
transform: rotate(274deg);
}
.wi-wind.from-95-deg {
-webkit-transform: rotate(275deg);
-moz-transform: rotate(275deg);
-ms-transform: rotate(275deg);
-o-transform: rotate(275deg);
transform: rotate(275deg);
}
.wi-wind.from-96-deg {
-webkit-transform: rotate(276deg);
-moz-transform: rotate(276deg);
-ms-transform: rotate(276deg);
-o-transform: rotate(276deg);
transform: rotate(276deg);
}
.wi-wind.from-97-deg {
-webkit-transform: rotate(277deg);
-moz-transform: rotate(277deg);
-ms-transform: rotate(277deg);
-o-transform: rotate(277deg);
transform: rotate(277deg);
}
.wi-wind.from-98-deg {
-webkit-transform: rotate(278deg);
-moz-transform: rotate(278deg);
-ms-transform: rotate(278deg);
-o-transform: rotate(278deg);
transform: rotate(278deg);
}
.wi-wind.from-99-deg {
-webkit-transform: rotate(279deg);
-moz-transform: rotate(279deg);
-ms-transform: rotate(279deg);
-o-transform: rotate(279deg);
transform: rotate(279deg);
}
.wi-wind.from-100-deg {
-webkit-transform: rotate(280deg);
-moz-transform: rotate(280deg);
-ms-transform: rotate(280deg);
-o-transform: rotate(280deg);
transform: rotate(280deg);
}
.wi-wind.from-101-deg {
-webkit-transform: rotate(281deg);
-moz-transform: rotate(281deg);
-ms-transform: rotate(281deg);
-o-transform: rotate(281deg);
transform: rotate(281deg);
}
.wi-wind.from-102-deg {
-webkit-transform: rotate(282deg);
-moz-transform: rotate(282deg);
-ms-transform: rotate(282deg);
-o-transform: rotate(282deg);
transform: rotate(282deg);
}
.wi-wind.from-103-deg {
-webkit-transform: rotate(283deg);
-moz-transform: rotate(283deg);
-ms-transform: rotate(283deg);
-o-transform: rotate(283deg);
transform: rotate(283deg);
}
.wi-wind.from-104-deg {
-webkit-transform: rotate(284deg);
-moz-transform: rotate(284deg);
-ms-transform: rotate(284deg);
-o-transform: rotate(284deg);
transform: rotate(284deg);
}
.wi-wind.from-105-deg {
-webkit-transform: rotate(285deg);
-moz-transform: rotate(285deg);
-ms-transform: rotate(285deg);
-o-transform: rotate(285deg);
transform: rotate(285deg);
}
.wi-wind.from-106-deg {
-webkit-transform: rotate(286deg);
-moz-transform: rotate(286deg);
-ms-transform: rotate(286deg);
-o-transform: rotate(286deg);
transform: rotate(286deg);
}
.wi-wind.from-107-deg {
-webkit-transform: rotate(287deg);
-moz-transform: rotate(287deg);
-ms-transform: rotate(287deg);
-o-transform: rotate(287deg);
transform: rotate(287deg);
}
.wi-wind.from-108-deg {
-webkit-transform: rotate(288deg);
-moz-transform: rotate(288deg);
-ms-transform: rotate(288deg);
-o-transform: rotate(288deg);
transform: rotate(288deg);
}
.wi-wind.from-109-deg {
-webkit-transform: rotate(289deg);
-moz-transform: rotate(289deg);
-ms-transform: rotate(289deg);
-o-transform: rotate(289deg);
transform: rotate(289deg);
}
.wi-wind.from-110-deg {
-webkit-transform: rotate(290deg);
-moz-transform: rotate(290deg);
-ms-transform: rotate(290deg);
-o-transform: rotate(290deg);
transform: rotate(290deg);
}
.wi-wind.from-111-deg {
-webkit-transform: rotate(291deg);
-moz-transform: rotate(291deg);
-ms-transform: rotate(291deg);
-o-transform: rotate(291deg);
transform: rotate(291deg);
}
.wi-wind.from-112-deg {
-webkit-transform: rotate(292deg);
-moz-transform: rotate(292deg);
-ms-transform: rotate(292deg);
-o-transform: rotate(292deg);
transform: rotate(292deg);
}
.wi-wind.from-113-deg {
-webkit-transform: rotate(293deg);
-moz-transform: rotate(293deg);
-ms-transform: rotate(293deg);
-o-transform: rotate(293deg);
transform: rotate(293deg);
}
.wi-wind.from-114-deg {
-webkit-transform: rotate(294deg);
-moz-transform: rotate(294deg);
-ms-transform: rotate(294deg);
-o-transform: rotate(294deg);
transform: rotate(294deg);
}
.wi-wind.from-115-deg {
-webkit-transform: rotate(295deg);
-moz-transform: rotate(295deg);
-ms-transform: rotate(295deg);
-o-transform: rotate(295deg);
transform: rotate(295deg);
}
.wi-wind.from-116-deg {
-webkit-transform: rotate(296deg);
-moz-transform: rotate(296deg);
-ms-transform: rotate(296deg);
-o-transform: rotate(296deg);
transform: rotate(296deg);
}
.wi-wind.from-117-deg {
-webkit-transform: rotate(297deg);
-moz-transform: rotate(297deg);
-ms-transform: rotate(297deg);
-o-transform: rotate(297deg);
transform: rotate(297deg);
}
.wi-wind.from-118-deg {
-webkit-transform: rotate(298deg);
-moz-transform: rotate(298deg);
-ms-transform: rotate(298deg);
-o-transform: rotate(298deg);
transform: rotate(298deg);
}
.wi-wind.from-119-deg {
-webkit-transform: rotate(299deg);
-moz-transform: rotate(299deg);
-ms-transform: rotate(299deg);
-o-transform: rotate(299deg);
transform: rotate(299deg);
}
.wi-wind.from-120-deg {
-webkit-transform: rotate(300deg);
-moz-transform: rotate(300deg);
-ms-transform: rotate(300deg);
-o-transform: rotate(300deg);
transform: rotate(300deg);
}
.wi-wind.from-121-deg {
-webkit-transform: rotate(301deg);
-moz-transform: rotate(301deg);
-ms-transform: rotate(301deg);
-o-transform: rotate(301deg);
transform: rotate(301deg);
}
.wi-wind.from-122-deg {
-webkit-transform: rotate(302deg);
-moz-transform: rotate(302deg);
-ms-transform: rotate(302deg);
-o-transform: rotate(302deg);
transform: rotate(302deg);
}
.wi-wind.from-123-deg {
-webkit-transform: rotate(303deg);
-moz-transform: rotate(303deg);
-ms-transform: rotate(303deg);
-o-transform: rotate(303deg);
transform: rotate(303deg);
}
.wi-wind.from-124-deg {
-webkit-transform: rotate(304deg);
-moz-transform: rotate(304deg);
-ms-transform: rotate(304deg);
-o-transform: rotate(304deg);
transform: rotate(304deg);
}
.wi-wind.from-125-deg {
-webkit-transform: rotate(305deg);
-moz-transform: rotate(305deg);
-ms-transform: rotate(305deg);
-o-transform: rotate(305deg);
transform: rotate(305deg);
}
.wi-wind.from-126-deg {
-webkit-transform: rotate(306deg);
-moz-transform: rotate(306deg);
-ms-transform: rotate(306deg);
-o-transform: rotate(306deg);
transform: rotate(306deg);
}
.wi-wind.from-127-deg {
-webkit-transform: rotate(307deg);
-moz-transform: rotate(307deg);
-ms-transform: rotate(307deg);
-o-transform: rotate(307deg);
transform: rotate(307deg);
}
.wi-wind.from-128-deg {
-webkit-transform: rotate(308deg);
-moz-transform: rotate(308deg);
-ms-transform: rotate(308deg);
-o-transform: rotate(308deg);
transform: rotate(308deg);
}
.wi-wind.from-129-deg {
-webkit-transform: rotate(309deg);
-moz-transform: rotate(309deg);
-ms-transform: rotate(309deg);
-o-transform: rotate(309deg);
transform: rotate(309deg);
}
.wi-wind.from-130-deg {
-webkit-transform: rotate(310deg);
-moz-transform: rotate(310deg);
-ms-transform: rotate(310deg);
-o-transform: rotate(310deg);
transform: rotate(310deg);
}
.wi-wind.from-131-deg {
-webkit-transform: rotate(311deg);
-moz-transform: rotate(311deg);
-ms-transform: rotate(311deg);
-o-transform: rotate(311deg);
transform: rotate(311deg);
}
.wi-wind.from-132-deg {
-webkit-transform: rotate(312deg);
-moz-transform: rotate(312deg);
-ms-transform: rotate(312deg);
-o-transform: rotate(312deg);
transform: rotate(312deg);
}
.wi-wind.from-133-deg {
-webkit-transform: rotate(313deg);
-moz-transform: rotate(313deg);
-ms-transform: rotate(313deg);
-o-transform: rotate(313deg);
transform: rotate(313deg);
}
.wi-wind.from-134-deg {
-webkit-transform: rotate(314deg);
-moz-transform: rotate(314deg);
-ms-transform: rotate(314deg);
-o-transform: rotate(314deg);
transform: rotate(314deg);
}
.wi-wind.from-135-deg {
-webkit-transform: rotate(315deg);
-moz-transform: rotate(315deg);
-ms-transform: rotate(315deg);
-o-transform: rotate(315deg);
transform: rotate(315deg);
}
.wi-wind.from-136-deg {
-webkit-transform: rotate(316deg);
-moz-transform: rotate(316deg);
-ms-transform: rotate(316deg);
-o-transform: rotate(316deg);
transform: rotate(316deg);
}
.wi-wind.from-137-deg {
-webkit-transform: rotate(317deg);
-moz-transform: rotate(317deg);
-ms-transform: rotate(317deg);
-o-transform: rotate(317deg);
transform: rotate(317deg);
}
.wi-wind.from-138-deg {
-webkit-transform: rotate(318deg);
-moz-transform: rotate(318deg);
-ms-transform: rotate(318deg);
-o-transform: rotate(318deg);
transform: rotate(318deg);
}
.wi-wind.from-139-deg {
-webkit-transform: rotate(319deg);
-moz-transform: rotate(319deg);
-ms-transform: rotate(319deg);
-o-transform: rotate(319deg);
transform: rotate(319deg);
}
.wi-wind.from-140-deg {
-webkit-transform: rotate(320deg);
-moz-transform: rotate(320deg);
-ms-transform: rotate(320deg);
-o-transform: rotate(320deg);
transform: rotate(320deg);
}
.wi-wind.from-141-deg {
-webkit-transform: rotate(321deg);
-moz-transform: rotate(321deg);
-ms-transform: rotate(321deg);
-o-transform: rotate(321deg);
transform: rotate(321deg);
}
.wi-wind.from-142-deg {
-webkit-transform: rotate(322deg);
-moz-transform: rotate(322deg);
-ms-transform: rotate(322deg);
-o-transform: rotate(322deg);
transform: rotate(322deg);
}
.wi-wind.from-143-deg {
-webkit-transform: rotate(323deg);
-moz-transform: rotate(323deg);
-ms-transform: rotate(323deg);
-o-transform: rotate(323deg);
transform: rotate(323deg);
}
.wi-wind.from-144-deg {
-webkit-transform: rotate(324deg);
-moz-transform: rotate(324deg);
-ms-transform: rotate(324deg);
-o-transform: rotate(324deg);
transform: rotate(324deg);
}
.wi-wind.from-145-deg {
-webkit-transform: rotate(325deg);
-moz-transform: rotate(325deg);
-ms-transform: rotate(325deg);
-o-transform: rotate(325deg);
transform: rotate(325deg);
}
.wi-wind.from-146-deg {
-webkit-transform: rotate(326deg);
-moz-transform: rotate(326deg);
-ms-transform: rotate(326deg);
-o-transform: rotate(326deg);
transform: rotate(326deg);
}
.wi-wind.from-147-deg {
-webkit-transform: rotate(327deg);
-moz-transform: rotate(327deg);
-ms-transform: rotate(327deg);
-o-transform: rotate(327deg);
transform: rotate(327deg);
}
.wi-wind.from-148-deg {
-webkit-transform: rotate(328deg);
-moz-transform: rotate(328deg);
-ms-transform: rotate(328deg);
-o-transform: rotate(328deg);
transform: rotate(328deg);
}
.wi-wind.from-149-deg {
-webkit-transform: rotate(329deg);
-moz-transform: rotate(329deg);
-ms-transform: rotate(329deg);
-o-transform: rotate(329deg);
transform: rotate(329deg);
}
.wi-wind.from-150-deg {
-webkit-transform: rotate(330deg);
-moz-transform: rotate(330deg);
-ms-transform: rotate(330deg);
-o-transform: rotate(330deg);
transform: rotate(330deg);
}
.wi-wind.from-151-deg {
-webkit-transform: rotate(331deg);
-moz-transform: rotate(331deg);
-ms-transform: rotate(331deg);
-o-transform: rotate(331deg);
transform: rotate(331deg);
}
.wi-wind.from-152-deg {
-webkit-transform: rotate(332deg);
-moz-transform: rotate(332deg);
-ms-transform: rotate(332deg);
-o-transform: rotate(332deg);
transform: rotate(332deg);
}
.wi-wind.from-153-deg {
-webkit-transform: rotate(333deg);
-moz-transform: rotate(333deg);
-ms-transform: rotate(333deg);
-o-transform: rotate(333deg);
transform: rotate(333deg);
}
.wi-wind.from-154-deg {
-webkit-transform: rotate(334deg);
-moz-transform: rotate(334deg);
-ms-transform: rotate(334deg);
-o-transform: rotate(334deg);
transform: rotate(334deg);
}
.wi-wind.from-155-deg {
-webkit-transform: rotate(335deg);
-moz-transform: rotate(335deg);
-ms-transform: rotate(335deg);
-o-transform: rotate(335deg);
transform: rotate(335deg);
}
.wi-wind.from-156-deg {
-webkit-transform: rotate(336deg);
-moz-transform: rotate(336deg);
-ms-transform: rotate(336deg);
-o-transform: rotate(336deg);
transform: rotate(336deg);
}
.wi-wind.from-157-deg {
-webkit-transform: rotate(337deg);
-moz-transform: rotate(337deg);
-ms-transform: rotate(337deg);
-o-transform: rotate(337deg);
transform: rotate(337deg);
}
.wi-wind.from-158-deg {
-webkit-transform: rotate(338deg);
-moz-transform: rotate(338deg);
-ms-transform: rotate(338deg);
-o-transform: rotate(338deg);
transform: rotate(338deg);
}
.wi-wind.from-159-deg {
-webkit-transform: rotate(339deg);
-moz-transform: rotate(339deg);
-ms-transform: rotate(339deg);
-o-transform: rotate(339deg);
transform: rotate(339deg);
}
.wi-wind.from-160-deg {
-webkit-transform: rotate(340deg);
-moz-transform: rotate(340deg);
-ms-transform: rotate(340deg);
-o-transform: rotate(340deg);
transform: rotate(340deg);
}
.wi-wind.from-161-deg {
-webkit-transform: rotate(341deg);
-moz-transform: rotate(341deg);
-ms-transform: rotate(341deg);
-o-transform: rotate(341deg);
transform: rotate(341deg);
}
.wi-wind.from-162-deg {
-webkit-transform: rotate(342deg);
-moz-transform: rotate(342deg);
-ms-transform: rotate(342deg);
-o-transform: rotate(342deg);
transform: rotate(342deg);
}
.wi-wind.from-163-deg {
-webkit-transform: rotate(343deg);
-moz-transform: rotate(343deg);
-ms-transform: rotate(343deg);
-o-transform: rotate(343deg);
transform: rotate(343deg);
}
.wi-wind.from-164-deg {
-webkit-transform: rotate(344deg);
-moz-transform: rotate(344deg);
-ms-transform: rotate(344deg);
-o-transform: rotate(344deg);
transform: rotate(344deg);
}
.wi-wind.from-165-deg {
-webkit-transform: rotate(345deg);
-moz-transform: rotate(345deg);
-ms-transform: rotate(345deg);
-o-transform: rotate(345deg);
transform: rotate(345deg);
}
.wi-wind.from-166-deg {
-webkit-transform: rotate(346deg);
-moz-transform: rotate(346deg);
-ms-transform: rotate(346deg);
-o-transform: rotate(346deg);
transform: rotate(346deg);
}
.wi-wind.from-167-deg {
-webkit-transform: rotate(347deg);
-moz-transform: rotate(347deg);
-ms-transform: rotate(347deg);
-o-transform: rotate(347deg);
transform: rotate(347deg);
}
.wi-wind.from-168-deg {
-webkit-transform: rotate(348deg);
-moz-transform: rotate(348deg);
-ms-transform: rotate(348deg);
-o-transform: rotate(348deg);
transform: rotate(348deg);
}
.wi-wind.from-169-deg {
-webkit-transform: rotate(349deg);
-moz-transform: rotate(349deg);
-ms-transform: rotate(349deg);
-o-transform: rotate(349deg);
transform: rotate(349deg);
}
.wi-wind.from-170-deg {
-webkit-transform: rotate(350deg);
-moz-transform: rotate(350deg);
-ms-transform: rotate(350deg);
-o-transform: rotate(350deg);
transform: rotate(350deg);
}
.wi-wind.from-171-deg {
-webkit-transform: rotate(351deg);
-moz-transform: rotate(351deg);
-ms-transform: rotate(351deg);
-o-transform: rotate(351deg);
transform: rotate(351deg);
}
.wi-wind.from-172-deg {
-webkit-transform: rotate(352deg);
-moz-transform: rotate(352deg);
-ms-transform: rotate(352deg);
-o-transform: rotate(352deg);
transform: rotate(352deg);
}
.wi-wind.from-173-deg {
-webkit-transform: rotate(353deg);
-moz-transform: rotate(353deg);
-ms-transform: rotate(353deg);
-o-transform: rotate(353deg);
transform: rotate(353deg);
}
.wi-wind.from-174-deg {
-webkit-transform: rotate(354deg);
-moz-transform: rotate(354deg);
-ms-transform: rotate(354deg);
-o-transform: rotate(354deg);
transform: rotate(354deg);
}
.wi-wind.from-175-deg {
-webkit-transform: rotate(355deg);
-moz-transform: rotate(355deg);
-ms-transform: rotate(355deg);
-o-transform: rotate(355deg);
transform: rotate(355deg);
}
.wi-wind.from-176-deg {
-webkit-transform: rotate(356deg);
-moz-transform: rotate(356deg);
-ms-transform: rotate(356deg);
-o-transform: rotate(356deg);
transform: rotate(356deg);
}
.wi-wind.from-177-deg {
-webkit-transform: rotate(357deg);
-moz-transform: rotate(357deg);
-ms-transform: rotate(357deg);
-o-transform: rotate(357deg);
transform: rotate(357deg);
}
.wi-wind.from-178-deg {
-webkit-transform: rotate(358deg);
-moz-transform: rotate(358deg);
-ms-transform: rotate(358deg);
-o-transform: rotate(358deg);
transform: rotate(358deg);
}
.wi-wind.from-179-deg {
-webkit-transform: rotate(359deg);
-moz-transform: rotate(359deg);
-ms-transform: rotate(359deg);
-o-transform: rotate(359deg);
transform: rotate(359deg);
}
.wi-wind.from-180-deg {
-webkit-transform: rotate(0deg);
-moz-transform: rotate(0deg);
-ms-transform: rotate(0deg);
-o-transform: rotate(0deg);
transform: rotate(0deg);
}
.wi-wind.from-181-deg {
-webkit-transform: rotate(1deg);
-moz-transform: rotate(1deg);
-ms-transform: rotate(1deg);
-o-transform: rotate(1deg);
transform: rotate(1deg);
}
.wi-wind.from-182-deg {
-webkit-transform: rotate(2deg);
-moz-transform: rotate(2deg);
-ms-transform: rotate(2deg);
-o-transform: rotate(2deg);
transform: rotate(2deg);
}
.wi-wind.from-183-deg {
-webkit-transform: rotate(3deg);
-moz-transform: rotate(3deg);
-ms-transform: rotate(3deg);
-o-transform: rotate(3deg);
transform: rotate(3deg);
}
.wi-wind.from-184-deg {
-webkit-transform: rotate(4deg);
-moz-transform: rotate(4deg);
-ms-transform: rotate(4deg);
-o-transform: rotate(4deg);
transform: rotate(4deg);
}
.wi-wind.from-185-deg {
-webkit-transform: rotate(5deg);
-moz-transform: rotate(5deg);
-ms-transform: rotate(5deg);
-o-transform: rotate(5deg);
transform: rotate(5deg);
}
.wi-wind.from-186-deg {
-webkit-transform: rotate(6deg);
-moz-transform: rotate(6deg);
-ms-transform: rotate(6deg);
-o-transform: rotate(6deg);
transform: rotate(6deg);
}
.wi-wind.from-187-deg {
-webkit-transform: rotate(7deg);
-moz-transform: rotate(7deg);
-ms-transform: rotate(7deg);
-o-transform: rotate(7deg);
transform: rotate(7deg);
}
.wi-wind.from-188-deg {
-webkit-transform: rotate(8deg);
-moz-transform: rotate(8deg);
-ms-transform: rotate(8deg);
-o-transform: rotate(8deg);
transform: rotate(8deg);
}
.wi-wind.from-189-deg {
-webkit-transform: rotate(9deg);
-moz-transform: rotate(9deg);
-ms-transform: rotate(9deg);
-o-transform: rotate(9deg);
transform: rotate(9deg);
}
.wi-wind.from-190-deg {
-webkit-transform: rotate(10deg);
-moz-transform: rotate(10deg);
-ms-transform: rotate(10deg);
-o-transform: rotate(10deg);
transform: rotate(10deg);
}
.wi-wind.from-191-deg {
-webkit-transform: rotate(11deg);
-moz-transform: rotate(11deg);
-ms-transform: rotate(11deg);
-o-transform: rotate(11deg);
transform: rotate(11deg);
}
.wi-wind.from-192-deg {
-webkit-transform: rotate(12deg);
-moz-transform: rotate(12deg);
-ms-transform: rotate(12deg);
-o-transform: rotate(12deg);
transform: rotate(12deg);
}
.wi-wind.from-193-deg {
-webkit-transform: rotate(13deg);
-moz-transform: rotate(13deg);
-ms-transform: rotate(13deg);
-o-transform: rotate(13deg);
transform: rotate(13deg);
}
.wi-wind.from-194-deg {
-webkit-transform: rotate(14deg);
-moz-transform: rotate(14deg);
-ms-transform: rotate(14deg);
-o-transform: rotate(14deg);
transform: rotate(14deg);
}
.wi-wind.from-195-deg {
-webkit-transform: rotate(15deg);
-moz-transform: rotate(15deg);
-ms-transform: rotate(15deg);
-o-transform: rotate(15deg);
transform: rotate(15deg);
}
.wi-wind.from-196-deg {
-webkit-transform: rotate(16deg);
-moz-transform: rotate(16deg);
-ms-transform: rotate(16deg);
-o-transform: rotate(16deg);
transform: rotate(16deg);
}
.wi-wind.from-197-deg {
-webkit-transform: rotate(17deg);
-moz-transform: rotate(17deg);
-ms-transform: rotate(17deg);
-o-transform: rotate(17deg);
transform: rotate(17deg);
}
.wi-wind.from-198-deg {
-webkit-transform: rotate(18deg);
-moz-transform: rotate(18deg);
-ms-transform: rotate(18deg);
-o-transform: rotate(18deg);
transform: rotate(18deg);
}
.wi-wind.from-199-deg {
-webkit-transform: rotate(19deg);
-moz-transform: rotate(19deg);
-ms-transform: rotate(19deg);
-o-transform: rotate(19deg);
transform: rotate(19deg);
}
.wi-wind.from-200-deg {
-webkit-transform: rotate(20deg);
-moz-transform: rotate(20deg);
-ms-transform: rotate(20deg);
-o-transform: rotate(20deg);
transform: rotate(20deg);
}
.wi-wind.from-201-deg {
-webkit-transform: rotate(21deg);
-moz-transform: rotate(21deg);
-ms-transform: rotate(21deg);
-o-transform: rotate(21deg);
transform: rotate(21deg);
}
.wi-wind.from-202-deg {
-webkit-transform: rotate(22deg);
-moz-transform: rotate(22deg);
-ms-transform: rotate(22deg);
-o-transform: rotate(22deg);
transform: rotate(22deg);
}
.wi-wind.from-203-deg {
-webkit-transform: rotate(23deg);
-moz-transform: rotate(23deg);
-ms-transform: rotate(23deg);
-o-transform: rotate(23deg);
transform: rotate(23deg);
}
.wi-wind.from-204-deg {
-webkit-transform: rotate(24deg);
-moz-transform: rotate(24deg);
-ms-transform: rotate(24deg);
-o-transform: rotate(24deg);
transform: rotate(24deg);
}
.wi-wind.from-205-deg {
-webkit-transform: rotate(25deg);
-moz-transform: rotate(25deg);
-ms-transform: rotate(25deg);
-o-transform: rotate(25deg);
transform: rotate(25deg);
}
.wi-wind.from-206-deg {
-webkit-transform: rotate(26deg);
-moz-transform: rotate(26deg);
-ms-transform: rotate(26deg);
-o-transform: rotate(26deg);
transform: rotate(26deg);
}
.wi-wind.from-207-deg {
-webkit-transform: rotate(27deg);
-moz-transform: rotate(27deg);
-ms-transform: rotate(27deg);
-o-transform: rotate(27deg);
transform: rotate(27deg);
}
.wi-wind.from-208-deg {
-webkit-transform: rotate(28deg);
-moz-transform: rotate(28deg);
-ms-transform: rotate(28deg);
-o-transform: rotate(28deg);
transform: rotate(28deg);
}
.wi-wind.from-209-deg {
-webkit-transform: rotate(29deg);
-moz-transform: rotate(29deg);
-ms-transform: rotate(29deg);
-o-transform: rotate(29deg);
transform: rotate(29deg);
}
.wi-wind.from-210-deg {
-webkit-transform: rotate(30deg);
-moz-transform: rotate(30deg);
-ms-transform: rotate(30deg);
-o-transform: rotate(30deg);
transform: rotate(30deg);
}
.wi-wind.from-211-deg {
-webkit-transform: rotate(31deg);
-moz-transform: rotate(31deg);
-ms-transform: rotate(31deg);
-o-transform: rotate(31deg);
transform: rotate(31deg);
}
.wi-wind.from-212-deg {
-webkit-transform: rotate(32deg);
-moz-transform: rotate(32deg);
-ms-transform: rotate(32deg);
-o-transform: rotate(32deg);
transform: rotate(32deg);
}
.wi-wind.from-213-deg {
-webkit-transform: rotate(33deg);
-moz-transform: rotate(33deg);
-ms-transform: rotate(33deg);
-o-transform: rotate(33deg);
transform: rotate(33deg);
}
.wi-wind.from-214-deg {
-webkit-transform: rotate(34deg);
-moz-transform: rotate(34deg);
-ms-transform: rotate(34deg);
-o-transform: rotate(34deg);
transform: rotate(34deg);
}
.wi-wind.from-215-deg {
-webkit-transform: rotate(35deg);
-moz-transform: rotate(35deg);
-ms-transform: rotate(35deg);
-o-transform: rotate(35deg);
transform: rotate(35deg);
}
.wi-wind.from-216-deg {
-webkit-transform: rotate(36deg);
-moz-transform: rotate(36deg);
-ms-transform: rotate(36deg);
-o-transform: rotate(36deg);
transform: rotate(36deg);
}
.wi-wind.from-217-deg {
-webkit-transform: rotate(37deg);
-moz-transform: rotate(37deg);
-ms-transform: rotate(37deg);
-o-transform: rotate(37deg);
transform: rotate(37deg);
}
.wi-wind.from-218-deg {
-webkit-transform: rotate(38deg);
-moz-transform: rotate(38deg);
-ms-transform: rotate(38deg);
-o-transform: rotate(38deg);
transform: rotate(38deg);
}
.wi-wind.from-219-deg {
-webkit-transform: rotate(39deg);
-moz-transform: rotate(39deg);
-ms-transform: rotate(39deg);
-o-transform: rotate(39deg);
transform: rotate(39deg);
}
.wi-wind.from-220-deg {
-webkit-transform: rotate(40deg);
-moz-transform: rotate(40deg);
-ms-transform: rotate(40deg);
-o-transform: rotate(40deg);
transform: rotate(40deg);
}
.wi-wind.from-221-deg {
-webkit-transform: rotate(41deg);
-moz-transform: rotate(41deg);
-ms-transform: rotate(41deg);
-o-transform: rotate(41deg);
transform: rotate(41deg);
}
.wi-wind.from-222-deg {
-webkit-transform: rotate(42deg);
-moz-transform: rotate(42deg);
-ms-transform: rotate(42deg);
-o-transform: rotate(42deg);
transform: rotate(42deg);
}
.wi-wind.from-223-deg {
-webkit-transform: rotate(43deg);
-moz-transform: rotate(43deg);
-ms-transform: rotate(43deg);
-o-transform: rotate(43deg);
transform: rotate(43deg);
}
.wi-wind.from-224-deg {
-webkit-transform: rotate(44deg);
-moz-transform: rotate(44deg);
-ms-transform: rotate(44deg);
-o-transform: rotate(44deg);
transform: rotate(44deg);
}
.wi-wind.from-225-deg {
-webkit-transform: rotate(45deg);
-moz-transform: rotate(45deg);
-ms-transform: rotate(45deg);
-o-transform: rotate(45deg);
transform: rotate(45deg);
}
.wi-wind.from-226-deg {
-webkit-transform: rotate(46deg);
-moz-transform: rotate(46deg);
-ms-transform: rotate(46deg);
-o-transform: rotate(46deg);
transform: rotate(46deg);
}
.wi-wind.from-227-deg {
-webkit-transform: rotate(47deg);
-moz-transform: rotate(47deg);
-ms-transform: rotate(47deg);
-o-transform: rotate(47deg);
transform: rotate(47deg);
}
.wi-wind.from-228-deg {
-webkit-transform: rotate(48deg);
-moz-transform: rotate(48deg);
-ms-transform: rotate(48deg);
-o-transform: rotate(48deg);
transform: rotate(48deg);
}
.wi-wind.from-229-deg {
-webkit-transform: rotate(49deg);
-moz-transform: rotate(49deg);
-ms-transform: rotate(49deg);
-o-transform: rotate(49deg);
transform: rotate(49deg);
}
.wi-wind.from-230-deg {
-webkit-transform: rotate(50deg);
-moz-transform: rotate(50deg);
-ms-transform: rotate(50deg);
-o-transform: rotate(50deg);
transform: rotate(50deg);
}
.wi-wind.from-231-deg {
-webkit-transform: rotate(51deg);
-moz-transform: rotate(51deg);
-ms-transform: rotate(51deg);
-o-transform: rotate(51deg);
transform: rotate(51deg);
}
.wi-wind.from-232-deg {
-webkit-transform: rotate(52deg);
-moz-transform: rotate(52deg);
-ms-transform: rotate(52deg);
-o-transform: rotate(52deg);
transform: rotate(52deg);
}
.wi-wind.from-233-deg {
-webkit-transform: rotate(53deg);
-moz-transform: rotate(53deg);
-ms-transform: rotate(53deg);
-o-transform: rotate(53deg);
transform: rotate(53deg);
}
.wi-wind.from-234-deg {
-webkit-transform: rotate(54deg);
-moz-transform: rotate(54deg);
-ms-transform: rotate(54deg);
-o-transform: rotate(54deg);
transform: rotate(54deg);
}
.wi-wind.from-235-deg {
-webkit-transform: rotate(55deg);
-moz-transform: rotate(55deg);
-ms-transform: rotate(55deg);
-o-transform: rotate(55deg);
transform: rotate(55deg);
}
.wi-wind.from-236-deg {
-webkit-transform: rotate(56deg);
-moz-transform: rotate(56deg);
-ms-transform: rotate(56deg);
-o-transform: rotate(56deg);
transform: rotate(56deg);
}
.wi-wind.from-237-deg {
-webkit-transform: rotate(57deg);
-moz-transform: rotate(57deg);
-ms-transform: rotate(57deg);
-o-transform: rotate(57deg);
transform: rotate(57deg);
}
.wi-wind.from-238-deg {
-webkit-transform: rotate(58deg);
-moz-transform: rotate(58deg);
-ms-transform: rotate(58deg);
-o-transform: rotate(58deg);
transform: rotate(58deg);
}
.wi-wind.from-239-deg {
-webkit-transform: rotate(59deg);
-moz-transform: rotate(59deg);
-ms-transform: rotate(59deg);
-o-transform: rotate(59deg);
transform: rotate(59deg);
}
.wi-wind.from-240-deg {
-webkit-transform: rotate(60deg);
-moz-transform: rotate(60deg);
-ms-transform: rotate(60deg);
-o-transform: rotate(60deg);
transform: rotate(60deg);
}
.wi-wind.from-241-deg {
-webkit-transform: rotate(61deg);
-moz-transform: rotate(61deg);
-ms-transform: rotate(61deg);
-o-transform: rotate(61deg);
transform: rotate(61deg);
}
.wi-wind.from-242-deg {
-webkit-transform: rotate(62deg);
-moz-transform: rotate(62deg);
-ms-transform: rotate(62deg);
-o-transform: rotate(62deg);
transform: rotate(62deg);
}
.wi-wind.from-243-deg {
-webkit-transform: rotate(63deg);
-moz-transform: rotate(63deg);
-ms-transform: rotate(63deg);
-o-transform: rotate(63deg);
transform: rotate(63deg);
}
.wi-wind.from-244-deg {
-webkit-transform: rotate(64deg);
-moz-transform: rotate(64deg);
-ms-transform: rotate(64deg);
-o-transform: rotate(64deg);
transform: rotate(64deg);
}
.wi-wind.from-245-deg {
-webkit-transform: rotate(65deg);
-moz-transform: rotate(65deg);
-ms-transform: rotate(65deg);
-o-transform: rotate(65deg);
transform: rotate(65deg);
}
.wi-wind.from-246-deg {
-webkit-transform: rotate(66deg);
-moz-transform: rotate(66deg);
-ms-transform: rotate(66deg);
-o-transform: rotate(66deg);
transform: rotate(66deg);
}
.wi-wind.from-247-deg {
-webkit-transform: rotate(67deg);
-moz-transform: rotate(67deg);
-ms-transform: rotate(67deg);
-o-transform: rotate(67deg);
transform: rotate(67deg);
}
.wi-wind.from-248-deg {
-webkit-transform: rotate(68deg);
-moz-transform: rotate(68deg);
-ms-transform: rotate(68deg);
-o-transform: rotate(68deg);
transform: rotate(68deg);
}
.wi-wind.from-249-deg {
-webkit-transform: rotate(69deg);
-moz-transform: rotate(69deg);
-ms-transform: rotate(69deg);
-o-transform: rotate(69deg);
transform: rotate(69deg);
}
.wi-wind.from-250-deg {
-webkit-transform: rotate(70deg);
-moz-transform: rotate(70deg);
-ms-transform: rotate(70deg);
-o-transform: rotate(70deg);
transform: rotate(70deg);
}
.wi-wind.from-251-deg {
-webkit-transform: rotate(71deg);
-moz-transform: rotate(71deg);
-ms-transform: rotate(71deg);
-o-transform: rotate(71deg);
transform: rotate(71deg);
}
.wi-wind.from-252-deg {
-webkit-transform: rotate(72deg);
-moz-transform: rotate(72deg);
-ms-transform: rotate(72deg);
-o-transform: rotate(72deg);
transform: rotate(72deg);
}
.wi-wind.from-253-deg {
-webkit-transform: rotate(73deg);
-moz-transform: rotate(73deg);
-ms-transform: rotate(73deg);
-o-transform: rotate(73deg);
transform: rotate(73deg);
}
.wi-wind.from-254-deg {
-webkit-transform: rotate(74deg);
-moz-transform: rotate(74deg);
-ms-transform: rotate(74deg);
-o-transform: rotate(74deg);
transform: rotate(74deg);
}
.wi-wind.from-255-deg {
-webkit-transform: rotate(75deg);
-moz-transform: rotate(75deg);
-ms-transform: rotate(75deg);
-o-transform: rotate(75deg);
transform: rotate(75deg);
}
.wi-wind.from-256-deg {
-webkit-transform: rotate(76deg);
-moz-transform: rotate(76deg);
-ms-transform: rotate(76deg);
-o-transform: rotate(76deg);
transform: rotate(76deg);
}
.wi-wind.from-257-deg {
-webkit-transform: rotate(77deg);
-moz-transform: rotate(77deg);
-ms-transform: rotate(77deg);
-o-transform: rotate(77deg);
transform: rotate(77deg);
}
.wi-wind.from-258-deg {
-webkit-transform: rotate(78deg);
-moz-transform: rotate(78deg);
-ms-transform: rotate(78deg);
-o-transform: rotate(78deg);
transform: rotate(78deg);
}
.wi-wind.from-259-deg {
-webkit-transform: rotate(79deg);
-moz-transform: rotate(79deg);
-ms-transform: rotate(79deg);
-o-transform: rotate(79deg);
transform: rotate(79deg);
}
.wi-wind.from-260-deg {
-webkit-transform: rotate(80deg);
-moz-transform: rotate(80deg);
-ms-transform: rotate(80deg);
-o-transform: rotate(80deg);
transform: rotate(80deg);
}
.wi-wind.from-261-deg {
-webkit-transform: rotate(81deg);
-moz-transform: rotate(81deg);
-ms-transform: rotate(81deg);
-o-transform: rotate(81deg);
transform: rotate(81deg);
}
.wi-wind.from-262-deg {
-webkit-transform: rotate(82deg);
-moz-transform: rotate(82deg);
-ms-transform: rotate(82deg);
-o-transform: rotate(82deg);
transform: rotate(82deg);
}
.wi-wind.from-263-deg {
-webkit-transform: rotate(83deg);
-moz-transform: rotate(83deg);
-ms-transform: rotate(83deg);
-o-transform: rotate(83deg);
transform: rotate(83deg);
}
.wi-wind.from-264-deg {
-webkit-transform: rotate(84deg);
-moz-transform: rotate(84deg);
-ms-transform: rotate(84deg);
-o-transform: rotate(84deg);
transform: rotate(84deg);
}
.wi-wind.from-265-deg {
-webkit-transform: rotate(85deg);
-moz-transform: rotate(85deg);
-ms-transform: rotate(85deg);
-o-transform: rotate(85deg);
transform: rotate(85deg);
}
.wi-wind.from-266-deg {
-webkit-transform: rotate(86deg);
-moz-transform: rotate(86deg);
-ms-transform: rotate(86deg);
-o-transform: rotate(86deg);
transform: rotate(86deg);
}
.wi-wind.from-267-deg {
-webkit-transform: rotate(87deg);
-moz-transform: rotate(87deg);
-ms-transform: rotate(87deg);
-o-transform: rotate(87deg);
transform: rotate(87deg);
}
.wi-wind.from-268-deg {
-webkit-transform: rotate(88deg);
-moz-transform: rotate(88deg);
-ms-transform: rotate(88deg);
-o-transform: rotate(88deg);
transform: rotate(88deg);
}
.wi-wind.from-269-deg {
-webkit-transform: rotate(89deg);
-moz-transform: rotate(89deg);
-ms-transform: rotate(89deg);
-o-transform: rotate(89deg);
transform: rotate(89deg);
}
.wi-wind.from-270-deg {
-webkit-transform: rotate(90deg);
-moz-transform: rotate(90deg);
-ms-transform: rotate(90deg);
-o-transform: rotate(90deg);
transform: rotate(90deg);
}
.wi-wind.from-271-deg {
-webkit-transform: rotate(91deg);
-moz-transform: rotate(91deg);
-ms-transform: rotate(91deg);
-o-transform: rotate(91deg);
transform: rotate(91deg);
}
.wi-wind.from-272-deg {
-webkit-transform: rotate(92deg);
-moz-transform: rotate(92deg);
-ms-transform: rotate(92deg);
-o-transform: rotate(92deg);
transform: rotate(92deg);
}
.wi-wind.from-273-deg {
-webkit-transform: rotate(93deg);
-moz-transform: rotate(93deg);
-ms-transform: rotate(93deg);
-o-transform: rotate(93deg);
transform: rotate(93deg);
}
.wi-wind.from-274-deg {
-webkit-transform: rotate(94deg);
-moz-transform: rotate(94deg);
-ms-transform: rotate(94deg);
-o-transform: rotate(94deg);
transform: rotate(94deg);
}
.wi-wind.from-275-deg {
-webkit-transform: rotate(95deg);
-moz-transform: rotate(95deg);
-ms-transform: rotate(95deg);
-o-transform: rotate(95deg);
transform: rotate(95deg);
}
.wi-wind.from-276-deg {
-webkit-transform: rotate(96deg);
-moz-transform: rotate(96deg);
-ms-transform: rotate(96deg);
-o-transform: rotate(96deg);
transform: rotate(96deg);
}
.wi-wind.from-277-deg {
-webkit-transform: rotate(97deg);
-moz-transform: rotate(97deg);
-ms-transform: rotate(97deg);
-o-transform: rotate(97deg);
transform: rotate(97deg);
}
.wi-wind.from-278-deg {
-webkit-transform: rotate(98deg);
-moz-transform: rotate(98deg);
-ms-transform: rotate(98deg);
-o-transform: rotate(98deg);
transform: rotate(98deg);
}
.wi-wind.from-279-deg {
-webkit-transform: rotate(99deg);
-moz-transform: rotate(99deg);
-ms-transform: rotate(99deg);
-o-transform: rotate(99deg);
transform: rotate(99deg);
}
.wi-wind.from-280-deg {
-webkit-transform: rotate(100deg);
-moz-transform: rotate(100deg);
-ms-transform: rotate(100deg);
-o-transform: rotate(100deg);
transform: rotate(100deg);
}
.wi-wind.from-281-deg {
-webkit-transform: rotate(101deg);
-moz-transform: rotate(101deg);
-ms-transform: rotate(101deg);
-o-transform: rotate(101deg);
transform: rotate(101deg);
}
.wi-wind.from-282-deg {
-webkit-transform: rotate(102deg);
-moz-transform: rotate(102deg);
-ms-transform: rotate(102deg);
-o-transform: rotate(102deg);
transform: rotate(102deg);
}
.wi-wind.from-283-deg {
-webkit-transform: rotate(103deg);
-moz-transform: rotate(103deg);
-ms-transform: rotate(103deg);
-o-transform: rotate(103deg);
transform: rotate(103deg);
}
.wi-wind.from-284-deg {
-webkit-transform: rotate(104deg);
-moz-transform: rotate(104deg);
-ms-transform: rotate(104deg);
-o-transform: rotate(104deg);
transform: rotate(104deg);
}
.wi-wind.from-285-deg {
-webkit-transform: rotate(105deg);
-moz-transform: rotate(105deg);
-ms-transform: rotate(105deg);
-o-transform: rotate(105deg);
transform: rotate(105deg);
}
.wi-wind.from-286-deg {
-webkit-transform: rotate(106deg);
-moz-transform: rotate(106deg);
-ms-transform: rotate(106deg);
-o-transform: rotate(106deg);
transform: rotate(106deg);
}
.wi-wind.from-287-deg {
-webkit-transform: rotate(107deg);
-moz-transform: rotate(107deg);
-ms-transform: rotate(107deg);
-o-transform: rotate(107deg);
transform: rotate(107deg);
}
.wi-wind.from-288-deg {
-webkit-transform: rotate(108deg);
-moz-transform: rotate(108deg);
-ms-transform: rotate(108deg);
-o-transform: rotate(108deg);
transform: rotate(108deg);
}
.wi-wind.from-289-deg {
-webkit-transform: rotate(109deg);
-moz-transform: rotate(109deg);
-ms-transform: rotate(109deg);
-o-transform: rotate(109deg);
transform: rotate(109deg);
}
.wi-wind.from-290-deg {
-webkit-transform: rotate(110deg);
-moz-transform: rotate(110deg);
-ms-transform: rotate(110deg);
-o-transform: rotate(110deg);
transform: rotate(110deg);
}
.wi-wind.from-291-deg {
-webkit-transform: rotate(111deg);
-moz-transform: rotate(111deg);
-ms-transform: rotate(111deg);
-o-transform: rotate(111deg);
transform: rotate(111deg);
}
.wi-wind.from-292-deg {
-webkit-transform: rotate(112deg);
-moz-transform: rotate(112deg);
-ms-transform: rotate(112deg);
-o-transform: rotate(112deg);
transform: rotate(112deg);
}
.wi-wind.from-293-deg {
-webkit-transform: rotate(113deg);
-moz-transform: rotate(113deg);
-ms-transform: rotate(113deg);
-o-transform: rotate(113deg);
transform: rotate(113deg);
}
.wi-wind.from-294-deg {
-webkit-transform: rotate(114deg);
-moz-transform: rotate(114deg);
-ms-transform: rotate(114deg);
-o-transform: rotate(114deg);
transform: rotate(114deg);
}
.wi-wind.from-295-deg {
-webkit-transform: rotate(115deg);
-moz-transform: rotate(115deg);
-ms-transform: rotate(115deg);
-o-transform: rotate(115deg);
transform: rotate(115deg);
}
.wi-wind.from-296-deg {
-webkit-transform: rotate(116deg);
-moz-transform: rotate(116deg);
-ms-transform: rotate(116deg);
-o-transform: rotate(116deg);
transform: rotate(116deg);
}
.wi-wind.from-297-deg {
-webkit-transform: rotate(117deg);
-moz-transform: rotate(117deg);
-ms-transform: rotate(117deg);
-o-transform: rotate(117deg);
transform: rotate(117deg);
}
.wi-wind.from-298-deg {
-webkit-transform: rotate(118deg);
-moz-transform: rotate(118deg);
-ms-transform: rotate(118deg);
-o-transform: rotate(118deg);
transform: rotate(118deg);
}
.wi-wind.from-299-deg {
-webkit-transform: rotate(119deg);
-moz-transform: rotate(119deg);
-ms-transform: rotate(119deg);
-o-transform: rotate(119deg);
transform: rotate(119deg);
}
.wi-wind.from-300-deg {
-webkit-transform: rotate(120deg);
-moz-transform: rotate(120deg);
-ms-transform: rotate(120deg);
-o-transform: rotate(120deg);
transform: rotate(120deg);
}
.wi-wind.from-301-deg {
-webkit-transform: rotate(121deg);
-moz-transform: rotate(121deg);
-ms-transform: rotate(121deg);
-o-transform: rotate(121deg);
transform: rotate(121deg);
}
.wi-wind.from-302-deg {
-webkit-transform: rotate(122deg);
-moz-transform: rotate(122deg);
-ms-transform: rotate(122deg);
-o-transform: rotate(122deg);
transform: rotate(122deg);
}
.wi-wind.from-303-deg {
-webkit-transform: rotate(123deg);
-moz-transform: rotate(123deg);
-ms-transform: rotate(123deg);
-o-transform: rotate(123deg);
transform: rotate(123deg);
}
.wi-wind.from-304-deg {
-webkit-transform: rotate(124deg);
-moz-transform: rotate(124deg);
-ms-transform: rotate(124deg);
-o-transform: rotate(124deg);
transform: rotate(124deg);
}
.wi-wind.from-305-deg {
-webkit-transform: rotate(125deg);
-moz-transform: rotate(125deg);
-ms-transform: rotate(125deg);
-o-transform: rotate(125deg);
transform: rotate(125deg);
}
.wi-wind.from-306-deg {
-webkit-transform: rotate(126deg);
-moz-transform: rotate(126deg);
-ms-transform: rotate(126deg);
-o-transform: rotate(126deg);
transform: rotate(126deg);
}
.wi-wind.from-307-deg {
-webkit-transform: rotate(127deg);
-moz-transform: rotate(127deg);
-ms-transform: rotate(127deg);
-o-transform: rotate(127deg);
transform: rotate(127deg);
}
.wi-wind.from-308-deg {
-webkit-transform: rotate(128deg);
-moz-transform: rotate(128deg);
-ms-transform: rotate(128deg);
-o-transform: rotate(128deg);
transform: rotate(128deg);
}
.wi-wind.from-309-deg {
-webkit-transform: rotate(129deg);
-moz-transform: rotate(129deg);
-ms-transform: rotate(129deg);
-o-transform: rotate(129deg);
transform: rotate(129deg);
}
.wi-wind.from-310-deg {
-webkit-transform: rotate(130deg);
-moz-transform: rotate(130deg);
-ms-transform: rotate(130deg);
-o-transform: rotate(130deg);
transform: rotate(130deg);
}
.wi-wind.from-311-deg {
-webkit-transform: rotate(131deg);
-moz-transform: rotate(131deg);
-ms-transform: rotate(131deg);
-o-transform: rotate(131deg);
transform: rotate(131deg);
}
.wi-wind.from-312-deg {
-webkit-transform: rotate(132deg);
-moz-transform: rotate(132deg);
-ms-transform: rotate(132deg);
-o-transform: rotate(132deg);
transform: rotate(132deg);
}
.wi-wind.from-313-deg {
-webkit-transform: rotate(133deg);
-moz-transform: rotate(133deg);
-ms-transform: rotate(133deg);
-o-transform: rotate(133deg);
transform: rotate(133deg);
}
.wi-wind.from-314-deg {
-webkit-transform: rotate(134deg);
-moz-transform: rotate(134deg);
-ms-transform: rotate(134deg);
-o-transform: rotate(134deg);
transform: rotate(134deg);
}
.wi-wind.from-315-deg {
-webkit-transform: rotate(135deg);
-moz-transform: rotate(135deg);
-ms-transform: rotate(135deg);
-o-transform: rotate(135deg);
transform: rotate(135deg);
}
.wi-wind.from-316-deg {
-webkit-transform: rotate(136deg);
-moz-transform: rotate(136deg);
-ms-transform: rotate(136deg);
-o-transform: rotate(136deg);
transform: rotate(136deg);
}
.wi-wind.from-317-deg {
-webkit-transform: rotate(137deg);
-moz-transform: rotate(137deg);
-ms-transform: rotate(137deg);
-o-transform: rotate(137deg);
transform: rotate(137deg);
}
.wi-wind.from-318-deg {
-webkit-transform: rotate(138deg);
-moz-transform: rotate(138deg);
-ms-transform: rotate(138deg);
-o-transform: rotate(138deg);
transform: rotate(138deg);
}
.wi-wind.from-319-deg {
-webkit-transform: rotate(139deg);
-moz-transform: rotate(139deg);
-ms-transform: rotate(139deg);
-o-transform: rotate(139deg);
transform: rotate(139deg);
}
.wi-wind.from-320-deg {
-webkit-transform: rotate(140deg);
-moz-transform: rotate(140deg);
-ms-transform: rotate(140deg);
-o-transform: rotate(140deg);
transform: rotate(140deg);
}
.wi-wind.from-321-deg {
-webkit-transform: rotate(141deg);
-moz-transform: rotate(141deg);
-ms-transform: rotate(141deg);
-o-transform: rotate(141deg);
transform: rotate(141deg);
}
.wi-wind.from-322-deg {
-webkit-transform: rotate(142deg);
-moz-transform: rotate(142deg);
-ms-transform: rotate(142deg);
-o-transform: rotate(142deg);
transform: rotate(142deg);
}
.wi-wind.from-323-deg {
-webkit-transform: rotate(143deg);
-moz-transform: rotate(143deg);
-ms-transform: rotate(143deg);
-o-transform: rotate(143deg);
transform: rotate(143deg);
}
.wi-wind.from-324-deg {
-webkit-transform: rotate(144deg);
-moz-transform: rotate(144deg);
-ms-transform: rotate(144deg);
-o-transform: rotate(144deg);
transform: rotate(144deg);
}
.wi-wind.from-325-deg {
-webkit-transform: rotate(145deg);
-moz-transform: rotate(145deg);
-ms-transform: rotate(145deg);
-o-transform: rotate(145deg);
transform: rotate(145deg);
}
.wi-wind.from-326-deg {
-webkit-transform: rotate(146deg);
-moz-transform: rotate(146deg);
-ms-transform: rotate(146deg);
-o-transform: rotate(146deg);
transform: rotate(146deg);
}
.wi-wind.from-327-deg {
-webkit-transform: rotate(147deg);
-moz-transform: rotate(147deg);
-ms-transform: rotate(147deg);
-o-transform: rotate(147deg);
transform: rotate(147deg);
}
.wi-wind.from-328-deg {
-webkit-transform: rotate(148deg);
-moz-transform: rotate(148deg);
-ms-transform: rotate(148deg);
-o-transform: rotate(148deg);
transform: rotate(148deg);
}
.wi-wind.from-329-deg {
-webkit-transform: rotate(149deg);
-moz-transform: rotate(149deg);
-ms-transform: rotate(149deg);
-o-transform: rotate(149deg);
transform: rotate(149deg);
}
.wi-wind.from-330-deg {
-webkit-transform: rotate(150deg);
-moz-transform: rotate(150deg);
-ms-transform: rotate(150deg);
-o-transform: rotate(150deg);
transform: rotate(150deg);
}
.wi-wind.from-331-deg {
-webkit-transform: rotate(151deg);
-moz-transform: rotate(151deg);
-ms-transform: rotate(151deg);
-o-transform: rotate(151deg);
transform: rotate(151deg);
}
.wi-wind.from-332-deg {
-webkit-transform: rotate(152deg);
-moz-transform: rotate(152deg);
-ms-transform: rotate(152deg);
-o-transform: rotate(152deg);
transform: rotate(152deg);
}
.wi-wind.from-333-deg {
-webkit-transform: rotate(153deg);
-moz-transform: rotate(153deg);
-ms-transform: rotate(153deg);
-o-transform: rotate(153deg);
transform: rotate(153deg);
}
.wi-wind.from-334-deg {
-webkit-transform: rotate(154deg);
-moz-transform: rotate(154deg);
-ms-transform: rotate(154deg);
-o-transform: rotate(154deg);
transform: rotate(154deg);
}
.wi-wind.from-335-deg {
-webkit-transform: rotate(155deg);
-moz-transform: rotate(155deg);
-ms-transform: rotate(155deg);
-o-transform: rotate(155deg);
transform: rotate(155deg);
}
.wi-wind.from-336-deg {
-webkit-transform: rotate(156deg);
-moz-transform: rotate(156deg);
-ms-transform: rotate(156deg);
-o-transform: rotate(156deg);
transform: rotate(156deg);
}
.wi-wind.from-337-deg {
-webkit-transform: rotate(157deg);
-moz-transform: rotate(157deg);
-ms-transform: rotate(157deg);
-o-transform: rotate(157deg);
transform: rotate(157deg);
}
.wi-wind.from-338-deg {
-webkit-transform: rotate(158deg);
-moz-transform: rotate(158deg);
-ms-transform: rotate(158deg);
-o-transform: rotate(158deg);
transform: rotate(158deg);
}
.wi-wind.from-339-deg {
-webkit-transform: rotate(159deg);
-moz-transform: rotate(159deg);
-ms-transform: rotate(159deg);
-o-transform: rotate(159deg);
transform: rotate(159deg);
}
.wi-wind.from-340-deg {
-webkit-transform: rotate(160deg);
-moz-transform: rotate(160deg);
-ms-transform: rotate(160deg);
-o-transform: rotate(160deg);
transform: rotate(160deg);
}
.wi-wind.from-341-deg {
-webkit-transform: rotate(161deg);
-moz-transform: rotate(161deg);
-ms-transform: rotate(161deg);
-o-transform: rotate(161deg);
transform: rotate(161deg);
}
.wi-wind.from-342-deg {
-webkit-transform: rotate(162deg);
-moz-transform: rotate(162deg);
-ms-transform: rotate(162deg);
-o-transform: rotate(162deg);
transform: rotate(162deg);
}
.wi-wind.from-343-deg {
-webkit-transform: rotate(163deg);
-moz-transform: rotate(163deg);
-ms-transform: rotate(163deg);
-o-transform: rotate(163deg);
transform: rotate(163deg);
}
.wi-wind.from-344-deg {
-webkit-transform: rotate(164deg);
-moz-transform: rotate(164deg);
-ms-transform: rotate(164deg);
-o-transform: rotate(164deg);
transform: rotate(164deg);
}
.wi-wind.from-345-deg {
-webkit-transform: rotate(165deg);
-moz-transform: rotate(165deg);
-ms-transform: rotate(165deg);
-o-transform: rotate(165deg);
transform: rotate(165deg);
}
.wi-wind.from-346-deg {
-webkit-transform: rotate(166deg);
-moz-transform: rotate(166deg);
-ms-transform: rotate(166deg);
-o-transform: rotate(166deg);
transform: rotate(166deg);
}
.wi-wind.from-347-deg {
-webkit-transform: rotate(167deg);
-moz-transform: rotate(167deg);
-ms-transform: rotate(167deg);
-o-transform: rotate(167deg);
transform: rotate(167deg);
}
.wi-wind.from-348-deg {
-webkit-transform: rotate(168deg);
-moz-transform: rotate(168deg);
-ms-transform: rotate(168deg);
-o-transform: rotate(168deg);
transform: rotate(168deg);
}
.wi-wind.from-349-deg {
-webkit-transform: rotate(169deg);
-moz-transform: rotate(169deg);
-ms-transform: rotate(169deg);
-o-transform: rotate(169deg);
transform: rotate(169deg);
}
.wi-wind.from-350-deg {
-webkit-transform: rotate(170deg);
-moz-transform: rotate(170deg);
-ms-transform: rotate(170deg);
-o-transform: rotate(170deg);
transform: rotate(170deg);
}
.wi-wind.from-351-deg {
-webkit-transform: rotate(171deg);
-moz-transform: rotate(171deg);
-ms-transform: rotate(171deg);
-o-transform: rotate(171deg);
transform: rotate(171deg);
}
.wi-wind.from-352-deg {
-webkit-transform: rotate(172deg);
-moz-transform: rotate(172deg);
-ms-transform: rotate(172deg);
-o-transform: rotate(172deg);
transform: rotate(172deg);
}
.wi-wind.from-353-deg {
-webkit-transform: rotate(173deg);
-moz-transform: rotate(173deg);
-ms-transform: rotate(173deg);
-o-transform: rotate(173deg);
transform: rotate(173deg);
}
.wi-wind.from-354-deg {
-webkit-transform: rotate(174deg);
-moz-transform: rotate(174deg);
-ms-transform: rotate(174deg);
-o-transform: rotate(174deg);
transform: rotate(174deg);
}
.wi-wind.from-355-deg {
-webkit-transform: rotate(175deg);
-moz-transform: rotate(175deg);
-ms-transform: rotate(175deg);
-o-transform: rotate(175deg);
transform: rotate(175deg);
}
.wi-wind.from-356-deg {
-webkit-transform: rotate(176deg);
-moz-transform: rotate(176deg);
-ms-transform: rotate(176deg);
-o-transform: rotate(176deg);
transform: rotate(176deg);
}
.wi-wind.from-357-deg {
-webkit-transform: rotate(177deg);
-moz-transform: rotate(177deg);
-ms-transform: rotate(177deg);
-o-transform: rotate(177deg);
transform: rotate(177deg);
}
.wi-wind.from-358-deg {
-webkit-transform: rotate(178deg);
-moz-transform: rotate(178deg);
-ms-transform: rotate(178deg);
-o-transform: rotate(178deg);
transform: rotate(178deg);
}
.wi-wind.from-359-deg {
-webkit-transform: rotate(179deg);
-moz-transform: rotate(179deg);
-ms-transform: rotate(179deg);
-o-transform: rotate(179deg);
transform: rotate(179deg);
}
.wi-wind.from-360-deg {
-webkit-transform: rotate(180deg);
-moz-transform: rotate(180deg);
-ms-transform: rotate(180deg);
-o-transform: rotate(180deg);
transform: rotate(180deg);
}
.wi-towards-n {
-webkit-transform: rotate(0deg);
-moz-transform: rotate(0deg);
-ms-transform: rotate(0deg);
-o-transform: rotate(0deg);
transform: rotate(0deg);
}
.wi-towards-nne {
-webkit-transform: rotate(23deg);
-moz-transform: rotate(23deg);
-ms-transform: rotate(23deg);
-o-transform: rotate(23deg);
transform: rotate(23deg);
}
.wi-towards-ne {
-webkit-transform: rotate(45deg);
-moz-transform: rotate(45deg);
-ms-transform: rotate(45deg);
-o-transform: rotate(45deg);
transform: rotate(45deg);
}
.wi-towards-ene {
-webkit-transform: rotate(68deg);
-moz-transform: rotate(68deg);
-ms-transform: rotate(68deg);
-o-transform: rotate(68deg);
transform: rotate(68deg);
}
.wi-towards-e {
-webkit-transform: rotate(90deg);
-moz-transform: rotate(90deg);
-ms-transform: rotate(90deg);
-o-transform: rotate(90deg);
transform: rotate(90deg);
}
.wi-towards-ese {
-webkit-transform: rotate(113deg);
-moz-transform: rotate(113deg);
-ms-transform: rotate(113deg);
-o-transform: rotate(113deg);
transform: rotate(113deg);
}
.wi-towards-se {
-webkit-transform: rotate(135deg);
-moz-transform: rotate(135deg);
-ms-transform: rotate(135deg);
-o-transform: rotate(135deg);
transform: rotate(135deg);
}
.wi-towards-sse {
-webkit-transform: rotate(158deg);
-moz-transform: rotate(158deg);
-ms-transform: rotate(158deg);
-o-transform: rotate(158deg);
transform: rotate(158deg);
}
.wi-towards-s {
-webkit-transform: rotate(180deg);
-moz-transform: rotate(180deg);
-ms-transform: rotate(180deg);
-o-transform: rotate(180deg);
transform: rotate(180deg);
}
.wi-towards-ssw {
-webkit-transform: rotate(203deg);
-moz-transform: rotate(203deg);
-ms-transform: rotate(203deg);
-o-transform: rotate(203deg);
transform: rotate(203deg);
}
.wi-towards-sw {
-webkit-transform: rotate(225deg);
-moz-transform: rotate(225deg);
-ms-transform: rotate(225deg);
-o-transform: rotate(225deg);
transform: rotate(225deg);
}
.wi-towards-wsw {
-webkit-transform: rotate(248deg);
-moz-transform: rotate(248deg);
-ms-transform: rotate(248deg);
-o-transform: rotate(248deg);
transform: rotate(248deg);
}
.wi-towards-w {
-webkit-transform: rotate(270deg);
-moz-transform: rotate(270deg);
-ms-transform: rotate(270deg);
-o-transform: rotate(270deg);
transform: rotate(270deg);
}
.wi-towards-wnw {
-webkit-transform: rotate(293deg);
-moz-transform: rotate(293deg);
-ms-transform: rotate(293deg);
-o-transform: rotate(293deg);
transform: rotate(293deg);
}
.wi-towards-nw {
-webkit-transform: rotate(313deg);
-moz-transform: rotate(313deg);
-ms-transform: rotate(313deg);
-o-transform: rotate(313deg);
transform: rotate(313deg);
}
.wi-towards-nnw {
-webkit-transform: rotate(336deg);
-moz-transform: rotate(336deg);
-ms-transform: rotate(336deg);
-o-transform: rotate(336deg);
transform: rotate(336deg);
}
.wi-from-n {
-webkit-transform: rotate(180deg);
-moz-transform: rotate(180deg);
-ms-transform: rotate(180deg);
-o-transform: rotate(180deg);
transform: rotate(180deg);
}
.wi-from-nne {
-webkit-transform: rotate(203deg);
-moz-transform: rotate(203deg);
-ms-transform: rotate(203deg);
-o-transform: rotate(203deg);
transform: rotate(203deg);
}
.wi-from-ne {
-webkit-transform: rotate(225deg);
-moz-transform: rotate(225deg);
-ms-transform: rotate(225deg);
-o-transform: rotate(225deg);
transform: rotate(225deg);
}
.wi-from-ene {
-webkit-transform: rotate(248deg);
-moz-transform: rotate(248deg);
-ms-transform: rotate(248deg);
-o-transform: rotate(248deg);
transform: rotate(248deg);
}
.wi-from-e {
-webkit-transform: rotate(270deg);
-moz-transform: rotate(270deg);
-ms-transform: rotate(270deg);
-o-transform: rotate(270deg);
transform: rotate(270deg);
}
.wi-from-ese {
-webkit-transform: rotate(293deg);
-moz-transform: rotate(293deg);
-ms-transform: rotate(293deg);
-o-transform: rotate(293deg);
transform: rotate(293deg);
}
.wi-from-se {
-webkit-transform: rotate(315deg);
-moz-transform: rotate(315deg);
-ms-transform: rotate(315deg);
-o-transform: rotate(315deg);
transform: rotate(315deg);
}
.wi-from-sse {
-webkit-transform: rotate(338deg);
-moz-transform: rotate(338deg);
-ms-transform: rotate(338deg);
-o-transform: rotate(338deg);
transform: rotate(338deg);
}
.wi-from-s {
-webkit-transform: rotate(0deg);
-moz-transform: rotate(0deg);
-ms-transform: rotate(0deg);
-o-transform: rotate(0deg);
transform: rotate(0deg);
}
.wi-from-ssw {
-webkit-transform: rotate(23deg);
-moz-transform: rotate(23deg);
-ms-transform: rotate(23deg);
-o-transform: rotate(23deg);
transform: rotate(23deg);
}
.wi-from-sw {
-webkit-transform: rotate(45deg);
-moz-transform: rotate(45deg);
-ms-transform: rotate(45deg);
-o-transform: rotate(45deg);
transform: rotate(45deg);
}
.wi-from-wsw {
-webkit-transform: rotate(68deg);
-moz-transform: rotate(68deg);
-ms-transform: rotate(68deg);
-o-transform: rotate(68deg);
transform: rotate(68deg);
}
.wi-from-w {
-webkit-transform: rotate(90deg);
-moz-transform: rotate(90deg);
-ms-transform: rotate(90deg);
-o-transform: rotate(90deg);
transform: rotate(90deg);
}
.wi-from-wnw {
-webkit-transform: rotate(113deg);
-moz-transform: rotate(113deg);
-ms-transform: rotate(113deg);
-o-transform: rotate(113deg);
transform: rotate(113deg);
}
.wi-from-nw {
-webkit-transform: rotate(133deg);
-moz-transform: rotate(133deg);
-ms-transform: rotate(133deg);
-o-transform: rotate(133deg);
transform: rotate(133deg);
}
.wi-from-nnw {
-webkit-transform: rotate(156deg);
-moz-transform: rotate(156deg);
-ms-transform: rotate(156deg);
-o-transform: rotate(156deg);
transform: rotate(156deg);
}
================================================
FILE: public/admin-panel/dist/css/icons/weather-icons/css/weather-icons.css
================================================
/*!
* Weather Icons 2.0
* Updated August 1, 2015
* Weather themed icons for Bootstrap
* Author - Erik Flowers - erik@helloerik.com
* Email: erik@helloerik.com
* Twitter: http://twitter.com/Erik_UX
* ------------------------------------------------------------------------------
* Maintained at http://erikflowers.github.io/weather-icons
*
* License
* ------------------------------------------------------------------------------
* - Font licensed under SIL OFL 1.1 -
* http://scripts.sil.org/OFL
* - CSS, SCSS and LESS are licensed under MIT License -
* http://opensource.org/licenses/mit-license.html
* - Documentation licensed under CC BY 3.0 -
* http://creativecommons.org/licenses/by/3.0/
* - Inspired by and works great as a companion with Font Awesome
* "Font Awesome by Dave Gandy - http://fontawesome.io"
*/
@font-face {
font-family: 'weathericons';
src: url('..//fonts/weathericons-regular-webfont.eot');
src: url('..//fonts/weathericons-regular-webfont.eot?#iefix') format('embedded-opentype'), url('..//fonts/weathericons-regular-webfont.woff2') format('woff2'), url('..//fonts/weathericons-regular-webfont.woff') format('woff'), url('..//fonts/weathericons-regular-webfont.ttf') format('truetype'), url('..//fonts/weathericons-regular-webfont.svg#weather_iconsregular') format('svg');
font-weight: normal;
font-style: normal;
}
.wi {
display: inline-block;
font-family: 'weathericons';
font-style: normal;
font-weight: normal;
line-height: 1;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
.wi-fw {
text-align: center;
width: 1.4em;
}
.wi-rotate-90 {
filter: progid: DXImageTransform.Microsoft.BasicImage(rotation=1);
-webkit-transform: rotate(90deg);
-ms-transform: rotate(90deg);
transform: rotate(90deg);
}
.wi-rotate-180 {
filter: progid: DXImageTransform.Microsoft.BasicImage(rotation=2);
-webkit-transform: rotate(180deg);
-ms-transform: rotate(180deg);
transform: rotate(180deg);
}
.wi-rotate-270 {
filter: progid: DXImageTransform.Microsoft.BasicImage(rotation=3);
-webkit-transform: rotate(270deg);
-ms-transform: rotate(270deg);
transform: rotate(270deg);
}
.wi-flip-horizontal {
filter: progid: DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1);
-webkit-transform: scale(-1, 1);
-ms-transform: scale(-1, 1);
transform: scale(-1, 1);
}
.wi-flip-vertical {
filter: progid: DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1);
-webkit-transform: scale(1, -1);
-ms-transform: scale(1, -1);
transform: scale(1, -1);
}
.wi-day-sunny:before {
content: "\f00d";
}
.wi-day-cloudy:before {
content: "\f002";
}
.wi-day-cloudy-gusts:before {
content: "\f000";
}
.wi-day-cloudy-windy:before {
content: "\f001";
}
.wi-day-fog:before {
content: "\f003";
}
.wi-day-hail:before {
content: "\f004";
}
.wi-day-haze:before {
content: "\f0b6";
}
.wi-day-lightning:before {
content: "\f005";
}
.wi-day-rain:before {
content: "\f008";
}
.wi-day-rain-mix:before {
content: "\f006";
}
.wi-day-rain-wind:before {
content: "\f007";
}
.wi-day-showers:before {
content: "\f009";
}
.wi-day-sleet:before {
content: "\f0b2";
}
.wi-day-sleet-storm:before {
content: "\f068";
}
.wi-day-snow:before {
content: "\f00a";
}
.wi-day-snow-thunderstorm:before {
content: "\f06b";
}
.wi-day-snow-wind:before {
content: "\f065";
}
.wi-day-sprinkle:before {
content: "\f00b";
}
.wi-day-storm-showers:before {
content: "\f00e";
}
.wi-day-sunny-overcast:before {
content: "\f00c";
}
.wi-day-thunderstorm:before {
content: "\f010";
}
.wi-day-windy:before {
content: "\f085";
}
.wi-solar-eclipse:before {
content: "\f06e";
}
.wi-hot:before {
content: "\f072";
}
.wi-day-cloudy-high:before {
content: "\f07d";
}
.wi-day-light-wind:before {
content: "\f0c4";
}
.wi-night-clear:before {
content: "\f02e";
}
.wi-night-alt-cloudy:before {
content: "\f086";
}
.wi-night-alt-cloudy-gusts:before {
content: "\f022";
}
.wi-night-alt-cloudy-windy:before {
content: "\f023";
}
.wi-night-alt-hail:before {
content: "\f024";
}
.wi-night-alt-lightning:before {
content: "\f025";
}
.wi-night-alt-rain:before {
content: "\f028";
}
.wi-night-alt-rain-mix:before {
content: "\f026";
}
.wi-night-alt-rain-wind:before {
content: "\f027";
}
.wi-night-alt-showers:before {
content: "\f029";
}
.wi-night-alt-sleet:before {
content: "\f0b4";
}
.wi-night-alt-sleet-storm:before {
content: "\f06a";
}
.wi-night-alt-snow:before {
content: "\f02a";
}
.wi-night-alt-snow-thunderstorm:before {
content: "\f06d";
}
.wi-night-alt-snow-wind:before {
content: "\f067";
}
.wi-night-alt-sprinkle:before {
content: "\f02b";
}
.wi-night-alt-storm-showers:before {
content: "\f02c";
}
.wi-night-alt-thunderstorm:before {
content: "\f02d";
}
.wi-night-cloudy:before {
content: "\f031";
}
.wi-night-cloudy-gusts:before {
content: "\f02f";
}
.wi-night-cloudy-windy:before {
content: "\f030";
}
.wi-night-fog:before {
content: "\f04a";
}
.wi-night-hail:before {
content: "\f032";
}
.wi-night-lightning:before {
content: "\f033";
}
.wi-night-partly-cloudy:before {
content: "\f083";
}
.wi-night-rain:before {
content: "\f036";
}
.wi-night-rain-mix:before {
content: "\f034";
}
.wi-night-rain-wind:before {
content: "\f035";
}
.wi-night-showers:before {
content: "\f037";
}
.wi-night-sleet:before {
content: "\f0b3";
}
.wi-night-sleet-storm:before {
content: "\f069";
}
.wi-night-snow:before {
content: "\f038";
}
.wi-night-snow-thunderstorm:before {
content: "\f06c";
}
.wi-night-snow-wind:before {
content: "\f066";
}
.wi-night-sprinkle:before {
content: "\f039";
}
.wi-night-storm-showers:before {
content: "\f03a";
}
.wi-night-thunderstorm:before {
content: "\f03b";
}
.wi-lunar-eclipse:before {
content: "\f070";
}
.wi-stars:before {
content: "\f077";
}
.wi-storm-showers:before {
content: "\f01d";
}
.wi-thunderstorm:before {
content: "\f01e";
}
.wi-night-alt-cloudy-high:before {
content: "\f07e";
}
.wi-night-cloudy-high:before {
content: "\f080";
}
.wi-night-alt-partly-cloudy:before {
content: "\f081";
}
.wi-cloud:before {
content: "\f041";
}
.wi-cloudy:before {
content: "\f013";
}
.wi-cloudy-gusts:before {
content: "\f011";
}
.wi-cloudy-windy:before {
content: "\f012";
}
.wi-fog:before {
content: "\f014";
}
.wi-hail:before {
content: "\f015";
}
.wi-rain:before {
content: "\f019";
}
.wi-rain-mix:before {
content: "\f017";
}
.wi-rain-wind:before {
content: "\f018";
}
.wi-showers:before {
content: "\f01a";
}
.wi-sleet:before {
content: "\f0b5";
}
.wi-snow:before {
content: "\f01b";
}
.wi-sprinkle:before {
content: "\f01c";
}
.wi-storm-showers:before {
content: "\f01d";
}
.wi-thunderstorm:before {
content: "\f01e";
}
.wi-snow-wind:before {
content: "\f064";
}
.wi-snow:before {
content: "\f01b";
}
.wi-smog:before {
content: "\f074";
}
.wi-smoke:before {
content: "\f062";
}
.wi-lightning:before {
content: "\f016";
}
.wi-raindrops:before {
content: "\f04e";
}
.wi-raindrop:before {
content: "\f078";
}
.wi-dust:before {
content: "\f063";
}
.wi-snowflake-cold:before {
content: "\f076";
}
.wi-windy:before {
content: "\f021";
}
.wi-strong-wind:before {
content: "\f050";
}
.wi-sandstorm:before {
content: "\f082";
}
.wi-earthquake:before {
content: "\f0c6";
}
.wi-fire:before {
content: "\f0c7";
}
.wi-flood:before {
content: "\f07c";
}
.wi-meteor:before {
content: "\f071";
}
.wi-tsunami:before {
content: "\f0c5";
}
.wi-volcano:before {
content: "\f0c8";
}
.wi-hurricane:before {
content: "\f073";
}
.wi-tornado:before {
content: "\f056";
}
.wi-small-craft-advisory:before {
content: "\f0cc";
}
.wi-gale-warning:before {
content: "\f0cd";
}
.wi-storm-warning:before {
content: "\f0ce";
}
.wi-hurricane-warning:before {
content: "\f0cf";
}
.wi-wind-direction:before {
content: "\f0b1";
}
.wi-alien:before {
content: "\f075";
}
.wi-celsius:before {
content: "\f03c";
}
.wi-fahrenheit:before {
content: "\f045";
}
.wi-degrees:before {
content: "\f042";
}
.wi-thermometer:before {
content: "\f055";
}
.wi-thermometer-exterior:before {
content: "\f053";
}
.wi-thermometer-internal:before {
content: "\f054";
}
.wi-cloud-down:before {
content: "\f03d";
}
.wi-cloud-up:before {
content: "\f040";
}
.wi-cloud-refresh:before {
content: "\f03e";
}
.wi-horizon:before {
content: "\f047";
}
.wi-horizon-alt:before {
content: "\f046";
}
.wi-sunrise:before {
content: "\f051";
}
.wi-sunset:before {
content: "\f052";
}
.wi-moonrise:before {
content: "\f0c9";
}
.wi-moonset:before {
content: "\f0ca";
}
.wi-refresh:before {
content: "\f04c";
}
.wi-refresh-alt:before {
content: "\f04b";
}
.wi-umbrella:before {
content: "\f084";
}
.wi-barometer:before {
content: "\f079";
}
.wi-humidity:before {
content: "\f07a";
}
.wi-na:before {
content: "\f07b";
}
.wi-train:before {
content: "\f0cb";
}
.wi-moon-new:before {
content: "\f095";
}
.wi-moon-waxing-cresent-1:before {
content: "\f096";
}
.wi-moon-waxing-cresent-2:before {
content: "\f097";
}
.wi-moon-waxing-cresent-3:before {
content: "\f098";
}
.wi-moon-waxing-cresent-4:before {
content: "\f099";
}
.wi-moon-waxing-cresent-5:before {
content: "\f09a";
}
.wi-moon-waxing-cresent-6:before {
content: "\f09b";
}
.wi-moon-first-quarter:before {
content: "\f09c";
}
.wi-moon-waxing-gibbous-1:before {
content: "\f09d";
}
.wi-moon-waxing-gibbous-2:before {
content: "\f09e";
}
.wi-moon-waxing-gibbous-3:before {
content: "\f09f";
}
.wi-moon-waxing-gibbous-4:before {
content: "\f0a0";
}
.wi-moon-waxing-gibbous-5:before {
content: "\f0a1";
}
.wi-moon-waxing-gibbous-6:before {
content: "\f0a2";
}
.wi-moon-full:before {
content: "\f0a3";
}
.wi-moon-waning-gibbous-1:before {
content: "\f0a4";
}
.wi-moon-waning-gibbous-2:before {
content: "\f0a5";
}
.wi-moon-waning-gibbous-3:before {
content: "\f0a6";
}
.wi-moon-waning-gibbous-4:before {
content: "\f0a7";
}
.wi-moon-waning-gibbous-5:before {
content: "\f0a8";
}
.wi-moon-waning-gibbous-6:before {
content: "\f0a9";
}
.wi-moon-third-quarter:before {
content: "\f0aa";
}
.wi-moon-waning-crescent-1:before {
content: "\f0ab";
}
.wi-moon-waning-crescent-2:before {
content: "\f0ac";
}
.wi-moon-waning-crescent-3:before {
content: "\f0ad";
}
.wi-moon-waning-crescent-4:before {
content: "\f0ae";
}
.wi-moon-waning-crescent-5:before {
content: "\f0af";
}
.wi-moon-waning-crescent-6:before {
content: "\f0b0";
}
.wi-moon-alt-new:before {
content: "\f0eb";
}
.wi-moon-alt-waxing-cresent-1:before {
content: "\f0d0";
}
.wi-moon-alt-waxing-cresent-2:before {
content: "\f0d1";
}
.wi-moon-alt-waxing-cresent-3:before {
content: "\f0d2";
}
.wi-moon-alt-waxing-cresent-4:before {
content: "\f0d3";
}
.wi-moon-alt-waxing-cresent-5:before {
content: "\f0d4";
}
.wi-moon-alt-waxing-cresent-6:before {
content: "\f0d5";
}
.wi-moon-alt-first-quarter:before {
content: "\f0d6";
}
.wi-moon-alt-waxing-gibbous-1:before {
content: "\f0d7";
}
.wi-moon-alt-waxing-gibbous-2:before {
content: "\f0d8";
}
.wi-moon-alt-waxing-gibbous-3:before {
content: "\f0d9";
}
.wi-moon-alt-waxing-gibbous-4:before {
content: "\f0da";
}
.wi-moon-alt-waxing-gibbous-5:before {
content: "\f0db";
}
.wi-moon-alt-waxing-gibbous-6:before {
content: "\f0dc";
}
.wi-moon-alt-full:before {
content: "\f0dd";
}
.wi-moon-alt-waning-gibbous-1:before {
content: "\f0de";
}
.wi-moon-alt-waning-gibbous-2:before {
content: "\f0df";
}
.wi-moon-alt-waning-gibbous-3:before {
content: "\f0e0";
}
.wi-moon-alt-waning-gibbous-4:before {
content: "\f0e1";
}
.wi-moon-alt-waning-gibbous-5:before {
content: "\f0e2";
}
.wi-moon-alt-waning-gibbous-6:before {
content: "\f0e3";
}
.wi-moon-alt-third-quarter:before {
content: "\f0e4";
}
.wi-moon-alt-waning-crescent-1:before {
content: "\f0e5";
}
.wi-moon-alt-waning-crescent-2:before {
content: "\f0e6";
}
.wi-moon-alt-waning-crescent-3:before {
content: "\f0e7";
}
.wi-moon-alt-waning-crescent-4:before {
content: "\f0e8";
}
.wi-moon-alt-waning-crescent-5:before {
content: "\f0e9";
}
.wi-moon-alt-waning-crescent-6:before {
content: "\f0ea";
}
.wi-moon-0:before {
content: "\f095";
}
.wi-moon-1:before {
content: "\f096";
}
.wi-moon-2:before {
content: "\f097";
}
.wi-moon-3:before {
content: "\f098";
}
.wi-moon-4:before {
content: "\f099";
}
.wi-moon-5:before {
content: "\f09a";
}
.wi-moon-6:before {
content: "\f09b";
}
.wi-moon-7:before {
content: "\f09c";
}
.wi-moon-8:before {
content: "\f09d";
}
.wi-moon-9:before {
content: "\f09e";
}
.wi-moon-10:before {
content: "\f09f";
}
.wi-moon-11:before {
content: "\f0a0";
}
.wi-moon-12:before {
content: "\f0a1";
}
.wi-moon-13:before {
content: "\f0a2";
}
.wi-moon-14:before {
content: "\f0a3";
}
.wi-moon-15:before {
content: "\f0a4";
}
.wi-moon-16:before {
content: "\f0a5";
}
.wi-moon-17:before {
content: "\f0a6";
}
.wi-moon-18:before {
content: "\f0a7";
}
.wi-moon-19:before {
content: "\f0a8";
}
.wi-moon-20:before {
content: "\f0a9";
}
.wi-moon-21:before {
content: "\f0aa";
}
.wi-moon-22:before {
content: "\f0ab";
}
.wi-moon-23:before {
content: "\f0ac";
}
.wi-moon-24:before {
content: "\f0ad";
}
.wi-moon-25:before {
content: "\f0ae";
}
.wi-moon-26:before {
content: "\f0af";
}
.wi-moon-27:before {
content: "\f0b0";
}
.wi-time-1:before {
content: "\f08a";
}
.wi-time-2:before {
content: "\f08b";
}
.wi-time-3:before {
content: "\f08c";
}
.wi-time-4:before {
content: "\f08d";
}
.wi-time-5:before {
content: "\f08e";
}
.wi-time-6:before {
content: "\f08f";
}
.wi-time-7:before {
content: "\f090";
}
.wi-time-8:before {
content: "\f091";
}
.wi-time-9:before {
content: "\f092";
}
.wi-time-10:before {
content: "\f093";
}
.wi-time-11:before {
content: "\f094";
}
.wi-time-12:before {
content: "\f089";
}
.wi-direction-up:before {
content: "\f058";
}
.wi-direction-up-right:before {
content: "\f057";
}
.wi-direction-right:before {
content: "\f04d";
}
.wi-direction-down-right:before {
content: "\f088";
}
.wi-direction-down:before {
content: "\f044";
}
.wi-direction-down-left:before {
content: "\f043";
}
.wi-direction-left:before {
content: "\f048";
}
.wi-direction-up-left:before {
content: "\f087";
}
.wi-wind-beaufort-0:before {
content: "\f0b7";
}
.wi-wind-beaufort-1:before {
content: "\f0b8";
}
.wi-wind-beaufort-2:before {
content: "\f0b9";
}
.wi-wind-beaufort-3:before {
content: "\f0ba";
}
.wi-wind-beaufort-4:before {
content: "\f0bb";
}
.wi-wind-beaufort-5:before {
content: "\f0bc";
}
.wi-wind-beaufort-6:before {
content: "\f0bd";
}
.wi-wind-beaufort-7:before {
content: "\f0be";
}
.wi-wind-beaufort-8:before {
content: "\f0bf";
}
.wi-wind-beaufort-9:before {
content: "\f0c0";
}
.wi-wind-beaufort-10:before {
content: "\f0c1";
}
.wi-wind-beaufort-11:before {
content: "\f0c2";
}
.wi-wind-beaufort-12:before {
content: "\f0c3";
}
.wi-yahoo-0:before {
content: "\f056";
}
.wi-yahoo-1:before {
content: "\f00e";
}
.wi-yahoo-2:before {
content: "\f073";
}
.wi-yahoo-3:before {
content: "\f01e";
}
.wi-yahoo-4:before {
content: "\f01e";
}
.wi-yahoo-5:before {
content: "\f017";
}
.wi-yahoo-6:before {
content: "\f017";
}
.wi-yahoo-7:before {
content: "\f017";
}
.wi-yahoo-8:before {
content: "\f015";
}
.wi-yahoo-9:before {
content: "\f01a";
}
.wi-yahoo-10:before {
content: "\f015";
}
.wi-yahoo-11:before {
content: "\f01a";
}
.wi-yahoo-12:before {
content: "\f01a";
}
.wi-yahoo-13:before {
content: "\f01b";
}
.wi-yahoo-14:before {
content: "\f00a";
}
.wi-yahoo-15:before {
content: "\f064";
}
.wi-yahoo-16:before {
content: "\f01b";
}
.wi-yahoo-17:before {
content: "\f015";
}
.wi-yahoo-18:before {
content: "\f017";
}
.wi-yahoo-19:before {
content: "\f063";
}
.wi-yahoo-20:before {
content: "\f014";
}
.wi-yahoo-21:before {
content: "\f021";
}
.wi-yahoo-22:before {
content: "\f062";
}
.wi-yahoo-23:before {
content: "\f050";
}
.wi-yahoo-24:before {
content: "\f050";
}
.wi-yahoo-25:before {
content: "\f076";
}
.wi-yahoo-26:before {
content: "\f013";
}
.wi-yahoo-27:before {
content: "\f031";
}
.wi-yahoo-28:before {
content: "\f002";
}
.wi-yahoo-29:before {
content: "\f031";
}
.wi-yahoo-30:before {
content: "\f002";
}
.wi-yahoo-31:before {
content: "\f02e";
}
.wi-yahoo-32:before {
content: "\f00d";
}
.wi-yahoo-33:before {
content: "\f083";
}
.wi-yahoo-34:before {
content: "\f00c";
}
.wi-yahoo-35:before {
content: "\f017";
}
.wi-yahoo-36:before {
content: "\f072";
}
.wi-yahoo-37:before {
content: "\f00e";
}
.wi-yahoo-38:before {
content: "\f00e";
}
.wi-yahoo-39:before {
content: "\f00e";
}
.wi-yahoo-40:before {
content: "\f01a";
}
.wi-yahoo-41:before {
content: "\f064";
}
.wi-yahoo-42:before {
content: "\f01b";
}
.wi-yahoo-43:before {
content: "\f064";
}
.wi-yahoo-44:before {
content: "\f00c";
}
.wi-yahoo-45:before {
content: "\f00e";
}
.wi-yahoo-46:before {
content: "\f01b";
}
.wi-yahoo-47:before {
content: "\f00e";
}
.wi-yahoo-3200:before {
content: "\f077";
}
.wi-forecast-io-clear-day:before {
content: "\f00d";
}
.wi-forecast-io-clear-night:before {
content: "\f02e";
}
.wi-forecast-io-rain:before {
content: "\f019";
}
.wi-forecast-io-snow:before {
content: "\f01b";
}
.wi-forecast-io-sleet:before {
content: "\f0b5";
}
.wi-forecast-io-wind:before {
content: "\f050";
}
.wi-forecast-io-fog:before {
content: "\f014";
}
.wi-forecast-io-cloudy:before {
content: "\f013";
}
.wi-forecast-io-partly-cloudy-day:before {
content: "\f002";
}
.wi-forecast-io-partly-cloudy-night:before {
content: "\f031";
}
.wi-forecast-io-hail:before {
content: "\f015";
}
.wi-forecast-io-thunderstorm:before {
content: "\f01e";
}
.wi-forecast-io-tornado:before {
content: "\f056";
}
.wi-wmo4680-0:before,
.wi-wmo4680-00:before {
content: "\f055";
}
.wi-wmo4680-1:before,
.wi-wmo4680-01:before {
content: "\f013";
}
.wi-wmo4680-2:before,
.wi-wmo4680-02:before {
content: "\f055";
}
.wi-wmo4680-3:before,
.wi-wmo4680-03:before {
content: "\f013";
}
.wi-wmo4680-4:before,
.wi-wmo4680-04:before {
content: "\f014";
}
.wi-wmo4680-5:before,
.wi-wmo4680-05:before {
content: "\f014";
}
.wi-wmo4680-10:before {
content: "\f014";
}
.wi-wmo4680-11:before {
content: "\f014";
}
.wi-wmo4680-12:before {
content: "\f016";
}
.wi-wmo4680-18:before {
content: "\f050";
}
.wi-wmo4680-20:before {
content: "\f014";
}
.wi-wmo4680-21:before {
content: "\f017";
}
.wi-wmo4680-22:before {
content: "\f017";
}
.wi-wmo4680-23:before {
content: "\f019";
}
.wi-wmo4680-24:before {
content: "\f01b";
}
.wi-wmo4680-25:before {
content: "\f015";
}
.wi-wmo4680-26:before {
content: "\f01e";
}
.wi-wmo4680-27:before {
content: "\f063";
}
.wi-wmo4680-28:before {
content: "\f063";
}
.wi-wmo4680-29:before {
content: "\f063";
}
.wi-wmo4680-30:before {
content: "\f014";
}
.wi-wmo4680-31:before {
content: "\f014";
}
.wi-wmo4680-32:before {
content: "\f014";
}
.wi-wmo4680-33:before {
content: "\f014";
}
.wi-wmo4680-34:before {
content: "\f014";
}
.wi-wmo4680-35:before {
content: "\f014";
}
.wi-wmo4680-40:before {
content: "\f017";
}
.wi-wmo4680-41:before {
content: "\f01c";
}
.wi-wmo4680-42:before {
content: "\f019";
}
.wi-wmo4680-43:before {
content: "\f01c";
}
.wi-wmo4680-44:before {
content: "\f019";
}
.wi-wmo4680-45:before {
content: "\f015";
}
.wi-wmo4680-46:before {
content: "\f015";
}
.wi-wmo4680-47:before {
content: "\f01b";
}
.wi-wmo4680-48:before {
content: "\f01b";
}
.wi-wmo4680-50:before {
content: "\f01c";
}
.wi-wmo4680-51:before {
content: "\f01c";
}
.wi-wmo4680-52:before {
content: "\f019";
}
.wi-wmo4680-53:before {
content: "\f019";
}
.wi-wmo4680-54:before {
content: "\f076";
}
.wi-wmo4680-55:before {
content: "\f076";
}
.wi-wmo4680-56:before {
content: "\f076";
}
.wi-wmo4680-57:before {
content: "\f01c";
}
.wi-wmo4680-58:before {
content: "\f019";
}
.wi-wmo4680-60:before {
content: "\f01c";
}
.wi-wmo4680-61:before {
content: "\f01c";
}
.wi-wmo4680-62:before {
content: "\f019";
}
.wi-wmo4680-63:before {
content: "\f019";
}
.wi-wmo4680-64:before {
content: "\f015";
}
.wi-wmo4680-65:before {
content: "\f015";
}
.wi-wmo4680-66:before {
content: "\f015";
}
.wi-wmo4680-67:before {
content: "\f017";
}
.wi-wmo4680-68:before {
content: "\f017";
}
.wi-wmo4680-70:before {
content: "\f01b";
}
.wi-wmo4680-71:before {
content: "\f01b";
}
.wi-wmo4680-72:before {
content: "\f01b";
}
.wi-wmo4680-73:before {
content: "\f01b";
}
.wi-wmo4680-74:before {
content: "\f076";
}
.wi-wmo4680-75:before {
content: "\f076";
}
.wi-wmo4680-76:before {
content: "\f076";
}
.wi-wmo4680-77:before {
content: "\f01b";
}
.wi-wmo4680-78:before {
content: "\f076";
}
.wi-wmo4680-80:before {
content: "\f019";
}
.wi-wmo4680-81:before {
content: "\f01c";
}
.wi-wmo4680-82:before {
content: "\f019";
}
.wi-wmo4680-83:before {
content: "\f019";
}
.wi-wmo4680-84:before {
content: "\f01d";
}
.wi-wmo4680-85:before {
content: "\f017";
}
.wi-wmo4680-86:before {
content: "\f017";
}
.wi-wmo4680-87:before {
content: "\f017";
}
.wi-wmo4680-89:before {
content: "\f015";
}
.wi-wmo4680-90:before {
content: "\f016";
}
.wi-wmo4680-91:before {
content: "\f01d";
}
.wi-wmo4680-92:before {
content: "\f01e";
}
.wi-wmo4680-93:before {
content: "\f01e";
}
.wi-wmo4680-94:before {
content: "\f016";
}
.wi-wmo4680-95:before {
content: "\f01e";
}
.wi-wmo4680-96:before {
content: "\f01e";
}
.wi-wmo4680-99:before {
content: "\f056";
}
.wi-owm-200:before {
content: "\f01e";
}
.wi-owm-201:before {
content: "\f01e";
}
.wi-owm-202:before {
content: "\f01e";
}
.wi-owm-210:before {
content: "\f016";
}
.wi-owm-211:before {
content: "\f016";
}
.wi-owm-212:before {
content: "\f016";
}
.wi-owm-221:before {
content: "\f016";
}
.wi-owm-230:before {
content: "\f01e";
}
.wi-owm-231:before {
content: "\f01e";
}
.wi-owm-232:before {
content: "\f01e";
}
.wi-owm-300:before {
content: "\f01c";
}
.wi-owm-301:before {
content: "\f01c";
}
.wi-owm-302:before {
content: "\f019";
}
.wi-owm-310:before {
content: "\f017";
}
.wi-owm-311:before {
content: "\f019";
}
.wi-owm-312:before {
content: "\f019";
}
.wi-owm-313:before {
content: "\f01a";
}
.wi-owm-314:before {
content: "\f019";
}
.wi-owm-321:before {
content: "\f01c";
}
.wi-owm-500:before {
content: "\f01c";
}
.wi-owm-501:before {
content: "\f019";
}
.wi-owm-502:before {
content: "\f019";
}
.wi-owm-503:before {
content: "\f019";
}
.wi-owm-504:before {
content: "\f019";
}
.wi-owm-511:before {
content: "\f017";
}
.wi-owm-520:before {
content: "\f01a";
}
.wi-owm-521:before {
content: "\f01a";
}
.wi-owm-522:before {
content: "\f01a";
}
.wi-owm-531:before {
content: "\f01d";
}
.wi-owm-600:before {
content: "\f01b";
}
.wi-owm-601:before {
content: "\f01b";
}
.wi-owm-602:before {
content: "\f0b5";
}
.wi-owm-611:before {
content: "\f017";
}
.wi-owm-612:before {
content: "\f017";
}
.wi-owm-615:before {
content: "\f017";
}
.wi-owm-616:before {
content: "\f017";
}
.wi-owm-620:before {
content: "\f017";
}
.wi-owm-621:before {
content: "\f01b";
}
.wi-owm-622:before {
content: "\f01b";
}
.wi-owm-701:before {
content: "\f01a";
}
.wi-owm-711:before {
content: "\f062";
}
.wi-owm-721:before {
content: "\f0b6";
}
.wi-owm-731:before {
content: "\f063";
}
.wi-owm-741:before {
content: "\f014";
}
.wi-owm-761:before {
content: "\f063";
}
.wi-owm-762:before {
content: "\f063";
}
.wi-owm-771:before {
content: "\f011";
}
.wi-owm-781:before {
content: "\f056";
}
.wi-owm-800:before {
content: "\f00d";
}
.wi-owm-801:before {
content: "\f011";
}
.wi-owm-802:before {
content: "\f011";
}
.wi-owm-803:before {
content: "\f011";
}
.wi-owm-803:before {
content: "\f012";
}
.wi-owm-804:before {
content: "\f013";
}
.wi-owm-900:before {
content: "\f056";
}
.wi-owm-901:before {
content: "\f01d";
}
.wi-owm-902:before {
content: "\f073";
}
.wi-owm-903:before {
content: "\f076";
}
.wi-owm-904:before {
content: "\f072";
}
.wi-owm-905:before {
content: "\f021";
}
.wi-owm-906:before {
content: "\f015";
}
.wi-owm-957:before {
content: "\f050";
}
.wi-owm-day-200:before {
content: "\f010";
}
.wi-owm-day-201:before {
content: "\f010";
}
.wi-owm-day-202:before {
content: "\f010";
}
.wi-owm-day-210:before {
content: "\f005";
}
.wi-owm-day-211:before {
content: "\f005";
}
.wi-owm-day-212:before {
content: "\f005";
}
.wi-owm-day-221:before {
content: "\f005";
}
.wi-owm-day-230:before {
content: "\f010";
}
.wi-owm-day-231:before {
content: "\f010";
}
.wi-owm-day-232:before {
content: "\f010";
}
.wi-owm-day-300:before {
content: "\f00b";
}
.wi-owm-day-301:before {
content: "\f00b";
}
.wi-owm-day-302:before {
content: "\f008";
}
.wi-owm-day-310:before {
content: "\f008";
}
.wi-owm-day-311:before {
content: "\f008";
}
.wi-owm-day-312:before {
content: "\f008";
}
.wi-owm-day-313:before {
content: "\f008";
}
.wi-owm-day-314:before {
content: "\f008";
}
.wi-owm-day-321:before {
content: "\f00b";
}
.wi-owm-day-500:before {
content: "\f00b";
}
.wi-owm-day-501:before {
content: "\f008";
}
.wi-owm-day-502:before {
content: "\f008";
}
.wi-owm-day-503:before {
content: "\f008";
}
.wi-owm-day-504:before {
content: "\f008";
}
.wi-owm-day-511:before {
content: "\f006";
}
.wi-owm-day-520:before {
content: "\f009";
}
.wi-owm-day-521:before {
content: "\f009";
}
.wi-owm-day-522:before {
content: "\f009";
}
.wi-owm-day-531:before {
content: "\f00e";
}
.wi-owm-day-600:before {
content: "\f00a";
}
.wi-owm-day-601:before {
content: "\f0b2";
}
.wi-owm-day-602:before {
content: "\f00a";
}
.wi-owm-day-611:before {
content: "\f006";
}
.wi-owm-day-612:before {
content: "\f006";
}
.wi-owm-day-615:before {
content: "\f006";
}
.wi-owm-day-616:before {
content: "\f006";
}
.wi-owm-day-620:before {
content: "\f006";
}
.wi-owm-day-621:before {
content: "\f00a";
}
.wi-owm-day-622:before {
content: "\f00a";
}
.wi-owm-day-701:before {
content: "\f009";
}
.wi-owm-day-711:before {
content: "\f062";
}
.wi-owm-day-721:before {
content: "\f0b6";
}
.wi-owm-day-731:before {
content: "\f063";
}
.wi-owm-day-741:before {
content: "\f003";
}
.wi-owm-day-761:before {
content: "\f063";
}
.wi-owm-day-762:before {
content: "\f063";
}
.wi-owm-day-781:before {
content: "\f056";
}
.wi-owm-day-800:before {
content: "\f00d";
}
.wi-owm-day-801:before {
content: "\f000";
}
.wi-owm-day-802:before {
content: "\f000";
}
.wi-owm-day-803:before {
content: "\f000";
}
.wi-owm-day-804:before {
content: "\f00c";
}
.wi-owm-day-900:before {
content: "\f056";
}
.wi-owm-day-902:before {
content: "\f073";
}
.wi-owm-day-903:before {
content: "\f076";
}
.wi-owm-day-904:before {
content: "\f072";
}
.wi-owm-day-906:before {
content: "\f004";
}
.wi-owm-day-957:before {
content: "\f050";
}
.wi-owm-night-200:before {
content: "\f02d";
}
.wi-owm-night-201:before {
content: "\f02d";
}
.wi-owm-night-202:before {
content: "\f02d";
}
.wi-owm-night-210:before {
content: "\f025";
}
.wi-owm-night-211:before {
content: "\f025";
}
.wi-owm-night-212:before {
content: "\f025";
}
.wi-owm-night-221:before {
content: "\f025";
}
.wi-owm-night-230:before {
content: "\f02d";
}
.wi-owm-night-231:before {
content: "\f02d";
}
.wi-owm-night-232:before {
content: "\f02d";
}
.wi-owm-night-300:before {
content: "\f02b";
}
.wi-owm-night-301:before {
content: "\f02b";
}
.wi-owm-night-302:before {
content: "\f028";
}
.wi-owm-night-310:before {
content: "\f028";
}
.wi-owm-night-311:before {
content: "\f028";
}
.wi-owm-night-312:before {
content: "\f028";
}
.wi-owm-night-313:before {
content: "\f028";
}
.wi-owm-night-314:before {
content: "\f028";
}
.wi-owm-night-321:before {
content: "\f02b";
}
.wi-owm-night-500:before {
content: "\f02b";
}
.wi-owm-night-501:before {
content: "\f028";
}
.wi-owm-night-502:before {
content: "\f028";
}
.wi-owm-night-503:before {
content: "\f028";
}
.wi-owm-night-504:before {
content: "\f028";
}
.wi-owm-night-511:before {
content: "\f026";
}
.wi-owm-night-520:before {
content: "\f029";
}
.wi-owm-night-521:before {
content: "\f029";
}
.wi-owm-night-522:before {
content: "\f029";
}
.wi-owm-night-531:before {
content: "\f02c";
}
.wi-owm-night-600:before {
content: "\f02a";
}
.wi-owm-night-601:before {
content: "\f0b4";
}
.wi-owm-night-602:before {
content: "\f02a";
}
.wi-owm-night-611:before {
content: "\f026";
}
.wi-owm-night-612:before {
content: "\f026";
}
.wi-owm-night-615:before {
content: "\f026";
}
.wi-owm-night-616:before {
content: "\f026";
}
.wi-owm-night-620:before {
content: "\f026";
}
.wi-owm-night-621:before {
content: "\f02a";
}
.wi-owm-night-622:before {
content: "\f02a";
}
.wi-owm-night-701:before {
content: "\f029";
}
.wi-owm-night-711:before {
content: "\f062";
}
.wi-owm-night-721:before {
content: "\f0b6";
}
.wi-owm-night-731:before {
content: "\f063";
}
.wi-owm-night-741:before {
content: "\f04a";
}
.wi-owm-night-761:before {
content: "\f063";
}
.wi-owm-night-762:before {
content: "\f063";
}
.wi-owm-night-781:before {
content: "\f056";
}
.wi-owm-night-800:before {
content: "\f02e";
}
.wi-owm-night-801:before {
content: "\f022";
}
.wi-owm-night-802:before {
content: "\f022";
}
.wi-owm-night-803:before {
content: "\f022";
}
.wi-owm-night-804:before {
content: "\f086";
}
.wi-owm-night-900:before {
content: "\f056";
}
.wi-owm-night-902:before {
content: "\f073";
}
.wi-owm-night-903:before {
content: "\f076";
}
.wi-owm-night-904:before {
content: "\f072";
}
.wi-owm-night-906:before {
content: "\f024";
}
.wi-owm-night-957:before {
content: "\f050";
}
================================================
FILE: public/admin-panel/dist/css/icons/weather-icons/less/css/variables-beaufort.css
================================================
================================================
FILE: public/admin-panel/dist/css/icons/weather-icons/less/css/variables-day.css
================================================
================================================
FILE: public/admin-panel/dist/css/icons/weather-icons/less/css/variables-direction.css
================================================
================================================
FILE: public/admin-panel/dist/css/icons/weather-icons/less/css/variables-misc.css
================================================
================================================
FILE: public/admin-panel/dist/css/icons/weather-icons/less/css/variables-moon.css
================================================
================================================
FILE: public/admin-panel/dist/css/icons/weather-icons/less/css/variables-neutral.css
================================================
================================================
FILE: public/admin-panel/dist/css/icons/weather-icons/less/css/variables-night.css
================================================
================================================
FILE: public/admin-panel/dist/css/icons/weather-icons/less/css/variables-time.css
================================================
================================================
FILE: public/admin-panel/dist/css/icons/weather-icons/less/css/variables-wind-names.css
================================================
================================================
FILE: public/admin-panel/dist/css/icons/weather-icons/less/icon-classes/classes-beaufort.less
================================================
.wi-wind-beaufort-0:before {content: @wind-beaufort-0;}
.wi-wind-beaufort-1:before {content: @wind-beaufort-1;}
.wi-wind-beaufort-2:before {content: @wind-beaufort-2;}
.wi-wind-beaufort-3:before {content: @wind-beaufort-3;}
.wi-wind-beaufort-4:before {content: @wind-beaufort-4;}
.wi-wind-beaufort-5:before {content: @wind-beaufort-5;}
.wi-wind-beaufort-6:before {content: @wind-beaufort-6;}
.wi-wind-beaufort-7:before {content: @wind-beaufort-7;}
.wi-wind-beaufort-8:before {content: @wind-beaufort-8;}
.wi-wind-beaufort-9:before {content: @wind-beaufort-9;}
.wi-wind-beaufort-10:before {content: @wind-beaufort-10;}
.wi-wind-beaufort-11:before {content: @wind-beaufort-11;}
.wi-wind-beaufort-12:before {content: @wind-beaufort-12;}
================================================
FILE: public/admin-panel/dist/css/icons/weather-icons/less/icon-classes/classes-day.less
================================================
.wi-day-sunny:before {content: @day-sunny;}
.wi-day-cloudy:before {content: @day-cloudy;}
.wi-day-cloudy-gusts:before {content: @day-cloudy-gusts;}
.wi-day-cloudy-windy:before {content: @day-cloudy-windy;}
.wi-day-fog:before {content: @day-fog;}
.wi-day-hail:before {content: @day-hail;}
.wi-day-haze:before {content: @day-haze;}
.wi-day-lightning:before {content: @day-lightning;}
.wi-day-rain:before {content: @day-rain;}
.wi-day-rain-mix:before {content: @day-rain-mix;}
.wi-day-rain-wind:before {content: @day-rain-wind;}
.wi-day-showers:before {content: @day-showers;}
.wi-day-sleet:before {content: @day-sleet;}
.wi-day-sleet-storm:before {content: @day-sleet-storm;}
.wi-day-snow:before {content: @day-snow;}
.wi-day-snow-thunderstorm:before {content: @day-snow-thunderstorm;}
.wi-day-snow-wind:before {content: @day-snow-wind;}
.wi-day-sprinkle:before {content: @day-sprinkle;}
.wi-day-storm-showers:before {content: @day-storm-showers;}
.wi-day-sunny-overcast:before {content: @day-sunny-overcast;}
.wi-day-thunderstorm:before {content: @day-thunderstorm;}
.wi-day-windy:before {content: @day-windy;}
.wi-solar-eclipse:before {content: @solar-eclipse;}
.wi-hot:before {content: @hot;}
.wi-day-cloudy-high:before {content: @day-cloudy-high;}
.wi-day-light-wind:before {content: @day-light-wind;}
================================================
FILE: public/admin-panel/dist/css/icons/weather-icons/less/icon-classes/classes-direction.less
================================================
.wi-direction-up:before {content: @direction-up;}
.wi-direction-up-right:before {content: @direction-up-right;}
.wi-direction-right:before {content: @direction-right;}
.wi-direction-down-right:before {content: @direction-down-right;}
.wi-direction-down:before {content: @direction-down;}
.wi-direction-down-left:before {content: @direction-down-left;}
.wi-direction-left:before {content: @direction-left;}
.wi-direction-up-left:before {content: @direction-up-left;}
================================================
FILE: public/admin-panel/dist/css/icons/weather-icons/less/icon-classes/classes-misc.less
================================================
.wi-alien:before {content: @alien;}
.wi-celsius:before {content: @celsius;}
.wi-fahrenheit:before {content: @fahrenheit;}
.wi-degrees:before {content: @degrees;}
.wi-thermometer:before {content: @thermometer;}
.wi-thermometer-exterior:before {content: @thermometer-exterior;}
.wi-thermometer-internal:before {content: @thermometer-internal;}
.wi-cloud-down:before {content: @cloud-down;}
.wi-cloud-up:before {content: @cloud-up;}
.wi-cloud-refresh:before {content: @cloud-refresh;}
.wi-horizon:before {content: @horizon;}
.wi-horizon-alt:before {content: @horizon-alt;}
.wi-sunrise:before {content: @sunrise;}
.wi-sunset:before {content: @sunset;}
.wi-moonrise:before {content: @moonrise;}
.wi-moonset:before {content: @moonset;}
.wi-refresh:before {content: @refresh;}
.wi-refresh-alt:before {content: @refresh-alt;}
.wi-umbrella:before {content: @umbrella;}
.wi-barometer:before {content: @barometer;}
.wi-humidity:before {content: @humidity;}
.wi-na:before {content: @na;}
.wi-train:before {content: @train;}
================================================
FILE: public/admin-panel/dist/css/icons/weather-icons/less/icon-classes/classes-moon-aliases.less
================================================
.wi-moon-0:before {content: @moon-new;}
.wi-moon-1:before {content: @moon-waxing-cresent-1;}
.wi-moon-2:before {content: @moon-waxing-cresent-2;}
.wi-moon-3:before {content: @moon-waxing-cresent-3;}
.wi-moon-4:before {content: @moon-waxing-cresent-4;}
.wi-moon-5:before {content: @moon-waxing-cresent-5;}
.wi-moon-6:before {content: @moon-waxing-cresent-6;}
.wi-moon-7:before {content: @moon-first-quarter;}
.wi-moon-8:before {content: @moon-waxing-gibbous-1;}
.wi-moon-9:before {content: @moon-waxing-gibbous-2;}
.wi-moon-10:before {content: @moon-waxing-gibbous-3;}
.wi-moon-11:before {content: @moon-waxing-gibbous-4;}
.wi-moon-12:before {content: @moon-waxing-gibbous-5;}
.wi-moon-13:before {content: @moon-waxing-gibbous-6;}
.wi-moon-14:before {content: @moon-full;}
.wi-moon-15:before {content: @moon-waning-gibbous-1;}
.wi-moon-16:before {content: @moon-waning-gibbous-2;}
.wi-moon-17:before {content: @moon-waning-gibbous-3;}
.wi-moon-18:before {content: @moon-waning-gibbous-4;}
.wi-moon-19:before {content: @moon-waning-gibbous-5;}
.wi-moon-20:before {content: @moon-waning-gibbous-6;}
.wi-moon-21:before {content: @moon-third-quarter;}
.wi-moon-22:before {content: @moon-waning-crescent-1;}
.wi-moon-23:before {content: @moon-waning-crescent-2;}
.wi-moon-24:before {content: @moon-waning-crescent-3;}
.wi-moon-25:before {content: @moon-waning-crescent-4;}
.wi-moon-26:before {content: @moon-waning-crescent-5;}
.wi-moon-27:before {content: @moon-waning-crescent-6;}
================================================
FILE: public/admin-panel/dist/css/icons/weather-icons/less/icon-classes/classes-moon.less
================================================
.wi-moon-new:before {content: @moon-new;}
.wi-moon-waxing-cresent-1:before {content: @moon-waxing-cresent-1;}
.wi-moon-waxing-cresent-2:before {content: @moon-waxing-cresent-2;}
.wi-moon-waxing-cresent-3:before {content: @moon-waxing-cresent-3;}
.wi-moon-waxing-cresent-4:before {content: @moon-waxing-cresent-4;}
.wi-moon-waxing-cresent-5:before {content: @moon-waxing-cresent-5;}
.wi-moon-waxing-cresent-6:before {content: @moon-waxing-cresent-6;}
.wi-moon-first-quarter:before {content: @moon-first-quarter;}
.wi-moon-waxing-gibbous-1:before {content: @moon-waxing-gibbous-1;}
.wi-moon-waxing-gibbous-2:before {content: @moon-waxing-gibbous-2;}
.wi-moon-waxing-gibbous-3:before {content: @moon-waxing-gibbous-3;}
.wi-moon-waxing-gibbous-4:before {content: @moon-waxing-gibbous-4;}
.wi-moon-waxing-gibbous-5:before {content: @moon-waxing-gibbous-5;}
.wi-moon-waxing-gibbous-6:before {content: @moon-waxing-gibbous-6;}
.wi-moon-full:before {content: @moon-full;}
.wi-moon-waning-gibbous-1:before {content: @moon-waning-gibbous-1;}
.wi-moon-waning-gibbous-2:before {content: @moon-waning-gibbous-2;}
.wi-moon-waning-gibbous-3:before {content: @moon-waning-gibbous-3;}
.wi-moon-waning-gibbous-4:before {content: @moon-waning-gibbous-4;}
.wi-moon-waning-gibbous-5:before {content: @moon-waning-gibbous-5;}
.wi-moon-waning-gibbous-6:before {content: @moon-waning-gibbous-6;}
.wi-moon-third-quarter:before {content: @moon-third-quarter;}
.wi-moon-waning-crescent-1:before {content: @moon-waning-crescent-1;}
.wi-moon-waning-crescent-2:before {content: @moon-waning-crescent-2;}
.wi-moon-waning-crescent-3:before {content: @moon-waning-crescent-3;}
.wi-moon-waning-crescent-4:before {content: @moon-waning-crescent-4;}
.wi-moon-waning-crescent-5:before {content: @moon-waning-crescent-5;}
.wi-moon-waning-crescent-6:before {content: @moon-waning-crescent-6;}
.wi-moon-alt-new:before {content: @moon-alt-new;}
.wi-moon-alt-waxing-cresent-1:before {content: @moon-alt-waxing-cresent-1;}
.wi-moon-alt-waxing-cresent-2:before {content: @moon-alt-waxing-cresent-2;}
.wi-moon-alt-waxing-cresent-3:before {content: @moon-alt-waxing-cresent-3;}
.wi-moon-alt-waxing-cresent-4:before {content: @moon-alt-waxing-cresent-4;}
.wi-moon-alt-waxing-cresent-5:before {content: @moon-alt-waxing-cresent-5;}
.wi-moon-alt-waxing-cresent-6:before {content: @moon-alt-waxing-cresent-6;}
.wi-moon-alt-first-quarter:before {content: @moon-alt-first-quarter;}
.wi-moon-alt-waxing-gibbous-1:before {content: @moon-alt-waxing-gibbous-1;}
.wi-moon-alt-waxing-gibbous-2:before {content: @moon-alt-waxing-gibbous-2;}
.wi-moon-alt-waxing-gibbous-3:before {content: @moon-alt-waxing-gibbous-3;}
.wi-moon-alt-waxing-gibbous-4:before {content: @moon-alt-waxing-gibbous-4;}
.wi-moon-alt-waxing-gibbous-5:before {content: @moon-alt-waxing-gibbous-5;}
.wi-moon-alt-waxing-gibbous-6:before {content: @moon-alt-waxing-gibbous-6;}
.wi-moon-alt-full:before {content: @moon-alt-full;}
.wi-moon-alt-waning-gibbous-1:before {content: @moon-alt-waning-gibbous-1;}
.wi-moon-alt-waning-gibbous-2:before {content: @moon-alt-waning-gibbous-2;}
.wi-moon-alt-waning-gibbous-3:before {content: @moon-alt-waning-gibbous-3;}
.wi-moon-alt-waning-gibbous-4:before {content: @moon-alt-waning-gibbous-4;}
.wi-moon-alt-waning-gibbous-5:before {content: @moon-alt-waning-gibbous-5;}
.wi-moon-alt-waning-gibbous-6:before {content: @moon-alt-waning-gibbous-6;}
.wi-moon-alt-third-quarter:before {content: @moon-alt-third-quarter;}
.wi-moon-alt-waning-crescent-1:before {content: @moon-alt-waning-crescent-1;}
.wi-moon-alt-waning-crescent-2:before {content: @moon-alt-waning-crescent-2;}
.wi-moon-alt-waning-crescent-3:before {content: @moon-alt-waning-crescent-3;}
.wi-moon-alt-waning-crescent-4:before {content: @moon-alt-waning-crescent-4;}
.wi-moon-alt-waning-crescent-5:before {content: @moon-alt-waning-crescent-5;}
.wi-moon-alt-waning-crescent-6:before {content: @moon-alt-waning-crescent-6;}
================================================
FILE: public/admin-panel/dist/css/icons/weather-icons/less/icon-classes/classes-neutral.less
================================================
.wi-cloud:before {content: @cloud;}
.wi-cloudy:before {content: @cloudy;}
.wi-cloudy-gusts:before {content: @cloudy-gusts;}
.wi-cloudy-windy:before {content: @cloudy-windy;}
.wi-fog:before {content: @fog;}
.wi-hail:before {content: @hail;}
.wi-rain:before {content: @rain;}
.wi-rain-mix:before {content: @rain-mix;}
.wi-rain-wind:before {content: @rain-wind;}
.wi-showers:before {content: @showers;}
.wi-sleet:before {content: @sleet;}
.wi-snow:before {content: @snow;}
.wi-sprinkle:before {content: @sprinkle;}
.wi-storm-showers:before {content: @storm-showers;}
.wi-thunderstorm:before {content: @thunderstorm;}
.wi-snow-wind:before {content: @snow-wind;}
.wi-snow:before {content: @snow;}
.wi-smog:before {content: @smog;}
.wi-smoke:before {content: @smoke;}
.wi-lightning:before {content: @lightning;}
.wi-raindrops:before {content: @raindrops;}
.wi-raindrop:before {content: @raindrop;}
.wi-dust:before {content: @dust;}
.wi-snowflake-cold:before {content: @snowflake-cold;}
.wi-windy:before {content: @windy;}
.wi-strong-wind:before {content: @strong-wind;}
.wi-sandstorm:before {content: @sandstorm;}
.wi-earthquake:before {content: @earthquake;}
.wi-fire:before {content: @fire;}
.wi-flood:before {content: @flood;}
.wi-meteor:before {content: @meteor;}
.wi-tsunami:before {content: @tsunami;}
.wi-volcano:before {content: @volcano;}
.wi-hurricane:before {content: @hurricane;}
.wi-tornado:before {content: @tornado;}
.wi-small-craft-advisory:before {content: @small-craft-advisory;}
.wi-gale-warning:before {content: @gale-warning;}
.wi-storm-warning:before {content: @storm-warning;}
.wi-hurricane-warning:before {content: @hurricane-warning;}
.wi-wind-direction:before {content: @wind-direction;}
================================================
FILE: public/admin-panel/dist/css/icons/weather-icons/less/icon-classes/classes-night.less
================================================
.wi-night-clear:before {content: @night-clear;}
.wi-night-alt-cloudy:before {content: @night-alt-cloudy;}
.wi-night-alt-cloudy-gusts:before {content: @night-alt-cloudy-gusts;}
.wi-night-alt-cloudy-windy:before {content: @night-alt-cloudy-windy;}
.wi-night-alt-hail:before {content: @night-alt-hail;}
.wi-night-alt-lightning:before {content: @night-alt-lightning;}
.wi-night-alt-rain:before {content: @night-alt-rain;}
.wi-night-alt-rain-mix:before {content: @night-alt-rain-mix;}
.wi-night-alt-rain-wind:before {content: @night-alt-rain-wind;}
.wi-night-alt-showers:before {content: @night-alt-showers;}
.wi-night-alt-sleet:before {content: @night-alt-sleet;}
.wi-night-alt-sleet-storm:before {content: @night-alt-sleet-storm;}
.wi-night-alt-snow:before {content: @night-alt-snow;}
.wi-night-alt-snow-thunderstorm:before {content: @night-alt-snow-thunderstorm;}
.wi-night-alt-snow-wind:before {content: @night-alt-snow-wind;}
.wi-night-alt-sprinkle:before {content: @night-alt-sprinkle;}
.wi-night-alt-storm-showers:before {content: @night-alt-storm-showers;}
.wi-night-alt-thunderstorm:before {content: @night-alt-thunderstorm;}
.wi-night-cloudy:before {content: @night-cloudy;}
.wi-night-cloudy-gusts:before {content: @night-cloudy-gusts;}
.wi-night-cloudy-windy:before {content: @night-cloudy-windy;}
.wi-night-fog:before {content: @night-fog;}
.wi-night-hail:before {content: @night-hail;}
.wi-night-lightning:before {content: @night-lightning;}
.wi-night-partly-cloudy:before {content: @night-partly-cloudy;}
.wi-night-rain:before {content: @night-rain;}
.wi-night-rain-mix:before {content: @night-rain-mix;}
.wi-night-rain-wind:before {content: @night-rain-wind;}
.wi-night-showers:before {content: @night-showers;}
.wi-night-sleet:before {content: @night-sleet;}
.wi-night-sleet-storm:before {content: @night-sleet-storm;}
.wi-night-snow:before {content: @night-snow;}
.wi-night-snow-thunderstorm:before {content: @night-snow-thunderstorm;}
.wi-night-snow-wind:before {content: @night-snow-wind;}
.wi-night-sprinkle:before {content: @night-sprinkle;}
.wi-night-storm-showers:before {content: @night-storm-showers;}
.wi-night-thunderstorm:before {content: @night-thunderstorm;}
.wi-lunar-eclipse:before {content: @lunar-eclipse;}
.wi-stars:before {content: @stars;}
.wi-storm-showers:before {content: @storm-showers;}
.wi-thunderstorm:before {content: @thunderstorm;}
.wi-night-alt-cloudy-high:before {content: @night-alt-cloudy-high;}
.wi-night-cloudy-high:before {content: @night-cloudy-high;}
.wi-night-alt-partly-cloudy:before {content: @night-alt-partly-cloudy;}
================================================
FILE: public/admin-panel/dist/css/icons/weather-icons/less/icon-classes/classes-time.less
================================================
.wi-time-1:before {content: @time-1;}
.wi-time-2:before {content: @time-2;}
.wi-time-3:before {content: @time-3;}
.wi-time-4:before {content: @time-4;}
.wi-time-5:before {content: @time-5;}
.wi-time-6:before {content: @time-6;}
.wi-time-7:before {content: @time-7;}
.wi-time-8:before {content: @time-8;}
.wi-time-9:before {content: @time-9;}
.wi-time-10:before {content: @time-10;}
.wi-time-11:before {content: @time-11;}
.wi-time-12:before {content: @time-12;}
================================================
FILE: public/admin-panel/dist/css/icons/weather-icons/less/icon-classes/classes-wind-aliases.less
================================================
.wi-towards-n {
.wi-wind.towards-0-deg;
}
.wi-towards-nne {
.wi-wind.towards-23-deg;
}
.wi-towards-ne {
.wi-wind.towards-45-deg;
}
.wi-towards-ene {
.wi-wind.towards-68-deg;
}
.wi-towards-e {
.wi-wind.towards-90-deg;
}
.wi-towards-ese {
.wi-wind.towards-113-deg;
}
.wi-towards-se {
.wi-wind.towards-135-deg;
}
.wi-towards-sse {
.wi-wind.towards-158-deg;
}
.wi-towards-s {
.wi-wind.towards-180-deg;
}
.wi-towards-ssw {
.wi-wind.towards-203-deg;
}
.wi-towards-sw {
.wi-wind.towards-225-deg;
}
.wi-towards-wsw {
.wi-wind.towards-248-deg;
}
.wi-towards-w {
.wi-wind.towards-270-deg;
}
.wi-towards-wnw {
.wi-wind.towards-293-deg;
}
.wi-towards-nw {
.wi-wind.towards-313-deg;
}
.wi-towards-nnw {
.wi-wind.towards-336-deg;
}
.wi-from-n {
.wi-wind.from-0-deg;
}
.wi-from-nne {
.wi-wind.from-23-deg;
}
.wi-from-ne {
.wi-wind.from-45-deg;
}
.wi-from-ene {
.wi-wind.from-68-deg;
}
.wi-from-e {
.wi-wind.from-90-deg;
}
.wi-from-ese {
.wi-wind.from-113-deg;
}
.wi-from-se {
.wi-wind.from-135-deg;
}
.wi-from-sse {
.wi-wind.from-158-deg;
}
.wi-from-s {
.wi-wind.from-180-deg;
}
.wi-from-ssw {
.wi-wind.from-203-deg;
}
.wi-from-sw {
.wi-wind.from-225-deg;
}
.wi-from-wsw {
.wi-wind.from-248-deg;
}
.wi-from-w {
.wi-wind.from-270-deg;
}
.wi-from-wnw {
.wi-wind.from-293-deg;
}
.wi-from-nw {
.wi-wind.from-313-deg;
}
.wi-from-nnw {
.wi-wind.from-336-deg;
}
================================================
FILE: public/admin-panel/dist/css/icons/weather-icons/less/icon-classes/classes-wind-degrees.less
================================================
.@{wi-css-prefix}-wind {
&.towards-0-deg {.wind-rotate(0deg);}
&.towards-1-deg {.wind-rotate(1deg);}
&.towards-2-deg {.wind-rotate(2deg);}
&.towards-3-deg {.wind-rotate(3deg);}
&.towards-4-deg {.wind-rotate(4deg);}
&.towards-5-deg {.wind-rotate(5deg);}
&.towards-6-deg {.wind-rotate(6deg);}
&.towards-7-deg {.wind-rotate(7deg);}
&.towards-8-deg {.wind-rotate(8deg);}
&.towards-9-deg {.wind-rotate(9deg);}
&.towards-10-deg {.wind-rotate(10deg);}
&.towards-11-deg {.wind-rotate(11deg);}
&.towards-12-deg {.wind-rotate(12deg);}
&.towards-13-deg {.wind-rotate(13deg);}
&.towards-14-deg {.wind-rotate(14deg);}
&.towards-15-deg {.wind-rotate(15deg);}
&.towards-16-deg {.wind-rotate(16deg);}
&.towards-17-deg {.wind-rotate(17deg);}
&.towards-18-deg {.wind-rotate(18deg);}
&.towards-19-deg {.wind-rotate(19deg);}
&.towards-20-deg {.wind-rotate(20deg);}
&.towards-21-deg {.wind-rotate(21deg);}
&.towards-22-deg {.wind-rotate(22deg);}
&.towards-23-deg {.wind-rotate(23deg);}
&.towards-24-deg {.wind-rotate(24deg);}
&.towards-25-deg {.wind-rotate(25deg);}
&.towards-26-deg {.wind-rotate(26deg);}
&.towards-27-deg {.wind-rotate(27deg);}
&.towards-28-deg {.wind-rotate(28deg);}
&.towards-29-deg {.wind-rotate(29deg);}
&.towards-30-deg {.wind-rotate(30deg);}
&.towards-31-deg {.wind-rotate(31deg);}
&.towards-32-deg {.wind-rotate(32deg);}
&.towards-33-deg {.wind-rotate(33deg);}
&.towards-34-deg {.wind-rotate(34deg);}
&.towards-35-deg {.wind-rotate(35deg);}
&.towards-36-deg {.wind-rotate(36deg);}
&.towards-37-deg {.wind-rotate(37deg);}
&.towards-38-deg {.wind-rotate(38deg);}
&.towards-39-deg {.wind-rotate(39deg);}
&.towards-40-deg {.wind-rotate(40deg);}
&.towards-41-deg {.wind-rotate(41deg);}
&.towards-42-deg {.wind-rotate(42deg);}
&.towards-43-deg {.wind-rotate(43deg);}
&.towards-44-deg {.wind-rotate(44deg);}
&.towards-45-deg {.wind-rotate(45deg);}
&.towards-46-deg {.wind-rotate(46deg);}
&.towards-47-deg {.wind-rotate(47deg);}
&.towards-48-deg {.wind-rotate(48deg);}
&.towards-49-deg {.wind-rotate(49deg);}
&.towards-50-deg {.wind-rotate(50deg);}
&.towards-51-deg {.wind-rotate(51deg);}
&.towards-52-deg {.wind-rotate(52deg);}
&.towards-53-deg {.wind-rotate(53deg);}
&.towards-54-deg {.wind-rotate(54deg);}
&.towards-55-deg {.wind-rotate(55deg);}
&.towards-56-deg {.wind-rotate(56deg);}
&.towards-57-deg {.wind-rotate(57deg);}
&.towards-58-deg {.wind-rotate(58deg);}
&.towards-59-deg {.wind-rotate(59deg);}
&.towards-60-deg {.wind-rotate(60deg);}
&.towards-61-deg {.wind-rotate(61deg);}
&.towards-62-deg {.wind-rotate(62deg);}
&.towards-63-deg {.wind-rotate(63deg);}
&.towards-64-deg {.wind-rotate(64deg);}
&.towards-65-deg {.wind-rotate(65deg);}
&.towards-66-deg {.wind-rotate(66deg);}
&.towards-67-deg {.wind-rotate(67deg);}
&.towards-68-deg {.wind-rotate(68deg);}
&.towards-69-deg {.wind-rotate(69deg);}
&.towards-70-deg {.wind-rotate(70deg);}
&.towards-71-deg {.wind-rotate(71deg);}
&.towards-72-deg {.wind-rotate(72deg);}
&.towards-73-deg {.wind-rotate(73deg);}
&.towards-74-deg {.wind-rotate(74deg);}
&.towards-75-deg {.wind-rotate(75deg);}
&.towards-76-deg {.wind-rotate(76deg);}
&.towards-77-deg {.wind-rotate(77deg);}
&.towards-78-deg {.wind-rotate(78deg);}
&.towards-79-deg {.wind-rotate(79deg);}
&.towards-80-deg {.wind-rotate(80deg);}
&.towards-81-deg {.wind-rotate(81deg);}
&.towards-82-deg {.wind-rotate(82deg);}
&.towards-83-deg {.wind-rotate(83deg);}
&.towards-84-deg {.wind-rotate(84deg);}
&.towards-85-deg {.wind-rotate(85deg);}
&.towards-86-deg {.wind-rotate(86deg);}
&.towards-87-deg {.wind-rotate(87deg);}
&.towards-88-deg {.wind-rotate(88deg);}
&.towards-89-deg {.wind-rotate(89deg);}
&.towards-90-deg {.wind-rotate(90deg);}
&.towards-91-deg {.wind-rotate(91deg);}
&.towards-92-deg {.wind-rotate(92deg);}
&.towards-93-deg {.wind-rotate(93deg);}
&.towards-94-deg {.wind-rotate(94deg);}
&.towards-95-deg {.wind-rotate(95deg);}
&.towards-96-deg {.wind-rotate(96deg);}
&.towards-97-deg {.wind-rotate(97deg);}
&.towards-98-deg {.wind-rotate(98deg);}
&.towards-99-deg {.wind-rotate(99deg);}
&.towards-100-deg {.wind-rotate(100deg);}
&.towards-101-deg {.wind-rotate(101deg);}
&.towards-102-deg {.wind-rotate(102deg);}
&.towards-103-deg {.wind-rotate(103deg);}
&.towards-104-deg {.wind-rotate(104deg);}
&.towards-105-deg {.wind-rotate(105deg);}
&.towards-106-deg {.wind-rotate(106deg);}
&.towards-107-deg {.wind-rotate(107deg);}
&.towards-108-deg {.wind-rotate(108deg);}
&.towards-109-deg {.wind-rotate(109deg);}
&.towards-110-deg {.wind-rotate(110deg);}
&.towards-111-deg {.wind-rotate(111deg);}
&.towards-112-deg {.wind-rotate(112deg);}
&.towards-113-deg {.wind-rotate(113deg);}
&.towards-114-deg {.wind-rotate(114deg);}
&.towards-115-deg {.wind-rotate(115deg);}
&.towards-116-deg {.wind-rotate(116deg);}
&.towards-117-deg {.wind-rotate(117deg);}
&.towards-118-deg {.wind-rotate(118deg);}
&.towards-119-deg {.wind-rotate(119deg);}
&.towards-120-deg {.wind-rotate(120deg);}
&.towards-121-deg {.wind-rotate(121deg);}
&.towards-122-deg {.wind-rotate(122deg);}
&.towards-123-deg {.wind-rotate(123deg);}
&.towards-124-deg {.wind-rotate(124deg);}
&.towards-125-deg {.wind-rotate(125deg);}
&.towards-126-deg {.wind-rotate(126deg);}
&.towards-127-deg {.wind-rotate(127deg);}
&.towards-128-deg {.wind-rotate(128deg);}
&.towards-129-deg {.wind-rotate(129deg);}
&.towards-130-deg {.wind-rotate(130deg);}
&.towards-131-deg {.wind-rotate(131deg);}
&.towards-132-deg {.wind-rotate(132deg);}
&.towards-133-deg {.wind-rotate(133deg);}
&.towards-134-deg {.wind-rotate(134deg);}
&.towards-135-deg {.wind-rotate(135deg);}
&.towards-136-deg {.wind-rotate(136deg);}
&.towards-137-deg {.wind-rotate(137deg);}
&.towards-138-deg {.wind-rotate(138deg);}
&.towards-139-deg {.wind-rotate(139deg);}
&.towards-140-deg {.wind-rotate(140deg);}
&.towards-141-deg {.wind-rotate(141deg);}
&.towards-142-deg {.wind-rotate(142deg);}
&.towards-143-deg {.wind-rotate(143deg);}
&.towards-144-deg {.wind-rotate(144deg);}
&.towards-145-deg {.wind-rotate(145deg);}
&.towards-146-deg {.wind-rotate(146deg);}
&.towards-147-deg {.wind-rotate(147deg);}
&.towards-148-deg {.wind-rotate(148deg);}
&.towards-149-deg {.wind-rotate(149deg);}
&.towards-150-deg {.wind-rotate(150deg);}
&.towards-151-deg {.wind-rotate(151deg);}
&.towards-152-deg {.wind-rotate(152deg);}
&.towards-153-deg {.wind-rotate(153deg);}
&.towards-154-deg {.wind-rotate(154deg);}
&.towards-155-deg {.wind-rotate(155deg);}
&.towards-156-deg {.wind-rotate(156deg);}
&.towards-157-deg {.wind-rotate(157deg);}
&.towards-158-deg {.wind-rotate(158deg);}
&.towards-159-deg {.wind-rotate(159deg);}
&.towards-160-deg {.wind-rotate(160deg);}
&.towards-161-deg {.wind-rotate(161deg);}
&.towards-162-deg {.wind-rotate(162deg);}
&.towards-163-deg {.wind-rotate(163deg);}
&.towards-164-deg {.wind-rotate(164deg);}
&.towards-165-deg {.wind-rotate(165deg);}
&.towards-166-deg {.wind-rotate(166deg);}
&.towards-167-deg {.wind-rotate(167deg);}
&.towards-168-deg {.wind-rotate(168deg);}
&.towards-169-deg {.wind-rotate(169deg);}
&.towards-170-deg {.wind-rotate(170deg);}
&.towards-171-deg {.wind-rotate(171deg);}
&.towards-172-deg {.wind-rotate(172deg);}
&.towards-173-deg {.wind-rotate(173deg);}
&.towards-174-deg {.wind-rotate(174deg);}
&.towards-175-deg {.wind-rotate(175deg);}
&.towards-176-deg {.wind-rotate(176deg);}
&.towards-177-deg {.wind-rotate(177deg);}
&.towards-178-deg {.wind-rotate(178deg);}
&.towards-179-deg {.wind-rotate(179deg);}
&.towards-180-deg {.wind-rotate(180deg);}
&.towards-181-deg {.wind-rotate(181deg);}
&.towards-182-deg {.wind-rotate(182deg);}
&.towards-183-deg {.wind-rotate(183deg);}
&.towards-184-deg {.wind-rotate(184deg);}
&.towards-185-deg {.wind-rotate(185deg);}
&.towards-186-deg {.wind-rotate(186deg);}
&.towards-187-deg {.wind-rotate(187deg);}
&.towards-188-deg {.wind-rotate(188deg);}
&.towards-189-deg {.wind-rotate(189deg);}
&.towards-190-deg {.wind-rotate(190deg);}
&.towards-191-deg {.wind-rotate(191deg);}
&.towards-192-deg {.wind-rotate(192deg);}
&.towards-193-deg {.wind-rotate(193deg);}
&.towards-194-deg {.wind-rotate(194deg);}
&.towards-195-deg {.wind-rotate(195deg);}
&.towards-196-deg {.wind-rotate(196deg);}
&.towards-197-deg {.wind-rotate(197deg);}
&.towards-198-deg {.wind-rotate(198deg);}
&.towards-199-deg {.wind-rotate(199deg);}
&.towards-200-deg {.wind-rotate(200deg);}
&.towards-201-deg {.wind-rotate(201deg);}
&.towards-202-deg {.wind-rotate(202deg);}
&.towards-203-deg {.wind-rotate(203deg);}
&.towards-204-deg {.wind-rotate(204deg);}
&.towards-205-deg {.wind-rotate(205deg);}
&.towards-206-deg {.wind-rotate(206deg);}
&.towards-207-deg {.wind-rotate(207deg);}
&.towards-208-deg {.wind-rotate(208deg);}
&.towards-209-deg {.wind-rotate(209deg);}
&.towards-210-deg {.wind-rotate(210deg);}
&.towards-211-deg {.wind-rotate(211deg);}
&.towards-212-deg {.wind-rotate(212deg);}
&.towards-213-deg {.wind-rotate(213deg);}
&.towards-214-deg {.wind-rotate(214deg);}
&.towards-215-deg {.wind-rotate(215deg);}
&.towards-216-deg {.wind-rotate(216deg);}
&.towards-217-deg {.wind-rotate(217deg);}
&.towards-218-deg {.wind-rotate(218deg);}
&.towards-219-deg {.wind-rotate(219deg);}
&.towards-220-deg {.wind-rotate(220deg);}
&.towards-221-deg {.wind-rotate(221deg);}
&.towards-222-deg {.wind-rotate(222deg);}
&.towards-223-deg {.wind-rotate(223deg);}
&.towards-224-deg {.wind-rotate(224deg);}
&.towards-225-deg {.wind-rotate(225deg);}
&.towards-226-deg {.wind-rotate(226deg);}
&.towards-227-deg {.wind-rotate(227deg);}
&.towards-228-deg {.wind-rotate(228deg);}
&.towards-229-deg {.wind-rotate(229deg);}
&.towards-230-deg {.wind-rotate(230deg);}
&.towards-231-deg {.wind-rotate(231deg);}
&.towards-232-deg {.wind-rotate(232deg);}
&.towards-233-deg {.wind-rotate(233deg);}
&.towards-234-deg {.wind-rotate(234deg);}
&.towards-235-deg {.wind-rotate(235deg);}
&.towards-236-deg {.wind-rotate(236deg);}
&.towards-237-deg {.wind-rotate(237deg);}
&.towards-238-deg {.wind-rotate(238deg);}
&.towards-239-deg {.wind-rotate(239deg);}
&.towards-240-deg {.wind-rotate(240deg);}
&.towards-241-deg {.wind-rotate(241deg);}
&.towards-242-deg {.wind-rotate(242deg);}
&.towards-243-deg {.wind-rotate(243deg);}
&.towards-244-deg {.wind-rotate(244deg);}
&.towards-245-deg {.wind-rotate(245deg);}
&.towards-246-deg {.wind-rotate(246deg);}
&.towards-247-deg {.wind-rotate(247deg);}
&.towards-248-deg {.wind-rotate(248deg);}
&.towards-249-deg {.wind-rotate(249deg);}
&.towards-250-deg {.wind-rotate(250deg);}
&.towards-251-deg {.wind-rotate(251deg);}
&.towards-252-deg {.wind-rotate(252deg);}
&.towards-253-deg {.wind-rotate(253deg);}
&.towards-254-deg {.wind-rotate(254deg);}
&.towards-255-deg {.wind-rotate(255deg);}
&.towards-256-deg {.wind-rotate(256deg);}
&.towards-257-deg {.wind-rotate(257deg);}
&.towards-258-deg {.wind-rotate(258deg);}
&.towards-259-deg {.wind-rotate(259deg);}
&.towards-260-deg {.wind-rotate(260deg);}
&.towards-261-deg {.wind-rotate(261deg);}
&.towards-262-deg {.wind-rotate(262deg);}
&.towards-263-deg {.wind-rotate(263deg);}
&.towards-264-deg {.wind-rotate(264deg);}
&.towards-265-deg {.wind-rotate(265deg);}
&.towards-266-deg {.wind-rotate(266deg);}
&.towards-267-deg {.wind-rotate(267deg);}
&.towards-268-deg {.wind-rotate(268deg);}
&.towards-269-deg {.wind-rotate(269deg);}
&.towards-270-deg {.wind-rotate(270deg);}
&.towards-271-deg {.wind-rotate(271deg);}
&.towards-272-deg {.wind-rotate(272deg);}
&.towards-273-deg {.wind-rotate(273deg);}
&.towards-274-deg {.wind-rotate(274deg);}
&.towards-275-deg {.wind-rotate(275deg);}
&.towards-276-deg {.wind-rotate(276deg);}
&.towards-277-deg {.wind-rotate(277deg);}
&.towards-278-deg {.wind-rotate(278deg);}
&.towards-279-deg {.wind-rotate(279deg);}
&.towards-280-deg {.wind-rotate(280deg);}
&.towards-281-deg {.wind-rotate(281deg);}
&.towards-282-deg {.wind-rotate(282deg);}
&.towards-283-deg {.wind-rotate(283deg);}
&.towards-284-deg {.wind-rotate(284deg);}
&.towards-285-deg {.wind-rotate(285deg);}
&.towards-286-deg {.wind-rotate(286deg);}
&.towards-287-deg {.wind-rotate(287deg);}
&.towards-288-deg {.wind-rotate(288deg);}
&.towards-289-deg {.wind-rotate(289deg);}
&.towards-290-deg {.wind-rotate(290deg);}
&.towards-291-deg {.wind-rotate(291deg);}
&.towards-292-deg {.wind-rotate(292deg);}
&.towards-293-deg {.wind-rotate(293deg);}
&.towards-294-deg {.wind-rotate(294deg);}
&.towards-295-deg {.wind-rotate(295deg);}
&.towards-296-deg {.wind-rotate(296deg);}
&.towards-297-deg {.wind-rotate(297deg);}
&.towards-298-deg {.wind-rotate(298deg);}
&.towards-299-deg {.wind-rotate(299deg);}
&.towards-300-deg {.wind-rotate(300deg);}
&.towards-301-deg {.wind-rotate(301deg);}
&.towards-302-deg {.wind-rotate(302deg);}
&.towards-303-deg {.wind-rotate(303deg);}
&.towards-304-deg {.wind-rotate(304deg);}
&.towards-305-deg {.wind-rotate(305deg);}
&.towards-306-deg {.wind-rotate(306deg);}
&.towards-307-deg {.wind-rotate(307deg);}
&.towards-308-deg {.wind-rotate(308deg);}
&.towards-309-deg {.wind-rotate(309deg);}
&.towards-310-deg {.wind-rotate(310deg);}
&.towards-311-deg {.wind-rotate(311deg);}
&.towards-312-deg {.wind-rotate(312deg);}
&.towards-313-deg {.wind-rotate(313deg);}
&.towards-314-deg {.wind-rotate(314deg);}
&.towards-315-deg {.wind-rotate(315deg);}
&.towards-316-deg {.wind-rotate(316deg);}
&.towards-317-deg {.wind-rotate(317deg);}
&.towards-318-deg {.wind-rotate(318deg);}
&.towards-319-deg {.wind-rotate(319deg);}
&.towards-320-deg {.wind-rotate(320deg);}
&.towards-321-deg {.wind-rotate(321deg);}
&.towards-322-deg {.wind-rotate(322deg);}
&.towards-323-deg {.wind-rotate(323deg);}
&.towards-324-deg {.wind-rotate(324deg);}
&.towards-325-deg {.wind-rotate(325deg);}
&.towards-326-deg {.wind-rotate(326deg);}
&.towards-327-deg {.wind-rotate(327deg);}
&.towards-328-deg {.wind-rotate(328deg);}
&.towards-329-deg {.wind-rotate(329deg);}
&.towards-330-deg {.wind-rotate(330deg);}
&.towards-331-deg {.wind-rotate(331deg);}
&.towards-332-deg {.wind-rotate(332deg);}
&.towards-333-deg {.wind-rotate(333deg);}
&.towards-334-deg {.wind-rotate(334deg);}
&.towards-335-deg {.wind-rotate(335deg);}
&.towards-336-deg {.wind-rotate(336deg);}
&.towards-337-deg {.wind-rotate(337deg);}
&.towards-338-deg {.wind-rotate(338deg);}
&.towards-339-deg {.wind-rotate(339deg);}
&.towards-340-deg {.wind-rotate(340deg);}
&.towards-341-deg {.wind-rotate(341deg);}
&.towards-342-deg {.wind-rotate(342deg);}
&.towards-343-deg {.wind-rotate(343deg);}
&.towards-344-deg {.wind-rotate(344deg);}
&.towards-345-deg {.wind-rotate(345deg);}
&.towards-346-deg {.wind-rotate(346deg);}
&.towards-347-deg {.wind-rotate(347deg);}
&.towards-348-deg {.wind-rotate(348deg);}
&.towards-349-deg {.wind-rotate(349deg);}
&.towards-350-deg {.wind-rotate(350deg);}
&.towards-351-deg {.wind-rotate(351deg);}
&.towards-352-deg {.wind-rotate(352deg);}
&.towards-353-deg {.wind-rotate(353deg);}
&.towards-354-deg {.wind-rotate(354deg);}
&.towards-355-deg {.wind-rotate(355deg);}
&.towards-356-deg {.wind-rotate(356deg);}
&.towards-357-deg {.wind-rotate(357deg);}
&.towards-358-deg {.wind-rotate(358deg);}
&.towards-359-deg {.wind-rotate(359deg);}
&.towards-360-deg {.wind-rotate(0deg);}
&.from-0-deg {.wind-rotate(180deg);}
&.from-1-deg {.wind-rotate(181deg);}
&.from-2-deg {.wind-rotate(182deg);}
&.from-3-deg {.wind-rotate(183deg);}
&.from-4-deg {.wind-rotate(184deg);}
&.from-5-deg {.wind-rotate(185deg);}
&.from-6-deg {.wind-rotate(186deg);}
&.from-7-deg {.wind-rotate(187deg);}
&.from-8-deg {.wind-rotate(188deg);}
&.from-9-deg {.wind-rotate(189deg);}
&.from-10-deg {.wind-rotate(190deg);}
&.from-11-deg {.wind-rotate(191deg);}
&.from-12-deg {.wind-rotate(192deg);}
&.from-13-deg {.wind-rotate(193deg);}
&.from-14-deg {.wind-rotate(194deg);}
&.from-15-deg {.wind-rotate(195deg);}
&.from-16-deg {.wind-rotate(196deg);}
&.from-17-deg {.wind-rotate(197deg);}
&.from-18-deg {.wind-rotate(198deg);}
&.from-19-deg {.wind-rotate(199deg);}
&.from-20-deg {.wind-rotate(200deg);}
&.from-21-deg {.wind-rotate(201deg);}
&.from-22-deg {.wind-rotate(202deg);}
&.from-23-deg {.wind-rotate(203deg);}
&.from-24-deg {.wind-rotate(204deg);}
&.from-25-deg {.wind-rotate(205deg);}
&.from-26-deg {.wind-rotate(206deg);}
&.from-27-deg {.wind-rotate(207deg);}
&.from-28-deg {.wind-rotate(208deg);}
&.from-29-deg {.wind-rotate(209deg);}
&.from-30-deg {.wind-rotate(210deg);}
&.from-31-deg {.wind-rotate(211deg);}
&.from-32-deg {.wind-rotate(212deg);}
&.from-33-deg {.wind-rotate(213deg);}
&.from-34-deg {.wind-rotate(214deg);}
&.from-35-deg {.wind-rotate(215deg);}
&.from-36-deg {.wind-rotate(216deg);}
&.from-37-deg {.wind-rotate(217deg);}
&.from-38-deg {.wind-rotate(218deg);}
&.from-39-deg {.wind-rotate(219deg);}
&.from-40-deg {.wind-rotate(220deg);}
&.from-41-deg {.wind-rotate(221deg);}
&.from-42-deg {.wind-rotate(222deg);}
&.from-43-deg {.wind-rotate(223deg);}
&.from-44-deg {.wind-rotate(224deg);}
&.from-45-deg {.wind-rotate(225deg);}
&.from-46-deg {.wind-rotate(226deg);}
&.from-47-deg {.wind-rotate(227deg);}
&.from-48-deg {.wind-rotate(228deg);}
&.from-49-deg {.wind-rotate(229deg);}
&.from-50-deg {.wind-rotate(230deg);}
&.from-51-deg {.wind-rotate(231deg);}
&.from-52-deg {.wind-rotate(232deg);}
&.from-53-deg {.wind-rotate(233deg);}
&.from-54-deg {.wind-rotate(234deg);}
&.from-55-deg {.wind-rotate(235deg);}
&.from-56-deg {.wind-rotate(236deg);}
&.from-57-deg {.wind-rotate(237deg);}
&.from-58-deg {.wind-rotate(238deg);}
&.from-59-deg {.wind-rotate(239deg);}
&.from-60-deg {.wind-rotate(240deg);}
&.from-61-deg {.wind-rotate(241deg);}
&.from-62-deg {.wind-rotate(242deg);}
&.from-63-deg {.wind-rotate(243deg);}
&.from-64-deg {.wind-rotate(244deg);}
&.from-65-deg {.wind-rotate(245deg);}
&.from-66-deg {.wind-rotate(246deg);}
&.from-67-deg {.wind-rotate(247deg);}
&.from-68-deg {.wind-rotate(248deg);}
&.from-69-deg {.wind-rotate(249deg);}
&.from-70-deg {.wind-rotate(250deg);}
&.from-71-deg {.wind-rotate(251deg);}
&.from-72-deg {.wind-rotate(252deg);}
&.from-73-deg {.wind-rotate(253deg);}
&.from-74-deg {.wind-rotate(254deg);}
&.from-75-deg {.wind-rotate(255deg);}
&.from-76-deg {.wind-rotate(256deg);}
&.from-77-deg {.wind-rotate(257deg);}
&.from-78-deg {.wind-rotate(258deg);}
&.from-79-deg {.wind-rotate(259deg);}
&.from-80-deg {.wind-rotate(260deg);}
&.from-81-deg {.wind-rotate(261deg);}
&.from-82-deg {.wind-rotate(262deg);}
&.from-83-deg {.wind-rotate(263deg);}
&.from-84-deg {.wind-rotate(264deg);}
&.from-85-deg {.wind-rotate(265deg);}
&.from-86-deg {.wind-rotate(266deg);}
&.from-87-deg {.wind-rotate(267deg);}
&.from-88-deg {.wind-rotate(268deg);}
&.from-89-deg {.wind-rotate(269deg);}
&.from-90-deg {.wind-rotate(270deg);}
&.from-91-deg {.wind-rotate(271deg);}
&.from-92-deg {.wind-rotate(272deg);}
&.from-93-deg {.wind-rotate(273deg);}
&.from-94-deg {.wind-rotate(274deg);}
&.from-95-deg {.wind-rotate(275deg);}
&.from-96-deg {.wind-rotate(276deg);}
&.from-97-deg {.wind-rotate(277deg);}
&.from-98-deg {.wind-rotate(278deg);}
&.from-99-deg {.wind-rotate(279deg);}
&.from-100-deg {.wind-rotate(280deg);}
&.from-101-deg {.wind-rotate(281deg);}
&.from-102-deg {.wind-rotate(282deg);}
&.from-103-deg {.wind-rotate(283deg);}
&.from-104-deg {.wind-rotate(284deg);}
&.from-105-deg {.wind-rotate(285deg);}
&.from-106-deg {.wind-rotate(286deg);}
&.from-107-deg {.wind-rotate(287deg);}
&.from-108-deg {.wind-rotate(288deg);}
&.from-109-deg {.wind-rotate(289deg);}
&.from-110-deg {.wind-rotate(290deg);}
&.from-111-deg {.wind-rotate(291deg);}
&.from-112-deg {.wind-rotate(292deg);}
&.from-113-deg {.wind-rotate(293deg);}
&.from-114-deg {.wind-rotate(294deg);}
&.from-115-deg {.wind-rotate(295deg);}
&.from-116-deg {.wind-rotate(296deg);}
&.from-117-deg {.wind-rotate(297deg);}
&.from-118-deg {.wind-rotate(298deg);}
&.from-119-deg {.wind-rotate(299deg);}
&.from-120-deg {.wind-rotate(300deg);}
&.from-121-deg {.wind-rotate(301deg);}
&.from-122-deg {.wind-rotate(302deg);}
&.from-123-deg {.wind-rotate(303deg);}
&.from-124-deg {.wind-rotate(304deg);}
&.from-125-deg {.wind-rotate(305deg);}
&.from-126-deg {.wind-rotate(306deg);}
&.from-127-deg {.wind-rotate(307deg);}
&.from-128-deg {.wind-rotate(308deg);}
&.from-129-deg {.wind-rotate(309deg);}
&.from-130-deg {.wind-rotate(310deg);}
&.from-131-deg {.wind-rotate(311deg);}
&.from-132-deg {.wind-rotate(312deg);}
&.from-133-deg {.wind-rotate(313deg);}
&.from-134-deg {.wind-rotate(314deg);}
&.from-135-deg {.wind-rotate(315deg);}
&.from-136-deg {.wind-rotate(316deg);}
&.from-137-deg {.wind-rotate(317deg);}
&.from-138-deg {.wind-rotate(318deg);}
&.from-139-deg {.wind-rotate(319deg);}
&.from-140-deg {.wind-rotate(320deg);}
&.from-141-deg {.wind-rotate(321deg);}
&.from-142-deg {.wind-rotate(322deg);}
&.from-143-deg {.wind-rotate(323deg);}
&.from-144-deg {.wind-rotate(324deg);}
&.from-145-deg {.wind-rotate(325deg);}
&.from-146-deg {.wind-rotate(326deg);}
&.from-147-deg {.wind-rotate(327deg);}
&.from-148-deg {.wind-rotate(328deg);}
&.from-149-deg {.wind-rotate(329deg);}
&.from-150-deg {.wind-rotate(330deg);}
&.from-151-deg {.wind-rotate(331deg);}
&.from-152-deg {.wind-rotate(332deg);}
&.from-153-deg {.wind-rotate(333deg);}
&.from-154-deg {.wind-rotate(334deg);}
&.from-155-deg {.wind-rotate(335deg);}
&.from-156-deg {.wind-rotate(336deg);}
&.from-157-deg {.wind-rotate(337deg);}
&.from-158-deg {.wind-rotate(338deg);}
&.from-159-deg {.wind-rotate(339deg);}
&.from-160-deg {.wind-rotate(340deg);}
&.from-161-deg {.wind-rotate(341deg);}
&.from-162-deg {.wind-rotate(342deg);}
&.from-163-deg {.wind-rotate(343deg);}
&.from-164-deg {.wind-rotate(344deg);}
&.from-165-deg {.wind-rotate(345deg);}
&.from-166-deg {.wind-rotate(346deg);}
&.from-167-deg {.wind-rotate(347deg);}
&.from-168-deg {.wind-rotate(348deg);}
&.from-169-deg {.wind-rotate(349deg);}
&.from-170-deg {.wind-rotate(350deg);}
&.from-171-deg {.wind-rotate(351deg);}
&.from-172-deg {.wind-rotate(352deg);}
&.from-173-deg {.wind-rotate(353deg);}
&.from-174-deg {.wind-rotate(354deg);}
&.from-175-deg {.wind-rotate(355deg);}
&.from-176-deg {.wind-rotate(356deg);}
&.from-177-deg {.wind-rotate(357deg);}
&.from-178-deg {.wind-rotate(358deg);}
&.from-179-deg {.wind-rotate(359deg);}
&.from-180-deg {.wind-rotate(0deg);}
&.from-181-deg {.wind-rotate(1deg);}
&.from-182-deg {.wind-rotate(2deg);}
&.from-183-deg {.wind-rotate(3deg);}
&.from-184-deg {.wind-rotate(4deg);}
&.from-185-deg {.wind-rotate(5deg);}
&.from-186-deg {.wind-rotate(6deg);}
&.from-187-deg {.wind-rotate(7deg);}
&.from-188-deg {.wind-rotate(8deg);}
&.from-189-deg {.wind-rotate(9deg);}
&.from-190-deg {.wind-rotate(10deg);}
&.from-191-deg {.wind-rotate(11deg);}
&.from-192-deg {.wind-rotate(12deg);}
&.from-193-deg {.wind-rotate(13deg);}
&.from-194-deg {.wind-rotate(14deg);}
&.from-195-deg {.wind-rotate(15deg);}
&.from-196-deg {.wind-rotate(16deg);}
&.from-197-deg {.wind-rotate(17deg);}
&.from-198-deg {.wind-rotate(18deg);}
&.from-199-deg {.wind-rotate(19deg);}
&.from-200-deg {.wind-rotate(20deg);}
&.from-201-deg {.wind-rotate(21deg);}
&.from-202-deg {.wind-rotate(22deg);}
&.from-203-deg {.wind-rotate(23deg);}
&.from-204-deg {.wind-rotate(24deg);}
&.from-205-deg {.wind-rotate(25deg);}
&.from-206-deg {.wind-rotate(26deg);}
&.from-207-deg {.wind-rotate(27deg);}
&.from-208-deg {.wind-rotate(28deg);}
&.from-209-deg {.wind-rotate(29deg);}
&.from-210-deg {.wind-rotate(30deg);}
&.from-211-deg {.wind-rotate(31deg);}
&.from-212-deg {.wind-rotate(32deg);}
&.from-213-deg {.wind-rotate(33deg);}
&.from-214-deg {.wind-rotate(34deg);}
&.from-215-deg {.wind-rotate(35deg);}
&.from-216-deg {.wind-rotate(36deg);}
&.from-217-deg {.wind-rotate(37deg);}
&.from-218-deg {.wind-rotate(38deg);}
&.from-219-deg {.wind-rotate(39deg);}
&.from-220-deg {.wind-rotate(40deg);}
&.from-221-deg {.wind-rotate(41deg);}
&.from-222-deg {.wind-rotate(42deg);}
&.from-223-deg {.wind-rotate(43deg);}
&.from-224-deg {.wind-rotate(44deg);}
&.from-225-deg {.wind-rotate(45deg);}
&.from-226-deg {.wind-rotate(46deg);}
&.from-227-deg {.wind-rotate(47deg);}
&.from-228-deg {.wind-rotate(48deg);}
&.from-229-deg {.wind-rotate(49deg);}
&.from-230-deg {.wind-rotate(50deg);}
&.from-231-deg {.wind-rotate(51deg);}
&.from-232-deg {.wind-rotate(52deg);}
&.from-233-deg {.wind-rotate(53deg);}
&.from-234-deg {.wind-rotate(54deg);}
&.from-235-deg {.wind-rotate(55deg);}
&.from-236-deg {.wind-rotate(56deg);}
&.from-237-deg {.wind-rotate(57deg);}
&.from-238-deg {.wind-rotate(58deg);}
&.from-239-deg {.wind-rotate(59deg);}
&.from-240-deg {.wind-rotate(60deg);}
&.from-241-deg {.wind-rotate(61deg);}
&.from-242-deg {.wind-rotate(62deg);}
&.from-243-deg {.wind-rotate(63deg);}
&.from-244-deg {.wind-rotate(64deg);}
&.from-245-deg {.wind-rotate(65deg);}
&.from-246-deg {.wind-rotate(66deg);}
&.from-247-deg {.wind-rotate(67deg);}
&.from-248-deg {.wind-rotate(68deg);}
&.from-249-deg {.wind-rotate(69deg);}
&.from-250-deg {.wind-rotate(70deg);}
&.from-251-deg {.wind-rotate(71deg);}
&.from-252-deg {.wind-rotate(72deg);}
&.from-253-deg {.wind-rotate(73deg);}
&.from-254-deg {.wind-rotate(74deg);}
&.from-255-deg {.wind-rotate(75deg);}
&.from-256-deg {.wind-rotate(76deg);}
&.from-257-deg {.wind-rotate(77deg);}
&.from-258-deg {.wind-rotate(78deg);}
&.from-259-deg {.wind-rotate(79deg);}
&.from-260-deg {.wind-rotate(80deg);}
&.from-261-deg {.wind-rotate(81deg);}
&.from-262-deg {.wind-rotate(82deg);}
&.from-263-deg {.wind-rotate(83deg);}
&.from-264-deg {.wind-rotate(84deg);}
&.from-265-deg {.wind-rotate(85deg);}
&.from-266-deg {.wind-rotate(86deg);}
&.from-267-deg {.wind-rotate(87deg);}
&.from-268-deg {.wind-rotate(88deg);}
&.from-269-deg {.wind-rotate(89deg);}
&.from-270-deg {.wind-rotate(90deg);}
&.from-271-deg {.wind-rotate(91deg);}
&.from-272-deg {.wind-rotate(92deg);}
&.from-273-deg {.wind-rotate(93deg);}
&.from-274-deg {.wind-rotate(94deg);}
&.from-275-deg {.wind-rotate(95deg);}
&.from-276-deg {.wind-rotate(96deg);}
&.from-277-deg {.wind-rotate(97deg);}
&.from-278-deg {.wind-rotate(98deg);}
&.from-279-deg {.wind-rotate(99deg);}
&.from-280-deg {.wind-rotate(100deg);}
&.from-281-deg {.wind-rotate(101deg);}
&.from-282-deg {.wind-rotate(102deg);}
&.from-283-deg {.wind-rotate(103deg);}
&.from-284-deg {.wind-rotate(104deg);}
&.from-285-deg {.wind-rotate(105deg);}
&.from-286-deg {.wind-rotate(106deg);}
&.from-287-deg {.wind-rotate(107deg);}
&.from-288-deg {.wind-rotate(108deg);}
&.from-289-deg {.wind-rotate(109deg);}
&.from-290-deg {.wind-rotate(110deg);}
&.from-291-deg {.wind-rotate(111deg);}
&.from-292-deg {.wind-rotate(112deg);}
&.from-293-deg {.wind-rotate(113deg);}
&.from-294-deg {.wind-rotate(114deg);}
&.from-295-deg {.wind-rotate(115deg);}
&.from-296-deg {.wind-rotate(116deg);}
&.from-297-deg {.wind-rotate(117deg);}
&.from-298-deg {.wind-rotate(118deg);}
&.from-299-deg {.wind-rotate(119deg);}
&.from-300-deg {.wind-rotate(120deg);}
&.from-301-deg {.wind-rotate(121deg);}
&.from-302-deg {.wind-rotate(122deg);}
&.from-303-deg {.wind-rotate(123deg);}
&.from-304-deg {.wind-rotate(124deg);}
&.from-305-deg {.wind-rotate(125deg);}
&.from-306-deg {.wind-rotate(126deg);}
&.from-307-deg {.wind-rotate(127deg);}
&.from-308-deg {.wind-rotate(128deg);}
&.from-309-deg {.wind-rotate(129deg);}
&.from-310-deg {.wind-rotate(130deg);}
&.from-311-deg {.wind-rotate(131deg);}
&.from-312-deg {.wind-rotate(132deg);}
&.from-313-deg {.wind-rotate(133deg);}
&.from-314-deg {.wind-rotate(134deg);}
&.from-315-deg {.wind-rotate(135deg);}
&.from-316-deg {.wind-rotate(136deg);}
&.from-317-deg {.wind-rotate(137deg);}
&.from-318-deg {.wind-rotate(138deg);}
&.from-319-deg {.wind-rotate(139deg);}
&.from-320-deg {.wind-rotate(140deg);}
&.from-321-deg {.wind-rotate(141deg);}
&.from-322-deg {.wind-rotate(142deg);}
&.from-323-deg {.wind-rotate(143deg);}
&.from-324-deg {.wind-rotate(144deg);}
&.from-325-deg {.wind-rotate(145deg);}
&.from-326-deg {.wind-rotate(146deg);}
&.from-327-deg {.wind-rotate(147deg);}
&.from-328-deg {.wind-rotate(148deg);}
&.from-329-deg {.wind-rotate(149deg);}
&.from-330-deg {.wind-rotate(150deg);}
&.from-331-deg {.wind-rotate(151deg);}
&.from-332-deg {.wind-rotate(152deg);}
&.from-333-deg {.wind-rotate(153deg);}
&.from-334-deg {.wind-rotate(154deg);}
&.from-335-deg {.wind-rotate(155deg);}
&.from-336-deg {.wind-rotate(156deg);}
&.from-337-deg {.wind-rotate(157deg);}
&.from-338-deg {.wind-rotate(158deg);}
&.from-339-deg {.wind-rotate(159deg);}
&.from-340-deg {.wind-rotate(160deg);}
&.from-341-deg {.wind-rotate(161deg);}
&.from-342-deg {.wind-rotate(162deg);}
&.from-343-deg {.wind-rotate(163deg);}
&.from-344-deg {.wind-rotate(164deg);}
&.from-345-deg {.wind-rotate(165deg);}
&.from-346-deg {.wind-rotate(166deg);}
&.from-347-deg {.wind-rotate(167deg);}
&.from-348-deg {.wind-rotate(168deg);}
&.from-349-deg {.wind-rotate(169deg);}
&.from-350-deg {.wind-rotate(170deg);}
&.from-351-deg {.wind-rotate(171deg);}
&.from-352-deg {.wind-rotate(172deg);}
&.from-353-deg {.wind-rotate(173deg);}
&.from-354-deg {.wind-rotate(174deg);}
&.from-355-deg {.wind-rotate(175deg);}
&.from-356-deg {.wind-rotate(176deg);}
&.from-357-deg {.wind-rotate(177deg);}
&.from-358-deg {.wind-rotate(178deg);}
&.from-359-deg {.wind-rotate(179deg);}
&.from-360-deg {.wind-rotate(180deg);}
}
================================================
FILE: public/admin-panel/dist/css/icons/weather-icons/less/icon-classes/classes-wind.less
================================================
// Wind Variables 2.0
@wind: "\f0b1";
.@{wi-css-prefix}-wind:before { content: @wind; }
.wind-rotate(@degrees) {
-webkit-transform: rotate(@degrees);
-moz-transform: rotate(@degrees);
-ms-transform: rotate(@degrees);
-o-transform: rotate(@degrees);
transform: rotate(@degrees);
}
@import "classes-wind-degrees.less";
================================================
FILE: public/admin-panel/dist/css/icons/weather-icons/less/icon-variables/variables-beaufort.less
================================================
@wind-beaufort-0: "\f0b7";
@wind-beaufort-1: "\f0b8";
@wind-beaufort-2: "\f0b9";
@wind-beaufort-3: "\f0ba";
@wind-beaufort-4: "\f0bb";
@wind-beaufort-5: "\f0bc";
@wind-beaufort-6: "\f0bd";
@wind-beaufort-7: "\f0be";
@wind-beaufort-8: "\f0bf";
@wind-beaufort-9: "\f0c0";
@wind-beaufort-10: "\f0c1";
@wind-beaufort-11: "\f0c2";
@wind-beaufort-12: "\f0c3";
================================================
FILE: public/admin-panel/dist/css/icons/weather-icons/less/icon-variables/variables-day.less
================================================
@day-sunny: "\f00d";
@day-cloudy: "\f002";
@day-cloudy-gusts: "\f000";
@day-cloudy-windy: "\f001";
@day-fog: "\f003";
@day-hail: "\f004";
@day-haze: "\f0b6";
@day-lightning: "\f005";
@day-rain: "\f008";
@day-rain-mix: "\f006";
@day-rain-wind: "\f007";
@day-showers: "\f009";
@day-sleet: "\f0b2";
@day-sleet-storm: "\f068";
@day-snow: "\f00a";
@day-snow-thunderstorm: "\f06b";
@day-snow-wind: "\f065";
@day-sprinkle: "\f00b";
@day-storm-showers: "\f00e";
@day-sunny-overcast: "\f00c";
@day-thunderstorm: "\f010";
@day-windy: "\f085";
@solar-eclipse: "\f06e";
@hot: "\f072";
@day-cloudy-high: "\f07d";
@day-light-wind: "\f0c4";
================================================
FILE: public/admin-panel/dist/css/icons/weather-icons/less/icon-variables/variables-direction.less
================================================
@direction-up: "\f058";
@direction-up-right: "\f057";
@direction-right: "\f04d";
@direction-down-right: "\f088";
@direction-down: "\f044";
@direction-down-left: "\f043";
@direction-left: "\f048";
@direction-up-left: "\f087";
================================================
FILE: public/admin-panel/dist/css/icons/weather-icons/less/icon-variables/variables-misc.less
================================================
@alien: "\f075";
@celsius: "\f03c";
@fahrenheit: "\f045";
@degrees: "\f042";
@thermometer: "\f055";
@thermometer-exterior: "\f053";
@thermometer-internal: "\f054";
@cloud-down: "\f03d";
@cloud-up: "\f040";
@cloud-refresh: "\f03e";
@horizon: "\f047";
@horizon-alt: "\f046";
@sunrise: "\f051";
@sunset: "\f052";
@moonrise: "\f0c9";
@moonset: "\f0ca";
@refresh: "\f04c";
@refresh-alt: "\f04b";
@umbrella: "\f084";
@barometer: "\f079";
@humidity: "\f07a";
@na: "\f07b";
@train: "\f0cb";
================================================
FILE: public/admin-panel/dist/css/icons/weather-icons/less/icon-variables/variables-moon.less
================================================
@moon-new: "\f095";
@moon-waxing-cresent-1: "\f096";
@moon-waxing-cresent-2: "\f097";
@moon-waxing-cresent-3: "\f098";
@moon-waxing-cresent-4: "\f099";
@moon-waxing-cresent-5: "\f09a";
@moon-waxing-cresent-6: "\f09b";
@moon-first-quarter: "\f09c";
@moon-waxing-gibbous-1: "\f09d";
@moon-waxing-gibbous-2: "\f09e";
@moon-waxing-gibbous-3: "\f09f";
@moon-waxing-gibbous-4: "\f0a0";
@moon-waxing-gibbous-5: "\f0a1";
@moon-waxing-gibbous-6: "\f0a2";
@moon-full: "\f0a3";
@moon-waning-gibbous-1: "\f0a4";
@moon-waning-gibbous-2: "\f0a5";
@moon-waning-gibbous-3: "\f0a6";
@moon-waning-gibbous-4: "\f0a7";
@moon-waning-gibbous-5: "\f0a8";
@moon-waning-gibbous-6: "\f0a9";
@moon-third-quarter: "\f0aa";
@moon-waning-crescent-1: "\f0ab";
@moon-waning-crescent-2: "\f0ac";
@moon-waning-crescent-3: "\f0ad";
@moon-waning-crescent-4: "\f0ae";
@moon-waning-crescent-5: "\f0af";
@moon-waning-crescent-6: "\f0b0";
@moon-alt-new: "\f0eb";
@moon-alt-waxing-cresent-1: "\f0d0";
@moon-alt-waxing-cresent-2: "\f0d1";
@moon-alt-waxing-cresent-3: "\f0d2";
@moon-alt-waxing-cresent-4: "\f0d3";
@moon-alt-waxing-cresent-5: "\f0d4";
@moon-alt-waxing-cresent-6: "\f0d5";
@moon-alt-first-quarter: "\f0d6";
@moon-alt-waxing-gibbous-1: "\f0d7";
@moon-alt-waxing-gibbous-2: "\f0d8";
@moon-alt-waxing-gibbous-3: "\f0d9";
@moon-alt-waxing-gibbous-4: "\f0da";
@moon-alt-waxing-gibbous-5: "\f0db";
@moon-alt-waxing-gibbous-6: "\f0dc";
@moon-alt-full: "\f0dd";
@moon-alt-waning-gibbous-1: "\f0de";
@moon-alt-waning-gibbous-2: "\f0df";
@moon-alt-waning-gibbous-3: "\f0e0";
@moon-alt-waning-gibbous-4: "\f0e1";
@moon-alt-waning-gibbous-5: "\f0e2";
@moon-alt-waning-gibbous-6: "\f0e3";
@moon-alt-third-quarter: "\f0e4";
@moon-alt-waning-crescent-1: "\f0e5";
@moon-alt-waning-crescent-2: "\f0e6";
@moon-alt-waning-crescent-3: "\f0e7";
@moon-alt-waning-crescent-4: "\f0e8";
@moon-alt-waning-crescent-5: "\f0e9";
@moon-alt-waning-crescent-6: "\f0ea";
================================================
FILE: public/admin-panel/dist/css/icons/weather-icons/less/icon-variables/variables-neutral.less
================================================
@cloud: "\f041";
@cloudy: "\f013";
@cloudy-gusts: "\f011";
@cloudy-windy: "\f012";
@fog: "\f014";
@hail: "\f015";
@rain: "\f019";
@rain-mix: "\f017";
@rain-wind: "\f018";
@showers: "\f01a";
@sleet: "\f0b5";
@snow: "\f01b";
@sprinkle: "\f01c";
@storm-showers: "\f01d";
@thunderstorm: "\f01e";
@snow-wind: "\f064";
@snow: "\f01b";
@smog: "\f074";
@smoke: "\f062";
@lightning: "\f016";
@raindrops: "\f04e";
@raindrop: "\f078";
@dust: "\f063";
@snowflake-cold: "\f076";
@windy: "\f021";
@strong-wind: "\f050";
@sandstorm: "\f082";
@earthquake: "\f0c6";
@fire: "\f0c7";
@flood: "\f07c";
@meteor: "\f071";
@tsunami: "\f0c5";
@volcano: "\f0c8";
@hurricane: "\f073";
@tornado: "\f056";
@small-craft-advisory: "\f0cc";
@gale-warning: "\f0cd";
@storm-warning: "\f0ce";
@hurricane-warning: "\f0cf";
@wind-direction: "\f0b1";
================================================
FILE: public/admin-panel/dist/css/icons/weather-icons/less/icon-variables/variables-night.less
================================================
@night-clear: "\f02e";
@night-alt-cloudy: "\f086";
@night-alt-cloudy-gusts: "\f022";
@night-alt-cloudy-windy: "\f023";
@night-alt-hail: "\f024";
@night-alt-lightning: "\f025";
@night-alt-rain: "\f028";
@night-alt-rain-mix: "\f026";
@night-alt-rain-wind: "\f027";
@night-alt-showers: "\f029";
@night-alt-sleet: "\f0b4";
@night-alt-sleet-storm: "\f06a";
@night-alt-snow: "\f02a";
@night-alt-snow-thunderstorm: "\f06d";
@night-alt-snow-wind: "\f067";
@night-alt-sprinkle: "\f02b";
@night-alt-storm-showers: "\f02c";
@night-alt-thunderstorm: "\f02d";
@night-cloudy: "\f031";
@night-cloudy-gusts: "\f02f";
@night-cloudy-windy: "\f030";
@night-fog: "\f04a";
@night-hail: "\f032";
@night-lightning: "\f033";
@night-partly-cloudy: "\f083";
@night-rain: "\f036";
@night-rain-mix: "\f034";
@night-rain-wind: "\f035";
@night-showers: "\f037";
@night-sleet: "\f0b3";
@night-sleet-storm: "\f069";
@night-snow: "\f038";
@night-snow-thunderstorm: "\f06c";
@night-snow-wind: "\f066";
@night-sprinkle: "\f039";
@night-storm-showers: "\f03a";
@night-thunderstorm: "\f03b";
@lunar-eclipse: "\f070";
@stars: "\f077";
@storm-showers: "\f01d";
@thunderstorm: "\f01e";
@night-alt-cloudy-high: "\f07e";
@night-cloudy-high: "\f080";
@night-alt-partly-cloudy: "\f081";
================================================
FILE: public/admin-panel/dist/css/icons/weather-icons/less/icon-variables/variables-time.less
================================================
@time-1: "\f08a";
@time-2: "\f08b";
@time-3: "\f08c";
@time-4: "\f08d";
@time-5: "\f08e";
@time-6: "\f08f";
@time-7: "\f090";
@time-8: "\f091";
@time-9: "\f092";
@time-10: "\f093";
@time-11: "\f094";
@time-12: "\f089";
================================================
FILE: public/admin-panel/dist/css/icons/weather-icons/less/icon-variables/variables-wind-names.less
================================================
@n: "\f0b1";
@nne: "\f0b1";
@ne: "\f0b1";
@ene: "\f0b1";
@e: "\f0b1";
@ese: "\f0b1";
@se: "\f0b1";
@sse: "\f0b1";
@s: "\f0b1";
@ssw: "\f0b1";
@sw: "\f0b1";
@wsw: "\f0b1";
@w: "\f0b1";
@wnw: "\f0b1";
@nw: "\f0b1";
@nnw: "\f0b1";
@n: "\f0b1";
@nne: "\f0b1";
@ne: "\f0b1";
@ene: "\f0b1";
@e: "\f0b1";
@ese: "\f0b1";
@se: "\f0b1";
@sse: "\f0b1";
@s: "\f0b1";
@ssw: "\f0b1";
@sw: "\f0b1";
@wsw: "\f0b1";
@w: "\f0b1";
@wnw: "\f0b1";
@nw: "\f0b1";
@nnw: "\f0b1";
================================================
FILE: public/admin-panel/dist/css/icons/weather-icons/less/mappings/wi-forecast-io.less
================================================
.@{wi-css-prefix}-forecast-io-clear-day:before { content: @day-sunny ; }
.@{wi-css-prefix}-forecast-io-clear-night:before { content: @night-clear ; }
.@{wi-css-prefix}-forecast-io-rain:before { content: @rain ; }
.@{wi-css-prefix}-forecast-io-snow:before { content: @snow ; }
.@{wi-css-prefix}-forecast-io-sleet:before { content: @sleet ; }
.@{wi-css-prefix}-forecast-io-wind:before { content: @strong-wind ; }
.@{wi-css-prefix}-forecast-io-fog:before { content: @fog ; }
.@{wi-css-prefix}-forecast-io-cloudy:before { content: @cloudy ; }
.@{wi-css-prefix}-forecast-io-partly-cloudy-day:before { content: @day-cloudy ; }
.@{wi-css-prefix}-forecast-io-partly-cloudy-night:before { content: @night-cloudy ; }
.@{wi-css-prefix}-forecast-io-hail:before { content: @hail ; }
.@{wi-css-prefix}-forecast-io-thunderstorm:before { content: @thunderstorm ; }
.@{wi-css-prefix}-forecast-io-tornado:before { content: @tornado ; }
================================================
FILE: public/admin-panel/dist/css/icons/weather-icons/less/mappings/wi-owm.less
================================================
// Neutral
.@{wi-css-prefix}-owm-200:before { content: @thunderstorm ; }
.@{wi-css-prefix}-owm-201:before { content: @thunderstorm ; }
.@{wi-css-prefix}-owm-202:before { content: @thunderstorm ; }
.@{wi-css-prefix}-owm-210:before { content: @lightning ; }
.@{wi-css-prefix}-owm-211:before { content: @lightning ; }
.@{wi-css-prefix}-owm-212:before { content: @lightning ; }
.@{wi-css-prefix}-owm-221:before { content: @lightning ; }
.@{wi-css-prefix}-owm-230:before { content: @thunderstorm ; }
.@{wi-css-prefix}-owm-231:before { content: @thunderstorm ; }
.@{wi-css-prefix}-owm-232:before { content: @thunderstorm ; }
.@{wi-css-prefix}-owm-300:before { content: @sprinkle ; }
.@{wi-css-prefix}-owm-301:before { content: @sprinkle ; }
.@{wi-css-prefix}-owm-302:before { content: @rain ; }
.@{wi-css-prefix}-owm-310:before { content: @rain-mix ; }
.@{wi-css-prefix}-owm-311:before { content: @rain ; }
.@{wi-css-prefix}-owm-312:before { content: @rain ; }
.@{wi-css-prefix}-owm-313:before { content: @showers ; }
.@{wi-css-prefix}-owm-314:before { content: @rain ; }
.@{wi-css-prefix}-owm-321:before { content: @sprinkle ; }
.@{wi-css-prefix}-owm-500:before { content: @sprinkle ; }
.@{wi-css-prefix}-owm-501:before { content: @rain ; }
.@{wi-css-prefix}-owm-502:before { content: @rain ; }
.@{wi-css-prefix}-owm-503:before { content: @rain ; }
.@{wi-css-prefix}-owm-504:before { content: @rain ; }
.@{wi-css-prefix}-owm-511:before { content: @rain-mix ; }
.@{wi-css-prefix}-owm-520:before { content: @showers ; }
.@{wi-css-prefix}-owm-521:before { content: @showers ; }
.@{wi-css-prefix}-owm-522:before { content: @showers ; }
.@{wi-css-prefix}-owm-531:before { content: @storm-showers ; }
.@{wi-css-prefix}-owm-600:before { content: @snow ; }
.@{wi-css-prefix}-owm-601:before { content: @snow ; }
.@{wi-css-prefix}-owm-602:before { content: @sleet ; }
.@{wi-css-prefix}-owm-611:before { content: @rain-mix ; }
.@{wi-css-prefix}-owm-612:before { content: @rain-mix ; }
.@{wi-css-prefix}-owm-615:before { content: @rain-mix ; }
.@{wi-css-prefix}-owm-616:before { content: @rain-mix ; }
.@{wi-css-prefix}-owm-620:before { content: @rain-mix ; }
.@{wi-css-prefix}-owm-621:before { content: @snow ; }
.@{wi-css-prefix}-owm-622:before { content: @snow ; }
.@{wi-css-prefix}-owm-701:before { content: @showers ; }
.@{wi-css-prefix}-owm-711:before { content: @smoke ; }
.@{wi-css-prefix}-owm-721:before { content: @day-haze ; }
.@{wi-css-prefix}-owm-731:before { content: @dust ; }
.@{wi-css-prefix}-owm-741:before { content: @fog ; }
.@{wi-css-prefix}-owm-761:before { content: @dust ; }
.@{wi-css-prefix}-owm-762:before { content: @dust ; }
.@{wi-css-prefix}-owm-771:before { content: @cloudy-gusts ; }
.@{wi-css-prefix}-owm-781:before { content: @tornado ; }
.@{wi-css-prefix}-owm-800:before { content: @day-sunny ; }
.@{wi-css-prefix}-owm-801:before { content: @cloudy-gusts ; }
.@{wi-css-prefix}-owm-802:before { content: @cloudy-gusts ; }
.@{wi-css-prefix}-owm-803:before { content: @cloudy-gusts ; }
.@{wi-css-prefix}-owm-803:before { content: @cloudy-windy ; }
.@{wi-css-prefix}-owm-804:before { content: @cloudy ; }
.@{wi-css-prefix}-owm-900:before { content: @tornado ; }
.@{wi-css-prefix}-owm-901:before { content: @storm-showers ; }
.@{wi-css-prefix}-owm-902:before { content: @hurricane ; }
.@{wi-css-prefix}-owm-903:before { content: @snowflake-cold ; }
.@{wi-css-prefix}-owm-904:before { content: @hot ; }
.@{wi-css-prefix}-owm-905:before { content: @windy ; }
.@{wi-css-prefix}-owm-906:before { content: @hail ; }
.@{wi-css-prefix}-owm-957:before { content: @strong-wind ; }
//Day
.@{wi-css-prefix}-owm-day-200:before { content: @day-thunderstorm ; }
.@{wi-css-prefix}-owm-day-201:before { content: @day-thunderstorm ; }
.@{wi-css-prefix}-owm-day-202:before { content: @day-thunderstorm ; }
.@{wi-css-prefix}-owm-day-210:before { content: @day-lightning ; }
.@{wi-css-prefix}-owm-day-211:before { content: @day-lightning ; }
.@{wi-css-prefix}-owm-day-212:before { content: @day-lightning ; }
.@{wi-css-prefix}-owm-day-221:before { content: @day-lightning ; }
.@{wi-css-prefix}-owm-day-230:before { content: @day-thunderstorm ; }
.@{wi-css-prefix}-owm-day-231:before { content: @day-thunderstorm ; }
.@{wi-css-prefix}-owm-day-232:before { content: @day-thunderstorm ; }
.@{wi-css-prefix}-owm-day-300:before { content: @day-sprinkle ; }
.@{wi-css-prefix}-owm-day-301:before { content: @day-sprinkle ; }
.@{wi-css-prefix}-owm-day-302:before { content: @day-rain ; }
.@{wi-css-prefix}-owm-day-310:before { content: @day-rain ; }
.@{wi-css-prefix}-owm-day-311:before { content: @day-rain ; }
.@{wi-css-prefix}-owm-day-312:before { content: @day-rain ; }
.@{wi-css-prefix}-owm-day-313:before { content: @day-rain ; }
.@{wi-css-prefix}-owm-day-314:before { content: @day-rain ; }
.@{wi-css-prefix}-owm-day-321:before { content: @day-sprinkle ; }
.@{wi-css-prefix}-owm-day-500:before { content: @day-sprinkle ; }
.@{wi-css-prefix}-owm-day-501:before { content: @day-rain ; }
.@{wi-css-prefix}-owm-day-502:before { content: @day-rain ; }
.@{wi-css-prefix}-owm-day-503:before { content: @day-rain ; }
.@{wi-css-prefix}-owm-day-504:before { content: @day-rain ; }
.@{wi-css-prefix}-owm-day-511:before { content: @day-rain-mix ; }
.@{wi-css-prefix}-owm-day-520:before { content: @day-showers ; }
.@{wi-css-prefix}-owm-day-521:before { content: @day-showers ; }
.@{wi-css-prefix}-owm-day-522:before { content: @day-showers ; }
.@{wi-css-prefix}-owm-day-531:before { content: @day-storm-showers ; }
.@{wi-css-prefix}-owm-day-600:before { content: @day-snow ; }
.@{wi-css-prefix}-owm-day-601:before { content: @day-sleet ; }
.@{wi-css-prefix}-owm-day-602:before { content: @day-snow ; }
.@{wi-css-prefix}-owm-day-611:before { content: @day-rain-mix ; }
.@{wi-css-prefix}-owm-day-612:before { content: @day-rain-mix ; }
.@{wi-css-prefix}-owm-day-615:before { content: @day-rain-mix ; }
.@{wi-css-prefix}-owm-day-616:before { content: @day-rain-mix ; }
.@{wi-css-prefix}-owm-day-620:before { content: @day-rain-mix ; }
.@{wi-css-prefix}-owm-day-621:before { content: @day-snow ; }
.@{wi-css-prefix}-owm-day-622:before { content: @day-snow ; }
.@{wi-css-prefix}-owm-day-701:before { content: @day-showers ; }
.@{wi-css-prefix}-owm-day-711:before { content: @smoke ; }
.@{wi-css-prefix}-owm-day-721:before { content: @day-haze ; }
.@{wi-css-prefix}-owm-day-731:before { content: @dust ; }
.@{wi-css-prefix}-owm-day-741:before { content: @day-fog ; }
.@{wi-css-prefix}-owm-day-761:before { content: @dust ; }
.@{wi-css-prefix}-owm-day-762:before { content: @dust ; }
.@{wi-css-prefix}-owm-day-781:before { content: @tornado ; }
.@{wi-css-prefix}-owm-day-800:before { content: @day-sunny ; }
.@{wi-css-prefix}-owm-day-801:before { content: @day-cloudy-gusts ; }
.@{wi-css-prefix}-owm-day-802:before { content: @day-cloudy-gusts ; }
.@{wi-css-prefix}-owm-day-803:before { content: @day-cloudy-gusts ; }
.@{wi-css-prefix}-owm-day-804:before { content: @day-sunny-overcast ; }
.@{wi-css-prefix}-owm-day-900:before { content: @tornado ; }
.@{wi-css-prefix}-owm-day-902:before { content: @hurricane ; }
.@{wi-css-prefix}-owm-day-903:before { content: @snowflake-cold ; }
.@{wi-css-prefix}-owm-day-904:before { content: @hot ; }
.@{wi-css-prefix}-owm-day-906:before { content: @day-hail ; }
.@{wi-css-prefix}-owm-day-957:before { content: @strong-wind ; }
//Night
.@{wi-css-prefix}-owm-night-200:before { content: @night-alt-thunderstorm ; }
.@{wi-css-prefix}-owm-night-201:before { content: @night-alt-thunderstorm ; }
.@{wi-css-prefix}-owm-night-202:before { content: @night-alt-thunderstorm ; }
.@{wi-css-prefix}-owm-night-210:before { content: @night-alt-lightning ; }
.@{wi-css-prefix}-owm-night-211:before { content: @night-alt-lightning ; }
.@{wi-css-prefix}-owm-night-212:before { content: @night-alt-lightning ; }
.@{wi-css-prefix}-owm-night-221:before { content: @night-alt-lightning ; }
.@{wi-css-prefix}-owm-night-230:before { content: @night-alt-thunderstorm ; }
.@{wi-css-prefix}-owm-night-231:before { content: @night-alt-thunderstorm ; }
.@{wi-css-prefix}-owm-night-232:before { content: @night-alt-thunderstorm ; }
.@{wi-css-prefix}-owm-night-300:before { content: @night-alt-sprinkle ; }
.@{wi-css-prefix}-owm-night-301:before { content: @night-alt-sprinkle ; }
.@{wi-css-prefix}-owm-night-302:before { content: @night-alt-rain ; }
.@{wi-css-prefix}-owm-night-310:before { content: @night-alt-rain ; }
.@{wi-css-prefix}-owm-night-311:before { content: @night-alt-rain ; }
.@{wi-css-prefix}-owm-night-312:before { content: @night-alt-rain ; }
.@{wi-css-prefix}-owm-night-313:before { content: @night-alt-rain ; }
.@{wi-css-prefix}-owm-night-314:before { content: @night-alt-rain ; }
.@{wi-css-prefix}-owm-night-321:before { content: @night-alt-sprinkle ; }
.@{wi-css-prefix}-owm-night-500:before { content: @night-alt-sprinkle ; }
.@{wi-css-prefix}-owm-night-501:before { content: @night-alt-rain ; }
.@{wi-css-prefix}-owm-night-502:before { content: @night-alt-rain ; }
.@{wi-css-prefix}-owm-night-503:before { content: @night-alt-rain ; }
.@{wi-css-prefix}-owm-night-504:before { content: @night-alt-rain ; }
.@{wi-css-prefix}-owm-night-511:before { content: @night-alt-rain-mix ; }
.@{wi-css-prefix}-owm-night-520:before { content: @night-alt-showers ; }
.@{wi-css-prefix}-owm-night-521:before { content: @night-alt-showers ; }
.@{wi-css-prefix}-owm-night-522:before { content: @night-alt-showers ; }
.@{wi-css-prefix}-owm-night-531:before { content: @night-alt-storm-showers ; }
.@{wi-css-prefix}-owm-night-600:before { content: @night-alt-snow ; }
.@{wi-css-prefix}-owm-night-601:before { content: @night-alt-sleet ; }
.@{wi-css-prefix}-owm-night-602:before { content: @night-alt-snow ; }
.@{wi-css-prefix}-owm-night-611:before { content: @night-alt-rain-mix ; }
.@{wi-css-prefix}-owm-night-612:before { content: @night-alt-rain-mix ; }
.@{wi-css-prefix}-owm-night-615:before { content: @night-alt-rain-mix ; }
.@{wi-css-prefix}-owm-night-616:before { content: @night-alt-rain-mix ; }
.@{wi-css-prefix}-owm-night-620:before { content: @night-alt-rain-mix ; }
.@{wi-css-prefix}-owm-night-621:before { content: @night-alt-snow ; }
.@{wi-css-prefix}-owm-night-622:before { content: @night-alt-snow ; }
.@{wi-css-prefix}-owm-night-701:before { content: @night-alt-showers ; }
.@{wi-css-prefix}-owm-night-711:before { content: @smoke ; }
.@{wi-css-prefix}-owm-night-721:before { content: @day-haze ; }
.@{wi-css-prefix}-owm-night-731:before { content: @dust ; }
.@{wi-css-prefix}-owm-night-741:before { content: @night-fog ; }
.@{wi-css-prefix}-owm-night-761:before { content: @dust ; }
.@{wi-css-prefix}-owm-night-762:before { content: @dust ; }
.@{wi-css-prefix}-owm-night-781:before { content: @tornado ; }
.@{wi-css-prefix}-owm-night-800:before { content: @night-clear ; }
.@{wi-css-prefix}-owm-night-801:before { content: @night-alt-cloudy-gusts ; }
.@{wi-css-prefix}-owm-night-802:before { content: @night-alt-cloudy-gusts ; }
.@{wi-css-prefix}-owm-night-803:before { content: @night-alt-cloudy-gusts ; }
.@{wi-css-prefix}-owm-night-804:before { content: @night-alt-cloudy ; }
.@{wi-css-prefix}-owm-night-900:before { content: @tornado ; }
.@{wi-css-prefix}-owm-night-902:before { content: @hurricane ; }
.@{wi-css-prefix}-owm-night-903:before { content: @snowflake-cold ; }
.@{wi-css-prefix}-owm-night-904:before { content: @hot ; }
.@{wi-css-prefix}-owm-night-906:before { content: @night-alt-hail ; }
.@{wi-css-prefix}-owm-night-957:before { content: @strong-wind ; }
================================================
FILE: public/admin-panel/dist/css/icons/weather-icons/less/mappings/wi-wmo4680.less
================================================
.@{wi-css-prefix}-wmo4680-0:before,
.@{wi-css-prefix}-wmo4680-00:before { content: @thermometer ; }
.@{wi-css-prefix}-wmo4680-1:before,
.@{wi-css-prefix}-wmo4680-01:before { content: @cloudy ; }
.@{wi-css-prefix}-wmo4680-2:before,
.@{wi-css-prefix}-wmo4680-02:before { content: @thermometer ; }
.@{wi-css-prefix}-wmo4680-3:before,
.@{wi-css-prefix}-wmo4680-03:before { content: @cloudy ; }
.@{wi-css-prefix}-wmo4680-4:before,
.@{wi-css-prefix}-wmo4680-04:before { content: @fog ; }
.@{wi-css-prefix}-wmo4680-5:before,
.@{wi-css-prefix}-wmo4680-05:before { content: @fog ; }
.@{wi-css-prefix}-wmo4680-10:before { content: @fog ; }
.@{wi-css-prefix}-wmo4680-11:before { content: @fog ; }
.@{wi-css-prefix}-wmo4680-12:before { content: @lightning ; }
.@{wi-css-prefix}-wmo4680-18:before { content: @strong-wind ; }
.@{wi-css-prefix}-wmo4680-20:before { content: @fog ; }
.@{wi-css-prefix}-wmo4680-21:before { content: @rain-mix ; }
.@{wi-css-prefix}-wmo4680-22:before { content: @rain-mix ; }
.@{wi-css-prefix}-wmo4680-23:before { content: @rain ; }
.@{wi-css-prefix}-wmo4680-24:before { content: @snow ; }
.@{wi-css-prefix}-wmo4680-25:before { content: @hail ; }
.@{wi-css-prefix}-wmo4680-26:before { content: @thunderstorm ; }
.@{wi-css-prefix}-wmo4680-27:before { content: @dust ; }
.@{wi-css-prefix}-wmo4680-28:before { content: @dust ; }
.@{wi-css-prefix}-wmo4680-29:before { content: @dust ; }
.@{wi-css-prefix}-wmo4680-30:before { content: @fog ; }
.@{wi-css-prefix}-wmo4680-31:before { content: @fog ; }
.@{wi-css-prefix}-wmo4680-32:before { content: @fog ; }
.@{wi-css-prefix}-wmo4680-33:before { content: @fog ; }
.@{wi-css-prefix}-wmo4680-34:before { content: @fog ; }
.@{wi-css-prefix}-wmo4680-35:before { content: @fog ; }
.@{wi-css-prefix}-wmo4680-40:before { content: @rain-mix ; }
.@{wi-css-prefix}-wmo4680-41:before { content: @sprinkle ; }
.@{wi-css-prefix}-wmo4680-42:before { content: @rain ; }
.@{wi-css-prefix}-wmo4680-43:before { content: @sprinkle ; }
.@{wi-css-prefix}-wmo4680-44:before { content: @rain ; }
.@{wi-css-prefix}-wmo4680-45:before { content: @hail ; }
.@{wi-css-prefix}-wmo4680-46:before { content: @hail ; }
.@{wi-css-prefix}-wmo4680-47:before { content: @snow ; }
.@{wi-css-prefix}-wmo4680-48:before { content: @snow ; }
.@{wi-css-prefix}-wmo4680-50:before { content: @sprinkle ; }
.@{wi-css-prefix}-wmo4680-51:before { content: @sprinkle ; }
.@{wi-css-prefix}-wmo4680-52:before { content: @rain ; }
.@{wi-css-prefix}-wmo4680-53:before { content: @rain ; }
.@{wi-css-prefix}-wmo4680-54:before { content: @snowflake-cold ; }
.@{wi-css-prefix}-wmo4680-55:before { content: @snowflake-cold ; }
.@{wi-css-prefix}-wmo4680-56:before { content: @snowflake-cold ; }
.@{wi-css-prefix}-wmo4680-57:before { content: @sprinkle ; }
.@{wi-css-prefix}-wmo4680-58:before { content: @rain ; }
.@{wi-css-prefix}-wmo4680-60:before { content: @sprinkle ; }
.@{wi-css-prefix}-wmo4680-61:before { content: @sprinkle ; }
.@{wi-css-prefix}-wmo4680-62:before { content: @rain ; }
.@{wi-css-prefix}-wmo4680-63:before { content: @rain ; }
.@{wi-css-prefix}-wmo4680-64:before { content: @hail ; }
.@{wi-css-prefix}-wmo4680-65:before { content: @hail ; }
.@{wi-css-prefix}-wmo4680-66:before { content: @hail ; }
.@{wi-css-prefix}-wmo4680-67:before { content: @rain-mix ; }
.@{wi-css-prefix}-wmo4680-68:before { content: @rain-mix ; }
.@{wi-css-prefix}-wmo4680-70:before { content: @snow ; }
.@{wi-css-prefix}-wmo4680-71:before { content: @snow ; }
.@{wi-css-prefix}-wmo4680-72:before { content: @snow ; }
.@{wi-css-prefix}-wmo4680-73:before { content: @snow ; }
.@{wi-css-prefix}-wmo4680-74:before { content: @snowflake-cold ; }
.@{wi-css-prefix}-wmo4680-75:before { content: @snowflake-cold ; }
.@{wi-css-prefix}-wmo4680-76:before { content: @snowflake-cold ; }
.@{wi-css-prefix}-wmo4680-77:before { content: @snow ; }
.@{wi-css-prefix}-wmo4680-78:before { content: @snowflake-cold ; }
.@{wi-css-prefix}-wmo4680-80:before { content: @rain ; }
.@{wi-css-prefix}-wmo4680-81:before { content: @sprinkle ; }
.@{wi-css-prefix}-wmo4680-82:before { content: @rain ; }
.@{wi-css-prefix}-wmo4680-83:before { content: @rain ; }
.@{wi-css-prefix}-wmo4680-84:before { content: @storm-showers ; }
.@{wi-css-prefix}-wmo4680-85:before { content: @rain-mix ; }
.@{wi-css-prefix}-wmo4680-86:before { content: @rain-mix ; }
.@{wi-css-prefix}-wmo4680-87:before { content: @rain-mix ; }
.@{wi-css-prefix}-wmo4680-89:before { content: @hail ; }
.@{wi-css-prefix}-wmo4680-90:before { content: @lightning ; }
.@{wi-css-prefix}-wmo4680-91:before { content: @storm-showers ; }
.@{wi-css-prefix}-wmo4680-92:before { content: @thunderstorm ; }
.@{wi-css-prefix}-wmo4680-93:before { content: @thunderstorm ; }
.@{wi-css-prefix}-wmo4680-94:before { content: @lightning ; }
.@{wi-css-prefix}-wmo4680-95:before { content: @thunderstorm ; }
.@{wi-css-prefix}-wmo4680-96:before { content: @thunderstorm ; }
.@{wi-css-prefix}-wmo4680-99:before { content: @tornado ; }
================================================
FILE: public/admin-panel/dist/css/icons/weather-icons/less/mappings/wi-yahoo.less
================================================
.@{wi-css-prefix}-yahoo-0:before { content: @tornado; };
.@{wi-css-prefix}-yahoo-1:before { content: @day-storm-showers; };
.@{wi-css-prefix}-yahoo-2:before { content: @hurricane; };
.@{wi-css-prefix}-yahoo-3:before { content: @thunderstorm; };
.@{wi-css-prefix}-yahoo-4:before { content: @thunderstorm; };
.@{wi-css-prefix}-yahoo-5:before { content: @rain-mix; };
.@{wi-css-prefix}-yahoo-6:before { content: @rain-mix; };
.@{wi-css-prefix}-yahoo-7:before { content: @rain-mix; };
.@{wi-css-prefix}-yahoo-8:before { content: @hail; };
.@{wi-css-prefix}-yahoo-9:before { content: @showers; };
.@{wi-css-prefix}-yahoo-10:before { content: @hail; };
.@{wi-css-prefix}-yahoo-11:before { content: @showers; };
.@{wi-css-prefix}-yahoo-12:before { content: @showers; };
.@{wi-css-prefix}-yahoo-13:before { content: @snow; };
.@{wi-css-prefix}-yahoo-14:before { content: @day-snow; };
.@{wi-css-prefix}-yahoo-15:before { content: @snow-wind; };
.@{wi-css-prefix}-yahoo-16:before { content: @snow; };
.@{wi-css-prefix}-yahoo-17:before { content: @hail; };
.@{wi-css-prefix}-yahoo-18:before { content: @rain-mix; };
.@{wi-css-prefix}-yahoo-19:before { content: @dust; };
.@{wi-css-prefix}-yahoo-20:before { content: @fog; };
.@{wi-css-prefix}-yahoo-21:before { content: @windy; };
.@{wi-css-prefix}-yahoo-22:before { content: @smoke; };
.@{wi-css-prefix}-yahoo-23:before { content: @strong-wind; };
.@{wi-css-prefix}-yahoo-24:before { content: @strong-wind; };
.@{wi-css-prefix}-yahoo-25:before { content: @snowflake-cold; };
.@{wi-css-prefix}-yahoo-26:before { content: @cloudy; };
.@{wi-css-prefix}-yahoo-27:before { content: @night-cloudy; };
.@{wi-css-prefix}-yahoo-28:before { content: @day-cloudy; };
.@{wi-css-prefix}-yahoo-29:before { content: @night-cloudy; };
.@{wi-css-prefix}-yahoo-30:before { content: @day-cloudy; };
.@{wi-css-prefix}-yahoo-31:before { content: @night-clear; };
.@{wi-css-prefix}-yahoo-32:before { content: @day-sunny; };
.@{wi-css-prefix}-yahoo-33:before { content: @night-partly-cloudy; };
.@{wi-css-prefix}-yahoo-34:before { content: @day-sunny-overcast; };
.@{wi-css-prefix}-yahoo-35:before { content: @rain-mix; };
.@{wi-css-prefix}-yahoo-36:before { content: @hot; };
.@{wi-css-prefix}-yahoo-37:before { content: @day-storm-showers; };
.@{wi-css-prefix}-yahoo-38:before { content: @day-storm-showers; };
.@{wi-css-prefix}-yahoo-39:before { content: @day-storm-showers; };
.@{wi-css-prefix}-yahoo-40:before { content: @showers; };
.@{wi-css-prefix}-yahoo-41:before { content: @snow-wind; };
.@{wi-css-prefix}-yahoo-42:before { content: @snow; };
.@{wi-css-prefix}-yahoo-43:before { content: @snow-wind; };
.@{wi-css-prefix}-yahoo-44:before { content: @day-sunny-overcast; };
.@{wi-css-prefix}-yahoo-45:before { content: @day-storm-showers; };
.@{wi-css-prefix}-yahoo-46:before { content: @snow; };
.@{wi-css-prefix}-yahoo-47:before { content: @day-storm-showers; };
.@{wi-css-prefix}-yahoo-3200:before { content: @stars; };
================================================
FILE: public/admin-panel/dist/css/icons/weather-icons/less/weather-icons-classes.less
================================================
@import "icon-classes/classes-day.less";
@import "icon-classes/classes-night.less";
@import "icon-classes/classes-neutral.less";
@import "icon-classes/classes-misc.less";
@import "icon-classes/classes-moon.less";
@import "icon-classes/classes-moon-aliases.less";
@import "icon-classes/classes-time.less";
@import "icon-classes/classes-direction.less";
@import "icon-classes/classes-beaufort.less";
================================================
FILE: public/admin-panel/dist/css/icons/weather-icons/less/weather-icons-core.less
================================================
// Base Variables
@wi-path: "../fonts";
@wi-version: "2.0";
@wi-css-prefix: wi;
@wi-font-family: weathericons;
@font-face {
font-family: '@{wi-font-family}';
src: url('../less/icons/weather-icons/font/@{wi-font-family}-regular-webfont.eot');
src: url('../less/icons/weather-icons/font/@{wi-font-family}-regular-webfont.eot?#iefix') format('embedded-opentype'),
url('../less/icons/weather-icons/font/@{wi-font-family}-regular-webfont.woff2') format('woff2'),
url('../less/icons/weather-icons/font/@{wi-font-family}-regular-webfont.woff') format('woff'),
url('../less/icons/weather-icons/font/@{wi-font-family}-regular-webfont.ttf') format('truetype'),
url('../less/icons/weather-icons/font/@{wi-font-family}-regular-webfont.svg#weather_iconsregular') format('svg');
font-weight: normal;
font-style: normal;
}
.@{wi-css-prefix} {
display: inline-block;
font-family: '@{wi-font-family}';
font-style: normal;
font-weight: normal;
line-height: 1;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
.@{wi-css-prefix}-fw {
text-align: center;
width: 1.4em;
}
.wi-icon-rotate(@degrees, @rotation) {
filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=@rotation);
-webkit-transform: rotate(@degrees);
-ms-transform: rotate(@degrees);
transform: rotate(@degrees);
}
.wi-icon-flip(@horiz, @vert, @rotation) {
filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=@rotation, mirror=1);
-webkit-transform: scale(@horiz, @vert);
-ms-transform: scale(@horiz, @vert);
transform: scale(@horiz, @vert);
}
.@{wi-css-prefix}-rotate-90 { .wi-icon-rotate(90deg, 1); }
.@{wi-css-prefix}-rotate-180 { .wi-icon-rotate(180deg, 2); }
.@{wi-css-prefix}-rotate-270 { .wi-icon-rotate(270deg, 3); }
.@{wi-css-prefix}-flip-horizontal { .wi-icon-flip(-1, 1, 0); }
.@{wi-css-prefix}-flip-vertical { .wi-icon-flip(1, -1, 2); }
================================================
FILE: public/admin-panel/dist/css/icons/weather-icons/less/weather-icons-variables.less
================================================
@import "icon-variables/variables-beaufort.less";
@import "icon-variables/variables-time.less";
@import "icon-variables/variables-moon.less";
@import "icon-variables/variables-direction.less";
@import "icon-variables/variables-day.less";
@import "icon-variables/variables-night.less";
@import "icon-variables/variables-neutral.less";
@import "icon-variables/variables-misc.less";
================================================
FILE: public/admin-panel/dist/css/icons/weather-icons/less/weather-icons-wind.less
================================================
@import "weather-icons-core.less";
@import "icon-variables/variables-wind-names.less";
@import "icon-classes/classes-wind.less";
@import "icon-classes/classes-wind-degrees.less";
@import "icon-classes/classes-wind-aliases.less";
================================================
FILE: public/admin-panel/dist/css/icons/weather-icons/less/weather-icons-wind.min.less
================================================
@import "weather-icons-core.less";
@import "icon-variables/variables-wind-names.less";
@import "icon-classes/classes-wind.less";
@import "icon-classes/classes-wind-degrees.less";
@import "icon-classes/classes-wind-aliases.less";
================================================
FILE: public/admin-panel/dist/css/icons/weather-icons/less/weather-icons.less
================================================
/*!
* Weather Icons 2.0
* Updated August 1, 2015
* Weather themed icons for Bootstrap
* Author - Erik Flowers - erik@helloerik.com
* Email: erik@helloerik.com
* Twitter: http://twitter.com/Erik_UX
* ------------------------------------------------------------------------------
* Maintained at http://erikflowers.github.io/weather-icons
*
* License
* ------------------------------------------------------------------------------
* - Font licensed under SIL OFL 1.1 -
* http://scripts.sil.org/OFL
* - CSS, SCSS and LESS are licensed under MIT License -
* http://opensource.org/licenses/mit-license.html
* - Documentation licensed under CC BY 3.0 -
* http://creativecommons.org/licenses/by/3.0/
* - Inspired by and works great as a companion with Font Awesome
* "Font Awesome by Dave Gandy - http://fontawesome.io"
*/
@import "weather-icons-core.less";
@import "weather-icons-variables.less";
@import "weather-icons-classes.less";
// Mappings to various APIs
@import "mappings/wi-yahoo.less";
@import "mappings/wi-forecast-io.less";
@import "mappings/wi-wmo4680.less";
@import "mappings/wi-owm.less";
================================================
FILE: public/admin-panel/dist/css/icons/weather-icons/less/weather-icons.min.less
================================================
/*!
* Weather Icons 2.0
* Updated August 1, 2015
* Weather themed icons for Bootstrap
* Author - Erik Flowers - erik@helloerik.com
* Email: erik@helloerik.com
* Twitter: http://twitter.com/Erik_UX
* ------------------------------------------------------------------------------
* Maintained at http://erikflowers.github.io/weather-icons
*
* License
* ------------------------------------------------------------------------------
* - Font licensed under SIL OFL 1.1 -
* http://scripts.sil.org/OFL
* - CSS, SCSS and LESS are licensed under MIT License -
* http://opensource.org/licenses/mit-license.html
* - Documentation licensed under CC BY 3.0 -
* http://creativecommons.org/licenses/by/3.0/
* - Inspired by and works great as a companion with Font Awesome
* "Font Awesome by Dave Gandy - http://fontawesome.io"
*/
@import "weather-icons-core.less";
@import "weather-icons-variables.less";
@import "weather-icons-classes.less";
// Mappings to various APIs
@import "mappings/wi-yahoo.less";
@import "mappings/wi-forecast-io.less";
@import "mappings/wi-wmo4680.less";
@import "mappings/wi-owm.less";
================================================
FILE: public/admin-panel/dist/css/icons/weather-icons/sass/icon-classes/classes-beaufort.scss
================================================
.wi-wind-beaufort-0:before {content: $wind-beaufort-0;}
.wi-wind-beaufort-1:before {content: $wind-beaufort-1;}
.wi-wind-beaufort-2:before {content: $wind-beaufort-2;}
.wi-wind-beaufort-3:before {content: $wind-beaufort-3;}
.wi-wind-beaufort-4:before {content: $wind-beaufort-4;}
.wi-wind-beaufort-5:before {content: $wind-beaufort-5;}
.wi-wind-beaufort-6:before {content: $wind-beaufort-6;}
.wi-wind-beaufort-7:before {content: $wind-beaufort-7;}
.wi-wind-beaufort-8:before {content: $wind-beaufort-8;}
.wi-wind-beaufort-9:before {content: $wind-beaufort-9;}
.wi-wind-beaufort-10:before {content: $wind-beaufort-10;}
.wi-wind-beaufort-11:before {content: $wind-beaufort-11;}
.wi-wind-beaufort-12:before {content: $wind-beaufort-12;}
================================================
FILE: public/admin-panel/dist/css/icons/weather-icons/sass/icon-classes/classes-day.scss
================================================
.wi-day-sunny:before {content: $day-sunny;}
.wi-day-cloudy:before {content: $day-cloudy;}
.wi-day-cloudy-gusts:before {content: $day-cloudy-gusts;}
.wi-day-cloudy-windy:before {content: $day-cloudy-windy;}
.wi-day-fog:before {content: $day-fog;}
.wi-day-hail:before {content: $day-hail;}
.wi-day-haze:before {content: $day-haze;}
.wi-day-lightning:before {content: $day-lightning;}
.wi-day-rain:before {content: $day-rain;}
.wi-day-rain-mix:before {content: $day-rain-mix;}
.wi-day-rain-wind:before {content: $day-rain-wind;}
.wi-day-showers:before {content: $day-showers;}
.wi-day-sleet:before {content: $day-sleet;}
.wi-day-sleet-storm:before {content: $day-sleet-storm;}
.wi-day-snow:before {content: $day-snow;}
.wi-day-snow-thunderstorm:before {content: $day-snow-thunderstorm;}
.wi-day-snow-wind:before {content: $day-snow-wind;}
.wi-day-sprinkle:before {content: $day-sprinkle;}
.wi-day-storm-showers:before {content: $day-storm-showers;}
.wi-day-sunny-overcast:before {content: $day-sunny-overcast;}
.wi-day-thunderstorm:before {content: $day-thunderstorm;}
.wi-day-windy:before {content: $day-windy;}
.wi-solar-eclipse:before {content: $solar-eclipse;}
.wi-hot:before {content: $hot;}
.wi-day-cloudy-high:before {content: $day-cloudy-high;}
.wi-day-light-wind:before {content: $day-light-wind;}
================================================
FILE: public/admin-panel/dist/css/icons/weather-icons/sass/icon-classes/classes-direction.scss
================================================
.wi-direction-up:before {content: $direction-up;}
.wi-direction-up-right:before {content: $direction-up-right;}
.wi-direction-right:before {content: $direction-right;}
.wi-direction-down-right:before {content: $direction-down-right;}
.wi-direction-down:before {content: $direction-down;}
.wi-direction-down-left:before {content: $direction-down-left;}
.wi-direction-left:before {content: $direction-left;}
.wi-direction-up-left:before {content: $direction-up-left;}
================================================
FILE: public/admin-panel/dist/css/icons/weather-icons/sass/icon-classes/classes-misc.scss
================================================
.wi-alien:before {content: $alien;}
.wi-celsius:before {content: $celsius;}
.wi-fahrenheit:before {content: $fahrenheit;}
.wi-degrees:before {content: $degrees;}
.wi-thermometer:before {content: $thermometer;}
.wi-thermometer-exterior:before {content: $thermometer-exterior;}
.wi-thermometer-internal:before {content: $thermometer-internal;}
.wi-cloud-down:before {content: $cloud-down;}
.wi-cloud-up:before {content: $cloud-up;}
.wi-cloud-refresh:before {content: $cloud-refresh;}
.wi-horizon:before {content: $horizon;}
.wi-horizon-alt:before {content: $horizon-alt;}
.wi-sunrise:before {content: $sunrise;}
.wi-sunset:before {content: $sunset;}
.wi-moonrise:before {content: $moonrise;}
.wi-moonset:before {content: $moonset;}
.wi-refresh:before {content: $refresh;}
.wi-refresh-alt:before {content: $refresh-alt;}
.wi-umbrella:before {content: $umbrella;}
.wi-barometer:before {content: $barometer;}
.wi-humidity:before {content: $humidity;}
.wi-na:before {content: $na;}
.wi-train:before {content: $train;}
================================================
FILE: public/admin-panel/dist/css/icons/weather-icons/sass/icon-classes/classes-moon-aliases.scss
================================================
.wi-moon-0:before {content: $moon-new;}
.wi-moon-1:before {content: $moon-waxing-cresent-1;}
.wi-moon-2:before {content: $moon-waxing-cresent-2;}
.wi-moon-3:before {content: $moon-waxing-cresent-3;}
.wi-moon-4:before {content: $moon-waxing-cresent-4;}
.wi-moon-5:before {content: $moon-waxing-cresent-5;}
.wi-moon-6:before {content: $moon-waxing-cresent-6;}
.wi-moon-7:before {content: $moon-first-quarter;}
.wi-moon-8:before {content: $moon-waxing-gibbous-1;}
.wi-moon-9:before {content: $moon-waxing-gibbous-2;}
.wi-moon-10:before {content: $moon-waxing-gibbous-3;}
.wi-moon-11:before {content: $moon-waxing-gibbous-4;}
.wi-moon-12:before {content: $moon-waxing-gibbous-5;}
.wi-moon-13:before {content: $moon-waxing-gibbous-6;}
.wi-moon-14:before {content: $moon-full;}
.wi-moon-15:before {content: $moon-waning-gibbous-1;}
.wi-moon-16:before {content: $moon-waning-gibbous-2;}
.wi-moon-17:before {content: $moon-waning-gibbous-3;}
.wi-moon-18:before {content: $moon-waning-gibbous-4;}
.wi-moon-19:before {content: $moon-waning-gibbous-5;}
.wi-moon-20:before {content: $moon-waning-gibbous-6;}
.wi-moon-21:before {content: $moon-third-quarter;}
.wi-moon-22:before {content: $moon-waning-crescent-1;}
.wi-moon-23:before {content: $moon-waning-crescent-2;}
.wi-moon-24:before {content: $moon-waning-crescent-3;}
.wi-moon-25:before {content: $moon-waning-crescent-4;}
.wi-moon-26:before {content: $moon-waning-crescent-5;}
.wi-moon-27:before {content: $moon-waning-crescent-6;}
================================================
FILE: public/admin-panel/dist/css/icons/weather-icons/sass/icon-classes/classes-moon.scss
================================================
.wi-moon-new:before {content: $moon-new;}
.wi-moon-waxing-cresent-1:before {content: $moon-waxing-cresent-1;}
.wi-moon-waxing-cresent-2:before {content: $moon-waxing-cresent-2;}
.wi-moon-waxing-cresent-3:before {content: $moon-waxing-cresent-3;}
.wi-moon-waxing-cresent-4:before {content: $moon-waxing-cresent-4;}
.wi-moon-waxing-cresent-5:before {content: $moon-waxing-cresent-5;}
.wi-moon-waxing-cresent-6:before {content: $moon-waxing-cresent-6;}
.wi-moon-first-quarter:before {content: $moon-first-quarter;}
.wi-moon-waxing-gibbous-1:before {content: $moon-waxing-gibbous-1;}
.wi-moon-waxing-gibbous-2:before {content: $moon-waxing-gibbous-2;}
.wi-moon-waxing-gibbous-3:before {content: $moon-waxing-gibbous-3;}
.wi-moon-waxing-gibbous-4:before {content: $moon-waxing-gibbous-4;}
.wi-moon-waxing-gibbous-5:before {content: $moon-waxing-gibbous-5;}
.wi-moon-waxing-gibbous-6:before {content: $moon-waxing-gibbous-6;}
.wi-moon-full:before {content: $moon-full;}
.wi-moon-waning-gibbous-1:before {content: $moon-waning-gibbous-1;}
.wi-moon-waning-gibbous-2:before {content: $moon-waning-gibbous-2;}
.wi-moon-waning-gibbous-3:before {content: $moon-waning-gibbous-3;}
.wi-moon-waning-gibbous-4:before {content: $moon-waning-gibbous-4;}
.wi-moon-waning-gibbous-5:before {content: $moon-waning-gibbous-5;}
.wi-moon-waning-gibbous-6:before {content: $moon-waning-gibbous-6;}
.wi-moon-third-quarter:before {content: $moon-third-quarter;}
.wi-moon-waning-crescent-1:before {content: $moon-waning-crescent-1;}
.wi-moon-waning-crescent-2:before {content: $moon-waning-crescent-2;}
.wi-moon-waning-crescent-3:before {content: $moon-waning-crescent-3;}
.wi-moon-waning-crescent-4:before {content: $moon-waning-crescent-4;}
.wi-moon-waning-crescent-5:before {content: $moon-waning-crescent-5;}
.wi-moon-waning-crescent-6:before {content: $moon-waning-crescent-6;}
.wi-moon-alt-new:before {content: $moon-alt-new;}
.wi-moon-alt-waxing-cresent-1:before {content: $moon-alt-waxing-cresent-1;}
.wi-moon-alt-waxing-cresent-2:before {content: $moon-alt-waxing-cresent-2;}
.wi-moon-alt-waxing-cresent-3:before {content: $moon-alt-waxing-cresent-3;}
.wi-moon-alt-waxing-cresent-4:before {content: $moon-alt-waxing-cresent-4;}
.wi-moon-alt-waxing-cresent-5:before {content: $moon-alt-waxing-cresent-5;}
.wi-moon-alt-waxing-cresent-6:before {content: $moon-alt-waxing-cresent-6;}
.wi-moon-alt-first-quarter:before {content: $moon-alt-first-quarter;}
.wi-moon-alt-waxing-gibbous-1:before {content: $moon-alt-waxing-gibbous-1;}
.wi-moon-alt-waxing-gibbous-2:before {content: $moon-alt-waxing-gibbous-2;}
.wi-moon-alt-waxing-gibbous-3:before {content: $moon-alt-waxing-gibbous-3;}
.wi-moon-alt-waxing-gibbous-4:before {content: $moon-alt-waxing-gibbous-4;}
.wi-moon-alt-waxing-gibbous-5:before {content: $moon-alt-waxing-gibbous-5;}
.wi-moon-alt-waxing-gibbous-6:before {content: $moon-alt-waxing-gibbous-6;}
.wi-moon-alt-full:before {content: $moon-alt-full;}
.wi-moon-alt-waning-gibbous-1:before {content: $moon-alt-waning-gibbous-1;}
.wi-moon-alt-waning-gibbous-2:before {content: $moon-alt-waning-gibbous-2;}
.wi-moon-alt-waning-gibbous-3:before {content: $moon-alt-waning-gibbous-3;}
.wi-moon-alt-waning-gibbous-4:before {content: $moon-alt-waning-gibbous-4;}
.wi-moon-alt-waning-gibbous-5:before {content: $moon-alt-waning-gibbous-5;}
.wi-moon-alt-waning-gibbous-6:before {content: $moon-alt-waning-gibbous-6;}
.wi-moon-alt-third-quarter:before {content: $moon-alt-third-quarter;}
.wi-moon-alt-waning-crescent-1:before {content: $moon-alt-waning-crescent-1;}
.wi-moon-alt-waning-crescent-2:before {content: $moon-alt-waning-crescent-2;}
.wi-moon-alt-waning-crescent-3:before {content: $moon-alt-waning-crescent-3;}
.wi-moon-alt-waning-crescent-4:before {content: $moon-alt-waning-crescent-4;}
.wi-moon-alt-waning-crescent-5:before {content: $moon-alt-waning-crescent-5;}
.wi-moon-alt-waning-crescent-6:before {content: $moon-alt-waning-crescent-6;}
================================================
FILE: public/admin-panel/dist/css/icons/weather-icons/sass/icon-classes/classes-neutral.scss
================================================
.wi-cloud:before {content: $cloud;}
.wi-cloudy:before {content: $cloudy;}
.wi-cloudy-gusts:before {content: $cloudy-gusts;}
.wi-cloudy-windy:before {content: $cloudy-windy;}
.wi-fog:before {content: $fog;}
.wi-hail:before {content: $hail;}
.wi-rain:before {content: $rain;}
.wi-rain-mix:before {content: $rain-mix;}
.wi-rain-wind:before {content: $rain-wind;}
.wi-showers:before {content: $showers;}
.wi-sleet:before {content: $sleet;}
.wi-snow:before {content: $snow;}
.wi-sprinkle:before {content: $sprinkle;}
.wi-storm-showers:before {content: $storm-showers;}
.wi-thunderstorm:before {content: $thunderstorm;}
.wi-snow-wind:before {content: $snow-wind;}
.wi-snow:before {content: $snow;}
.wi-smog:before {content: $smog;}
.wi-smoke:before {content: $smoke;}
.wi-lightning:before {content: $lightning;}
.wi-raindrops:before {content: $raindrops;}
.wi-raindrop:before {content: $raindrop;}
.wi-dust:before {content: $dust;}
.wi-snowflake-cold:before {content: $snowflake-cold;}
.wi-windy:before {content: $windy;}
.wi-strong-wind:before {content: $strong-wind;}
.wi-sandstorm:before {content: $sandstorm;}
.wi-earthquake:before {content: $earthquake;}
.wi-fire:before {content: $fire;}
.wi-flood:before {content: $flood;}
.wi-meteor:before {content: $meteor;}
.wi-tsunami:before {content: $tsunami;}
.wi-volcano:before {content: $volcano;}
.wi-hurricane:before {content: $hurricane;}
.wi-tornado:before {content: $tornado;}
.wi-small-craft-advisory:before {content: $small-craft-advisory;}
.wi-gale-warning:before {content: $gale-warning;}
.wi-storm-warning:before {content: $storm-warning;}
.wi-hurricane-warning:before {content: $hurricane-warning;}
.wi-wind-direction:before {content: $wind-direction;}
================================================
FILE: public/admin-panel/dist/css/icons/weather-icons/sass/icon-classes/classes-night.scss
================================================
.wi-night-clear:before {content: $night-clear;}
.wi-night-alt-cloudy:before {content: $night-alt-cloudy;}
.wi-night-alt-cloudy-gusts:before {content: $night-alt-cloudy-gusts;}
.wi-night-alt-cloudy-windy:before {content: $night-alt-cloudy-windy;}
.wi-night-alt-hail:before {content: $night-alt-hail;}
.wi-night-alt-lightning:before {content: $night-alt-lightning;}
.wi-night-alt-rain:before {content: $night-alt-rain;}
.wi-night-alt-rain-mix:before {content: $night-alt-rain-mix;}
.wi-night-alt-rain-wind:before {content: $night-alt-rain-wind;}
.wi-night-alt-showers:before {content: $night-alt-showers;}
.wi-night-alt-sleet:before {content: $night-alt-sleet;}
.wi-night-alt-sleet-storm:before {content: $night-alt-sleet-storm;}
.wi-night-alt-snow:before {content: $night-alt-snow;}
.wi-night-alt-snow-thunderstorm:before {content: $night-alt-snow-thunderstorm;}
.wi-night-alt-snow-wind:before {content: $night-alt-snow-wind;}
.wi-night-alt-sprinkle:before {content: $night-alt-sprinkle;}
.wi-night-alt-storm-showers:before {content: $night-alt-storm-showers;}
.wi-night-alt-thunderstorm:before {content: $night-alt-thunderstorm;}
.wi-night-cloudy:before {content: $night-cloudy;}
.wi-night-cloudy-gusts:before {content: $night-cloudy-gusts;}
.wi-night-cloudy-windy:before {content: $night-cloudy-windy;}
.wi-night-fog:before {content: $night-fog;}
.wi-night-hail:before {content: $night-hail;}
.wi-night-lightning:before {content: $night-lightning;}
.wi-night-partly-cloudy:before {content: $night-partly-cloudy;}
.wi-night-rain:before {content: $night-rain;}
.wi-night-rain-mix:before {content: $night-rain-mix;}
.wi-night-rain-wind:before {content: $night-rain-wind;}
.wi-night-showers:before {content: $night-showers;}
.wi-night-sleet:before {content: $night-sleet;}
.wi-night-sleet-storm:before {content: $night-sleet-storm;}
.wi-night-snow:before {content: $night-snow;}
.wi-night-snow-thunderstorm:before {content: $night-snow-thunderstorm;}
.wi-night-snow-wind:before {content: $night-snow-wind;}
.wi-night-sprinkle:before {content: $night-sprinkle;}
.wi-night-storm-showers:before {content: $night-storm-showers;}
.wi-night-thunderstorm:before {content: $night-thunderstorm;}
.wi-lunar-eclipse:before {content: $lunar-eclipse;}
.wi-stars:before {content: $stars;}
.wi-storm-showers:before {content: $storm-showers;}
.wi-thunderstorm:before {content: $thunderstorm;}
.wi-night-alt-cloudy-high:before {content: $night-alt-cloudy-high;}
.wi-night-cloudy-high:before {content: $night-cloudy-high;}
.wi-night-alt-partly-cloudy:before {content: $night-alt-partly-cloudy;}
================================================
FILE: public/admin-panel/dist/css/icons/weather-icons/sass/icon-classes/classes-time.scss
================================================
.wi-time-1:before {content: $time-1;}
.wi-time-2:before {content: $time-2;}
.wi-time-3:before {content: $time-3;}
.wi-time-4:before {content: $time-4;}
.wi-time-5:before {content: $time-5;}
.wi-time-6:before {content: $time-6;}
.wi-time-7:before {content: $time-7;}
.wi-time-8:before {content: $time-8;}
.wi-time-9:before {content: $time-9;}
.wi-time-10:before {content: $time-10;}
.wi-time-11:before {content: $time-11;}
.wi-time-12:before {content: $time-12;}
================================================
FILE: public/admin-panel/dist/css/icons/weather-icons/sass/icon-classes/classes-wind-aliases.scss
================================================
@mixin wind-rotate( $val: 0deg ) {
-webkit-transform: rotate($val);
-moz-transform: rotate($val);
-ms-transform: rotate($val);
-o-transform: rotate($val);
transform: rotate($val);
}
.wi-wind-towards-n {
@include wind-rotate(0deg);
}
.wi-wind-towards-nne {
@include wind-rotate(23deg);
}
.wi-wind-towards-ne {
@include wind-rotate(45deg);
}
.wi-wind-towards-ene {
@include wind-rotate(68deg);
}
.wi-wind-towards-e {
@include wind-rotate(90deg);
}
.wi-wind-towards-ese {
@include wind-rotate(113deg);
}
.wi-wind-towards-se {
@include wind-rotate(135deg);
}
.wi-wind-towards-sse {
@include wind-rotate(158deg);
}
.wi-wind-towards-s {
@include wind-rotate(180deg);
}
.wi-wind-towards-ssw {
@include wind-rotate(203deg);
}
.wi-wind-towards-sw {
@include wind-rotate(225deg);
}
.wi-wind-towards-wsw {
@include wind-rotate(248deg);
}
.wi-wind-towards-w {
@include wind-rotate(270deg);
}
.wi-wind-towards-wnw {
@include wind-rotate(293deg);
}
.wi-wind-towards-nw {
@include wind-rotate(313deg);
}
.wi-wind-towards-nnw {
@include wind-rotate(336deg);
}
.wi-wind-from-n {
@include wind-rotate(0deg);
}
.wi-wind-from-nne {
@include wind-rotate(23deg);
}
.wi-wind-from-ne {
@include wind-rotate(45deg);
}
.wi-wind-from-ene {
@include wind-rotate(68deg);
}
.wi-wind-from-e {
@include wind-rotate(90deg);
}
.wi-wind-from-ese {
@include wind-rotate(113deg);
}
.wi-wind-from-se {
@include wind-rotate(135deg);
}
.wi-wind-from-sse {
@include wind-rotate(158deg);
}
.wi-wind-from-s {
@include wind-rotate(180deg);
}
.wi-wind-from-ssw {
@include wind-rotate(203deg);
}
.wi-wind-from-sw {
@include wind-rotate(225deg);
}
.wi-wind-from-wsw {
@include wind-rotate(248deg);
}
.wi-wind-from-w {
@include wind-rotate(270deg);
}
.wi-wind-from-wnw {
@include wind-rotate(293deg);
}
.wi-wind-from-nw {
@include wind-rotate(313deg);
}
.wi-wind-from-nnw {
@include wind-rotate(336deg);
}
================================================
FILE: public/admin-panel/dist/css/icons/weather-icons/sass/icon-classes/classes-wind-degrees.scss
================================================
.#{$wi-css-prefix}-wind {
&.towards-0-deg {@include wind-rotate(0deg);}
&.towards-1-deg {@include wind-rotate(1deg);}
&.towards-2-deg {@include wind-rotate(2deg);}
&.towards-3-deg {@include wind-rotate(3deg);}
&.towards-4-deg {@include wind-rotate(4deg);}
&.towards-5-deg {@include wind-rotate(5deg);}
&.towards-6-deg {@include wind-rotate(6deg);}
&.towards-7-deg {@include wind-rotate(7deg);}
&.towards-8-deg {@include wind-rotate(8deg);}
&.towards-9-deg {@include wind-rotate(9deg);}
&.towards-10-deg {@include wind-rotate(10deg);}
&.towards-11-deg {@include wind-rotate(11deg);}
&.towards-12-deg {@include wind-rotate(12deg);}
&.towards-13-deg {@include wind-rotate(13deg);}
&.towards-14-deg {@include wind-rotate(14deg);}
&.towards-15-deg {@include wind-rotate(15deg);}
&.towards-16-deg {@include wind-rotate(16deg);}
&.towards-17-deg {@include wind-rotate(17deg);}
&.towards-18-deg {@include wind-rotate(18deg);}
&.towards-19-deg {@include wind-rotate(19deg);}
&.towards-20-deg {@include wind-rotate(20deg);}
&.towards-21-deg {@include wind-rotate(21deg);}
&.towards-22-deg {@include wind-rotate(22deg);}
&.towards-23-deg {@include wind-rotate(23deg);}
&.towards-24-deg {@include wind-rotate(24deg);}
&.towards-25-deg {@include wind-rotate(25deg);}
&.towards-26-deg {@include wind-rotate(26deg);}
&.towards-27-deg {@include wind-rotate(27deg);}
&.towards-28-deg {@include wind-rotate(28deg);}
&.towards-29-deg {@include wind-rotate(29deg);}
&.towards-30-deg {@include wind-rotate(30deg);}
&.towards-31-deg {@include wind-rotate(31deg);}
&.towards-32-deg {@include wind-rotate(32deg);}
&.towards-33-deg {@include wind-rotate(33deg);}
&.towards-34-deg {@include wind-rotate(34deg);}
&.towards-35-deg {@include wind-rotate(35deg);}
&.towards-36-deg {@include wind-rotate(36deg);}
&.towards-37-deg {@include wind-rotate(37deg);}
&.towards-38-deg {@include wind-rotate(38deg);}
&.towards-39-deg {@include wind-rotate(39deg);}
&.towards-40-deg {@include wind-rotate(40deg);}
&.towards-41-deg {@include wind-rotate(41deg);}
&.towards-42-deg {@include wind-rotate(42deg);}
&.towards-43-deg {@include wind-rotate(43deg);}
&.towards-44-deg {@include wind-rotate(44deg);}
&.towards-45-deg {@include wind-rotate(45deg);}
&.towards-46-deg {@include wind-rotate(46deg);}
&.towards-47-deg {@include wind-rotate(47deg);}
&.towards-48-deg {@include wind-rotate(48deg);}
&.towards-49-deg {@include wind-rotate(49deg);}
&.towards-50-deg {@include wind-rotate(50deg);}
&.towards-51-deg {@include wind-rotate(51deg);}
&.towards-52-deg {@include wind-rotate(52deg);}
&.towards-53-deg {@include wind-rotate(53deg);}
&.towards-54-deg {@include wind-rotate(54deg);}
&.towards-55-deg {@include wind-rotate(55deg);}
&.towards-56-deg {@include wind-rotate(56deg);}
&.towards-57-deg {@include wind-rotate(57deg);}
&.towards-58-deg {@include wind-rotate(58deg);}
&.towards-59-deg {@include wind-rotate(59deg);}
&.towards-60-deg {@include wind-rotate(60deg);}
&.towards-61-deg {@include wind-rotate(61deg);}
&.towards-62-deg {@include wind-rotate(62deg);}
&.towards-63-deg {@include wind-rotate(63deg);}
&.towards-64-deg {@include wind-rotate(64deg);}
&.towards-65-deg {@include wind-rotate(65deg);}
&.towards-66-deg {@include wind-rotate(66deg);}
&.towards-67-deg {@include wind-rotate(67deg);}
&.towards-68-deg {@include wind-rotate(68deg);}
&.towards-69-deg {@include wind-rotate(69deg);}
&.towards-70-deg {@include wind-rotate(70deg);}
&.towards-71-deg {@include wind-rotate(71deg);}
&.towards-72-deg {@include wind-rotate(72deg);}
&.towards-73-deg {@include wind-rotate(73deg);}
&.towards-74-deg {@include wind-rotate(74deg);}
&.towards-75-deg {@include wind-rotate(75deg);}
&.towards-76-deg {@include wind-rotate(76deg);}
&.towards-77-deg {@include wind-rotate(77deg);}
&.towards-78-deg {@include wind-rotate(78deg);}
&.towards-79-deg {@include wind-rotate(79deg);}
&.towards-80-deg {@include wind-rotate(80deg);}
&.towards-81-deg {@include wind-rotate(81deg);}
&.towards-82-deg {@include wind-rotate(82deg);}
&.towards-83-deg {@include wind-rotate(83deg);}
&.towards-84-deg {@include wind-rotate(84deg);}
&.towards-85-deg {@include wind-rotate(85deg);}
&.towards-86-deg {@include wind-rotate(86deg);}
&.towards-87-deg {@include wind-rotate(87deg);}
&.towards-88-deg {@include wind-rotate(88deg);}
&.towards-89-deg {@include wind-rotate(89deg);}
&.towards-90-deg {@include wind-rotate(90deg);}
&.towards-91-deg {@include wind-rotate(91deg);}
&.towards-92-deg {@include wind-rotate(92deg);}
&.towards-93-deg {@include wind-rotate(93deg);}
&.towards-94-deg {@include wind-rotate(94deg);}
&.towards-95-deg {@include wind-rotate(95deg);}
&.towards-96-deg {@include wind-rotate(96deg);}
&.towards-97-deg {@include wind-rotate(97deg);}
&.towards-98-deg {@include wind-rotate(98deg);}
&.towards-99-deg {@include wind-rotate(99deg);}
&.towards-100-deg {@include wind-rotate(100deg);}
&.towards-101-deg {@include wind-rotate(101deg);}
&.towards-102-deg {@include wind-rotate(102deg);}
&.towards-103-deg {@include wind-rotate(103deg);}
&.towards-104-deg {@include wind-rotate(104deg);}
&.towards-105-deg {@include wind-rotate(105deg);}
&.towards-106-deg {@include wind-rotate(106deg);}
&.towards-107-deg {@include wind-rotate(107deg);}
&.towards-108-deg {@include wind-rotate(108deg);}
&.towards-109-deg {@include wind-rotate(109deg);}
&.towards-110-deg {@include wind-rotate(110deg);}
&.towards-111-deg {@include wind-rotate(111deg);}
&.towards-112-deg {@include wind-rotate(112deg);}
&.towards-113-deg {@include wind-rotate(113deg);}
&.towards-114-deg {@include wind-rotate(114deg);}
&.towards-115-deg {@include wind-rotate(115deg);}
&.towards-116-deg {@include wind-rotate(116deg);}
&.towards-117-deg {@include wind-rotate(117deg);}
&.towards-118-deg {@include wind-rotate(118deg);}
&.towards-119-deg {@include wind-rotate(119deg);}
&.towards-120-deg {@include wind-rotate(120deg);}
&.towards-121-deg {@include wind-rotate(121deg);}
&.towards-122-deg {@include wind-rotate(122deg);}
&.towards-123-deg {@include wind-rotate(123deg);}
&.towards-124-deg {@include wind-rotate(124deg);}
&.towards-125-deg {@include wind-rotate(125deg);}
&.towards-126-deg {@include wind-rotate(126deg);}
&.towards-127-deg {@include wind-rotate(127deg);}
&.towards-128-deg {@include wind-rotate(128deg);}
&.towards-129-deg {@include wind-rotate(129deg);}
&.towards-130-deg {@include wind-rotate(130deg);}
&.towards-131-deg {@include wind-rotate(131deg);}
&.towards-132-deg {@include wind-rotate(132deg);}
&.towards-133-deg {@include wind-rotate(133deg);}
&.towards-134-deg {@include wind-rotate(134deg);}
&.towards-135-deg {@include wind-rotate(135deg);}
&.towards-136-deg {@include wind-rotate(136deg);}
&.towards-137-deg {@include wind-rotate(137deg);}
&.towards-138-deg {@include wind-rotate(138deg);}
&.towards-139-deg {@include wind-rotate(139deg);}
&.towards-140-deg {@include wind-rotate(140deg);}
&.towards-141-deg {@include wind-rotate(141deg);}
&.towards-142-deg {@include wind-rotate(142deg);}
&.towards-143-deg {@include wind-rotate(143deg);}
&.towards-144-deg {@include wind-rotate(144deg);}
&.towards-145-deg {@include wind-rotate(145deg);}
&.towards-146-deg {@include wind-rotate(146deg);}
&.towards-147-deg {@include wind-rotate(147deg);}
&.towards-148-deg {@include wind-rotate(148deg);}
&.towards-149-deg {@include wind-rotate(149deg);}
&.towards-150-deg {@include wind-rotate(150deg);}
&.towards-151-deg {@include wind-rotate(151deg);}
&.towards-152-deg {@include wind-rotate(152deg);}
&.towards-153-deg {@include wind-rotate(153deg);}
&.towards-154-deg {@include wind-rotate(154deg);}
&.towards-155-deg {@include wind-rotate(155deg);}
&.towards-156-deg {@include wind-rotate(156deg);}
&.towards-157-deg {@include wind-rotate(157deg);}
&.towards-158-deg {@include wind-rotate(158deg);}
&.towards-159-deg {@include wind-rotate(159deg);}
&.towards-160-deg {@include wind-rotate(160deg);}
&.towards-161-deg {@include wind-rotate(161deg);}
&.towards-162-deg {@include wind-rotate(162deg);}
&.towards-163-deg {@include wind-rotate(163deg);}
&.towards-164-deg {@include wind-rotate(164deg);}
&.towards-165-deg {@include wind-rotate(165deg);}
&.towards-166-deg {@include wind-rotate(166deg);}
&.towards-167-deg {@include wind-rotate(167deg);}
&.towards-168-deg {@include wind-rotate(168deg);}
&.towards-169-deg {@include wind-rotate(169deg);}
&.towards-170-deg {@include wind-rotate(170deg);}
&.towards-171-deg {@include wind-rotate(171deg);}
&.towards-172-deg {@include wind-rotate(172deg);}
&.towards-173-deg {@include wind-rotate(173deg);}
&.towards-174-deg {@include wind-rotate(174deg);}
&.towards-175-deg {@include wind-rotate(175deg);}
&.towards-176-deg {@include wind-rotate(176deg);}
&.towards-177-deg {@include wind-rotate(177deg);}
&.towards-178-deg {@include wind-rotate(178deg);}
&.towards-179-deg {@include wind-rotate(179deg);}
&.towards-180-deg {@include wind-rotate(180deg);}
&.towards-181-deg {@include wind-rotate(181deg);}
&.towards-182-deg {@include wind-rotate(182deg);}
&.towards-183-deg {@include wind-rotate(183deg);}
&.towards-184-deg {@include wind-rotate(184deg);}
&.towards-185-deg {@include wind-rotate(185deg);}
&.towards-186-deg {@include wind-rotate(186deg);}
&.towards-187-deg {@include wind-rotate(187deg);}
&.towards-188-deg {@include wind-rotate(188deg);}
&.towards-189-deg {@include wind-rotate(189deg);}
&.towards-190-deg {@include wind-rotate(190deg);}
&.towards-191-deg {@include wind-rotate(191deg);}
&.towards-192-deg {@include wind-rotate(192deg);}
&.towards-193-deg {@include wind-rotate(193deg);}
&.towards-194-deg {@include wind-rotate(194deg);}
&.towards-195-deg {@include wind-rotate(195deg);}
&.towards-196-deg {@include wind-rotate(196deg);}
&.towards-197-deg {@include wind-rotate(197deg);}
&.towards-198-deg {@include wind-rotate(198deg);}
&.towards-199-deg {@include wind-rotate(199deg);}
&.towards-200-deg {@include wind-rotate(200deg);}
&.towards-201-deg {@include wind-rotate(201deg);}
&.towards-202-deg {@include wind-rotate(202deg);}
&.towards-203-deg {@include wind-rotate(203deg);}
&.towards-204-deg {@include wind-rotate(204deg);}
&.towards-205-deg {@include wind-rotate(205deg);}
&.towards-206-deg {@include wind-rotate(206deg);}
&.towards-207-deg {@include wind-rotate(207deg);}
&.towards-208-deg {@include wind-rotate(208deg);}
&.towards-209-deg {@include wind-rotate(209deg);}
&.towards-210-deg {@include wind-rotate(210deg);}
&.towards-211-deg {@include wind-rotate(211deg);}
&.towards-212-deg {@include wind-rotate(212deg);}
&.towards-213-deg {@include wind-rotate(213deg);}
&.towards-214-deg {@include wind-rotate(214deg);}
&.towards-215-deg {@include wind-rotate(215deg);}
&.towards-216-deg {@include wind-rotate(216deg);}
&.towards-217-deg {@include wind-rotate(217deg);}
&.towards-218-deg {@include wind-rotate(218deg);}
&.towards-219-deg {@include wind-rotate(219deg);}
&.towards-220-deg {@include wind-rotate(220deg);}
&.towards-221-deg {@include wind-rotate(221deg);}
&.towards-222-deg {@include wind-rotate(222deg);}
&.towards-223-deg {@include wind-rotate(223deg);}
&.towards-224-deg {@include wind-rotate(224deg);}
&.towards-225-deg {@include wind-rotate(225deg);}
&.towards-226-deg {@include wind-rotate(226deg);}
&.towards-227-deg {@include wind-rotate(227deg);}
&.towards-228-deg {@include wind-rotate(228deg);}
&.towards-229-deg {@include wind-rotate(229deg);}
&.towards-230-deg {@include wind-rotate(230deg);}
&.towards-231-deg {@include wind-rotate(231deg);}
&.towards-232-deg {@include wind-rotate(232deg);}
&.towards-233-deg {@include wind-rotate(233deg);}
&.towards-234-deg {@include wind-rotate(234deg);}
&.towards-235-deg {@include wind-rotate(235deg);}
&.towards-236-deg {@include wind-rotate(236deg);}
&.towards-237-deg {@include wind-rotate(237deg);}
&.towards-238-deg {@include wind-rotate(238deg);}
&.towards-239-deg {@include wind-rotate(239deg);}
&.towards-240-deg {@include wind-rotate(240deg);}
&.towards-241-deg {@include wind-rotate(241deg);}
&.towards-242-deg {@include wind-rotate(242deg);}
&.towards-243-deg {@include wind-rotate(243deg);}
&.towards-244-deg {@include wind-rotate(244deg);}
&.towards-245-deg {@include wind-rotate(245deg);}
&.towards-246-deg {@include wind-rotate(246deg);}
&.towards-247-deg {@include wind-rotate(247deg);}
&.towards-248-deg {@include wind-rotate(248deg);}
&.towards-249-deg {@include wind-rotate(249deg);}
&.towards-250-deg {@include wind-rotate(250deg);}
&.towards-251-deg {@include wind-rotate(251deg);}
&.towards-252-deg {@include wind-rotate(252deg);}
&.towards-253-deg {@include wind-rotate(253deg);}
&.towards-254-deg {@include wind-rotate(254deg);}
&.towards-255-deg {@include wind-rotate(255deg);}
&.towards-256-deg {@include wind-rotate(256deg);}
&.towards-257-deg {@include wind-rotate(257deg);}
&.towards-258-deg {@include wind-rotate(258deg);}
&.towards-259-deg {@include wind-rotate(259deg);}
&.towards-260-deg {@include wind-rotate(260deg);}
&.towards-261-deg {@include wind-rotate(261deg);}
&.towards-262-deg {@include wind-rotate(262deg);}
&.towards-263-deg {@include wind-rotate(263deg);}
&.towards-264-deg {@include wind-rotate(264deg);}
&.towards-265-deg {@include wind-rotate(265deg);}
&.towards-266-deg {@include wind-rotate(266deg);}
&.towards-267-deg {@include wind-rotate(267deg);}
&.towards-268-deg {@include wind-rotate(268deg);}
&.towards-269-deg {@include wind-rotate(269deg);}
&.towards-270-deg {@include wind-rotate(270deg);}
&.towards-271-deg {@include wind-rotate(271deg);}
&.towards-272-deg {@include wind-rotate(272deg);}
&.towards-273-deg {@include wind-rotate(273deg);}
&.towards-274-deg {@include wind-rotate(274deg);}
&.towards-275-deg {@include wind-rotate(275deg);}
&.towards-276-deg {@include wind-rotate(276deg);}
&.towards-277-deg {@include wind-rotate(277deg);}
&.towards-278-deg {@include wind-rotate(278deg);}
&.towards-279-deg {@include wind-rotate(279deg);}
&.towards-280-deg {@include wind-rotate(280deg);}
&.towards-281-deg {@include wind-rotate(281deg);}
&.towards-282-deg {@include wind-rotate(282deg);}
&.towards-283-deg {@include wind-rotate(283deg);}
&.towards-284-deg {@include wind-rotate(284deg);}
&.towards-285-deg {@include wind-rotate(285deg);}
&.towards-286-deg {@include wind-rotate(286deg);}
&.towards-287-deg {@include wind-rotate(287deg);}
&.towards-288-deg {@include wind-rotate(288deg);}
&.towards-289-deg {@include wind-rotate(289deg);}
&.towards-290-deg {@include wind-rotate(290deg);}
&.towards-291-deg {@include wind-rotate(291deg);}
&.towards-292-deg {@include wind-rotate(292deg);}
&.towards-293-deg {@include wind-rotate(293deg);}
&.towards-294-deg {@include wind-rotate(294deg);}
&.towards-295-deg {@include wind-rotate(295deg);}
&.towards-296-deg {@include wind-rotate(296deg);}
&.towards-297-deg {@include wind-rotate(297deg);}
&.towards-298-deg {@include wind-rotate(298deg);}
&.towards-299-deg {@include wind-rotate(299deg);}
&.towards-300-deg {@include wind-rotate(300deg);}
&.towards-301-deg {@include wind-rotate(301deg);}
&.towards-302-deg {@include wind-rotate(302deg);}
&.towards-303-deg {@include wind-rotate(303deg);}
&.towards-304-deg {@include wind-rotate(304deg);}
&.towards-305-deg {@include wind-rotate(305deg);}
&.towards-306-deg {@include wind-rotate(306deg);}
&.towards-307-deg {@include wind-rotate(307deg);}
&.towards-308-deg {@include wind-rotate(308deg);}
&.towards-309-deg {@include wind-rotate(309deg);}
&.towards-310-deg {@include wind-rotate(310deg);}
&.towards-311-deg {@include wind-rotate(311deg);}
&.towards-312-deg {@include wind-rotate(312deg);}
&.towards-313-deg {@include wind-rotate(313deg);}
&.towards-314-deg {@include wind-rotate(314deg);}
&.towards-315-deg {@include wind-rotate(315deg);}
&.towards-316-deg {@include wind-rotate(316deg);}
&.towards-317-deg {@include wind-rotate(317deg);}
&.towards-318-deg {@include wind-rotate(318deg);}
&.towards-319-deg {@include wind-rotate(319deg);}
&.towards-320-deg {@include wind-rotate(320deg);}
&.towards-321-deg {@include wind-rotate(321deg);}
&.towards-322-deg {@include wind-rotate(322deg);}
&.towards-323-deg {@include wind-rotate(323deg);}
&.towards-324-deg {@include wind-rotate(324deg);}
&.towards-325-deg {@include wind-rotate(325deg);}
&.towards-326-deg {@include wind-rotate(326deg);}
&.towards-327-deg {@include wind-rotate(327deg);}
&.towards-328-deg {@include wind-rotate(328deg);}
&.towards-329-deg {@include wind-rotate(329deg);}
&.towards-330-deg {@include wind-rotate(330deg);}
&.towards-331-deg {@include wind-rotate(331deg);}
&.towards-332-deg {@include wind-rotate(332deg);}
&.towards-333-deg {@include wind-rotate(333deg);}
&.towards-334-deg {@include wind-rotate(334deg);}
&.towards-335-deg {@include wind-rotate(335deg);}
&.towards-336-deg {@include wind-rotate(336deg);}
&.towards-337-deg {@include wind-rotate(337deg);}
&.towards-338-deg {@include wind-rotate(338deg);}
&.towards-339-deg {@include wind-rotate(339deg);}
&.towards-340-deg {@include wind-rotate(340deg);}
&.towards-341-deg {@include wind-rotate(341deg);}
&.towards-342-deg {@include wind-rotate(342deg);}
&.towards-343-deg {@include wind-rotate(343deg);}
&.towards-344-deg {@include wind-rotate(344deg);}
&.towards-345-deg {@include wind-rotate(345deg);}
&.towards-346-deg {@include wind-rotate(346deg);}
&.towards-347-deg {@include wind-rotate(347deg);}
&.towards-348-deg {@include wind-rotate(348deg);}
&.towards-349-deg {@include wind-rotate(349deg);}
&.towards-350-deg {@include wind-rotate(350deg);}
&.towards-351-deg {@include wind-rotate(351deg);}
&.towards-352-deg {@include wind-rotate(352deg);}
&.towards-353-deg {@include wind-rotate(353deg);}
&.towards-354-deg {@include wind-rotate(354deg);}
&.towards-355-deg {@include wind-rotate(355deg);}
&.towards-356-deg {@include wind-rotate(356deg);}
&.towards-357-deg {@include wind-rotate(357deg);}
&.towards-358-deg {@include wind-rotate(358deg);}
&.towards-359-deg {@include wind-rotate(359deg);}
&.towards-360-deg {@include wind-rotate(0deg);}
&.from-0-deg {@include wind-rotate(180deg);}
&.from-1-deg {@include wind-rotate(181deg);}
&.from-2-deg {@include wind-rotate(182deg);}
&.from-3-deg {@include wind-rotate(183deg);}
&.from-4-deg {@include wind-rotate(184deg);}
&.from-5-deg {@include wind-rotate(185deg);}
&.from-6-deg {@include wind-rotate(186deg);}
&.from-7-deg {@include wind-rotate(187deg);}
&.from-8-deg {@include wind-rotate(188deg);}
&.from-9-deg {@include wind-rotate(189deg);}
&.from-10-deg {@include wind-rotate(190deg);}
&.from-11-deg {@include wind-rotate(191deg);}
&.from-12-deg {@include wind-rotate(192deg);}
&.from-13-deg {@include wind-rotate(193deg);}
&.from-14-deg {@include wind-rotate(194deg);}
&.from-15-deg {@include wind-rotate(195deg);}
&.from-16-deg {@include wind-rotate(196deg);}
&.from-17-deg {@include wind-rotate(197deg);}
&.from-18-deg {@include wind-rotate(198deg);}
&.from-19-deg {@include wind-rotate(199deg);}
&.from-20-deg {@include wind-rotate(200deg);}
&.from-21-deg {@include wind-rotate(201deg);}
&.from-22-deg {@include wind-rotate(202deg);}
&.from-23-deg {@include wind-rotate(203deg);}
&.from-24-deg {@include wind-rotate(204deg);}
&.from-25-deg {@include wind-rotate(205deg);}
&.from-26-deg {@include wind-rotate(206deg);}
&.from-27-deg {@include wind-rotate(207deg);}
&.from-28-deg {@include wind-rotate(208deg);}
&.from-29-deg {@include wind-rotate(209deg);}
&.from-30-deg {@include wind-rotate(210deg);}
&.from-31-deg {@include wind-rotate(211deg);}
&.from-32-deg {@include wind-rotate(212deg);}
&.from-33-deg {@include wind-rotate(213deg);}
&.from-34-deg {@include wind-rotate(214deg);}
&.from-35-deg {@include wind-rotate(215deg);}
&.from-36-deg {@include wind-rotate(216deg);}
&.from-37-deg {@include wind-rotate(217deg);}
&.from-38-deg {@include wind-rotate(218deg);}
&.from-39-deg {@include wind-rotate(219deg);}
&.from-40-deg {@include wind-rotate(220deg);}
&.from-41-deg {@include wind-rotate(221deg);}
&.from-42-deg {@include wind-rotate(222deg);}
&.from-43-deg {@include wind-rotate(223deg);}
&.from-44-deg {@include wind-rotate(224deg);}
&.from-45-deg {@include wind-rotate(225deg);}
&.from-46-deg {@include wind-rotate(226deg);}
&.from-47-deg {@include wind-rotate(227deg);}
&.from-48-deg {@include wind-rotate(228deg);}
&.from-49-deg {@include wind-rotate(229deg);}
&.from-50-deg {@include wind-rotate(230deg);}
&.from-51-deg {@include wind-rotate(231deg);}
&.from-52-deg {@include wind-rotate(232deg);}
&.from-53-deg {@include wind-rotate(233deg);}
&.from-54-deg {@include wind-rotate(234deg);}
&.from-55-deg {@include wind-rotate(235deg);}
&.from-56-deg {@include wind-rotate(236deg);}
&.from-57-deg {@include wind-rotate(237deg);}
&.from-58-deg {@include wind-rotate(238deg);}
&.from-59-deg {@include wind-rotate(239deg);}
&.from-60-deg {@include wind-rotate(240deg);}
&.from-61-deg {@include wind-rotate(241deg);}
&.from-62-deg {@include wind-rotate(242deg);}
&.from-63-deg {@include wind-rotate(243deg);}
&.from-64-deg {@include wind-rotate(244deg);}
&.from-65-deg {@include wind-rotate(245deg);}
&.from-66-deg {@include wind-rotate(246deg);}
&.from-67-deg {@include wind-rotate(247deg);}
&.from-68-deg {@include wind-rotate(248deg);}
&.from-69-deg {@include wind-rotate(249deg);}
&.from-70-deg {@include wind-rotate(250deg);}
&.from-71-deg {@include wind-rotate(251deg);}
&.from-72-deg {@include wind-rotate(252deg);}
&.from-73-deg {@include wind-rotate(253deg);}
&.from-74-deg {@include wind-rotate(254deg);}
&.from-75-deg {@include wind-rotate(255deg);}
&.from-76-deg {@include wind-rotate(256deg);}
&.from-77-deg {@include wind-rotate(257deg);}
&.from-78-deg {@include wind-rotate(258deg);}
&.from-79-deg {@include wind-rotate(259deg);}
&.from-80-deg {@include wind-rotate(260deg);}
&.from-81-deg {@include wind-rotate(261deg);}
&.from-82-deg {@include wind-rotate(262deg);}
&.from-83-deg {@include wind-rotate(263deg);}
&.from-84-deg {@include wind-rotate(264deg);}
&.from-85-deg {@include wind-rotate(265deg);}
&.from-86-deg {@include wind-rotate(266deg);}
&.from-87-deg {@include wind-rotate(267deg);}
&.from-88-deg {@include wind-rotate(268deg);}
&.from-89-deg {@include wind-rotate(269deg);}
&.from-90-deg {@include wind-rotate(270deg);}
&.from-91-deg {@include wind-rotate(271deg);}
&.from-92-deg {@include wind-rotate(272deg);}
&.from-93-deg {@include wind-rotate(273deg);}
&.from-94-deg {@include wind-rotate(274deg);}
&.from-95-deg {@include wind-rotate(275deg);}
&.from-96-deg {@include wind-rotate(276deg);}
&.from-97-deg {@include wind-rotate(277deg);}
&.from-98-deg {@include wind-rotate(278deg);}
&.from-99-deg {@include wind-rotate(279deg);}
&.from-100-deg {@include wind-rotate(280deg);}
&.from-101-deg {@include wind-rotate(281deg);}
&.from-102-deg {@include wind-rotate(282deg);}
&.from-103-deg {@include wind-rotate(283deg);}
&.from-104-deg {@include wind-rotate(284deg);}
&.from-105-deg {@include wind-rotate(285deg);}
&.from-106-deg {@include wind-rotate(286deg);}
&.from-107-deg {@include wind-rotate(287deg);}
&.from-108-deg {@include wind-rotate(288deg);}
&.from-109-deg {@include wind-rotate(289deg);}
&.from-110-deg {@include wind-rotate(290deg);}
&.from-111-deg {@include wind-rotate(291deg);}
&.from-112-deg {@include wind-rotate(292deg);}
&.from-113-deg {@include wind-rotate(293deg);}
&.from-114-deg {@include wind-rotate(294deg);}
&.from-115-deg {@include wind-rotate(295deg);}
&.from-116-deg {@include wind-rotate(296deg);}
&.from-117-deg {@include wind-rotate(297deg);}
&.from-118-deg {@include wind-rotate(298deg);}
&.from-119-deg {@include wind-rotate(299deg);}
&.from-120-deg {@include wind-rotate(300deg);}
&.from-121-deg {@include wind-rotate(301deg);}
&.from-122-deg {@include wind-rotate(302deg);}
&.from-123-deg {@include wind-rotate(303deg);}
&.from-124-deg {@include wind-rotate(304deg);}
&.from-125-deg {@include wind-rotate(305deg);}
&.from-126-deg {@include wind-rotate(306deg);}
&.from-127-deg {@include wind-rotate(307deg);}
&.from-128-deg {@include wind-rotate(308deg);}
&.from-129-deg {@include wind-rotate(309deg);}
&.from-130-deg {@include wind-rotate(310deg);}
&.from-131-deg {@include wind-rotate(311deg);}
&.from-132-deg {@include wind-rotate(312deg);}
&.from-133-deg {@include wind-rotate(313deg);}
&.from-134-deg {@include wind-rotate(314deg);}
&.from-135-deg {@include wind-rotate(315deg);}
&.from-136-deg {@include wind-rotate(316deg);}
&.from-137-deg {@include wind-rotate(317deg);}
&.from-138-deg {@include wind-rotate(318deg);}
&.from-139-deg {@include wind-rotate(319deg);}
&.from-140-deg {@include wind-rotate(320deg);}
&.from-141-deg {@include wind-rotate(321deg);}
&.from-142-deg {@include wind-rotate(322deg);}
&.from-143-deg {@include wind-rotate(323deg);}
&.from-144-deg {@include wind-rotate(324deg);}
&.from-145-deg {@include wind-rotate(325deg);}
&.from-146-deg {@include wind-rotate(326deg);}
&.from-147-deg {@include wind-rotate(327deg);}
&.from-148-deg {@include wind-rotate(328deg);}
&.from-149-deg {@include wind-rotate(329deg);}
&.from-150-deg {@include wind-rotate(330deg);}
&.from-151-deg {@include wind-rotate(331deg);}
&.from-152-deg {@include wind-rotate(332deg);}
&.from-153-deg {@include wind-rotate(333deg);}
&.from-154-deg {@include wind-rotate(334deg);}
&.from-155-deg {@include wind-rotate(335deg);}
&.from-156-deg {@include wind-rotate(336deg);}
&.from-157-deg {@include wind-rotate(337deg);}
&.from-158-deg {@include wind-rotate(338deg);}
&.from-159-deg {@include wind-rotate(339deg);}
&.from-160-deg {@include wind-rotate(340deg);}
&.from-161-deg {@include wind-rotate(341deg);}
&.from-162-deg {@include wind-rotate(342deg);}
&.from-163-deg {@include wind-rotate(343deg);}
&.from-164-deg {@include wind-rotate(344deg);}
&.from-165-deg {@include wind-rotate(345deg);}
&.from-166-deg {@include wind-rotate(346deg);}
&.from-167-deg {@include wind-rotate(347deg);}
&.from-168-deg {@include wind-rotate(348deg);}
&.from-169-deg {@include wind-rotate(349deg);}
&.from-170-deg {@include wind-rotate(350deg);}
&.from-171-deg {@include wind-rotate(351deg);}
&.from-172-deg {@include wind-rotate(352deg);}
&.from-173-deg {@include wind-rotate(353deg);}
&.from-174-deg {@include wind-rotate(354deg);}
&.from-175-deg {@include wind-rotate(355deg);}
&.from-176-deg {@include wind-rotate(356deg);}
&.from-177-deg {@include wind-rotate(357deg);}
&.from-178-deg {@include wind-rotate(358deg);}
&.from-179-deg {@include wind-rotate(359deg);}
&.from-180-deg {@include wind-rotate(0deg);}
&.from-181-deg {@include wind-rotate(1deg);}
&.from-182-deg {@include wind-rotate(2deg);}
&.from-183-deg {@include wind-rotate(3deg);}
&.from-184-deg {@include wind-rotate(4deg);}
&.from-185-deg {@include wind-rotate(5deg);}
&.from-186-deg {@include wind-rotate(6deg);}
&.from-187-deg {@include wind-rotate(7deg);}
&.from-188-deg {@include wind-rotate(8deg);}
&.from-189-deg {@include wind-rotate(9deg);}
&.from-190-deg {@include wind-rotate(10deg);}
&.from-191-deg {@include wind-rotate(11deg);}
&.from-192-deg {@include wind-rotate(12deg);}
&.from-193-deg {@include wind-rotate(13deg);}
&.from-194-deg {@include wind-rotate(14deg);}
&.from-195-deg {@include wind-rotate(15deg);}
&.from-196-deg {@include wind-rotate(16deg);}
&.from-197-deg {@include wind-rotate(17deg);}
&.from-198-deg {@include wind-rotate(18deg);}
&.from-199-deg {@include wind-rotate(19deg);}
&.from-200-deg {@include wind-rotate(20deg);}
&.from-201-deg {@include wind-rotate(21deg);}
&.from-202-deg {@include wind-rotate(22deg);}
&.from-203-deg {@include wind-rotate(23deg);}
&.from-204-deg {@include wind-rotate(24deg);}
&.from-205-deg {@include wind-rotate(25deg);}
&.from-206-deg {@include wind-rotate(26deg);}
&.from-207-deg {@include wind-rotate(27deg);}
&.from-208-deg {@include wind-rotate(28deg);}
&.from-209-deg {@include wind-rotate(29deg);}
&.from-210-deg {@include wind-rotate(30deg);}
&.from-211-deg {@include wind-rotate(31deg);}
&.from-212-deg {@include wind-rotate(32deg);}
&.from-213-deg {@include wind-rotate(33deg);}
&.from-214-deg {@include wind-rotate(34deg);}
&.from-215-deg {@include wind-rotate(35deg);}
&.from-216-deg {@include wind-rotate(36deg);}
&.from-217-deg {@include wind-rotate(37deg);}
&.from-218-deg {@include wind-rotate(38deg);}
&.from-219-deg {@include wind-rotate(39deg);}
&.from-220-deg {@include wind-rotate(40deg);}
&.from-221-deg {@include wind-rotate(41deg);}
&.from-222-deg {@include wind-rotate(42deg);}
&.from-223-deg {@include wind-rotate(43deg);}
&.from-224-deg {@include wind-rotate(44deg);}
&.from-225-deg {@include wind-rotate(45deg);}
&.from-226-deg {@include wind-rotate(46deg);}
&.from-227-deg {@include wind-rotate(47deg);}
&.from-228-deg {@include wind-rotate(48deg);}
&.from-229-deg {@include wind-rotate(49deg);}
&.from-230-deg {@include wind-rotate(50deg);}
&.from-231-deg {@include wind-rotate(51deg);}
&.from-232-deg {@include wind-rotate(52deg);}
&.from-233-deg {@include wind-rotate(53deg);}
&.from-234-deg {@include wind-rotate(54deg);}
&.from-235-deg {@include wind-rotate(55deg);}
&.from-236-deg {@include wind-rotate(56deg);}
&.from-237-deg {@include wind-rotate(57deg);}
&.from-238-deg {@include wind-rotate(58deg);}
&.from-239-deg {@include wind-rotate(59deg);}
&.from-240-deg {@include wind-rotate(60deg);}
&.from-241-deg {@include wind-rotate(61deg);}
&.from-242-deg {@include wind-rotate(62deg);}
&.from-243-deg {@include wind-rotate(63deg);}
&.from-244-deg {@include wind-rotate(64deg);}
&.from-245-deg {@include wind-rotate(65deg);}
&.from-246-deg {@include wind-rotate(66deg);}
&.from-247-deg {@include wind-rotate(67deg);}
&.from-248-deg {@include wind-rotate(68deg);}
&.from-249-deg {@include wind-rotate(69deg);}
&.from-250-deg {@include wind-rotate(70deg);}
&.from-251-deg {@include wind-rotate(71deg);}
&.from-252-deg {@include wind-rotate(72deg);}
&.from-253-deg {@include wind-rotate(73deg);}
&.from-254-deg {@include wind-rotate(74deg);}
&.from-255-deg {@include wind-rotate(75deg);}
&.from-256-deg {@include wind-rotate(76deg);}
&.from-257-deg {@include wind-rotate(77deg);}
&.from-258-deg {@include wind-rotate(78deg);}
&.from-259-deg {@include wind-rotate(79deg);}
&.from-260-deg {@include wind-rotate(80deg);}
&.from-261-deg {@include wind-rotate(81deg);}
&.from-262-deg {@include wind-rotate(82deg);}
&.from-263-deg {@include wind-rotate(83deg);}
&.from-264-deg {@include wind-rotate(84deg);}
&.from-265-deg {@include wind-rotate(85deg);}
&.from-266-deg {@include wind-rotate(86deg);}
&.from-267-deg {@include wind-rotate(87deg);}
&.from-268-deg {@include wind-rotate(88deg);}
&.from-269-deg {@include wind-rotate(89deg);}
&.from-270-deg {@include wind-rotate(90deg);}
&.from-271-deg {@include wind-rotate(91deg);}
&.from-272-deg {@include wind-rotate(92deg);}
&.from-273-deg {@include wind-rotate(93deg);}
&.from-274-deg {@include wind-rotate(94deg);}
&.from-275-deg {@include wind-rotate(95deg);}
&.from-276-deg {@include wind-rotate(96deg);}
&.from-277-deg {@include wind-rotate(97deg);}
&.from-278-deg {@include wind-rotate(98deg);}
&.from-279-deg {@include wind-rotate(99deg);}
&.from-280-deg {@include wind-rotate(100deg);}
&.from-281-deg {@include wind-rotate(101deg);}
&.from-282-deg {@include wind-rotate(102deg);}
&.from-283-deg {@include wind-rotate(103deg);}
&.from-284-deg {@include wind-rotate(104deg);}
&.from-285-deg {@include wind-rotate(105deg);}
&.from-286-deg {@include wind-rotate(106deg);}
&.from-287-deg {@include wind-rotate(107deg);}
&.from-288-deg {@include wind-rotate(108deg);}
&.from-289-deg {@include wind-rotate(109deg);}
&.from-290-deg {@include wind-rotate(110deg);}
&.from-291-deg {@include wind-rotate(111deg);}
&.from-292-deg {@include wind-rotate(112deg);}
&.from-293-deg {@include wind-rotate(113deg);}
&.from-294-deg {@include wind-rotate(114deg);}
&.from-295-deg {@include wind-rotate(115deg);}
&.from-296-deg {@include wind-rotate(116deg);}
&.from-297-deg {@include wind-rotate(117deg);}
&.from-298-deg {@include wind-rotate(118deg);}
&.from-299-deg {@include wind-rotate(119deg);}
&.from-300-deg {@include wind-rotate(120deg);}
&.from-301-deg {@include wind-rotate(121deg);}
&.from-302-deg {@include wind-rotate(122deg);}
&.from-303-deg {@include wind-rotate(123deg);}
&.from-304-deg {@include wind-rotate(124deg);}
&.from-305-deg {@include wind-rotate(125deg);}
&.from-306-deg {@include wind-rotate(126deg);}
&.from-307-deg {@include wind-rotate(127deg);}
&.from-308-deg {@include wind-rotate(128deg);}
&.from-309-deg {@include wind-rotate(129deg);}
&.from-310-deg {@include wind-rotate(130deg);}
&.from-311-deg {@include wind-rotate(131deg);}
&.from-312-deg {@include wind-rotate(132deg);}
&.from-313-deg {@include wind-rotate(133deg);}
&.from-314-deg {@include wind-rotate(134deg);}
&.from-315-deg {@include wind-rotate(135deg);}
&.from-316-deg {@include wind-rotate(136deg);}
&.from-317-deg {@include wind-rotate(137deg);}
&.from-318-deg {@include wind-rotate(138deg);}
&.from-319-deg {@include wind-rotate(139deg);}
&.from-320-deg {@include wind-rotate(140deg);}
&.from-321-deg {@include wind-rotate(141deg);}
&.from-322-deg {@include wind-rotate(142deg);}
&.from-323-deg {@include wind-rotate(143deg);}
&.from-324-deg {@include wind-rotate(144deg);}
&.from-325-deg {@include wind-rotate(145deg);}
&.from-326-deg {@include wind-rotate(146deg);}
&.from-327-deg {@include wind-rotate(147deg);}
&.from-328-deg {@include wind-rotate(148deg);}
&.from-329-deg {@include wind-rotate(149deg);}
&.from-330-deg {@include wind-rotate(150deg);}
&.from-331-deg {@include wind-rotate(151deg);}
&.from-332-deg {@include wind-rotate(152deg);}
&.from-333-deg {@include wind-rotate(153deg);}
&.from-334-deg {@include wind-rotate(154deg);}
&.from-335-deg {@include wind-rotate(155deg);}
&.from-336-deg {@include wind-rotate(156deg);}
&.from-337-deg {@include wind-rotate(157deg);}
&.from-338-deg {@include wind-rotate(158deg);}
&.from-339-deg {@include wind-rotate(159deg);}
&.from-340-deg {@include wind-rotate(160deg);}
&.from-341-deg {@include wind-rotate(161deg);}
&.from-342-deg {@include wind-rotate(162deg);}
&.from-343-deg {@include wind-rotate(163deg);}
&.from-344-deg {@include wind-rotate(164deg);}
&.from-345-deg {@include wind-rotate(165deg);}
&.from-346-deg {@include wind-rotate(166deg);}
&.from-347-deg {@include wind-rotate(167deg);}
&.from-348-deg {@include wind-rotate(168deg);}
&.from-349-deg {@include wind-rotate(169deg);}
&.from-350-deg {@include wind-rotate(170deg);}
&.from-351-deg {@include wind-rotate(171deg);}
&.from-352-deg {@include wind-rotate(172deg);}
&.from-353-deg {@include wind-rotate(173deg);}
&.from-354-deg {@include wind-rotate(174deg);}
&.from-355-deg {@include wind-rotate(175deg);}
&.from-356-deg {@include wind-rotate(176deg);}
&.from-357-deg {@include wind-rotate(177deg);}
&.from-358-deg {@include wind-rotate(178deg);}
&.from-359-deg {@include wind-rotate(179deg);}
&.from-360-deg {@include wind-rotate(180deg);}
}
.wi-wind-towards-n {
@extend .wi-wind.towards-0-deg;
}
================================================
FILE: public/admin-panel/dist/css/icons/weather-icons/sass/icon-classes/classes-wind.scss
================================================
// Wind Variables 2.0
$wind: "\f0b1";
.#{$wi-css-prefix}-wind:before { content: $wind; }
@mixin wind-rotate( $val: 0deg ) {
-webkit-transform: rotate($val);
-moz-transform: rotate($val);
-ms-transform: rotate($val);
-o-transform: rotate($val);
transform: rotate($val);
}
@import "classes-wind-degrees.scss";
================================================
FILE: public/admin-panel/dist/css/icons/weather-icons/sass/icon-variables/variables-beaufort.scss
================================================
$wind-beaufort-0: "\f0b7";
$wind-beaufort-1: "\f0b8";
$wind-beaufort-2: "\f0b9";
$wind-beaufort-3: "\f0ba";
$wind-beaufort-4: "\f0bb";
$wind-beaufort-5: "\f0bc";
$wind-beaufort-6: "\f0bd";
$wind-beaufort-7: "\f0be";
$wind-beaufort-8: "\f0bf";
$wind-beaufort-9: "\f0c0";
$wind-beaufort-10: "\f0c1";
$wind-beaufort-11: "\f0c2";
$wind-beaufort-12: "\f0c3";
================================================
FILE: public/admin-panel/dist/css/icons/weather-icons/sass/icon-variables/variables-day.scss
================================================
$day-sunny: "\f00d";
$day-cloudy: "\f002";
$day-cloudy-gusts: "\f000";
$day-cloudy-windy: "\f001";
$day-fog: "\f003";
$day-hail: "\f004";
$day-haze: "\f0b6";
$day-lightning: "\f005";
$day-rain: "\f008";
$day-rain-mix: "\f006";
$day-rain-wind: "\f007";
$day-showers: "\f009";
$day-sleet: "\f0b2";
$day-sleet-storm: "\f068";
$day-snow: "\f00a";
$day-snow-thunderstorm: "\f06b";
$day-snow-wind: "\f065";
$day-sprinkle: "\f00b";
$day-storm-showers: "\f00e";
$day-sunny-overcast: "\f00c";
$day-thunderstorm: "\f010";
$day-windy: "\f085";
$solar-eclipse: "\f06e";
$hot: "\f072";
$day-cloudy-high: "\f07d";
$day-light-wind: "\f0c4";
================================================
FILE: public/admin-panel/dist/css/icons/weather-icons/sass/icon-variables/variables-direction.scss
================================================
$direction-up: "\f058";
$direction-up-right: "\f057";
$direction-right: "\f04d";
$direction-down-right: "\f088";
$direction-down: "\f044";
$direction-down-left: "\f043";
$direction-left: "\f048";
$direction-up-left: "\f087";
================================================
FILE: public/admin-panel/dist/css/icons/weather-icons/sass/icon-variables/variables-misc.scss
================================================
$alien: "\f075";
$celsius: "\f03c";
$fahrenheit: "\f045";
$degrees: "\f042";
$thermometer: "\f055";
$thermometer-exterior: "\f053";
$thermometer-internal: "\f054";
$cloud-down: "\f03d";
$cloud-up: "\f040";
$cloud-refresh: "\f03e";
$horizon: "\f047";
$horizon-alt: "\f046";
$sunrise: "\f051";
$sunset: "\f052";
$moonrise: "\f0c9";
$moonset: "\f0ca";
$refresh: "\f04c";
$refresh-alt: "\f04b";
$umbrella: "\f084";
$barometer: "\f079";
$humidity: "\f07a";
$na: "\f07b";
$train: "\f0cb";
================================================
FILE: public/admin-panel/dist/css/icons/weather-icons/sass/icon-variables/variables-moon.scss
================================================
$moon-new: "\f095";
$moon-waxing-cresent-1: "\f096";
$moon-waxing-cresent-2: "\f097";
$moon-waxing-cresent-3: "\f098";
$moon-waxing-cresent-4: "\f099";
$moon-waxing-cresent-5: "\f09a";
$moon-waxing-cresent-6: "\f09b";
$moon-first-quarter: "\f09c";
$moon-waxing-gibbous-1: "\f09d";
$moon-waxing-gibbous-2: "\f09e";
$moon-waxing-gibbous-3: "\f09f";
$moon-waxing-gibbous-4: "\f0a0";
$moon-waxing-gibbous-5: "\f0a1";
$moon-waxing-gibbous-6: "\f0a2";
$moon-full: "\f0a3";
$moon-waning-gibbous-1: "\f0a4";
$moon-waning-gibbous-2: "\f0a5";
$moon-waning-gibbous-3: "\f0a6";
$moon-waning-gibbous-4: "\f0a7";
$moon-waning-gibbous-5: "\f0a8";
$moon-waning-gibbous-6: "\f0a9";
$moon-third-quarter: "\f0aa";
$moon-waning-crescent-1: "\f0ab";
$moon-waning-crescent-2: "\f0ac";
$moon-waning-crescent-3: "\f0ad";
$moon-waning-crescent-4: "\f0ae";
$moon-waning-crescent-5: "\f0af";
$moon-waning-crescent-6: "\f0b0";
$moon-alt-new: "\f0eb";
$moon-alt-waxing-cresent-1: "\f0d0";
$moon-alt-waxing-cresent-2: "\f0d1";
$moon-alt-waxing-cresent-3: "\f0d2";
$moon-alt-waxing-cresent-4: "\f0d3";
$moon-alt-waxing-cresent-5: "\f0d4";
$moon-alt-waxing-cresent-6: "\f0d5";
$moon-alt-first-quarter: "\f0d6";
$moon-alt-waxing-gibbous-1: "\f0d7";
$moon-alt-waxing-gibbous-2: "\f0d8";
$moon-alt-waxing-gibbous-3: "\f0d9";
$moon-alt-waxing-gibbous-4: "\f0da";
$moon-alt-waxing-gibbous-5: "\f0db";
$moon-alt-waxing-gibbous-6: "\f0dc";
$moon-alt-full: "\f0dd";
$moon-alt-waning-gibbous-1: "\f0de";
$moon-alt-waning-gibbous-2: "\f0df";
$moon-alt-waning-gibbous-3: "\f0e0";
$moon-alt-waning-gibbous-4: "\f0e1";
$moon-alt-waning-gibbous-5: "\f0e2";
$moon-alt-waning-gibbous-6: "\f0e3";
$moon-alt-third-quarter: "\f0e4";
$moon-alt-waning-crescent-1: "\f0e5";
$moon-alt-waning-crescent-2: "\f0e6";
$moon-alt-waning-crescent-3: "\f0e7";
$moon-alt-waning-crescent-4: "\f0e8";
$moon-alt-waning-crescent-5: "\f0e9";
$moon-alt-waning-crescent-6: "\f0ea";
================================================
FILE: public/admin-panel/dist/css/icons/weather-icons/sass/icon-variables/variables-neutral.scss
================================================
$cloud: "\f041";
$cloudy: "\f013";
$cloudy-gusts: "\f011";
$cloudy-windy: "\f012";
$fog: "\f014";
$hail: "\f015";
$rain: "\f019";
$rain-mix: "\f017";
$rain-wind: "\f018";
$showers: "\f01a";
$sleet: "\f0b5";
$snow: "\f01b";
$sprinkle: "\f01c";
$storm-showers: "\f01d";
$thunderstorm: "\f01e";
$snow-wind: "\f064";
$snow: "\f01b";
$smog: "\f074";
$smoke: "\f062";
$lightning: "\f016";
$raindrops: "\f04e";
$raindrop: "\f078";
$dust: "\f063";
$snowflake-cold: "\f076";
$windy: "\f021";
$strong-wind: "\f050";
$sandstorm: "\f082";
$earthquake: "\f0c6";
$fire: "\f0c7";
$flood: "\f07c";
$meteor: "\f071";
$tsunami: "\f0c5";
$volcano: "\f0c8";
$hurricane: "\f073";
$tornado: "\f056";
$small-craft-advisory: "\f0cc";
$gale-warning: "\f0cd";
$storm-warning: "\f0ce";
$hurricane-warning: "\f0cf";
$wind-direction: "\f0b1";
================================================
FILE: public/admin-panel/dist/css/icons/weather-icons/sass/icon-variables/variables-night.scss
================================================
$night-clear: "\f02e";
$night-alt-cloudy: "\f086";
$night-alt-cloudy-gusts: "\f022";
$night-alt-cloudy-windy: "\f023";
$night-alt-hail: "\f024";
$night-alt-lightning: "\f025";
$night-alt-rain: "\f028";
$night-alt-rain-mix: "\f026";
$night-alt-rain-wind: "\f027";
$night-alt-showers: "\f029";
$night-alt-sleet: "\f0b4";
$night-alt-sleet-storm: "\f06a";
$night-alt-snow: "\f02a";
$night-alt-snow-thunderstorm: "\f06d";
$night-alt-snow-wind: "\f067";
$night-alt-sprinkle: "\f02b";
$night-alt-storm-showers: "\f02c";
$night-alt-thunderstorm: "\f02d";
$night-cloudy: "\f031";
$night-cloudy-gusts: "\f02f";
$night-cloudy-windy: "\f030";
$night-fog: "\f04a";
$night-hail: "\f032";
$night-lightning: "\f033";
$night-partly-cloudy: "\f083";
$night-rain: "\f036";
$night-rain-mix: "\f034";
$night-rain-wind: "\f035";
$night-showers: "\f037";
$night-sleet: "\f0b3";
$night-sleet-storm: "\f069";
$night-snow: "\f038";
$night-snow-thunderstorm: "\f06c";
$night-snow-wind: "\f066";
$night-sprinkle: "\f039";
$night-storm-showers: "\f03a";
$night-thunderstorm: "\f03b";
$lunar-eclipse: "\f070";
$stars: "\f077";
$storm-showers: "\f01d";
$thunderstorm: "\f01e";
$night-alt-cloudy-high: "\f07e";
$night-cloudy-high: "\f080";
$night-alt-partly-cloudy: "\f081";
================================================
FILE: public/admin-panel/dist/css/icons/weather-icons/sass/icon-variables/variables-time.scss
================================================
$time-1: "\f08a";
$time-2: "\f08b";
$time-3: "\f08c";
$time-4: "\f08d";
$time-5: "\f08e";
$time-6: "\f08f";
$time-7: "\f090";
$time-8: "\f091";
$time-9: "\f092";
$time-10: "\f093";
$time-11: "\f094";
$time-12: "\f089";
================================================
FILE: public/admin-panel/dist/css/icons/weather-icons/sass/icon-variables/variables-wind-names.scss
================================================
$n: "\f0b1";
$nne: "\f0b1";
$ne: "\f0b1";
$ene: "\f0b1";
$e: "\f0b1";
$ese: "\f0b1";
$se: "\f0b1";
$sse: "\f0b1";
$s: "\f0b1";
$ssw: "\f0b1";
$sw: "\f0b1";
$wsw: "\f0b1";
$w: "\f0b1";
$wnw: "\f0b1";
$nw: "\f0b1";
$nnw: "\f0b1";
$n: "\f0b1";
$nne: "\f0b1";
$ne: "\f0b1";
$ene: "\f0b1";
$e: "\f0b1";
$ese: "\f0b1";
$se: "\f0b1";
$sse: "\f0b1";
$s: "\f0b1";
$ssw: "\f0b1";
$sw: "\f0b1";
$wsw: "\f0b1";
$w: "\f0b1";
$wnw: "\f0b1";
$nw: "\f0b1";
$nnw: "\f0b1";
================================================
FILE: public/admin-panel/dist/css/icons/weather-icons/sass/mappings/wi-forecast-io.scss
================================================
.#{$wi-css-prefix}-forecast-io-clear-day:before { content: $day-sunny ; }
.#{$wi-css-prefix}-forecast-io-clear-night:before { content: $night-clear ; }
.#{$wi-css-prefix}-forecast-io-rain:before { content: $rain ; }
.#{$wi-css-prefix}-forecast-io-snow:before { content: $snow ; }
.#{$wi-css-prefix}-forecast-io-sleet:before { content: $sleet ; }
.#{$wi-css-prefix}-forecast-io-wind:before { content: $strong-wind ; }
.#{$wi-css-prefix}-forecast-io-fog:before { content: $fog ; }
.#{$wi-css-prefix}-forecast-io-cloudy:before { content: $cloudy ; }
.#{$wi-css-prefix}-forecast-io-partly-cloudy-day:before { content: $day-cloudy ; }
.#{$wi-css-prefix}-forecast-io-partly-cloudy-night:before { content: $night-cloudy ; }
.#{$wi-css-prefix}-forecast-io-hail:before { content: $hail ; }
.#{$wi-css-prefix}-forecast-io-thunderstorm:before { content: $thunderstorm ; }
.#{$wi-css-prefix}-forecast-io-tornado:before { content: $tornado ; }
================================================
FILE: public/admin-panel/dist/css/icons/weather-icons/sass/mappings/wi-owm.scss
================================================
// Neutral
.#{$wi-css-prefix}-owm-200:before { content: $thunderstorm ; }
.#{$wi-css-prefix}-owm-201:before { content: $thunderstorm ; }
.#{$wi-css-prefix}-owm-202:before { content: $thunderstorm ; }
.#{$wi-css-prefix}-owm-210:before { content: $lightning ; }
.#{$wi-css-prefix}-owm-211:before { content: $lightning ; }
.#{$wi-css-prefix}-owm-212:before { content: $lightning ; }
.#{$wi-css-prefix}-owm-221:before { content: $lightning ; }
.#{$wi-css-prefix}-owm-230:before { content: $thunderstorm ; }
.#{$wi-css-prefix}-owm-231:before { content: $thunderstorm ; }
.#{$wi-css-prefix}-owm-232:before { content: $thunderstorm ; }
.#{$wi-css-prefix}-owm-300:before { content: $sprinkle ; }
.#{$wi-css-prefix}-owm-301:before { content: $sprinkle ; }
.#{$wi-css-prefix}-owm-302:before { content: $rain ; }
.#{$wi-css-prefix}-owm-310:before { content: $rain-mix ; }
.#{$wi-css-prefix}-owm-311:before { content: $rain ; }
.#{$wi-css-prefix}-owm-312:before { content: $rain ; }
.#{$wi-css-prefix}-owm-313:before { content: $showers ; }
.#{$wi-css-prefix}-owm-314:before { content: $rain ; }
.#{$wi-css-prefix}-owm-321:before { content: $sprinkle ; }
.#{$wi-css-prefix}-owm-500:before { content: $sprinkle ; }
.#{$wi-css-prefix}-owm-501:before { content: $rain ; }
.#{$wi-css-prefix}-owm-502:before { content: $rain ; }
.#{$wi-css-prefix}-owm-503:before { content: $rain ; }
.#{$wi-css-prefix}-owm-504:before { content: $rain ; }
.#{$wi-css-prefix}-owm-511:before { content: $rain-mix ; }
.#{$wi-css-prefix}-owm-520:before { content: $showers ; }
.#{$wi-css-prefix}-owm-521:before { content: $showers ; }
.#{$wi-css-prefix}-owm-522:before { content: $showers ; }
.#{$wi-css-prefix}-owm-531:before { content: $storm-showers ; }
.#{$wi-css-prefix}-owm-600:before { content: $snow ; }
.#{$wi-css-prefix}-owm-601:before { content: $snow ; }
.#{$wi-css-prefix}-owm-602:before { content: $sleet ; }
.#{$wi-css-prefix}-owm-611:before { content: $rain-mix ; }
.#{$wi-css-prefix}-owm-612:before { content: $rain-mix ; }
.#{$wi-css-prefix}-owm-615:before { content: $rain-mix ; }
.#{$wi-css-prefix}-owm-616:before { content: $rain-mix ; }
.#{$wi-css-prefix}-owm-620:before { content: $rain-mix ; }
.#{$wi-css-prefix}-owm-621:before { content: $snow ; }
.#{$wi-css-prefix}-owm-622:before { content: $snow ; }
.#{$wi-css-prefix}-owm-701:before { content: $showers ; }
.#{$wi-css-prefix}-owm-711:before { content: $smoke ; }
.#{$wi-css-prefix}-owm-721:before { content: $day-haze ; }
.#{$wi-css-prefix}-owm-731:before { content: $dust ; }
.#{$wi-css-prefix}-owm-741:before { content: $fog ; }
.#{$wi-css-prefix}-owm-761:before { content: $dust ; }
.#{$wi-css-prefix}-owm-762:before { content: $dust ; }
.#{$wi-css-prefix}-owm-771:before { content: $cloudy-gusts ; }
.#{$wi-css-prefix}-owm-781:before { content: $tornado ; }
.#{$wi-css-prefix}-owm-800:before { content: $day-sunny ; }
.#{$wi-css-prefix}-owm-801:before { content: $cloudy-gusts ; }
.#{$wi-css-prefix}-owm-802:before { content: $cloudy-gusts ; }
.#{$wi-css-prefix}-owm-803:before { content: $cloudy-gusts ; }
.#{$wi-css-prefix}-owm-803:before { content: $cloudy-windy ; }
.#{$wi-css-prefix}-owm-804:before { content: $cloudy ; }
.#{$wi-css-prefix}-owm-900:before { content: $tornado ; }
.#{$wi-css-prefix}-owm-901:before { content: $storm-showers ; }
.#{$wi-css-prefix}-owm-902:before { content: $hurricane ; }
.#{$wi-css-prefix}-owm-903:before { content: $snowflake-cold ; }
.#{$wi-css-prefix}-owm-904:before { content: $hot ; }
.#{$wi-css-prefix}-owm-905:before { content: $windy ; }
.#{$wi-css-prefix}-owm-906:before { content: $hail ; }
.#{$wi-css-prefix}-owm-957:before { content: $strong-wind ; }
//Day
.#{$wi-css-prefix}-owm-day-200:before { content: $day-thunderstorm ; }
.#{$wi-css-prefix}-owm-day-201:before { content: $day-thunderstorm ; }
.#{$wi-css-prefix}-owm-day-202:before { content: $day-thunderstorm ; }
.#{$wi-css-prefix}-owm-day-210:before { content: $day-lightning ; }
.#{$wi-css-prefix}-owm-day-211:before { content: $day-lightning ; }
.#{$wi-css-prefix}-owm-day-212:before { content: $day-lightning ; }
.#{$wi-css-prefix}-owm-day-221:before { content: $day-lightning ; }
.#{$wi-css-prefix}-owm-day-230:before { content: $day-thunderstorm ; }
.#{$wi-css-prefix}-owm-day-231:before { content: $day-thunderstorm ; }
.#{$wi-css-prefix}-owm-day-232:before { content: $day-thunderstorm ; }
.#{$wi-css-prefix}-owm-day-300:before { content: $day-sprinkle ; }
.#{$wi-css-prefix}-owm-day-301:before { content: $day-sprinkle ; }
.#{$wi-css-prefix}-owm-day-302:before { content: $day-rain ; }
.#{$wi-css-prefix}-owm-day-310:before { content: $day-rain ; }
.#{$wi-css-prefix}-owm-day-311:before { content: $day-rain ; }
.#{$wi-css-prefix}-owm-day-312:before { content: $day-rain ; }
.#{$wi-css-prefix}-owm-day-313:before { content: $day-rain ; }
.#{$wi-css-prefix}-owm-day-314:before { content: $day-rain ; }
.#{$wi-css-prefix}-owm-day-321:before { content: $day-sprinkle ; }
.#{$wi-css-prefix}-owm-day-500:before { content: $day-sprinkle ; }
.#{$wi-css-prefix}-owm-day-501:before { content: $day-rain ; }
.#{$wi-css-prefix}-owm-day-502:before { content: $day-rain ; }
.#{$wi-css-prefix}-owm-day-503:before { content: $day-rain ; }
.#{$wi-css-prefix}-owm-day-504:before { content: $day-rain ; }
.#{$wi-css-prefix}-owm-day-511:before { content: $day-rain-mix ; }
.#{$wi-css-prefix}-owm-day-520:before { content: $day-showers ; }
.#{$wi-css-prefix}-owm-day-521:before { content: $day-showers ; }
.#{$wi-css-prefix}-owm-day-522:before { content: $day-showers ; }
.#{$wi-css-prefix}-owm-day-531:before { content: $day-storm-showers ; }
.#{$wi-css-prefix}-owm-day-600:before { content: $day-snow ; }
.#{$wi-css-prefix}-owm-day-601:before { content: $day-sleet ; }
.#{$wi-css-prefix}-owm-day-602:before { content: $day-snow ; }
.#{$wi-css-prefix}-owm-day-611:before { content: $day-rain-mix ; }
.#{$wi-css-prefix}-owm-day-612:before { content: $day-rain-mix ; }
.#{$wi-css-prefix}-owm-day-615:before { content: $day-rain-mix ; }
.#{$wi-css-prefix}-owm-day-616:before { content: $day-rain-mix ; }
.#{$wi-css-prefix}-owm-day-620:before { content: $day-rain-mix ; }
.#{$wi-css-prefix}-owm-day-621:before { content: $day-snow ; }
.#{$wi-css-prefix}-owm-day-622:before { content: $day-snow ; }
.#{$wi-css-prefix}-owm-day-701:before { content: $day-showers ; }
.#{$wi-css-prefix}-owm-day-711:before { content: $smoke ; }
.#{$wi-css-prefix}-owm-day-721:before { content: $day-haze ; }
.#{$wi-css-prefix}-owm-day-731:before { content: $dust ; }
.#{$wi-css-prefix}-owm-day-741:before { content: $day-fog ; }
.#{$wi-css-prefix}-owm-day-761:before { content: $dust ; }
.#{$wi-css-prefix}-owm-day-762:before { content: $dust ; }
.#{$wi-css-prefix}-owm-day-781:before { content: $tornado ; }
.#{$wi-css-prefix}-owm-day-800:before { content: $day-sunny ; }
.#{$wi-css-prefix}-owm-day-801:before { content: $day-cloudy-gusts ; }
.#{$wi-css-prefix}-owm-day-802:before { content: $day-cloudy-gusts ; }
.#{$wi-css-prefix}-owm-day-803:before { content: $day-cloudy-gusts ; }
.#{$wi-css-prefix}-owm-day-804:before { content: $day-sunny-overcast ; }
.#{$wi-css-prefix}-owm-day-900:before { content: $tornado ; }
.#{$wi-css-prefix}-owm-day-902:before { content: $hurricane ; }
.#{$wi-css-prefix}-owm-day-903:before { content: $snowflake-cold ; }
.#{$wi-css-prefix}-owm-day-904:before { content: $hot ; }
.#{$wi-css-prefix}-owm-day-906:before { content: $day-hail ; }
.#{$wi-css-prefix}-owm-day-957:before { content: $strong-wind ; }
//Night
.#{$wi-css-prefix}-owm-night-200:before { content: $night-alt-thunderstorm ; }
.#{$wi-css-prefix}-owm-night-201:before { content: $night-alt-thunderstorm ; }
.#{$wi-css-prefix}-owm-night-202:before { content: $night-alt-thunderstorm ; }
.#{$wi-css-prefix}-owm-night-210:before { content: $night-alt-lightning ; }
.#{$wi-css-prefix}-owm-night-211:before { content: $night-alt-lightning ; }
.#{$wi-css-prefix}-owm-night-212:before { content: $night-alt-lightning ; }
.#{$wi-css-prefix}-owm-night-221:before { content: $night-alt-lightning ; }
.#{$wi-css-prefix}-owm-night-230:before { content: $night-alt-thunderstorm ; }
.#{$wi-css-prefix}-owm-night-231:before { content: $night-alt-thunderstorm ; }
.#{$wi-css-prefix}-owm-night-232:before { content: $night-alt-thunderstorm ; }
.#{$wi-css-prefix}-owm-night-300:before { content: $night-alt-sprinkle ; }
.#{$wi-css-prefix}-owm-night-301:before { content: $night-alt-sprinkle ; }
.#{$wi-css-prefix}-owm-night-302:before { content: $night-alt-rain ; }
.#{$wi-css-prefix}-owm-night-310:before { content: $night-alt-rain ; }
.#{$wi-css-prefix}-owm-night-311:before { content: $night-alt-rain ; }
.#{$wi-css-prefix}-owm-night-312:before { content: $night-alt-rain ; }
.#{$wi-css-prefix}-owm-night-313:before { content: $night-alt-rain ; }
.#{$wi-css-prefix}-owm-night-314:before { content: $night-alt-rain ; }
.#{$wi-css-prefix}-owm-night-321:before { content: $night-alt-sprinkle ; }
.#{$wi-css-prefix}-owm-night-500:before { content: $night-alt-sprinkle ; }
.#{$wi-css-prefix}-owm-night-501:before { content: $night-alt-rain ; }
.#{$wi-css-prefix}-owm-night-502:before { content: $night-alt-rain ; }
.#{$wi-css-prefix}-owm-night-503:before { content: $night-alt-rain ; }
.#{$wi-css-prefix}-owm-night-504:before { content: $night-alt-rain ; }
.#{$wi-css-prefix}-owm-night-511:before { content: $night-alt-rain-mix ; }
.#{$wi-css-prefix}-owm-night-520:before { content: $night-alt-showers ; }
.#{$wi-css-prefix}-owm-night-521:before { content: $night-alt-showers ; }
.#{$wi-css-prefix}-owm-night-522:before { content: $night-alt-showers ; }
.#{$wi-css-prefix}-owm-night-531:before { content: $night-alt-storm-showers ; }
.#{$wi-css-prefix}-owm-night-600:before { content: $night-alt-snow ; }
.#{$wi-css-prefix}-owm-night-601:before { content: $night-alt-sleet ; }
.#{$wi-css-prefix}-owm-night-602:before { content: $night-alt-snow ; }
.#{$wi-css-prefix}-owm-night-611:before { content: $night-alt-rain-mix ; }
.#{$wi-css-prefix}-owm-night-612:before { content: $night-alt-rain-mix ; }
.#{$wi-css-prefix}-owm-night-615:before { content: $night-alt-rain-mix ; }
.#{$wi-css-prefix}-owm-night-616:before { content: $night-alt-rain-mix ; }
.#{$wi-css-prefix}-owm-night-620:before { content: $night-alt-rain-mix ; }
.#{$wi-css-prefix}-owm-night-621:before { content: $night-alt-snow ; }
.#{$wi-css-prefix}-owm-night-622:before { content: $night-alt-snow ; }
.#{$wi-css-prefix}-owm-night-701:before { content: $night-alt-showers ; }
.#{$wi-css-prefix}-owm-night-711:before { content: $smoke ; }
.#{$wi-css-prefix}-owm-night-721:before { content: $day-haze ; }
.#{$wi-css-prefix}-owm-night-731:before { content: $dust ; }
.#{$wi-css-prefix}-owm-night-741:before { content: $night-fog ; }
.#{$wi-css-prefix}-owm-night-761:before { content: $dust ; }
.#{$wi-css-prefix}-owm-night-762:before { content: $dust ; }
.#{$wi-css-prefix}-owm-night-781:before { content: $tornado ; }
.#{$wi-css-prefix}-owm-night-800:before { content: $night-clear ; }
.#{$wi-css-prefix}-owm-night-801:before { content: $night-alt-cloudy-gusts ; }
.#{$wi-css-prefix}-owm-night-802:before { content: $night-alt-cloudy-gusts ; }
.#{$wi-css-prefix}-owm-night-803:before { content: $night-alt-cloudy-gusts ; }
.#{$wi-css-prefix}-owm-night-804:before { content: $night-alt-cloudy ; }
.#{$wi-css-prefix}-owm-night-900:before { content: $tornado ; }
.#{$wi-css-prefix}-owm-night-902:before { content: $hurricane ; }
.#{$wi-css-prefix}-owm-night-903:before { content: $snowflake-cold ; }
.#{$wi-css-prefix}-owm-night-904:before { content: $hot ; }
.#{$wi-css-prefix}-owm-night-906:before { content: $night-alt-hail ; }
.#{$wi-css-prefix}-owm-night-957:before { content: $strong-wind ; }
================================================
FILE: public/admin-panel/dist/css/icons/weather-icons/sass/mappings/wi-wmo4680.scss
================================================
.#{$wi-css-prefix}-wmo4680-0:before,
.#{$wi-css-prefix}-wmo4680-00:before { content: $thermometer ; }
.#{$wi-css-prefix}-wmo4680-1:before,
.#{$wi-css-prefix}-wmo4680-01:before { content: $cloudy ; }
.#{$wi-css-prefix}-wmo4680-2:before,
.#{$wi-css-prefix}-wmo4680-02:before { content: $thermometer ; }
.#{$wi-css-prefix}-wmo4680-3:before,
.#{$wi-css-prefix}-wmo4680-03:before { content: $cloudy ; }
.#{$wi-css-prefix}-wmo4680-4:before,
.#{$wi-css-prefix}-wmo4680-04:before { content: $fog ; }
.#{$wi-css-prefix}-wmo4680-5:before,
.#{$wi-css-prefix}-wmo4680-05:before { content: $fog ; }
.#{$wi-css-prefix}-wmo4680-10:before { content: $fog ; }
.#{$wi-css-prefix}-wmo4680-11:before { content: $fog ; }
.#{$wi-css-prefix}-wmo4680-12:before { content: $lightning ; }
.#{$wi-css-prefix}-wmo4680-18:before { content: $strong-wind ; }
.#{$wi-css-prefix}-wmo4680-20:before { content: $fog ; }
.#{$wi-css-prefix}-wmo4680-21:before { content: $rain-mix ; }
.#{$wi-css-prefix}-wmo4680-22:before { content: $rain-mix ; }
.#{$wi-css-prefix}-wmo4680-23:before { content: $rain ; }
.#{$wi-css-prefix}-wmo4680-24:before { content: $snow ; }
.#{$wi-css-prefix}-wmo4680-25:before { content: $hail ; }
.#{$wi-css-prefix}-wmo4680-26:before { content: $thunderstorm ; }
.#{$wi-css-prefix}-wmo4680-27:before { content: $dust ; }
.#{$wi-css-prefix}-wmo4680-28:before { content: $dust ; }
.#{$wi-css-prefix}-wmo4680-29:before { content: $dust ; }
.#{$wi-css-prefix}-wmo4680-30:before { content: $fog ; }
.#{$wi-css-prefix}-wmo4680-31:before { content: $fog ; }
.#{$wi-css-prefix}-wmo4680-32:before { content: $fog ; }
.#{$wi-css-prefix}-wmo4680-33:before { content: $fog ; }
.#{$wi-css-prefix}-wmo4680-34:before { content: $fog ; }
.#{$wi-css-prefix}-wmo4680-35:before { content: $fog ; }
.#{$wi-css-prefix}-wmo4680-40:before { content: $rain-mix ; }
.#{$wi-css-prefix}-wmo4680-41:before { content: $sprinkle ; }
.#{$wi-css-prefix}-wmo4680-42:before { content: $rain ; }
.#{$wi-css-prefix}-wmo4680-43:before { content: $sprinkle ; }
.#{$wi-css-prefix}-wmo4680-44:before { content: $rain ; }
.#{$wi-css-prefix}-wmo4680-45:before { content: $hail ; }
.#{$wi-css-prefix}-wmo4680-46:before { content: $hail ; }
.#{$wi-css-prefix}-wmo4680-47:before { content: $snow ; }
.#{$wi-css-prefix}-wmo4680-48:before { content: $snow ; }
.#{$wi-css-prefix}-wmo4680-50:before { content: $sprinkle ; }
.#{$wi-css-prefix}-wmo4680-51:before { content: $sprinkle ; }
.#{$wi-css-prefix}-wmo4680-52:before { content: $rain ; }
.#{$wi-css-prefix}-wmo4680-53:before { content: $rain ; }
.#{$wi-css-prefix}-wmo4680-54:before { content: $snowflake-cold ; }
.#{$wi-css-prefix}-wmo4680-55:before { content: $snowflake-cold ; }
.#{$wi-css-prefix}-wmo4680-56:before { content: $snowflake-cold ; }
.#{$wi-css-prefix}-wmo4680-57:before { content: $sprinkle ; }
.#{$wi-css-prefix}-wmo4680-58:before { content: $rain ; }
.#{$wi-css-prefix}-wmo4680-60:before { content: $sprinkle ; }
.#{$wi-css-prefix}-wmo4680-61:before { content: $sprinkle ; }
.#{$wi-css-prefix}-wmo4680-62:before { content: $rain ; }
.#{$wi-css-prefix}-wmo4680-63:before { content: $rain ; }
.#{$wi-css-prefix}-wmo4680-64:before { content: $hail ; }
.#{$wi-css-prefix}-wmo4680-65:before { content: $hail ; }
.#{$wi-css-prefix}-wmo4680-66:before { content: $hail ; }
.#{$wi-css-prefix}-wmo4680-67:before { content: $rain-mix ; }
.#{$wi-css-prefix}-wmo4680-68:before { content: $rain-mix ; }
.#{$wi-css-prefix}-wmo4680-70:before { content: $snow ; }
.#{$wi-css-prefix}-wmo4680-71:before { content: $snow ; }
.#{$wi-css-prefix}-wmo4680-72:before { content: $snow ; }
.#{$wi-css-prefix}-wmo4680-73:before { content: $snow ; }
.#{$wi-css-prefix}-wmo4680-74:before { content: $snowflake-cold ; }
.#{$wi-css-prefix}-wmo4680-75:before { content: $snowflake-cold ; }
.#{$wi-css-prefix}-wmo4680-76:before { content: $snowflake-cold ; }
.#{$wi-css-prefix}-wmo4680-77:before { content: $snow ; }
.#{$wi-css-prefix}-wmo4680-78:before { content: $snowflake-cold ; }
.#{$wi-css-prefix}-wmo4680-80:before { content: $rain ; }
.#{$wi-css-prefix}-wmo4680-81:before { content: $sprinkle ; }
.#{$wi-css-prefix}-wmo4680-82:before { content: $rain ; }
.#{$wi-css-prefix}-wmo4680-83:before { content: $rain ; }
.#{$wi-css-prefix}-wmo4680-84:before { content: $storm-showers ; }
.#{$wi-css-prefix}-wmo4680-85:before { content: $rain-mix ; }
.#{$wi-css-prefix}-wmo4680-86:before { content: $rain-mix ; }
.#{$wi-css-prefix}-wmo4680-87:before { content: $rain-mix ; }
.#{$wi-css-prefix}-wmo4680-89:before { content: $hail ; }
.#{$wi-css-prefix}-wmo4680-90:before { content: $lightning ; }
.#{$wi-css-prefix}-wmo4680-91:before { content: $storm-showers ; }
.#{$wi-css-prefix}-wmo4680-92:before { content: $thunderstorm ; }
.#{$wi-css-prefix}-wmo4680-93:before { content: $thunderstorm ; }
.#{$wi-css-prefix}-wmo4680-94:before { content: $lightning ; }
.#{$wi-css-prefix}-wmo4680-95:before { content: $thunderstorm ; }
.#{$wi-css-prefix}-wmo4680-96:before { content: $thunderstorm ; }
.#{$wi-css-prefix}-wmo4680-99:before { content: $tornado ; }
================================================
FILE: public/admin-panel/dist/css/icons/weather-icons/sass/mappings/wi-yahoo.scss
================================================
.#{$wi-css-prefix}-yahoo-0:before { content: $tornado; }
.#{$wi-css-prefix}-yahoo-1:before { content: $day-storm-showers; }
.#{$wi-css-prefix}-yahoo-2:before { content: $hurricane; }
.#{$wi-css-prefix}-yahoo-3:before { content: $thunderstorm; }
.#{$wi-css-prefix}-yahoo-4:before { content: $thunderstorm; }
.#{$wi-css-prefix}-yahoo-5:before { content: $rain-mix; }
.#{$wi-css-prefix}-yahoo-6:before { content: $rain-mix; }
.#{$wi-css-prefix}-yahoo-7:before { content: $rain-mix; }
.#{$wi-css-prefix}-yahoo-8:before { content: $hail; }
.#{$wi-css-prefix}-yahoo-9:before { content: $showers; }
.#{$wi-css-prefix}-yahoo-10:before { content: $hail; }
.#{$wi-css-prefix}-yahoo-11:before { content: $showers; }
.#{$wi-css-prefix}-yahoo-12:before { content: $showers; }
.#{$wi-css-prefix}-yahoo-13:before { content: $snow; }
.#{$wi-css-prefix}-yahoo-14:before { content: $day-snow; }
.#{$wi-css-prefix}-yahoo-15:before { content: $snow-wind; }
.#{$wi-css-prefix}-yahoo-16:before { content: $snow; }
.#{$wi-css-prefix}-yahoo-17:before { content: $hail; }
.#{$wi-css-prefix}-yahoo-18:before { content: $rain-mix; }
.#{$wi-css-prefix}-yahoo-19:before { content: $dust; }
.#{$wi-css-prefix}-yahoo-20:before { content: $fog; }
.#{$wi-css-prefix}-yahoo-21:before { content: $windy; }
.#{$wi-css-prefix}-yahoo-22:before { content: $smoke; }
.#{$wi-css-prefix}-yahoo-23:before { content: $strong-wind; }
.#{$wi-css-prefix}-yahoo-24:before { content: $strong-wind; }
.#{$wi-css-prefix}-yahoo-25:before { content: $snowflake-cold; }
.#{$wi-css-prefix}-yahoo-26:before { content: $cloudy; }
.#{$wi-css-prefix}-yahoo-27:before { content: $night-cloudy; }
.#{$wi-css-prefix}-yahoo-28:before { content: $day-cloudy; }
.#{$wi-css-prefix}-yahoo-29:before { content: $night-cloudy; }
.#{$wi-css-prefix}-yahoo-30:before { content: $day-cloudy; }
.#{$wi-css-prefix}-yahoo-31:before { content: $night-clear; }
.#{$wi-css-prefix}-yahoo-32:before { content: $day-sunny; }
.#{$wi-css-prefix}-yahoo-33:before { content: $night-partly-cloudy; }
.#{$wi-css-prefix}-yahoo-34:before { content: $day-sunny-overcast; }
.#{$wi-css-prefix}-yahoo-35:before { content: $rain-mix; }
.#{$wi-css-prefix}-yahoo-36:before { content: $hot; }
.#{$wi-css-prefix}-yahoo-37:before { content: $day-storm-showers; }
.#{$wi-css-prefix}-yahoo-38:before { content: $day-storm-showers; }
.#{$wi-css-prefix}-yahoo-39:before { content: $day-storm-showers; }
.#{$wi-css-prefix}-yahoo-40:before { content: $showers; }
.#{$wi-css-prefix}-yahoo-41:before { content: $snow-wind; }
.#{$wi-css-prefix}-yahoo-42:before { content: $snow; }
.#{$wi-css-prefix}-yahoo-43:before { content: $snow-wind; }
.#{$wi-css-prefix}-yahoo-44:before { content: $day-sunny-overcast; }
.#{$wi-css-prefix}-yahoo-45:before { content: $day-storm-showers; }
.#{$wi-css-prefix}-yahoo-46:before { content: $snow; }
.#{$wi-css-prefix}-yahoo-47:before { content: $day-storm-showers; }
.#{$wi-css-prefix}-yahoo-3200:before { content: $stars; }
================================================
FILE: public/admin-panel/dist/css/icons/weather-icons/sass/weather-icons-classes.scss
================================================
@import "icon-classes/classes-day.scss";
@import "icon-classes/classes-night.scss";
@import "icon-classes/classes-neutral.scss";
@import "icon-classes/classes-misc.scss";
@import "icon-classes/classes-moon.scss";
@import "icon-classes/classes-moon-aliases.scss";
@import "icon-classes/classes-time.scss";
@import "icon-classes/classes-direction.scss";
@import "icon-classes/classes-beaufort.scss";
================================================
FILE: public/admin-panel/dist/css/icons/weather-icons/sass/weather-icons-core.scss
================================================
// Base Variables
$wi-path: "../font" !default;
$wi-version: "2.0" !default;
$wi-css-prefix: wi !default;
$wi-font-family: weathericons !default;
@font-face {
font-family: '#{$wi-font-family}';
src: url('#{$wi-path}/#{$wi-font-family}-regular-webfont.eot');
src: url('#{$wi-path}/#{$wi-font-family}-regular-webfont.eot?#iefix') format('embedded-opentype'),
url('#{$wi-path}/#{$wi-font-family}-regular-webfont.woff2') format('woff2'),
url('#{$wi-path}/#{$wi-font-family}-regular-webfont.woff') format('woff'),
url('#{$wi-path}/#{$wi-font-family}-regular-webfont.ttf') format('truetype'),
url('#{$wi-path}/#{$wi-font-family}-regular-webfont.svg#weather_iconsregular') format('svg');
font-weight: normal;
font-style: normal;
}
.#{$wi-css-prefix} {
display: inline-block;
font-family: '#{$wi-font-family}';
font-style: normal;
font-weight: normal;
line-height: 1;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
.#{$wi-css-prefix}-fw {
width: 1.4em;
text-align: center;
}
@mixin wi-icon-rotate($degrees, $rotation) {
filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=#{$rotation});
-webkit-transform: rotate($degrees);
-ms-transform: rotate($degrees);
transform: rotate($degrees);
}
@mixin wi-icon-flip($horiz, $vert, $rotation) {
filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=#{$rotation});
-webkit-transform: scale($horiz, $vert);
-ms-transform: scale($horiz, $vert);
transform: scale($horiz, $vert);
}
.#{$wi-css-prefix}-rotate-90 { @include wi-icon-rotate(90deg, 1); }
.#{$wi-css-prefix}-rotate-180 { @include wi-icon-rotate(180deg, 2); }
.#{$wi-css-prefix}-rotate-270 { @include wi-icon-rotate(270deg, 3); }
.#{$wi-css-prefix}-flip-horizontal { @include wi-icon-flip(-1, 1, 0); }
.#{$wi-css-prefix}-flip-vertical { @include wi-icon-flip(1, -1, 2); }
================================================
FILE: public/admin-panel/dist/css/icons/weather-icons/sass/weather-icons-variables.scss
================================================
@import 'icon-variables/variables-beaufort.scss';
@import 'icon-variables/variables-time.scss';
@import 'icon-variables/variables-moon.scss';
@import 'icon-variables/variables-direction.scss';
@import 'icon-variables/variables-day.scss';
@import 'icon-variables/variables-night.scss';
@import 'icon-variables/variables-neutral.scss';
@import 'icon-variables/variables-misc.scss';
================================================
FILE: public/admin-panel/dist/css/icons/weather-icons/sass/weather-icons-wind.min.scss
================================================
@import "weather-icons-core.scss";
@import "icon-variables/variables-wind-names.scss";
@import "icon-classes/classes-wind.scss";
@import "icon-classes/classes-wind-degrees.scss";
@import "icon-classes/classes-wind-aliases.scss";
================================================
FILE: public/admin-panel/dist/css/icons/weather-icons/sass/weather-icons-wind.scss
================================================
@import "weather-icons-core.scss";
@import "icon-variables/variables-wind-names.scss";
@import "icon-classes/classes-wind.scss";
@import "icon-classes/classes-wind-degrees.scss";
@import "icon-classes/classes-wind-aliases.scss";
================================================
FILE: public/admin-panel/dist/css/icons/weather-icons/sass/weather-icons.min.scss
================================================
/*!
* Weather Icons 2.0
* Updated August 1, 2015
* Weather themed icons for Bootstrap
* Author - Erik Flowers - erik@helloerik.com
* Email: erik@helloerik.com
* Twitter: http://twitter.com/Erik_UX
* ------------------------------------------------------------------------------
* Maintained at http://erikflowers.github.io/weather-icons
*
* License
* ------------------------------------------------------------------------------
* - Font licensed under SIL OFL 1.1 -
* http://scripts.sil.org/OFL
* - CSS, SCSS and LESS are licensed under MIT License -
* http://opensource.org/licenses/mit-license.html
* - Documentation licensed under CC BY 3.0 -
* http://creativecommons.org/licenses/by/3.0/
* - Inspired by and works great as a companion with Font Awesome
* "Font Awesome by Dave Gandy - http://fontawesome.io"
*/
@import 'weather-icons-core.scss';
@import 'weather-icons-variables.scss';
@import 'weather-icons-classes.scss';
// Mappings to various APIs
@import "mappings/wi-yahoo.scss";
@import "mappings/wi-forecast-io.scss";
@import "mappings/wi-wmo4680.scss";
@import "mappings/wi-owm.scss";
================================================
FILE: public/admin-panel/dist/css/icons/weather-icons/sass/weather-icons.scss
================================================
/*!
* Weather Icons 2.0
* Updated August 1, 2015
* Weather themed icons for Bootstrap
* Author - Erik Flowers - erik@helloerik.com
* Email: erik@helloerik.com
* Twitter: http://twitter.com/Erik_UX
* ------------------------------------------------------------------------------
* Maintained at http://erikflowers.github.io/weather-icons
*
* License
* ------------------------------------------------------------------------------
* - Font licensed under SIL OFL 1.1 -
* http://scripts.sil.org/OFL
* - CSS, LESS and SCSS are licensed under MIT License -
* http://opensource.org/licenses/mit-license.html
* - Documentation licensed under CC BY 3.0 -
* http://creativecommons.org/licenses/by/3.0/
* - Inspired by and works great as a companion with Font Awesome
* "Font Awesome by Dave Gandy - http://fontawesome.io"
*/
@import 'weather-icons-core.scss';
@import 'weather-icons-variables.scss';
@import 'weather-icons-classes.scss';
// Mappings to various APIs
@import "mappings/wi-yahoo.scss";
@import "mappings/wi-forecast-io.scss";
@import "mappings/wi-wmo4680.scss";
@import "mappings/wi-owm.scss";
================================================
FILE: public/admin-panel/dist/css/style.css
================================================
/*
Template Name: Admin Template
Author: Niravjoshi / Wrappixel
File: scss
*/
/*******************************/
/*******************************/
@import url("https://fonts.googleapis.com/css?family=Nunito+Sans:300,400,600,700,800");
/*Theme Colors*/
/*Topbar Colors*/
/*Sidebar Colors*/
/*Boxed layout width*/
/*Shadow*/
/*transitions*/
/*Dark transparent bg*/
@import url("https://fonts.googleapis.com/css?family=Nunito+Sans:300,400,600,700,800");
@import url("https://fonts.googleapis.com/css?family=Nunito+Sans:300,400,600,700,800");
@import url("https://fonts.googleapis.com/css?family=Nunito+Sans:300,400,600,700,800");
@import url("https://fonts.googleapis.com/css?family=Nunito+Sans:300,400,600,700,800");
@import url("https://fonts.googleapis.com/css?family=Nunito+Sans:300,400,600,700,800");
@import url("https://fonts.googleapis.com/css?family=Nunito+Sans:300,400,600,700,800");
@import url("https://fonts.googleapis.com/css?family=Nunito+Sans:300,400,600,700,800");
@import url("https://fonts.googleapis.com/css?family=Nunito+Sans:300,400,600,700,800");
@import url("https://fonts.googleapis.com/css?family=Nunito+Sans:300,400,600,700,800");
@import url("https://fonts.googleapis.com/css?family=Nunito+Sans:300,400,600,700,800");
@import url("https://fonts.googleapis.com/css?family=Nunito+Sans:300,400,600,700,800");
@import url("https://fonts.googleapis.com/css?family=Nunito+Sans:300,400,600,700,800");
@import url("https://fonts.googleapis.com/css?family=Nunito+Sans:300,400,600,700,800");
@import url(icons/font-awesome/css/fontawesome-all.css);
@import url(icons/simple-line-icons/css/simple-line-icons.css);
@import url(icons/weather-icons/css/weather-icons.min.css);
@import url(icons/themify-icons/themify-icons.css);
@import url(icons/flag-icon-css/flag-icon.min.css);
@import url(icons/material-design-iconic-font/css/materialdesignicons.min.css);
@import url(icons/crypto-icons/cryptocoins.css);
.search-box .app-search .form-control, .topbar .mega-dropdown .dropdown-menu {
border-radius: 0px; }
.topbar .dropdown-menu .with-arrow > span {
transform: rotate(45deg);
-ms-transform: rotate(45deg);
-webkit-transform: rotate(45deg);
-o-transform: rotate(45deg);
-moz-transform: rotate(45deg); }
/*******************************/
/*******************************/
/**
* Table Of Content
*
* 1. Color system
* 2. Options
* 3. Body
* 4. Typography
* 5. Breadcrumbs
* 6. Cards
* 7. Dropdowns
* 8. Buttons
* 9. Typography
* 10. Progress bars
* 11. Tables
* 12. Forms
* 14. Component
*/
body[data-theme="dark"] {
/* Card Color */
/* Settings for the element */
/* Body bg and color */
color: #b2b9bf;
background: #212529;
/* scafholdings scss override */
/* Background colors */
/* Background Alt colors */
/* Font colors */
/* Border Colors */ }
body[data-theme="dark"] a.link {
color: #e9ecef; }
body[data-theme="dark"] a.link:hover, body[data-theme="dark"] a.link:focus {
color: #2962FF; }
body[data-theme="dark"] .bg-white {
background-color: #000 !important; }
body[data-theme="dark"] .bg-dark {
background-color: #6c757d !important; }
body[data-theme="dark"] .text-dark {
color: #e9ecef !important; }
body[data-theme="dark"] .badge-light {
background-color: #343a40;
color: #b2b9bf; }
body[data-theme="dark"] .btn-light {
background-color: #343a40;
border-color: #343a40;
color: #b2b9bf; }
body[data-theme="dark"] .custom-control-label::before {
background-color: #6c757d; }
body[data-theme="dark"] .card,
body[data-theme="dark"] .custom-select,
body[data-theme="dark"] .form-control,
body[data-theme="dark"] .nav-tabs .nav-link.active,
body[data-theme="dark"] .nav-tabs .nav-item.show .nav-link,
body[data-theme="dark"] .list-group-item,
body[data-theme="dark"] .custom-file-label,
body[data-theme="dark"] .modal-content,
body[data-theme="dark"] .page-link,
body[data-theme="dark"] .page-item.disabled .page-link,
body[data-theme="dark"] .note-editor.note-frame .note-editing-area .note-editable,
body[data-theme="dark"] .note-editor.note-frame .note-statusbar,
body[data-theme="dark"] .lobilists .lobilist,
body[data-theme="dark"] .jsgrid-header-row > .jsgrid-header-cell,
body[data-theme="dark"] .jsgrid-row > .jsgrid-cell,
body[data-theme="dark"] .css-bar:after,
body[data-theme="dark"] .select2-container--default .select2-selection--single,
body[data-theme="dark"] .select2-container--default .select2-selection--multiple,
body[data-theme="dark"] .select2-container--classic .select2-selection--single,
body[data-theme="dark"] .dtp > .dtp-content {
background-color: #272b34; }
body[data-theme="dark"] .dropzone,
body[data-theme="dark"] .mailbox .message-center .message-item:hover,
body[data-theme="dark"] .dropdown-item:hover,
body[data-theme="dark"] .dropdown-item:focus,
body[data-theme="dark"] .picker__button--today,
body[data-theme="dark"] .picker__button--clear,
body[data-theme="dark"] .picker__button--close {
background: #272b34; }
body[data-theme="dark"] .right-part.mail-list,
body[data-theme="dark"] .right-part.mail-details,
body[data-theme="dark"] .right-part.mail-compose,
body[data-theme="dark"] .left-part,
body[data-theme="dark"] .card-footer,
body[data-theme="dark"] .typeahead.form-control,
body[data-theme="dark"] .select2-dropdown {
background-color: #272b34 !important; }
body[data-theme="dark"] .jumbotron,
body[data-theme="dark"] .page-wrapper,
body[data-theme="dark"] .progress,
body[data-theme="dark"] .breadcrumb,
body[data-theme="dark"] .dropdown-menu,
body[data-theme="dark"] #main-wrapper,
body[data-theme="dark"] .wizard:not(.wizard-circle) > .steps .disabled a,
body[data-theme="dark"] .wizard:not(.wizard-circle) > .steps .disabled a:hover,
body[data-theme="dark"] .wizard:not(.wizard-circle) > .steps .disabled a:active,
body[data-theme="dark"] .wizard:not(.wizard-circle) > .content,
body[data-theme="dark"] .wizard:not(.wizard-circle) > .actions .disabled a,
body[data-theme="dark"] .wizard:not(.wizard-circle) > .actions .disabled a:hover,
body[data-theme="dark"] .wizard:not(.wizard-circle) > .actions .disabled a:active,
body[data-theme="dark"] .wizard-content .wizard > .steps .step,
body[data-theme="dark"] .cke_toolbar_separator {
background-color: #323743; }
body[data-theme="dark"] .fc-unthemed td.fc-today,
body[data-theme="dark"] .fc-toolbar .fc-button.fc-state-active,
body[data-theme="dark"] .picker__list-item,
body[data-theme="dark"] .picker__box,
body[data-theme="dark"] .picker--time .picker__box,
body[data-theme="dark"] .daterangepicker,
body[data-theme="dark"] .daterangepicker .calendar-table {
background: #343a40; }
body[data-theme="dark"] .fc-unthemed .fc-divider,
body[data-theme="dark"] .fc-unthemed .fc-list-heading td,
body[data-theme="dark"] .fc-unthemed .fc-popover .fc-header {
background: #b2b9bf; }
body[data-theme="dark"] .daterangepicker td.off,
body[data-theme="dark"] .daterangepicker td.off.in-range,
body[data-theme="dark"] .daterangepicker td.off.start-date,
body[data-theme="dark"] .daterangepicker td.off.end-date {
background: #000; }
body[data-theme="dark"] .timeline:before {
background-color: #343a40; }
body[data-theme="dark"] .cd-horizontal-timeline .events {
background: #343a40; }
body[data-theme="dark"] .noUi-target,
body[data-theme="dark"] .noUi-tooltip,
body[data-theme="dark"] .bootstrap-switch .bootstrap-switch-label,
body[data-theme="dark"] .striped-rows .row:nth-child(odd),
body[data-theme="dark"] .dp-off,
body[data-theme="dark"] .footable-odd,
body[data-theme="dark"] .jsgrid-alt-row > .jsgrid-cell,
body[data-theme="dark"] .jsgrid-filter-row > .jsgrid-cell,
body[data-theme="dark"] .cd-horizontal-timeline .events a::after,
body[data-theme="dark"] .css-bar > i,
body[data-theme="dark"] div.mce-edit-area,
body[data-theme="dark"] .mce-menu-item.mce-disabled,
body[data-theme="dark"] .mce-menu-item.mce-disabled:hover,
body[data-theme="dark"] .cke_top {
background: #212529 !important; }
body[data-theme="dark"] .customizer,
body[data-theme="dark"] .chat-list .chat-item .chat-content .box.bg-light-info,
body[data-theme="dark"] pre[class*="language-"],
body[data-theme="dark"] .bg-light,
body[data-theme="dark"] .input-group-text,
body[data-theme="dark"] .custom-file-label::after,
body[data-theme="dark"] .table .thead-light th,
body[data-theme="dark"] .table-hover tbody tr:hover,
body[data-theme="dark"] .f-icon:hover,
body[data-theme="dark"] .t-icon:hover,
body[data-theme="dark"] .w-icon:hover,
body[data-theme="dark"] .sl-icon:hover,
body[data-theme="dark"] .if-icon:hover,
body[data-theme="dark"] .m-icon:hover,
body[data-theme="dark"] .myadmin-dd .dd-list .dd-item .dd-handle,
body[data-theme="dark"] .myadmin-dd-empty .dd-list .dd3-content,
body[data-theme="dark"] .myadmin-dd-empty .dd-list .dd3-handle,
body[data-theme="dark"] .mce-panel {
background-color: #262d35 !important; }
body[data-theme="dark"] .timeline > .timeline-item > .timeline-panel:after {
border-right: #4F5467;
border-left: #4F5467; }
body[data-theme="dark"] .mce-menubar .mce-menubtn:hover,
body[data-theme="dark"] .mce-menubar .mce-menubtn.mce-active,
body[data-theme="dark"] .mce-menubar .mce-menubtn:focus {
background: #343a40;
border-color: #4F5467; }
body[data-theme="dark"] .mce-btn {
background: #343a40;
text-shadow: none; }
body[data-theme="dark"] .mce-btn button {
color: #b2b9bf; }
body[data-theme="dark"] .page-wrapper,
body[data-theme="dark"] .form-control,
body[data-theme="dark"] .custom-select,
body[data-theme="dark"] .chat-list .chat-item .chat-content .box.bg-light-info,
body[data-theme="dark"] .nav-tabs .nav-link.active,
body[data-theme="dark"] .nav-tabs .nav-item.show .nav-link,
body[data-theme="dark"] .nav-tabs .nav-link:hover,
body[data-theme="dark"] .nav-tabs .nav-link:focus,
body[data-theme="dark"] .breadcrumb-item.active,
body[data-theme="dark"] .input-group-text,
body[data-theme="dark"] .custom-file-label::after,
body[data-theme="dark"] .table .thead-light th,
body[data-theme="dark"] .note-editor.note-frame .note-editing-area .note-editable,
body[data-theme="dark"] .lobilists .btn-link,
body[data-theme="dark"] .dropdown-menu,
body[data-theme="dark"] ul.list-style-none li a,
body[data-theme="dark"] .dropdown-item,
body[data-theme="dark"] .mce-menubar .mce-menubtn button span,
body[data-theme="dark"] .mce-ico,
body[data-theme="dark"] .noUi-tooltip,
body[data-theme="dark"] .picker,
body[data-theme="dark"] .select2-container--classic .select2-selection--single,
body[data-theme="dark"] .select2-container--default .select2-selection--multiple,
body[data-theme="dark"] .select2-container--default .select2-selection--single,
body[data-theme="dark"] .select2-container--default .select2-selection--single .select2-selection__arrow,
body[data-theme="dark"] .select2-container--default .select2-selection--single .select2-selection__rendered,
body[data-theme="dark"] .dtp table.dtp-picker-days tr > td > a,
body[data-theme="dark"] .dtp .dtp-picker-time > a,
body[data-theme="dark"] .cke_reset_all,
body[data-theme="dark"] .cke_reset_all *,
body[data-theme="dark"] .cke_reset_all a,
body[data-theme="dark"] .cke_reset_all textarea {
color: #b2b9bf; }
body[data-theme="dark"] .mailbox .message-center .message-item .message-title,
body[data-theme="dark"] .lobilists .lobilist-item-title {
color: #fff; }
body[data-theme="dark"] .border-bottom,
body[data-theme="dark"] .border-top,
body[data-theme="dark"] .border-left,
body[data-theme="dark"] .border-right,
body[data-theme="dark"] .border,
body[data-theme="dark"] .dropdown-menu,
body[data-theme="dark"] .form-control,
body[data-theme="dark"] .custom-select,
body[data-theme="dark"] .table th,
body[data-theme="dark"] .table td,
body[data-theme="dark"] .modal-header,
body[data-theme="dark"] .modal-footer,
body[data-theme="dark"] blockquote,
body[data-theme="dark"] pre[class*="language-"],
body[data-theme="dark"] .card-group .card,
body[data-theme="dark"] .nav-tabs .nav-link.active,
body[data-theme="dark"] .nav-tabs .nav-item.show .nav-link,
body[data-theme="dark"] .nav-tabs,
body[data-theme="dark"] .nav-tabs .nav-link:hover,
body[data-theme="dark"] .nav-tabs .nav-link:focus,
body[data-theme="dark"] .list-group-item,
body[data-theme="dark"] .custom-file-label,
body[data-theme="dark"] .input-group-text,
body[data-theme="dark"] .custom-file-label::after,
body[data-theme="dark"] .left-part,
body[data-theme="dark"] .page-link,
body[data-theme="dark"] .profiletimeline,
body[data-theme="dark"] .note-editor.note-frame,
body[data-theme="dark"] .dropzone,
body[data-theme="dark"] .note-editor.note-frame .note-statusbar,
body[data-theme="dark"] .mailbox .message-center .message-item,
body[data-theme="dark"] .lobilists .lobilist,
body[data-theme="dark"] .lobilists .lobilist-item,
body[data-theme="dark"] .lobilists .lobilist-item .drag-handler,
body[data-theme="dark"] .lobilists .lobilist-footer,
body[data-theme="dark"] .lobilists .lobilist-form-footer,
body[data-theme="dark"] .bootstrap-switch,
body[data-theme="dark"] .r-separator .form-group,
body[data-theme="dark"] .b-form .row,
body[data-theme="dark"] .datepaginator-sm .pagination li a,
body[data-theme="dark"] .datepaginator-lg .pagination li a,
body[data-theme="dark"] .datepaginator .pagination li a,
body[data-theme="dark"] .ql-toolbar.ql-snow,
body[data-theme="dark"] .ql-container.ql-snow,
body[data-theme="dark"] .jsgrid-edit-row > .jsgrid-cell,
body[data-theme="dark"] .jsgrid-filter-row > .jsgrid-cell,
body[data-theme="dark"] .jsgrid-grid-body,
body[data-theme="dark"] .jsgrid-grid-header,
body[data-theme="dark"] .jsgrid-header-row > .jsgrid-header-cell,
body[data-theme="dark"] .jsgrid-insert-row > .jsgrid-cell,
body[data-theme="dark"] .jsgrid-pager-page a,
body[data-theme="dark"] .jsgrid-pager-current-page,
body[data-theme="dark"] .jsgrid-pager-nav-button a,
body[data-theme="dark"] .timeline > .timeline-item > .timeline-panel,
body[data-theme="dark"] .cd-horizontal-timeline .events a::after,
body[data-theme="dark"] .cd-timeline-navigation a,
body[data-theme="dark"] .mailbox .nav-link,
body[data-theme="dark"] .dropdown-divider,
body[data-theme="dark"] .e-campaign .c-cost,
body[data-theme="dark"] .table-bordered,
body[data-theme="dark"] .table-bordered td,
body[data-theme="dark"] .table-bordered th,
body[data-theme="dark"] .mce-panel,
body[data-theme="dark"] .mce-menubar,
body[data-theme="dark"] .mce-btn-group:not(:first-child),
body[data-theme="dark"] .mce-btn:hover,
body[data-theme="dark"] .mce-btn:active,
body[data-theme="dark"] .mce-splitbtn:hover .mce-open,
body[data-theme="dark"] .noUi-tooltip,
body[data-theme="dark"] .picker__list-item,
body[data-theme="dark"] .picker__button--today,
body[data-theme="dark"] .picker__button--clear,
body[data-theme="dark"] .picker__button--close,
body[data-theme="dark"] .daterangepicker,
body[data-theme="dark"] .daterangepicker .calendar-table,
body[data-theme="dark"] .daterangepicker .drp-buttons,
body[data-theme="dark"] .select2-container--default .select2-selection--single,
body[data-theme="dark"] .select2-container--default .select2-selection--multiple,
body[data-theme="dark"] .select2-container--classic .select2-selection--single,
body[data-theme="dark"] .select2-dropdown,
body[data-theme="dark"] .cke_chrome,
body[data-theme="dark"] .cke_toolgroup a.cke_button:last-child:after,
body[data-theme="dark"] .cke_toolgroup a.cke_button.cke_button_disabled:hover:last-child:after,
body[data-theme="dark"] .wizard-content .wizard.wizard-circle > .steps .step {
border-color: #4F5467 !important; }
body[data-theme="dark"] .wizard-content .wizard > .steps > ul > li.current .step {
border-color: #2962FF !important;
background-color: #000; }
body[data-theme="dark"] .wizard-content .wizard > .steps > ul > li.current > a {
color: #fff; }
body[data-theme="dark"] .wizard-content .wizard.wizard-circle > .steps > ul > li.current:after,
body[data-theme="dark"] .wizard-content .wizard.wizard-circle > .steps > ul > li.current ~ li:after,
body[data-theme="dark"] .wizard-content .wizard.wizard-circle > .steps > ul > li.current ~ li:before {
background-color: #4F5467; }
body[data-theme="dark"] .wizard-content .wizard.vertical > .steps > ul > li.current:after,
body[data-theme="dark"] .wizard-content .wizard.vertical > .steps > ul > li.current:before,
body[data-theme="dark"] .wizard-content .wizard.vertical > .steps > ul > li.current ~ li:after,
body[data-theme="dark"] .wizard-content .wizard.vertical > .steps > ul > li.current ~ li:before,
body[data-theme="dark"] .wizard-content .wizard.vertical > .steps > ul > li:after,
body[data-theme="dark"] .wizard-content .wizard.vertical > .steps > ul > li:before {
background-color: transparent; }
body[data-theme="dark"] .was-validated .form-control:valid,
body[data-theme="dark"] .form-control.is-valid,
body[data-theme="dark"] .was-validated .custom-select:valid,
body[data-theme="dark"] .custom-select.is-valid {
border-color: #36bea6 !important; }
body[data-theme="dark"] .was-validated .form-control:invalid,
body[data-theme="dark"] .form-control.is-invalid,
body[data-theme="dark"] .was-validated .custom-select:invalid,
body[data-theme="dark"] .custom-select.is-invalid {
border-color: #f62d51 !important; }
body[data-theme="dark"] .ct-label {
fill: #b2b9bf;
color: #b2b9bf; }
body[data-theme="dark"] .ct-grid {
stroke: #262d35; }
/*!
* Bootstrap v4.1.0 (https://getbootstrap.com/)
* Copyright 2011-2018 The Bootstrap Authors
* Copyright 2011-2018 Twitter, Inc.
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
*/
:root {
--blue: #2962FF;
--indigo: #6610f2;
--purple: #7460ee;
--pink: #e83e8c;
--red: #f62d51;
--orange: #fb8c00;
--yellow: #ffbc34;
--green: #36bea6;
--teal: #20c997;
--cyan: #4fc3f7;
--white: #fff;
--gray: #6c757d;
--gray-dark: #343a40;
--blue: #2962FF;
--indigo: #6610f2;
--purple: #7460ee;
--pink: #e83e8c;
--red: #f62d51;
--orange: #fb8c00;
--yellow: #ffbc34;
--green: #36bea6;
--teal: #20c997;
--cyan: #4fc3f7;
--white: #fff;
--gray: #6c757d;
--primary: #7460ee;
--secondary: #6c757d;
--success: #36bea6;
--info: #2962FF;
--warning: #ffbc34;
--danger: #f62d51;
--light: #f8f9fa;
--dark: #343a40;
--cyan: #4fc3f7;
--orange: #fb8c00;
--purple: #7460ee;
--breakpoint-xs: 0;
--breakpoint-sm: 576px;
--breakpoint-md: 768px;
--breakpoint-lg: 992px;
--breakpoint-xl: 1600px;
--font-family-sans-serif: "Nunito Sans", sans-serif;
--font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; }
*,
*::before,
*::after {
-webkit-box-sizing: border-box;
box-sizing: border-box; }
html {
font-family: sans-serif;
line-height: 1.15;
-webkit-text-size-adjust: 100%;
-ms-text-size-adjust: 100%;
-ms-overflow-style: scrollbar;
-webkit-tap-highlight-color: transparent; }
@-ms-viewport {
width: device-width; }
article, aside, dialog, figcaption, figure, footer, header, hgroup, main, nav, section {
display: block; }
body {
margin: 0;
font-family: "Nunito Sans", sans-serif;
font-size: 0.875rem;
font-weight: 400;
line-height: 1.5;
color: #3e5569;
text-align: left;
background-color: #eef5f9; }
[tabindex="-1"]:focus {
outline: 0 !important; }
hr {
-webkit-box-sizing: content-box;
box-sizing: content-box;
height: 0;
overflow: visible; }
h1, h2, h3, h4, h5, h6 {
margin-top: 0;
margin-bottom: 0.5rem; }
p {
margin-top: 0;
margin-bottom: 1rem; }
abbr[title],
abbr[data-original-title] {
text-decoration: underline;
-webkit-text-decoration: underline dotted;
text-decoration: underline dotted;
cursor: help;
border-bottom: 0; }
address {
margin-bottom: 1rem;
font-style: normal;
line-height: inherit; }
ol,
ul,
dl {
margin-top: 0;
margin-bottom: 1rem; }
ol ol,
ul ul,
ol ul,
ul ol {
margin-bottom: 0; }
dt {
font-weight: 800; }
dd {
margin-bottom: .5rem;
margin-left: 0; }
blockquote {
margin: 0 0 1rem; }
dfn {
font-style: italic; }
b,
strong {
font-weight: bolder; }
small {
font-size: 80%; }
sub,
sup {
position: relative;
font-size: 75%;
line-height: 0;
vertical-align: baseline; }
sub {
bottom: -.25em; }
sup {
top: -.5em; }
a {
color: #7460ee;
text-decoration: none;
background-color: transparent;
-webkit-text-decoration-skip: objects; }
a:hover {
color: #381be7;
text-decoration: underline; }
a:not([href]):not([tabindex]) {
color: inherit;
text-decoration: none; }
a:not([href]):not([tabindex]):hover, a:not([href]):not([tabindex]):focus {
color: inherit;
text-decoration: none; }
a:not([href]):not([tabindex]):focus {
outline: 0; }
pre,
code,
kbd,
samp {
font-family: monospace, monospace;
font-size: 1em; }
pre {
margin-top: 0;
margin-bottom: 1rem;
overflow: auto;
-ms-overflow-style: scrollbar; }
figure {
margin: 0 0 1rem; }
img {
vertical-align: middle;
border-style: none; }
svg:not(:root) {
overflow: hidden; }
table {
border-collapse: collapse; }
caption {
padding-top: 1rem;
padding-bottom: 1rem;
color: #a1aab2;
text-align: left;
caption-side: bottom; }
th {
text-align: inherit; }
label {
display: inline-block;
margin-bottom: 0.5rem; }
button {
border-radius: 0; }
button:focus {
outline: 1px dotted;
outline: 5px auto -webkit-focus-ring-color; }
input,
button,
select,
optgroup,
textarea {
margin: 0;
font-family: inherit;
font-size: inherit;
line-height: inherit; }
button,
input {
overflow: visible; }
button,
select {
text-transform: none; }
button,
html [type="button"],
[type="reset"],
[type="submit"] {
-webkit-appearance: button; }
button::-moz-focus-inner,
[type="button"]::-moz-focus-inner,
[type="reset"]::-moz-focus-inner,
[type="submit"]::-moz-focus-inner {
padding: 0;
border-style: none; }
input[type="radio"],
input[type="checkbox"] {
-webkit-box-sizing: border-box;
box-sizing: border-box;
padding: 0; }
input[type="date"],
input[type="time"],
input[type="datetime-local"],
input[type="month"] {
-webkit-appearance: listbox; }
textarea {
overflow: auto;
resize: vertical; }
fieldset {
min-width: 0;
padding: 0;
margin: 0;
border: 0; }
legend {
display: block;
width: 100%;
max-width: 100%;
padding: 0;
margin-bottom: .5rem;
font-size: 1.5rem;
line-height: inherit;
color: inherit;
white-space: normal; }
progress {
vertical-align: baseline; }
[type="number"]::-webkit-inner-spin-button,
[type="number"]::-webkit-outer-spin-button {
height: auto; }
[type="search"] {
outline-offset: -2px;
-webkit-appearance: none; }
[type="search"]::-webkit-search-cancel-button,
[type="search"]::-webkit-search-decoration {
-webkit-appearance: none; }
::-webkit-file-upload-button {
font: inherit;
-webkit-appearance: button; }
output {
display: inline-block; }
summary {
display: list-item;
cursor: pointer; }
template {
display: none; }
[hidden] {
display: none !important; }
h1, h2, h3, h4, h5, h6,
.h1, .h2, .h3, .h4, .h5, .h6 {
margin-bottom: 0.5rem;
font-family: inherit;
font-weight: 700;
line-height: 1.2;
color: inherit; }
h1, .h1 {
font-size: 36px; }
h2, .h2 {
font-size: 30px; }
h3, .h3 {
font-size: 24px; }
h4, .h4 {
font-size: 18px; }
h5, .h5 {
font-size: 16px; }
h6, .h6 {
font-size: 14px; }
.lead {
font-size: 1.09375rem;
font-weight: 300; }
.display-1 {
font-size: 6rem;
font-weight: 300;
line-height: 1.2; }
.display-2 {
font-size: 5.5rem;
font-weight: 300;
line-height: 1.2; }
.display-3 {
font-size: 4.5rem;
font-weight: 300;
line-height: 1.2; }
.display-4 {
font-size: 3.5rem;
font-weight: 300;
line-height: 1.2; }
hr {
margin-top: 1rem;
margin-bottom: 1rem;
border: 0;
border-top: 1px solid rgba(0, 0, 0, 0.1); }
small,
.small {
font-size: 80%;
font-weight: 400; }
mark,
.mark {
padding: 0.2em;
background-color: #fcf8e3; }
.list-unstyled {
padding-left: 0;
list-style: none; }
.list-inline {
padding-left: 0;
list-style: none; }
.list-inline-item {
display: inline-block; }
.list-inline-item:not(:last-child) {
margin-right: 0.5rem; }
.initialism {
font-size: 90%;
text-transform: uppercase; }
.blockquote {
margin-bottom: 1rem;
font-size: 1.09375rem; }
.blockquote-footer {
display: block;
font-size: 80%;
color: #6c757d; }
.blockquote-footer::before {
content: "\2014 \00A0"; }
.img-fluid {
max-width: 100%;
height: auto; }
.img-thumbnail {
padding: 0.25rem;
background-color: #eef5f9;
border: 1px solid #dee2e6;
border-radius: 2px;
max-width: 100%;
height: auto; }
.figure {
display: inline-block; }
.figure-img {
margin-bottom: 0.5rem;
line-height: 1; }
.figure-caption {
font-size: 90%;
color: #6c757d; }
code,
kbd,
pre,
samp {
font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; }
code {
font-size: 87.5%;
color: #e83e8c;
word-break: break-word; }
a > code {
color: inherit; }
kbd {
padding: 0.2rem 0.4rem;
font-size: 87.5%;
color: #fff;
background-color: #212529;
border-radius: 1px; }
kbd kbd {
padding: 0;
font-size: 100%;
font-weight: 800; }
pre {
display: block;
font-size: 87.5%;
color: #212529; }
pre code {
font-size: inherit;
color: inherit;
word-break: normal; }
.pre-scrollable {
max-height: 340px;
overflow-y: scroll; }
.container {
width: 100%;
padding-right: 10px;
padding-left: 10px;
margin-right: auto;
margin-left: auto; }
@media (min-width: 576px) {
.container {
max-width: 540px; } }
@media (min-width: 768px) {
.container {
max-width: 720px; } }
@media (min-width: 992px) {
.container {
max-width: 960px; } }
@media (min-width: 1600px) {
.container {
max-width: 1140px; } }
.container-fluid {
width: 100%;
padding-right: 10px;
padding-left: 10px;
margin-right: auto;
margin-left: auto; }
.row {
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-ms-flex-wrap: wrap;
flex-wrap: wrap;
margin-right: -10px;
margin-left: -10px; }
.no-gutters {
margin-right: 0;
margin-left: 0; }
.no-gutters > .col,
.no-gutters > [class*="col-"] {
padding-right: 0;
padding-left: 0; }
.col-1, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-10, .col-11, .col-12, .col,
.col-auto, .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12, .col-sm,
.col-sm-auto, .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12, .col-md,
.col-md-auto, .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12, .col-lg,
.col-lg-auto, .col-xl-1, .col-xl-2, .col-xl-3, .col-xl-4, .col-xl-5, .col-xl-6, .col-xl-7, .col-xl-8, .col-xl-9, .col-xl-10, .col-xl-11, .col-xl-12, .col-xl,
.col-xl-auto {
position: relative;
width: 100%;
min-height: 1px;
padding-right: 10px;
padding-left: 10px; }
.col {
-ms-flex-preferred-size: 0;
flex-basis: 0;
-webkit-box-flex: 1;
-ms-flex-positive: 1;
flex-grow: 1;
max-width: 100%; }
.col-auto {
-webkit-box-flex: 0;
-ms-flex: 0 0 auto;
flex: 0 0 auto;
width: auto;
max-width: none; }
.col-1 {
-webkit-box-flex: 0;
-ms-flex: 0 0 8.33333%;
flex: 0 0 8.33333%;
max-width: 8.33333%; }
.col-2 {
-webkit-box-flex: 0;
-ms-flex: 0 0 16.66667%;
flex: 0 0 16.66667%;
max-width: 16.66667%; }
.col-3 {
-webkit-box-flex: 0;
-ms-flex: 0 0 25%;
flex: 0 0 25%;
max-width: 25%; }
.col-4 {
-webkit-box-flex: 0;
-ms-flex: 0 0 33.33333%;
flex: 0 0 33.33333%;
max-width: 33.33333%; }
.col-5 {
-webkit-box-flex: 0;
-ms-flex: 0 0 41.66667%;
flex: 0 0 41.66667%;
max-width: 41.66667%; }
.col-6 {
-webkit-box-flex: 0;
-ms-flex: 0 0 50%;
flex: 0 0 50%;
max-width: 50%; }
.col-7 {
-webkit-box-flex: 0;
-ms-flex: 0 0 58.33333%;
flex: 0 0 58.33333%;
max-width: 58.33333%; }
.col-8 {
-webkit-box-flex: 0;
-ms-flex: 0 0 66.66667%;
flex: 0 0 66.66667%;
max-width: 66.66667%; }
.col-9 {
-webkit-box-flex: 0;
-ms-flex: 0 0 75%;
flex: 0 0 75%;
max-width: 75%; }
.col-10 {
-webkit-box-flex: 0;
-ms-flex: 0 0 83.33333%;
flex: 0 0 83.33333%;
max-width: 83.33333%; }
.col-11 {
-webkit-box-flex: 0;
-ms-flex: 0 0 91.66667%;
flex: 0 0 91.66667%;
max-width: 91.66667%; }
.col-12 {
-webkit-box-flex: 0;
-ms-flex: 0 0 100%;
flex: 0 0 100%;
max-width: 100%; }
.order-first {
-webkit-box-ordinal-group: 0;
-ms-flex-order: -1;
order: -1; }
.order-last {
-webkit-box-ordinal-group: 14;
-ms-flex-order: 13;
order: 13; }
.order-0 {
-webkit-box-ordinal-group: 1;
-ms-flex-order: 0;
order: 0; }
.order-1 {
-webkit-box-ordinal-group: 2;
-ms-flex-order: 1;
order: 1; }
.order-2 {
-webkit-box-ordinal-group: 3;
-ms-flex-order: 2;
order: 2; }
.order-3 {
-webkit-box-ordinal-group: 4;
-ms-flex-order: 3;
order: 3; }
.order-4 {
-webkit-box-ordinal-group: 5;
-ms-flex-order: 4;
order: 4; }
.order-5 {
-webkit-box-ordinal-group: 6;
-ms-flex-order: 5;
order: 5; }
.order-6 {
-webkit-box-ordinal-group: 7;
-ms-flex-order: 6;
order: 6; }
.order-7 {
-webkit-box-ordinal-group: 8;
-ms-flex-order: 7;
order: 7; }
.order-8 {
-webkit-box-ordinal-group: 9;
-ms-flex-order: 8;
order: 8; }
.order-9 {
-webkit-box-ordinal-group: 10;
-ms-flex-order: 9;
order: 9; }
.order-10 {
-webkit-box-ordinal-group: 11;
-ms-flex-order: 10;
order: 10; }
.order-11 {
-webkit-box-ordinal-group: 12;
-ms-flex-order: 11;
order: 11; }
.order-12 {
-webkit-box-ordinal-group: 13;
-ms-flex-order: 12;
order: 12; }
.offset-1 {
margin-left: 8.33333%; }
.offset-2 {
margin-left: 16.66667%; }
.offset-3 {
margin-left: 25%; }
.offset-4 {
margin-left: 33.33333%; }
.offset-5 {
margin-left: 41.66667%; }
.offset-6 {
margin-left: 50%; }
.offset-7 {
margin-left: 58.33333%; }
.offset-8 {
margin-left: 66.66667%; }
.offset-9 {
margin-left: 75%; }
.offset-10 {
margin-left: 83.33333%; }
.offset-11 {
margin-left: 91.66667%; }
@media (min-width: 576px) {
.col-sm {
-ms-flex-preferred-size: 0;
flex-basis: 0;
-webkit-box-flex: 1;
-ms-flex-positive: 1;
flex-grow: 1;
max-width: 100%; }
.col-sm-auto {
-webkit-box-flex: 0;
-ms-flex: 0 0 auto;
flex: 0 0 auto;
width: auto;
max-width: none; }
.col-sm-1 {
-webkit-box-flex: 0;
-ms-flex: 0 0 8.33333%;
flex: 0 0 8.33333%;
max-width: 8.33333%; }
.col-sm-2 {
-webkit-box-flex: 0;
-ms-flex: 0 0 16.66667%;
flex: 0 0 16.66667%;
max-width: 16.66667%; }
.col-sm-3 {
-webkit-box-flex: 0;
-ms-flex: 0 0 25%;
flex: 0 0 25%;
max-width: 25%; }
.col-sm-4 {
-webkit-box-flex: 0;
-ms-flex: 0 0 33.33333%;
flex: 0 0 33.33333%;
max-width: 33.33333%; }
.col-sm-5 {
-webkit-box-flex: 0;
-ms-flex: 0 0 41.66667%;
flex: 0 0 41.66667%;
max-width: 41.66667%; }
.col-sm-6 {
-webkit-box-flex: 0;
-ms-flex: 0 0 50%;
flex: 0 0 50%;
max-width: 50%; }
.col-sm-7 {
-webkit-box-flex: 0;
-ms-flex: 0 0 58.33333%;
flex: 0 0 58.33333%;
max-width: 58.33333%; }
.col-sm-8 {
-webkit-box-flex: 0;
-ms-flex: 0 0 66.66667%;
flex: 0 0 66.66667%;
max-width: 66.66667%; }
.col-sm-9 {
-webkit-box-flex: 0;
-ms-flex: 0 0 75%;
flex: 0 0 75%;
max-width: 75%; }
.col-sm-10 {
-webkit-box-flex: 0;
-ms-flex: 0 0 83.33333%;
flex: 0 0 83.33333%;
max-width: 83.33333%; }
.col-sm-11 {
-webkit-box-flex: 0;
-ms-flex: 0 0 91.66667%;
flex: 0 0 91.66667%;
max-width: 91.66667%; }
.col-sm-12 {
-webkit-box-flex: 0;
-ms-flex: 0 0 100%;
flex: 0 0 100%;
max-width: 100%; }
.order-sm-first {
-webkit-box-ordinal-group: 0;
-ms-flex-order: -1;
order: -1; }
.order-sm-last {
-webkit-box-ordinal-group: 14;
-ms-flex-order: 13;
order: 13; }
.order-sm-0 {
-webkit-box-ordinal-group: 1;
-ms-flex-order: 0;
order: 0; }
.order-sm-1 {
-webkit-box-ordinal-group: 2;
-ms-flex-order: 1;
order: 1; }
.order-sm-2 {
-webkit-box-ordinal-group: 3;
-ms-flex-order: 2;
order: 2; }
.order-sm-3 {
-webkit-box-ordinal-group: 4;
-ms-flex-order: 3;
order: 3; }
.order-sm-4 {
-webkit-box-ordinal-group: 5;
-ms-flex-order: 4;
order: 4; }
.order-sm-5 {
-webkit-box-ordinal-group: 6;
-ms-flex-order: 5;
order: 5; }
.order-sm-6 {
-webkit-box-ordinal-group: 7;
-ms-flex-order: 6;
order: 6; }
.order-sm-7 {
-webkit-box-ordinal-group: 8;
-ms-flex-order: 7;
order: 7; }
.order-sm-8 {
-webkit-box-ordinal-group: 9;
-ms-flex-order: 8;
order: 8; }
.order-sm-9 {
-webkit-box-ordinal-group: 10;
-ms-flex-order: 9;
order: 9; }
.order-sm-10 {
-webkit-box-ordinal-group: 11;
-ms-flex-order: 10;
order: 10; }
.order-sm-11 {
-webkit-box-ordinal-group: 12;
-ms-flex-order: 11;
order: 11; }
.order-sm-12 {
-webkit-box-ordinal-group: 13;
-ms-flex-order: 12;
order: 12; }
.offset-sm-0 {
margin-left: 0; }
.offset-sm-1 {
margin-left: 8.33333%; }
.offset-sm-2 {
margin-left: 16.66667%; }
.offset-sm-3 {
margin-left: 25%; }
.offset-sm-4 {
margin-left: 33.33333%; }
.offset-sm-5 {
margin-left: 41.66667%; }
.offset-sm-6 {
margin-left: 50%; }
.offset-sm-7 {
margin-left: 58.33333%; }
.offset-sm-8 {
margin-left: 66.66667%; }
.offset-sm-9 {
margin-left: 75%; }
.offset-sm-10 {
margin-left: 83.33333%; }
.offset-sm-11 {
margin-left: 91.66667%; } }
@media (min-width: 768px) {
.col-md {
-ms-flex-preferred-size: 0;
flex-basis: 0;
-webkit-box-flex: 1;
-ms-flex-positive: 1;
flex-grow: 1;
max-width: 100%; }
.col-md-auto {
-webkit-box-flex: 0;
-ms-flex: 0 0 auto;
flex: 0 0 auto;
width: auto;
max-width: none; }
.col-md-1 {
-webkit-box-flex: 0;
-ms-flex: 0 0 8.33333%;
flex: 0 0 8.33333%;
max-width: 8.33333%; }
.col-md-2 {
-webkit-box-flex: 0;
-ms-flex: 0 0 16.66667%;
flex: 0 0 16.66667%;
max-width: 16.66667%; }
.col-md-3 {
-webkit-box-flex: 0;
-ms-flex: 0 0 25%;
flex: 0 0 25%;
max-width: 25%; }
.col-md-4 {
-webkit-box-flex: 0;
-ms-flex: 0 0 33.33333%;
flex: 0 0 33.33333%;
max-width: 33.33333%; }
.col-md-5 {
-webkit-box-flex: 0;
-ms-flex: 0 0 41.66667%;
flex: 0 0 41.66667%;
max-width: 41.66667%; }
.col-md-6 {
-webkit-box-flex: 0;
-ms-flex: 0 0 50%;
flex: 0 0 50%;
max-width: 50%; }
.col-md-7 {
-webkit-box-flex: 0;
-ms-flex: 0 0 58.33333%;
flex: 0 0 58.33333%;
max-width: 58.33333%; }
.col-md-8 {
-webkit-box-flex: 0;
-ms-flex: 0 0 66.66667%;
flex: 0 0 66.66667%;
max-width: 66.66667%; }
.col-md-9 {
-webkit-box-flex: 0;
-ms-flex: 0 0 75%;
flex: 0 0 75%;
max-width: 75%; }
.col-md-10 {
-webkit-box-flex: 0;
-ms-flex: 0 0 83.33333%;
flex: 0 0 83.33333%;
max-width: 83.33333%; }
.col-md-11 {
-webkit-box-flex: 0;
-ms-flex: 0 0 91.66667%;
flex: 0 0 91.66667%;
max-width: 91.66667%; }
.col-md-12 {
-webkit-box-flex: 0;
-ms-flex: 0 0 100%;
flex: 0 0 100%;
max-width: 100%; }
.order-md-first {
-webkit-box-ordinal-group: 0;
-ms-flex-order: -1;
order: -1; }
.order-md-last {
-webkit-box-ordinal-group: 14;
-ms-flex-order: 13;
order: 13; }
.order-md-0 {
-webkit-box-ordinal-group: 1;
-ms-flex-order: 0;
order: 0; }
.order-md-1 {
-webkit-box-ordinal-group: 2;
-ms-flex-order: 1;
order: 1; }
.order-md-2 {
-webkit-box-ordinal-group: 3;
-ms-flex-order: 2;
order: 2; }
.order-md-3 {
-webkit-box-ordinal-group: 4;
-ms-flex-order: 3;
order: 3; }
.order-md-4 {
-webkit-box-ordinal-group: 5;
-ms-flex-order: 4;
order: 4; }
.order-md-5 {
-webkit-box-ordinal-group: 6;
-ms-flex-order: 5;
order: 5; }
.order-md-6 {
-webkit-box-ordinal-group: 7;
-ms-flex-order: 6;
order: 6; }
.order-md-7 {
-webkit-box-ordinal-group: 8;
-ms-flex-order: 7;
order: 7; }
.order-md-8 {
-webkit-box-ordinal-group: 9;
-ms-flex-order: 8;
order: 8; }
.order-md-9 {
-webkit-box-ordinal-group: 10;
-ms-flex-order: 9;
order: 9; }
.order-md-10 {
-webkit-box-ordinal-group: 11;
-ms-flex-order: 10;
order: 10; }
.order-md-11 {
-webkit-box-ordinal-group: 12;
-ms-flex-order: 11;
order: 11; }
.order-md-12 {
-webkit-box-ordinal-group: 13;
-ms-flex-order: 12;
order: 12; }
.offset-md-0 {
margin-left: 0; }
.offset-md-1 {
margin-left: 8.33333%; }
.offset-md-2 {
margin-left: 16.66667%; }
.offset-md-3 {
margin-left: 25%; }
.offset-md-4 {
margin-left: 33.33333%; }
.offset-md-5 {
margin-left: 41.66667%; }
.offset-md-6 {
margin-left: 50%; }
.offset-md-7 {
margin-left: 58.33333%; }
.offset-md-8 {
margin-left: 66.66667%; }
.offset-md-9 {
margin-left: 75%; }
.offset-md-10 {
margin-left: 83.33333%; }
.offset-md-11 {
margin-left: 91.66667%; } }
@media (min-width: 992px) {
.col-lg {
-ms-flex-preferred-size: 0;
flex-basis: 0;
-webkit-box-flex: 1;
-ms-flex-positive: 1;
flex-grow: 1;
max-width: 100%; }
.col-lg-auto {
-webkit-box-flex: 0;
-ms-flex: 0 0 auto;
flex: 0 0 auto;
width: auto;
max-width: none; }
.col-lg-1 {
-webkit-box-flex: 0;
-ms-flex: 0 0 8.33333%;
flex: 0 0 8.33333%;
max-width: 8.33333%; }
.col-lg-2 {
-webkit-box-flex: 0;
-ms-flex: 0 0 16.66667%;
flex: 0 0 16.66667%;
max-width: 16.66667%; }
.col-lg-3 {
-webkit-box-flex: 0;
-ms-flex: 0 0 25%;
flex: 0 0 25%;
max-width: 25%; }
.col-lg-4 {
-webkit-box-flex: 0;
-ms-flex: 0 0 33.33333%;
flex: 0 0 33.33333%;
max-width: 33.33333%; }
.col-lg-5 {
-webkit-box-flex: 0;
-ms-flex: 0 0 41.66667%;
flex: 0 0 41.66667%;
max-width: 41.66667%; }
.col-lg-6 {
-webkit-box-flex: 0;
-ms-flex: 0 0 50%;
flex: 0 0 50%;
max-width: 50%; }
.col-lg-7 {
-webkit-box-flex: 0;
-ms-flex: 0 0 58.33333%;
flex: 0 0 58.33333%;
max-width: 58.33333%; }
.col-lg-8 {
-webkit-box-flex: 0;
-ms-flex: 0 0 66.66667%;
flex: 0 0 66.66667%;
max-width: 66.66667%; }
.col-lg-9 {
-webkit-box-flex: 0;
-ms-flex: 0 0 75%;
flex: 0 0 75%;
max-width: 75%; }
.col-lg-10 {
-webkit-box-flex: 0;
-ms-flex: 0 0 83.33333%;
flex: 0 0 83.33333%;
max-width: 83.33333%; }
.col-lg-11 {
-webkit-box-flex: 0;
-ms-flex: 0 0 91.66667%;
flex: 0 0 91.66667%;
max-width: 91.66667%; }
.col-lg-12 {
-webkit-box-flex: 0;
-ms-flex: 0 0 100%;
flex: 0 0 100%;
max-width: 100%; }
.order-lg-first {
-webkit-box-ordinal-group: 0;
-ms-flex-order: -1;
order: -1; }
.order-lg-last {
-webkit-box-ordinal-group: 14;
-ms-flex-order: 13;
order: 13; }
.order-lg-0 {
-webkit-box-ordinal-group: 1;
-ms-flex-order: 0;
order: 0; }
.order-lg-1 {
-webkit-box-ordinal-group: 2;
-ms-flex-order: 1;
order: 1; }
.order-lg-2 {
-webkit-box-ordinal-group: 3;
-ms-flex-order: 2;
order: 2; }
.order-lg-3 {
-webkit-box-ordinal-group: 4;
-ms-flex-order: 3;
order: 3; }
.order-lg-4 {
-webkit-box-ordinal-group: 5;
-ms-flex-order: 4;
order: 4; }
.order-lg-5 {
-webkit-box-ordinal-group: 6;
-ms-flex-order: 5;
order: 5; }
.order-lg-6 {
-webkit-box-ordinal-group: 7;
-ms-flex-order: 6;
order: 6; }
.order-lg-7 {
-webkit-box-ordinal-group: 8;
-ms-flex-order: 7;
order: 7; }
.order-lg-8 {
-webkit-box-ordinal-group: 9;
-ms-flex-order: 8;
order: 8; }
.order-lg-9 {
-webkit-box-ordinal-group: 10;
-ms-flex-order: 9;
order: 9; }
.order-lg-10 {
-webkit-box-ordinal-group: 11;
-ms-flex-order: 10;
order: 10; }
.order-lg-11 {
-webkit-box-ordinal-group: 12;
-ms-flex-order: 11;
order: 11; }
.order-lg-12 {
-webkit-box-ordinal-group: 13;
-ms-flex-order: 12;
order: 12; }
.offset-lg-0 {
margin-left: 0; }
.offset-lg-1 {
margin-left: 8.33333%; }
.offset-lg-2 {
margin-left: 16.66667%; }
.offset-lg-3 {
margin-left: 25%; }
.offset-lg-4 {
margin-left: 33.33333%; }
.offset-lg-5 {
margin-left: 41.66667%; }
.offset-lg-6 {
margin-left: 50%; }
.offset-lg-7 {
margin-left: 58.33333%; }
.offset-lg-8 {
margin-left: 66.66667%; }
.offset-lg-9 {
margin-left: 75%; }
.offset-lg-10 {
margin-left: 83.33333%; }
.offset-lg-11 {
margin-left: 91.66667%; } }
@media (min-width: 1600px) {
.col-xl {
-ms-flex-preferred-size: 0;
flex-basis: 0;
-webkit-box-flex: 1;
-ms-flex-positive: 1;
flex-grow: 1;
max-width: 100%; }
.col-xl-auto {
-webkit-box-flex: 0;
-ms-flex: 0 0 auto;
flex: 0 0 auto;
width: auto;
max-width: none; }
.col-xl-1 {
-webkit-box-flex: 0;
-ms-flex: 0 0 8.33333%;
flex: 0 0 8.33333%;
max-width: 8.33333%; }
.col-xl-2 {
-webkit-box-flex: 0;
-ms-flex: 0 0 16.66667%;
flex: 0 0 16.66667%;
max-width: 16.66667%; }
.col-xl-3 {
-webkit-box-flex: 0;
-ms-flex: 0 0 25%;
flex: 0 0 25%;
max-width: 25%; }
.col-xl-4 {
-webkit-box-flex: 0;
-ms-flex: 0 0 33.33333%;
flex: 0 0 33.33333%;
max-width: 33.33333%; }
.col-xl-5 {
-webkit-box-flex: 0;
-ms-flex: 0 0 41.66667%;
flex: 0 0 41.66667%;
max-width: 41.66667%; }
.col-xl-6 {
-webkit-box-flex: 0;
-ms-flex: 0 0 50%;
flex: 0 0 50%;
max-width: 50%; }
.col-xl-7 {
-webkit-box-flex: 0;
-ms-flex: 0 0 58.33333%;
flex: 0 0 58.33333%;
max-width: 58.33333%; }
.col-xl-8 {
-webkit-box-flex: 0;
-ms-flex: 0 0 66.66667%;
flex: 0 0 66.66667%;
max-width: 66.66667%; }
.col-xl-9 {
-webkit-box-flex: 0;
-ms-flex: 0 0 75%;
flex: 0 0 75%;
max-width: 75%; }
.col-xl-10 {
-webkit-box-flex: 0;
-ms-flex: 0 0 83.33333%;
flex: 0 0 83.33333%;
max-width: 83.33333%; }
.col-xl-11 {
-webkit-box-flex: 0;
-ms-flex: 0 0 91.66667%;
flex: 0 0 91.66667%;
max-width: 91.66667%; }
.col-xl-12 {
-webkit-box-flex: 0;
-ms-flex: 0 0 100%;
flex: 0 0 100%;
max-width: 100%; }
.order-xl-first {
-webkit-box-ordinal-group: 0;
-ms-flex-order: -1;
order: -1; }
.order-xl-last {
-webkit-box-ordinal-group: 14;
-ms-flex-order: 13;
order: 13; }
.order-xl-0 {
-webkit-box-ordinal-group: 1;
-ms-flex-order: 0;
order: 0; }
.order-xl-1 {
-webkit-box-ordinal-group: 2;
-ms-flex-order: 1;
order: 1; }
.order-xl-2 {
-webkit-box-ordinal-group: 3;
-ms-flex-order: 2;
order: 2; }
.order-xl-3 {
-webkit-box-ordinal-group: 4;
-ms-flex-order: 3;
order: 3; }
.order-xl-4 {
-webkit-box-ordinal-group: 5;
-ms-flex-order: 4;
order: 4; }
.order-xl-5 {
-webkit-box-ordinal-group: 6;
-ms-flex-order: 5;
order: 5; }
.order-xl-6 {
-webkit-box-ordinal-group: 7;
-ms-flex-order: 6;
order: 6; }
.order-xl-7 {
-webkit-box-ordinal-group: 8;
-ms-flex-order: 7;
order: 7; }
.order-xl-8 {
-webkit-box-ordinal-group: 9;
-ms-flex-order: 8;
order: 8; }
.order-xl-9 {
-webkit-box-ordinal-group: 10;
-ms-flex-order: 9;
order: 9; }
.order-xl-10 {
-webkit-box-ordinal-group: 11;
-ms-flex-order: 10;
order: 10; }
.order-xl-11 {
-webkit-box-ordinal-group: 12;
-ms-flex-order: 11;
order: 11; }
.order-xl-12 {
-webkit-box-ordinal-group: 13;
-ms-flex-order: 12;
order: 12; }
.offset-xl-0 {
margin-left: 0; }
.offset-xl-1 {
margin-left: 8.33333%; }
.offset-xl-2 {
margin-left: 16.66667%; }
.offset-xl-3 {
margin-left: 25%; }
.offset-xl-4 {
margin-left: 33.33333%; }
.offset-xl-5 {
margin-left: 41.66667%; }
.offset-xl-6 {
margin-left: 50%; }
.offset-xl-7 {
margin-left: 58.33333%; }
.offset-xl-8 {
margin-left: 66.66667%; }
.offset-xl-9 {
margin-left: 75%; }
.offset-xl-10 {
margin-left: 83.33333%; }
.offset-xl-11 {
margin-left: 91.66667%; } }
.table {
width: 100%;
max-width: 100%;
margin-bottom: 1rem;
background-color: transparent; }
.table th,
.table td {
padding: 1rem;
vertical-align: top;
border-top: 1px solid #dee2e6; }
.table thead th {
vertical-align: bottom;
border-bottom: 2px solid #dee2e6; }
.table tbody + tbody {
border-top: 2px solid #dee2e6; }
.table .table {
background-color: #eef5f9; }
.table-sm th,
.table-sm td {
padding: 0.3rem; }
.table-bordered {
border: 1px solid #dee2e6; }
.table-bordered th,
.table-bordered td {
border: 1px solid #dee2e6; }
.table-bordered thead th,
.table-bordered thead td {
border-bottom-width: 2px; }
.table-borderless th,
.table-borderless td,
.table-borderless thead th,
.table-borderless tbody + tbody {
border: 0; }
.table-striped tbody tr:nth-of-type(odd) {
background-color: rgba(0, 0, 0, 0.05); }
.table-hover tbody tr:hover {
background-color: #f8f9fa; }
.table-primary,
.table-primary > th,
.table-primary > td {
background-color: #d8d2fa; }
.table-hover .table-primary:hover {
background-color: #c4bbf7; }
.table-hover .table-primary:hover > td,
.table-hover .table-primary:hover > th {
background-color: #c4bbf7; }
.table-secondary,
.table-secondary > th,
.table-secondary > td {
background-color: #d6d8db; }
.table-hover .table-secondary:hover {
background-color: #c8cbcf; }
.table-hover .table-secondary:hover > td,
.table-hover .table-secondary:hover > th {
background-color: #c8cbcf; }
.table-success,
.table-success > th,
.table-success > td {
background-color: #c7ede6; }
.table-hover .table-success:hover {
background-color: #b4e7dd; }
.table-hover .table-success:hover > td,
.table-hover .table-success:hover > th {
background-color: #b4e7dd; }
.table-info,
.table-info > th,
.table-info > td {
background-color: #c3d3ff; }
.table-hover .table-info:hover {
background-color: #aac0ff; }
.table-hover .table-info:hover > td,
.table-hover .table-info:hover > th {
background-color: #aac0ff; }
.table-warning,
.table-warning > th,
.table-warning > td {
background-color: #ffecc6; }
.table-hover .table-warning:hover {
background-color: #ffe4ad; }
.table-hover .table-warning:hover > td,
.table-hover .table-warning:hover > th {
background-color: #ffe4ad; }
.table-danger,
.table-danger > th,
.table-danger > td {
background-color: #fcc4ce; }
.table-hover .table-danger:hover {
background-color: #fbacba; }
.table-hover .table-danger:hover > td,
.table-hover .table-danger:hover > th {
background-color: #fbacba; }
.table-light,
.table-light > th,
.table-light > td {
background-color: #fdfdfe; }
.table-hover .table-light:hover {
background-color: #ececf6; }
.table-hover .table-light:hover > td,
.table-hover .table-light:hover > th {
background-color: #ececf6; }
.table-dark,
.table-dark > th,
.table-dark > td {
background-color: #c6c8ca; }
.table-hover .table-dark:hover {
background-color: #b9bbbe; }
.table-hover .table-dark:hover > td,
.table-hover .table-dark:hover > th {
background-color: #b9bbbe; }
.table-cyan,
.table-cyan > th,
.table-cyan > td {
background-color: #ceeefd; }
.table-hover .table-cyan:hover {
background-color: #b6e6fc; }
.table-hover .table-cyan:hover > td,
.table-hover .table-cyan:hover > th {
background-color: #b6e6fc; }
.table-orange,
.table-orange > th,
.table-orange > td {
background-color: #fedfb8; }
.table-hover .table-orange:hover {
background-color: #fed49f; }
.table-hover .table-orange:hover > td,
.table-hover .table-orange:hover > th {
background-color: #fed49f; }
.table-purple,
.table-purple > th,
.table-purple > td {
background-color: #d8d2fa; }
.table-hover .table-purple:hover {
background-color: #c4bbf7; }
.table-hover .table-purple:hover > td,
.table-hover .table-purple:hover > th {
background-color: #c4bbf7; }
.table-active,
.table-active > th,
.table-active > td {
background-color: #f8f9fa; }
.table-hover .table-active:hover {
background-color: #e9ecef; }
.table-hover .table-active:hover > td,
.table-hover .table-active:hover > th {
background-color: #e9ecef; }
.table .thead-dark th {
color: #eef5f9;
background-color: #212529;
border-color: #32383e; }
.table .thead-light th {
color: #4F5467;
background-color: #e9ecef;
border-color: #dee2e6; }
.table-dark {
color: #eef5f9;
background-color: #212529; }
.table-dark th,
.table-dark td,
.table-dark thead th {
border-color: #32383e; }
.table-dark.table-bordered {
border: 0; }
.table-dark.table-striped tbody tr:nth-of-type(odd) {
background-color: rgba(255, 255, 255, 0.05); }
.table-dark.table-hover tbody tr:hover {
background-color: rgba(255, 255, 255, 0.075); }
@media (max-width: 575.98px) {
.table-responsive-sm {
display: block;
width: 100%;
overflow-x: auto;
-webkit-overflow-scrolling: touch;
-ms-overflow-style: -ms-autohiding-scrollbar; }
.table-responsive-sm > .table-bordered {
border: 0; } }
@media (max-width: 767.98px) {
.table-responsive-md {
display: block;
width: 100%;
overflow-x: auto;
-webkit-overflow-scrolling: touch;
-ms-overflow-style: -ms-autohiding-scrollbar; }
.table-responsive-md > .table-bordered {
border: 0; } }
@media (max-width: 991.98px) {
.table-responsive-lg {
display: block;
width: 100%;
overflow-x: auto;
-webkit-overflow-scrolling: touch;
-ms-overflow-style: -ms-autohiding-scrollbar; }
.table-responsive-lg > .table-bordered {
border: 0; } }
@media (max-width: 1599.98px) {
.table-responsive-xl {
display: block;
width: 100%;
overflow-x: auto;
-webkit-overflow-scrolling: touch;
-ms-overflow-style: -ms-autohiding-scrollbar; }
.table-responsive-xl > .table-bordered {
border: 0; } }
.table-responsive {
display: block;
width: 100%;
overflow-x: auto;
-webkit-overflow-scrolling: touch;
-ms-overflow-style: -ms-autohiding-scrollbar; }
.table-responsive > .table-bordered {
border: 0; }
.form-control {
display: block;
width: 100%;
padding: 0.375rem 0.75rem;
font-size: 0.875rem;
line-height: 1.5;
color: #4F5467;
background-color: #fff;
background-clip: padding-box;
border: 1px solid #e9ecef;
border-radius: 2px;
-webkit-transition: border-color 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out;
transition: border-color 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out;
-o-transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out; }
@media screen and (prefers-reduced-motion: reduce) {
.form-control {
-webkit-transition: none;
-o-transition: none;
transition: none; } }
.form-control::-ms-expand {
background-color: transparent;
border: 0; }
.form-control:focus {
color: #4F5467;
background-color: #fff;
border-color: rgba(0, 0, 0, 0.25);
outline: 0;
-webkit-box-shadow: transparent;
box-shadow: transparent; }
.form-control::-webkit-input-placeholder {
color: #6c757d;
opacity: 1; }
.form-control:-ms-input-placeholder {
color: #6c757d;
opacity: 1; }
.form-control::-ms-input-placeholder {
color: #6c757d;
opacity: 1; }
.form-control::placeholder {
color: #6c757d;
opacity: 1; }
.form-control:disabled, .form-control[readonly] {
background-color: #e9ecef;
opacity: 1; }
select.form-control:not([size]):not([multiple]) {
height: calc(2.0625rem + 2px); }
select.form-control:focus::-ms-value {
color: #4F5467;
background-color: #fff; }
.form-control-file,
.form-control-range {
display: block;
width: 100%; }
.col-form-label {
padding-top: calc(0.375rem + 1px);
padding-bottom: calc(0.375rem + 1px);
margin-bottom: 0;
font-size: inherit;
line-height: 1.5; }
.col-form-label-lg {
padding-top: calc(0.5rem + 1px);
padding-bottom: calc(0.5rem + 1px);
font-size: 1.09375rem;
line-height: 1.5; }
.col-form-label-sm {
padding-top: calc(0.25rem + 1px);
padding-bottom: calc(0.25rem + 1px);
font-size: 0.76563rem;
line-height: 1.5; }
.form-control-plaintext {
display: block;
width: 100%;
padding-top: 0.375rem;
padding-bottom: 0.375rem;
margin-bottom: 0;
line-height: 1.5;
color: #3e5569;
background-color: transparent;
border: solid transparent;
border-width: 1px 0; }
.form-control-plaintext.form-control-sm, .input-group-sm > .form-control-plaintext.form-control,
.input-group-sm > .input-group-prepend > .form-control-plaintext.input-group-text,
.input-group-sm > .input-group-append > .form-control-plaintext.input-group-text,
.input-group-sm > .input-group-prepend > .form-control-plaintext.btn,
.input-group-sm > .input-group-append > .form-control-plaintext.btn, .form-control-plaintext.form-control-lg, .input-group-lg > .form-control-plaintext.form-control,
.input-group-lg > .input-group-prepend > .form-control-plaintext.input-group-text,
.input-group-lg > .input-group-append > .form-control-plaintext.input-group-text,
.input-group-lg > .input-group-prepend > .form-control-plaintext.btn,
.input-group-lg > .input-group-append > .form-control-plaintext.btn {
padding-right: 0;
padding-left: 0; }
.form-control-sm, .input-group-sm > .form-control,
.input-group-sm > .input-group-prepend > .input-group-text,
.input-group-sm > .input-group-append > .input-group-text,
.input-group-sm > .input-group-prepend > .btn,
.input-group-sm > .input-group-append > .btn {
padding: 0.25rem 0.5rem;
font-size: 0.76563rem;
line-height: 1.5;
border-radius: 1px; }
select.form-control-sm:not([size]):not([multiple]), .input-group-sm > select.form-control:not([size]):not([multiple]),
.input-group-sm > .input-group-prepend > select.input-group-text:not([size]):not([multiple]),
.input-group-sm > .input-group-append > select.input-group-text:not([size]):not([multiple]),
.input-group-sm > .input-group-prepend > select.btn:not([size]):not([multiple]),
.input-group-sm > .input-group-append > select.btn:not([size]):not([multiple]) {
height: calc(1.64844rem + 2px); }
.form-control-lg, .input-group-lg > .form-control,
.input-group-lg > .input-group-prepend > .input-group-text,
.input-group-lg > .input-group-append > .input-group-text,
.input-group-lg > .input-group-prepend > .btn,
.input-group-lg > .input-group-append > .btn {
padding: 0.5rem 1rem;
font-size: 1.09375rem;
line-height: 1.5;
border-radius: 2px; }
select.form-control-lg:not([size]):not([multiple]), .input-group-lg > select.form-control:not([size]):not([multiple]),
.input-group-lg > .input-group-prepend > select.input-group-text:not([size]):not([multiple]),
.input-group-lg > .input-group-append > select.input-group-text:not([size]):not([multiple]),
.input-group-lg > .input-group-prepend > select.btn:not([size]):not([multiple]),
.input-group-lg > .input-group-append > select.btn:not([size]):not([multiple]) {
height: calc(2.64063rem + 2px); }
.form-group {
margin-bottom: 1rem; }
.form-text {
display: block;
margin-top: 0.25rem; }
.form-row {
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-ms-flex-wrap: wrap;
flex-wrap: wrap;
margin-right: -5px;
margin-left: -5px; }
.form-row > .col,
.form-row > [class*="col-"] {
padding-right: 5px;
padding-left: 5px; }
.form-check {
position: relative;
display: block;
padding-left: 1.25rem; }
.form-check-input {
position: absolute;
margin-top: 0.3rem;
margin-left: -1.25rem; }
.form-check-input:disabled ~ .form-check-label {
color: #a1aab2; }
.form-check-label {
margin-bottom: 0; }
.form-check-inline {
display: -webkit-inline-box;
display: -ms-inline-flexbox;
display: inline-flex;
-webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
padding-left: 0;
margin-right: 0.75rem; }
.form-check-inline .form-check-input {
position: static;
margin-top: 0;
margin-right: 0.3125rem;
margin-left: 0; }
.valid-feedback {
display: none;
width: 100%;
margin-top: 0.25rem;
font-size: 80%;
color: #36bea6; }
.valid-tooltip {
position: absolute;
top: 100%;
z-index: 5;
display: none;
max-width: 100%;
padding: .5rem;
margin-top: .1rem;
font-size: .875rem;
line-height: 1;
color: #fff;
background-color: rgba(54, 190, 166, 0.8);
border-radius: .2rem; }
.was-validated .form-control:valid, .form-control.is-valid, .was-validated
.custom-select:valid,
.custom-select.is-valid {
border-color: #36bea6; }
.was-validated .form-control:valid:focus, .form-control.is-valid:focus, .was-validated
.custom-select:valid:focus,
.custom-select.is-valid:focus {
border-color: #36bea6;
-webkit-box-shadow: 0 0 0 0.2rem rgba(54, 190, 166, 0.25);
box-shadow: 0 0 0 0.2rem rgba(54, 190, 166, 0.25); }
.was-validated .form-control:valid ~ .valid-feedback,
.was-validated .form-control:valid ~ .valid-tooltip, .form-control.is-valid ~ .valid-feedback,
.form-control.is-valid ~ .valid-tooltip, .was-validated
.custom-select:valid ~ .valid-feedback,
.was-validated
.custom-select:valid ~ .valid-tooltip,
.custom-select.is-valid ~ .valid-feedback,
.custom-select.is-valid ~ .valid-tooltip {
display: block; }
.was-validated .form-check-input:valid ~ .form-check-label, .form-check-input.is-valid ~ .form-check-label {
color: #36bea6; }
.was-validated .form-check-input:valid ~ .valid-feedback,
.was-validated .form-check-input:valid ~ .valid-tooltip, .form-check-input.is-valid ~ .valid-feedback,
.form-check-input.is-valid ~ .valid-tooltip {
display: block; }
.was-validated .custom-control-input:valid ~ .custom-control-label, .custom-control-input.is-valid ~ .custom-control-label {
color: #36bea6; }
.was-validated .custom-control-input:valid ~ .custom-control-label::before, .custom-control-input.is-valid ~ .custom-control-label::before {
background-color: #93e0d3; }
.was-validated .custom-control-input:valid ~ .valid-feedback,
.was-validated .custom-control-input:valid ~ .valid-tooltip, .custom-control-input.is-valid ~ .valid-feedback,
.custom-control-input.is-valid ~ .valid-tooltip {
display: block; }
.was-validated .custom-control-input:valid:checked ~ .custom-control-label::before, .custom-control-input.is-valid:checked ~ .custom-control-label::before {
background-color: #58cfba; }
.was-validated .custom-control-input:valid:focus ~ .custom-control-label::before, .custom-control-input.is-valid:focus ~ .custom-control-label::before {
-webkit-box-shadow: 0 0 0 1px #eef5f9, 0 0 0 0.2rem rgba(54, 190, 166, 0.25);
box-shadow: 0 0 0 1px #eef5f9, 0 0 0 0.2rem rgba(54, 190, 166, 0.25); }
.was-validated .custom-file-input:valid ~ .custom-file-label, .custom-file-input.is-valid ~ .custom-file-label {
border-color: #36bea6; }
.was-validated .custom-file-input:valid ~ .custom-file-label::before, .custom-file-input.is-valid ~ .custom-file-label::before {
border-color: inherit; }
.was-validated .custom-file-input:valid ~ .valid-feedback,
.was-validated .custom-file-input:valid ~ .valid-tooltip, .custom-file-input.is-valid ~ .valid-feedback,
.custom-file-input.is-valid ~ .valid-tooltip {
display: block; }
.was-validated .custom-file-input:valid:focus ~ .custom-file-label, .custom-file-input.is-valid:focus ~ .custom-file-label {
-webkit-box-shadow: 0 0 0 0.2rem rgba(54, 190, 166, 0.25);
box-shadow: 0 0 0 0.2rem rgba(54, 190, 166, 0.25); }
.invalid-feedback {
display: none;
width: 100%;
margin-top: 0.25rem;
font-size: 80%;
color: #f62d51; }
.invalid-tooltip {
position: absolute;
top: 100%;
z-index: 5;
display: none;
max-width: 100%;
padding: .5rem;
margin-top: .1rem;
font-size: .875rem;
line-height: 1;
color: #fff;
background-color: rgba(246, 45, 81, 0.8);
border-radius: .2rem; }
.was-validated .form-control:invalid, .form-control.is-invalid, .was-validated
.custom-select:invalid,
.custom-select.is-invalid {
border-color: #f62d51; }
.was-validated .form-control:invalid:focus, .form-control.is-invalid:focus, .was-validated
.custom-select:invalid:focus,
.custom-select.is-invalid:focus {
border-color: #f62d51;
-webkit-box-shadow: 0 0 0 0.2rem rgba(246, 45, 81, 0.25);
box-shadow: 0 0 0 0.2rem rgba(246, 45, 81, 0.25); }
.was-validated .form-control:invalid ~ .invalid-feedback,
.was-validated .form-control:invalid ~ .invalid-tooltip, .form-control.is-invalid ~ .invalid-feedback,
.form-control.is-invalid ~ .invalid-tooltip, .was-validated
.custom-select:invalid ~ .invalid-feedback,
.was-validated
.custom-select:invalid ~ .invalid-tooltip,
.custom-select.is-invalid ~ .invalid-feedback,
.custom-select.is-invalid ~ .invalid-tooltip {
display: block; }
.was-validated .form-check-input:invalid ~ .form-check-label, .form-check-input.is-invalid ~ .form-check-label {
color: #f62d51; }
.was-validated .form-check-input:invalid ~ .invalid-feedback,
.was-validated .form-check-input:invalid ~ .invalid-tooltip, .form-check-input.is-invalid ~ .invalid-feedback,
.form-check-input.is-invalid ~ .invalid-tooltip {
display: block; }
.was-validated .custom-control-input:invalid ~ .custom-control-label, .custom-control-input.is-invalid ~ .custom-control-label {
color: #f62d51; }
.was-validated .custom-control-input:invalid ~ .custom-control-label::before, .custom-control-input.is-invalid ~ .custom-control-label::before {
background-color: #fba7b6; }
.was-validated .custom-control-input:invalid ~ .invalid-feedback,
.was-validated .custom-control-input:invalid ~ .invalid-tooltip, .custom-control-input.is-invalid ~ .invalid-feedback,
.custom-control-input.is-invalid ~ .invalid-tooltip {
display: block; }
.was-validated .custom-control-input:invalid:checked ~ .custom-control-label::before, .custom-control-input.is-invalid:checked ~ .custom-control-label::before {
background-color: #f85e7a; }
.was-validated .custom-control-input:invalid:focus ~ .custom-control-label::before, .custom-control-input.is-invalid:focus ~ .custom-control-label::before {
-webkit-box-shadow: 0 0 0 1px #eef5f9, 0 0 0 0.2rem rgba(246, 45, 81, 0.25);
box-shadow: 0 0 0 1px #eef5f9, 0 0 0 0.2rem rgba(246, 45, 81, 0.25); }
.was-validated .custom-file-input:invalid ~ .custom-file-label, .custom-file-input.is-invalid ~ .custom-file-label {
border-color: #f62d51; }
.was-validated .custom-file-input:invalid ~ .custom-file-label::before, .custom-file-input.is-invalid ~ .custom-file-label::before {
border-color: inherit; }
.was-validated .custom-file-input:invalid ~ .invalid-feedback,
.was-validated .custom-file-input:invalid ~ .invalid-tooltip, .custom-file-input.is-invalid ~ .invalid-feedback,
.custom-file-input.is-invalid ~ .invalid-tooltip {
display: block; }
.was-validated .custom-file-input:invalid:focus ~ .custom-file-label, .custom-file-input.is-invalid:focus ~ .custom-file-label {
-webkit-box-shadow: 0 0 0 0.2rem rgba(246, 45, 81, 0.25);
box-shadow: 0 0 0 0.2rem rgba(246, 45, 81, 0.25); }
.form-inline {
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-webkit-box-orient: horizontal;
-webkit-box-direction: normal;
-ms-flex-flow: row wrap;
flex-flow: row wrap;
-webkit-box-align: center;
-ms-flex-align: center;
align-items: center; }
.form-inline .form-check {
width: 100%; }
@media (min-width: 576px) {
.form-inline label {
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
-webkit-box-pack: center;
-ms-flex-pack: center;
justify-content: center;
margin-bottom: 0; }
.form-inline .form-group {
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-webkit-box-flex: 0;
-ms-flex: 0 0 auto;
flex: 0 0 auto;
-webkit-box-orient: horizontal;
-webkit-box-direction: normal;
-ms-flex-flow: row wrap;
flex-flow: row wrap;
-webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
margin-bottom: 0; }
.form-inline .form-control {
display: inline-block;
width: auto;
vertical-align: middle; }
.form-inline .form-control-plaintext {
display: inline-block; }
.form-inline .input-group,
.form-inline .custom-select {
width: auto; }
.form-inline .form-check {
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
-webkit-box-pack: center;
-ms-flex-pack: center;
justify-content: center;
width: auto;
padding-left: 0; }
.form-inline .form-check-input {
position: relative;
margin-top: 0;
margin-right: 0.25rem;
margin-left: 0; }
.form-inline .custom-control {
-webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
-webkit-box-pack: center;
-ms-flex-pack: center;
justify-content: center; }
.form-inline .custom-control-label {
margin-bottom: 0; } }
.btn {
display: inline-block;
font-weight: 400;
text-align: center;
white-space: nowrap;
vertical-align: middle;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
border: 1px solid transparent;
padding: 0.375rem 0.75rem;
font-size: 0.875rem;
line-height: 1.5;
border-radius: 2px;
-webkit-transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out;
transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out;
-o-transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out; }
@media screen and (prefers-reduced-motion: reduce) {
.btn {
-webkit-transition: none;
-o-transition: none;
transition: none; } }
.btn:hover, .btn:focus {
text-decoration: none; }
.btn:focus, .btn.focus {
outline: 0;
-webkit-box-shadow: transparent;
box-shadow: transparent; }
.btn.disabled, .btn:disabled {
opacity: 0.65; }
.btn:not(:disabled):not(.disabled) {
cursor: pointer; }
.btn:not(:disabled):not(.disabled):active, .btn:not(:disabled):not(.disabled).active {
background-image: none; }
a.btn.disabled,
fieldset:disabled a.btn {
pointer-events: none; }
.btn-primary {
color: #fff;
background-color: #7460ee;
border-color: #7460ee; }
.btn-primary:hover {
color: #fff;
background-color: #563dea;
border-color: #4c32e9; }
.btn-primary:focus, .btn-primary.focus {
-webkit-box-shadow: 0 0 0 0.2rem rgba(116, 96, 238, 0.5);
box-shadow: 0 0 0 0.2rem rgba(116, 96, 238, 0.5); }
.btn-primary.disabled, .btn-primary:disabled {
color: #fff;
background-color: #7460ee;
border-color: #7460ee; }
.btn-primary:not(:disabled):not(.disabled):active, .btn-primary:not(:disabled):not(.disabled).active,
.show > .btn-primary.dropdown-toggle {
color: #fff;
background-color: #4c32e9;
border-color: #4226e8; }
.btn-primary:not(:disabled):not(.disabled):active:focus, .btn-primary:not(:disabled):not(.disabled).active:focus,
.show > .btn-primary.dropdown-toggle:focus {
-webkit-box-shadow: 0 0 0 0.2rem rgba(116, 96, 238, 0.5);
box-shadow: 0 0 0 0.2rem rgba(116, 96, 238, 0.5); }
.btn-secondary {
color: #fff;
background-color: #6c757d;
border-color: #6c757d; }
.btn-secondary:hover {
color: #fff;
background-color: #5a6268;
border-color: #545b62; }
.btn-secondary:focus, .btn-secondary.focus {
-webkit-box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);
box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5); }
.btn-secondary.disabled, .btn-secondary:disabled {
color: #fff;
background-color: #6c757d;
border-color: #6c757d; }
.btn-secondary:not(:disabled):not(.disabled):active, .btn-secondary:not(:disabled):not(.disabled).active,
.show > .btn-secondary.dropdown-toggle {
color: #fff;
background-color: #545b62;
border-color: #4e555b; }
.btn-secondary:not(:disabled):not(.disabled):active:focus, .btn-secondary:not(:disabled):not(.disabled).active:focus,
.show > .btn-secondary.dropdown-toggle:focus {
-webkit-box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);
box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5); }
.btn-success {
color: #fff;
background-color: #36bea6;
border-color: #36bea6; }
.btn-success:hover {
color: #fff;
background-color: #2ea08c;
border-color: #2b9683; }
.btn-success:focus, .btn-success.focus {
-webkit-box-shadow: 0 0 0 0.2rem rgba(54, 190, 166, 0.5);
box-shadow: 0 0 0 0.2rem rgba(54, 190, 166, 0.5); }
.btn-success.disabled, .btn-success:disabled {
color: #fff;
background-color: #36bea6;
border-color: #36bea6; }
.btn-success:not(:disabled):not(.disabled):active, .btn-success:not(:disabled):not(.disabled).active,
.show > .btn-success.dropdown-toggle {
color: #fff;
background-color: #2b9683;
border-color: #288c7b; }
.btn-success:not(:disabled):not(.disabled):active:focus, .btn-success:not(:disabled):not(.disabled).active:focus,
.show > .btn-success.dropdown-toggle:focus {
-webkit-box-shadow: 0 0 0 0.2rem rgba(54, 190, 166, 0.5);
box-shadow: 0 0 0 0.2rem rgba(54, 190, 166, 0.5); }
.btn-info {
color: #fff;
background-color: #2962FF;
border-color: #2962FF; }
.btn-info:hover {
color: #fff;
background-color: #0346ff;
border-color: #0041f5; }
.btn-info:focus, .btn-info.focus {
-webkit-box-shadow: 0 0 0 0.2rem rgba(41, 98, 255, 0.5);
box-shadow: 0 0 0 0.2rem rgba(41, 98, 255, 0.5); }
.btn-info.disabled, .btn-info:disabled {
color: #fff;
background-color: #2962FF;
border-color: #2962FF; }
.btn-info:not(:disabled):not(.disabled):active, .btn-info:not(:disabled):not(.disabled).active,
.show > .btn-info.dropdown-toggle {
color: #fff;
background-color: #0041f5;
border-color: #003ee8; }
.btn-info:not(:disabled):not(.disabled):active:focus, .btn-info:not(:disabled):not(.disabled).active:focus,
.show > .btn-info.dropdown-toggle:focus {
-webkit-box-shadow: 0 0 0 0.2rem rgba(41, 98, 255, 0.5);
box-shadow: 0 0 0 0.2rem rgba(41, 98, 255, 0.5); }
.btn-warning {
color: #212529;
background-color: #ffbc34;
border-color: #ffbc34; }
.btn-warning:hover {
color: #212529;
background-color: #ffaf0e;
border-color: #ffab01; }
.btn-warning:focus, .btn-warning.focus {
-webkit-box-shadow: 0 0 0 0.2rem rgba(255, 188, 52, 0.5);
box-shadow: 0 0 0 0.2rem rgba(255, 188, 52, 0.5); }
.btn-warning.disabled, .btn-warning:disabled {
color: #212529;
background-color: #ffbc34;
border-color: #ffbc34; }
.btn-warning:not(:disabled):not(.disabled):active, .btn-warning:not(:disabled):not(.disabled).active,
.show > .btn-warning.dropdown-toggle {
color: #212529;
background-color: #ffab01;
border-color: #f3a300; }
.btn-warning:not(:disabled):not(.disabled):active:focus, .btn-warning:not(:disabled):not(.disabled).active:focus,
.show > .btn-warning.dropdown-toggle:focus {
-webkit-box-shadow: 0 0 0 0.2rem rgba(255, 188, 52, 0.5);
box-shadow: 0 0 0 0.2rem rgba(255, 188, 52, 0.5); }
.btn-danger {
color: #fff;
background-color: #f62d51;
border-color: #f62d51; }
.btn-danger:hover {
color: #fff;
background-color: #f20a34;
border-color: #e60a31; }
.btn-danger:focus, .btn-danger.focus {
-webkit-box-shadow: 0 0 0 0.2rem rgba(246, 45, 81, 0.5);
box-shadow: 0 0 0 0.2rem rgba(246, 45, 81, 0.5); }
.btn-danger.disabled, .btn-danger:disabled {
color: #fff;
background-color: #f62d51;
border-color: #f62d51; }
.btn-danger:not(:disabled):not(.disabled):active, .btn-danger:not(:disabled):not(.disabled).active,
.show > .btn-danger.dropdown-toggle {
color: #fff;
background-color: #e60a31;
border-color: #da092f; }
.btn-danger:not(:disabled):not(.disabled):active:focus, .btn-danger:not(:disabled):not(.disabled).active:focus,
.show > .btn-danger.dropdown-toggle:focus {
-webkit-box-shadow: 0 0 0 0.2rem rgba(246, 45, 81, 0.5);
box-shadow: 0 0 0 0.2rem rgba(246, 45, 81, 0.5); }
.btn-light {
color: #212529;
background-color: #f8f9fa;
border-color: #f8f9fa; }
.btn-light:hover {
color: #212529;
background-color: #e2e6ea;
border-color: #dae0e5; }
.btn-light:focus, .btn-light.focus {
-webkit-box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);
box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5); }
.btn-light.disabled, .btn-light:disabled {
color: #212529;
background-color: #f8f9fa;
border-color: #f8f9fa; }
.btn-light:not(:disabled):not(.disabled):active, .btn-light:not(:disabled):not(.disabled).active,
.show > .btn-light.dropdown-toggle {
color: #212529;
background-color: #dae0e5;
border-color: #d3d9df; }
.btn-light:not(:disabled):not(.disabled):active:focus, .btn-light:not(:disabled):not(.disabled).active:focus,
.show > .btn-light.dropdown-toggle:focus {
-webkit-box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);
box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5); }
.btn-dark {
color: #fff;
background-color: #343a40;
border-color: #343a40; }
.btn-dark:hover {
color: #fff;
background-color: #23272b;
border-color: #1d2124; }
.btn-dark:focus, .btn-dark.focus {
-webkit-box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);
box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5); }
.btn-dark.disabled, .btn-dark:disabled {
color: #fff;
background-color: #343a40;
border-color: #343a40; }
.btn-dark:not(:disabled):not(.disabled):active, .btn-dark:not(:disabled):not(.disabled).active,
.show > .btn-dark.dropdown-toggle {
color: #fff;
background-color: #1d2124;
border-color: #171a1d; }
.btn-dark:not(:disabled):not(.disabled):active:focus, .btn-dark:not(:disabled):not(.disabled).active:focus,
.show > .btn-dark.dropdown-toggle:focus {
-webkit-box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);
box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5); }
.btn-cyan {
color: #212529;
background-color: #4fc3f7;
border-color: #4fc3f7; }
.btn-cyan:hover {
color: #fff;
background-color: #2ab7f5;
border-color: #1eb2f5; }
.btn-cyan:focus, .btn-cyan.focus {
-webkit-box-shadow: 0 0 0 0.2rem rgba(79, 195, 247, 0.5);
box-shadow: 0 0 0 0.2rem rgba(79, 195, 247, 0.5); }
.btn-cyan.disabled, .btn-cyan:disabled {
color: #212529;
background-color: #4fc3f7;
border-color: #4fc3f7; }
.btn-cyan:not(:disabled):not(.disabled):active, .btn-cyan:not(:disabled):not(.disabled).active,
.show > .btn-cyan.dropdown-toggle {
color: #fff;
background-color: #1eb2f5;
border-color: #12aef4; }
.btn-cyan:not(:disabled):not(.disabled):active:focus, .btn-cyan:not(:disabled):not(.disabled).active:focus,
.show > .btn-cyan.dropdown-toggle:focus {
-webkit-box-shadow: 0 0 0 0.2rem rgba(79, 195, 247, 0.5);
box-shadow: 0 0 0 0.2rem rgba(79, 195, 247, 0.5); }
.btn-orange {
color: #212529;
background-color: #fb8c00;
border-color: #fb8c00; }
.btn-orange:hover {
color: #fff;
background-color: #d57700;
border-color: #c87000; }
.btn-orange:focus, .btn-orange.focus {
-webkit-box-shadow: 0 0 0 0.2rem rgba(251, 140, 0, 0.5);
box-shadow: 0 0 0 0.2rem rgba(251, 140, 0, 0.5); }
.btn-orange.disabled, .btn-orange:disabled {
color: #212529;
background-color: #fb8c00;
border-color: #fb8c00; }
.btn-orange:not(:disabled):not(.disabled):active, .btn-orange:not(:disabled):not(.disabled).active,
.show > .btn-orange.dropdown-toggle {
color: #fff;
background-color: #c87000;
border-color: #bb6800; }
.btn-orange:not(:disabled):not(.disabled):active:focus, .btn-orange:not(:disabled):not(.disabled).active:focus,
.show > .btn-orange.dropdown-toggle:focus {
-webkit-box-shadow: 0 0 0 0.2rem rgba(251, 140, 0, 0.5);
box-shadow: 0 0 0 0.2rem rgba(251, 140, 0, 0.5); }
.btn-purple {
color: #fff;
background-color: #7460ee;
border-color: #7460ee; }
.btn-purple:hover {
color: #fff;
background-color: #563dea;
border-color: #4c32e9; }
.btn-purple:focus, .btn-purple.focus {
-webkit-box-shadow: 0 0 0 0.2rem rgba(116, 96, 238, 0.5);
box-shadow: 0 0 0 0.2rem rgba(116, 96, 238, 0.5); }
.btn-purple.disabled, .btn-purple:disabled {
color: #fff;
background-color: #7460ee;
border-color: #7460ee; }
.btn-purple:not(:disabled):not(.disabled):active, .btn-purple:not(:disabled):not(.disabled).active,
.show > .btn-purple.dropdown-toggle {
color: #fff;
background-color: #4c32e9;
border-color: #4226e8; }
.btn-purple:not(:disabled):not(.disabled):active:focus, .btn-purple:not(:disabled):not(.disabled).active:focus,
.show > .btn-purple.dropdown-toggle:focus {
-webkit-box-shadow: 0 0 0 0.2rem rgba(116, 96, 238, 0.5);
box-shadow: 0 0 0 0.2rem rgba(116, 96, 238, 0.5); }
.btn-outline-primary {
color: #7460ee;
background-color: transparent;
background-image: none;
border-color: #7460ee; }
.btn-outline-primary:hover {
color: #fff;
background-color: #7460ee;
border-color: #7460ee; }
.btn-outline-primary:focus, .btn-outline-primary.focus {
-webkit-box-shadow: 0 0 0 0.2rem rgba(116, 96, 238, 0.5);
box-shadow: 0 0 0 0.2rem rgba(116, 96, 238, 0.5); }
.btn-outline-primary.disabled, .btn-outline-primary:disabled {
color: #7460ee;
background-color: transparent; }
.btn-outline-primary:not(:disabled):not(.disabled):active, .btn-outline-primary:not(:disabled):not(.disabled).active,
.show > .btn-outline-primary.dropdown-toggle {
color: #fff;
background-color: #7460ee;
border-color: #7460ee; }
.btn-outline-primary:not(:disabled):not(.disabled):active:focus, .btn-outline-primary:not(:disabled):not(.disabled).active:focus,
.show > .btn-outline-primary.dropdown-toggle:focus {
-webkit-box-shadow: 0 0 0 0.2rem rgba(116, 96, 238, 0.5);
box-shadow: 0 0 0 0.2rem rgba(116, 96, 238, 0.5); }
.btn-outline-secondary {
color: #6c757d;
background-color: transparent;
background-image: none;
border-color: #6c757d; }
.btn-outline-secondary:hover {
color: #fff;
background-color: #6c757d;
border-color: #6c757d; }
.btn-outline-secondary:focus, .btn-outline-secondary.focus {
-webkit-box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);
box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5); }
.btn-outline-secondary.disabled, .btn-outline-secondary:disabled {
color: #6c757d;
background-color: transparent; }
.btn-outline-secondary:not(:disabled):not(.disabled):active, .btn-outline-secondary:not(:disabled):not(.disabled).active,
.show > .btn-outline-secondary.dropdown-toggle {
color: #fff;
background-color: #6c757d;
border-color: #6c757d; }
.btn-outline-secondary:not(:disabled):not(.disabled):active:focus, .btn-outline-secondary:not(:disabled):not(.disabled).active:focus,
.show > .btn-outline-secondary.dropdown-toggle:focus {
-webkit-box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);
box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5); }
.btn-outline-success {
color: #36bea6;
background-color: transparent;
background-image: none;
border-color: #36bea6; }
.btn-outline-success:hover {
color: #fff;
background-color: #36bea6;
border-color: #36bea6; }
.btn-outline-success:focus, .btn-outline-success.focus {
-webkit-box-shadow: 0 0 0 0.2rem rgba(54, 190, 166, 0.5);
box-shadow: 0 0 0 0.2rem rgba(54, 190, 166, 0.5); }
.btn-outline-success.disabled, .btn-outline-success:disabled {
color: #36bea6;
background-color: transparent; }
.btn-outline-success:not(:disabled):not(.disabled):active, .btn-outline-success:not(:disabled):not(.disabled).active,
.show > .btn-outline-success.dropdown-toggle {
color: #fff;
background-color: #36bea6;
border-color: #36bea6; }
.btn-outline-success:not(:disabled):not(.disabled):active:focus, .btn-outline-success:not(:disabled):not(.disabled).active:focus,
.show > .btn-outline-success.dropdown-toggle:focus {
-webkit-box-shadow: 0 0 0 0.2rem rgba(54, 190, 166, 0.5);
box-shadow: 0 0 0 0.2rem rgba(54, 190, 166, 0.5); }
.btn-outline-info {
color: #2962FF;
background-color: transparent;
background-image: none;
border-color: #2962FF; }
.btn-outline-info:hover {
color: #fff;
background-color: #2962FF;
border-color: #2962FF; }
.btn-outline-info:focus, .btn-outline-info.focus {
-webkit-box-shadow: 0 0 0 0.2rem rgba(41, 98, 255, 0.5);
box-shadow: 0 0 0 0.2rem rgba(41, 98, 255, 0.5); }
.btn-outline-info.disabled, .btn-outline-info:disabled {
color: #2962FF;
background-color: transparent; }
.btn-outline-info:not(:disabled):not(.disabled):active, .btn-outline-info:not(:disabled):not(.disabled).active,
.show > .btn-outline-info.dropdown-toggle {
color: #fff;
background-color: #2962FF;
border-color: #2962FF; }
.btn-outline-info:not(:disabled):not(.disabled):active:focus, .btn-outline-info:not(:disabled):not(.disabled).active:focus,
.show > .btn-outline-info.dropdown-toggle:focus {
-webkit-box-shadow: 0 0 0 0.2rem rgba(41, 98, 255, 0.5);
box-shadow: 0 0 0 0.2rem rgba(41, 98, 255, 0.5); }
.btn-outline-warning {
color: #ffbc34;
background-color: transparent;
background-image: none;
border-color: #ffbc34; }
.btn-outline-warning:hover {
color: #212529;
background-color: #ffbc34;
border-color: #ffbc34; }
.btn-outline-warning:focus, .btn-outline-warning.focus {
-webkit-box-shadow: 0 0 0 0.2rem rgba(255, 188, 52, 0.5);
box-shadow: 0 0 0 0.2rem rgba(255, 188, 52, 0.5); }
.btn-outline-warning.disabled, .btn-outline-warning:disabled {
color: #ffbc34;
background-color: transparent; }
.btn-outline-warning:not(:disabled):not(.disabled):active, .btn-outline-warning:not(:disabled):not(.disabled).active,
.show > .btn-outline-warning.dropdown-toggle {
color: #212529;
background-color: #ffbc34;
border-color: #ffbc34; }
.btn-outline-warning:not(:disabled):not(.disabled):active:focus, .btn-outline-warning:not(:disabled):not(.disabled).active:focus,
.show > .btn-outline-warning.dropdown-toggle:focus {
-webkit-box-shadow: 0 0 0 0.2rem rgba(255, 188, 52, 0.5);
box-shadow: 0 0 0 0.2rem rgba(255, 188, 52, 0.5); }
.btn-outline-danger {
color: #f62d51;
background-color: transparent;
background-image: none;
border-color: #f62d51; }
.btn-outline-danger:hover {
color: #fff;
background-color: #f62d51;
border-color: #f62d51; }
.btn-outline-danger:focus, .btn-outline-danger.focus {
-webkit-box-shadow: 0 0 0 0.2rem rgba(246, 45, 81, 0.5);
box-shadow: 0 0 0 0.2rem rgba(246, 45, 81, 0.5); }
.btn-outline-danger.disabled, .btn-outline-danger:disabled {
color: #f62d51;
background-color: transparent; }
.btn-outline-danger:not(:disabled):not(.disabled):active, .btn-outline-danger:not(:disabled):not(.disabled).active,
.show > .btn-outline-danger.dropdown-toggle {
color: #fff;
background-color: #f62d51;
border-color: #f62d51; }
.btn-outline-danger:not(:disabled):not(.disabled):active:focus, .btn-outline-danger:not(:disabled):not(.disabled).active:focus,
.show > .btn-outline-danger.dropdown-toggle:focus {
-webkit-box-shadow: 0 0 0 0.2rem rgba(246, 45, 81, 0.5);
box-shadow: 0 0 0 0.2rem rgba(246, 45, 81, 0.5); }
.btn-outline-light {
color: #f8f9fa;
background-color: transparent;
background-image: none;
border-color: #f8f9fa; }
.btn-outline-light:hover {
color: #212529;
background-color: #f8f9fa;
border-color: #f8f9fa; }
.btn-outline-light:focus, .btn-outline-light.focus {
-webkit-box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);
box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5); }
.btn-outline-light.disabled, .btn-outline-light:disabled {
color: #f8f9fa;
background-color: transparent; }
.btn-outline-light:not(:disabled):not(.disabled):active, .btn-outline-light:not(:disabled):not(.disabled).active,
.show > .btn-outline-light.dropdown-toggle {
color: #212529;
background-color: #f8f9fa;
border-color: #f8f9fa; }
.btn-outline-light:not(:disabled):not(.disabled):active:focus, .btn-outline-light:not(:disabled):not(.disabled).active:focus,
.show > .btn-outline-light.dropdown-toggle:focus {
-webkit-box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);
box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5); }
.btn-outline-dark {
color: #343a40;
background-color: transparent;
background-image: none;
border-color: #343a40; }
.btn-outline-dark:hover {
color: #fff;
background-color: #343a40;
border-color: #343a40; }
.btn-outline-dark:focus, .btn-outline-dark.focus {
-webkit-box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);
box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5); }
.btn-outline-dark.disabled, .btn-outline-dark:disabled {
color: #343a40;
background-color: transparent; }
.btn-outline-dark:not(:disabled):not(.disabled):active, .btn-outline-dark:not(:disabled):not(.disabled).active,
.show > .btn-outline-dark.dropdown-toggle {
color: #fff;
background-color: #343a40;
border-color: #343a40; }
.btn-outline-dark:not(:disabled):not(.disabled):active:focus, .btn-outline-dark:not(:disabled):not(.disabled).active:focus,
.show > .btn-outline-dark.dropdown-toggle:focus {
-webkit-box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);
box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5); }
.btn-outline-cyan {
color: #4fc3f7;
background-color: transparent;
background-image: none;
border-color: #4fc3f7; }
.btn-outline-cyan:hover {
color: #212529;
background-color: #4fc3f7;
border-color: #4fc3f7; }
.btn-outline-cyan:focus, .btn-outline-cyan.focus {
-webkit-box-shadow: 0 0 0 0.2rem rgba(79, 195, 247, 0.5);
box-shadow: 0 0 0 0.2rem rgba(79, 195, 247, 0.5); }
.btn-outline-cyan.disabled, .btn-outline-cyan:disabled {
color: #4fc3f7;
background-color: transparent; }
.btn-outline-cyan:not(:disabled):not(.disabled):active, .btn-outline-cyan:not(:disabled):not(.disabled).active,
.show > .btn-outline-cyan.dropdown-toggle {
color: #212529;
background-color: #4fc3f7;
border-color: #4fc3f7; }
.btn-outline-cyan:not(:disabled):not(.disabled):active:focus, .btn-outline-cyan:not(:disabled):not(.disabled).active:focus,
.show > .btn-outline-cyan.dropdown-toggle:focus {
-webkit-box-shadow: 0 0 0 0.2rem rgba(79, 195, 247, 0.5);
box-shadow: 0 0 0 0.2rem rgba(79, 195, 247, 0.5); }
.btn-outline-orange {
color: #fb8c00;
background-color: transparent;
background-image: none;
border-color: #fb8c00; }
.btn-outline-orange:hover {
color: #212529;
background-color: #fb8c00;
border-color: #fb8c00; }
.btn-outline-orange:focus, .btn-outline-orange.focus {
-webkit-box-shadow: 0 0 0 0.2rem rgba(251, 140, 0, 0.5);
box-shadow: 0 0 0 0.2rem rgba(251, 140, 0, 0.5); }
.btn-outline-orange.disabled, .btn-outline-orange:disabled {
color: #fb8c00;
background-color: transparent; }
.btn-outline-orange:not(:disabled):not(.disabled):active, .btn-outline-orange:not(:disabled):not(.disabled).active,
.show > .btn-outline-orange.dropdown-toggle {
color: #212529;
background-color: #fb8c00;
border-color: #fb8c00; }
.btn-outline-orange:not(:disabled):not(.disabled):active:focus, .btn-outline-orange:not(:disabled):not(.disabled).active:focus,
.show > .btn-outline-orange.dropdown-toggle:focus {
-webkit-box-shadow: 0 0 0 0.2rem rgba(251, 140, 0, 0.5);
box-shadow: 0 0 0 0.2rem rgba(251, 140, 0, 0.5); }
.btn-outline-purple {
color: #7460ee;
background-color: transparent;
background-image: none;
border-color: #7460ee; }
.btn-outline-purple:hover {
color: #fff;
background-color: #7460ee;
border-color: #7460ee; }
.btn-outline-purple:focus, .btn-outline-purple.focus {
-webkit-box-shadow: 0 0 0 0.2rem rgba(116, 96, 238, 0.5);
box-shadow: 0 0 0 0.2rem rgba(116, 96, 238, 0.5); }
.btn-outline-purple.disabled, .btn-outline-purple:disabled {
color: #7460ee;
background-color: transparent; }
.btn-outline-purple:not(:disabled):not(.disabled):active, .btn-outline-purple:not(:disabled):not(.disabled).active,
.show > .btn-outline-purple.dropdown-toggle {
color: #fff;
background-color: #7460ee;
border-color: #7460ee; }
.btn-outline-purple:not(:disabled):not(.disabled):active:focus, .btn-outline-purple:not(:disabled):not(.disabled).active:focus,
.show > .btn-outline-purple.dropdown-toggle:focus {
-webkit-box-shadow: 0 0 0 0.2rem rgba(116, 96, 238, 0.5);
box-shadow: 0 0 0 0.2rem rgba(116, 96, 238, 0.5); }
.btn-link {
font-weight: 400;
color: #7460ee;
background-color: transparent; }
.btn-link:hover {
color: #381be7;
text-decoration: underline;
background-color: transparent;
border-color: transparent; }
.btn-link:focus, .btn-link.focus {
text-decoration: underline;
border-color: transparent;
-webkit-box-shadow: none;
box-shadow: none; }
.btn-link:disabled, .btn-link.disabled {
color: #6c757d;
pointer-events: none; }
.btn-lg, .btn-group-lg > .btn {
padding: 0.5rem 1rem;
font-size: 1.09375rem;
line-height: 1.5;
border-radius: 2px; }
.btn-sm, .btn-group-sm > .btn {
padding: 0.25rem 0.5rem;
font-size: 0.76563rem;
line-height: 1.5;
border-radius: 1px; }
.btn-block {
display: block;
width: 100%; }
.btn-block + .btn-block {
margin-top: 0.5rem; }
input[type="submit"].btn-block,
input[type="reset"].btn-block,
input[type="button"].btn-block {
width: 100%; }
.fade {
-webkit-transition: opacity 0.15s linear;
-o-transition: opacity 0.15s linear;
transition: opacity 0.15s linear; }
@media screen and (prefers-reduced-motion: reduce) {
.fade {
-webkit-transition: none;
-o-transition: none;
transition: none; } }
.fade:not(.show) {
opacity: 0; }
.collapse:not(.show) {
display: none; }
.collapsing {
position: relative;
height: 0;
overflow: hidden;
-webkit-transition: height 0.35s ease;
-o-transition: height 0.35s ease;
transition: height 0.35s ease; }
@media screen and (prefers-reduced-motion: reduce) {
.collapsing {
-webkit-transition: none;
-o-transition: none;
transition: none; } }
.dropup,
.dropright,
.dropdown,
.dropleft {
position: relative; }
.dropdown-toggle::after {
display: inline-block;
width: 0;
height: 0;
margin-left: 0.255em;
vertical-align: 0.255em;
content: "";
border-top: 0.3em solid;
border-right: 0.3em solid transparent;
border-bottom: 0;
border-left: 0.3em solid transparent; }
.dropdown-toggle:empty::after {
margin-left: 0; }
.dropdown-menu {
position: absolute;
top: 100%;
left: 0;
z-index: 1000;
display: none;
float: left;
min-width: 10rem;
padding: 0.5rem 0;
margin: 0.125rem 0 0;
font-size: 0.875rem;
color: #3e5569;
text-align: left;
list-style: none;
background-color: #fff;
background-clip: padding-box;
border: 1px solid #e9ecef;
border-radius: 2px; }
.dropdown-menu-right {
right: 0;
left: auto; }
.dropup .dropdown-menu {
top: auto;
bottom: 100%;
margin-top: 0;
margin-bottom: 0.125rem; }
.dropup .dropdown-toggle::after {
display: inline-block;
width: 0;
height: 0;
margin-left: 0.255em;
vertical-align: 0.255em;
content: "";
border-top: 0;
border-right: 0.3em solid transparent;
border-bottom: 0.3em solid;
border-left: 0.3em solid transparent; }
.dropup .dropdown-toggle:empty::after {
margin-left: 0; }
.dropright .dropdown-menu {
top: 0;
right: auto;
left: 100%;
margin-top: 0;
margin-left: 0.125rem; }
.dropright .dropdown-toggle::after {
display: inline-block;
width: 0;
height: 0;
margin-left: 0.255em;
vertical-align: 0.255em;
content: "";
border-top: 0.3em solid transparent;
border-right: 0;
border-bottom: 0.3em solid transparent;
border-left: 0.3em solid; }
.dropright .dropdown-toggle:empty::after {
margin-left: 0; }
.dropright .dropdown-toggle::after {
vertical-align: 0; }
.dropleft .dropdown-menu {
top: 0;
right: 100%;
left: auto;
margin-top: 0;
margin-right: 0.125rem; }
.dropleft .dropdown-toggle::after {
display: inline-block;
width: 0;
height: 0;
margin-left: 0.255em;
vertical-align: 0.255em;
content: ""; }
.dropleft .dropdown-toggle::after {
display: none; }
.dropleft .dropdown-toggle::before {
display: inline-block;
width: 0;
height: 0;
margin-right: 0.255em;
vertical-align: 0.255em;
content: "";
border-top: 0.3em solid transparent;
border-right: 0.3em solid;
border-bottom: 0.3em solid transparent; }
.dropleft .dropdown-toggle:empty::after {
margin-left: 0; }
.dropleft .dropdown-toggle::before {
vertical-align: 0; }
.dropdown-menu[x-placement^="top"], .dropdown-menu[x-placement^="right"], .dropdown-menu[x-placement^="bottom"], .dropdown-menu[x-placement^="left"] {
right: auto;
bottom: auto; }
.dropdown-divider {
height: 0;
margin: 0.5rem 0;
overflow: hidden;
border-top: 1px solid #f8f9fa; }
.dropdown-item {
display: block;
width: 100%;
padding: 0.65rem 1rem;
clear: both;
font-weight: 400;
color: #212529;
text-align: inherit;
white-space: nowrap;
background-color: transparent;
border: 0; }
.dropdown-item:hover, .dropdown-item:focus {
color: #16181b;
text-decoration: none;
background-color: #f8f9fa; }
.dropdown-item.active, .dropdown-item:active {
color: #fff;
text-decoration: none;
background-color: #2962FF; }
.dropdown-item.disabled, .dropdown-item:disabled {
color: #6c757d;
background-color: transparent; }
.dropdown-menu.show {
display: block; }
.dropdown-header {
display: block;
padding: 0.5rem 1rem;
margin-bottom: 0;
font-size: 0.76563rem;
color: #6c757d;
white-space: nowrap; }
.dropdown-item-text {
display: block;
padding: 0.65rem 1rem;
color: #212529; }
.btn-group,
.btn-group-vertical {
position: relative;
display: -webkit-inline-box;
display: -ms-inline-flexbox;
display: inline-flex;
vertical-align: middle; }
.btn-group > .btn,
.btn-group-vertical > .btn {
position: relative;
-webkit-box-flex: 0;
-ms-flex: 0 1 auto;
flex: 0 1 auto; }
.btn-group > .btn:hover,
.btn-group-vertical > .btn:hover {
z-index: 1; }
.btn-group > .btn:focus, .btn-group > .btn:active, .btn-group > .btn.active,
.btn-group-vertical > .btn:focus,
.btn-group-vertical > .btn:active,
.btn-group-vertical > .btn.active {
z-index: 1; }
.btn-group .btn + .btn,
.btn-group .btn + .btn-group,
.btn-group .btn-group + .btn,
.btn-group .btn-group + .btn-group,
.btn-group-vertical .btn + .btn,
.btn-group-vertical .btn + .btn-group,
.btn-group-vertical .btn-group + .btn,
.btn-group-vertical .btn-group + .btn-group {
margin-left: -1px; }
.btn-toolbar {
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-ms-flex-wrap: wrap;
flex-wrap: wrap;
-webkit-box-pack: start;
-ms-flex-pack: start;
justify-content: flex-start; }
.btn-toolbar .input-group {
width: auto; }
.btn-group > .btn:first-child {
margin-left: 0; }
.btn-group > .btn:not(:last-child):not(.dropdown-toggle),
.btn-group > .btn-group:not(:last-child) > .btn {
border-top-right-radius: 0;
border-bottom-right-radius: 0; }
.btn-group > .btn:not(:first-child),
.btn-group > .btn-group:not(:first-child) > .btn {
border-top-left-radius: 0;
border-bottom-left-radius: 0; }
.dropdown-toggle-split {
padding-right: 0.5625rem;
padding-left: 0.5625rem; }
.dropdown-toggle-split::after,
.dropup .dropdown-toggle-split::after,
.dropright .dropdown-toggle-split::after {
margin-left: 0; }
.dropleft .dropdown-toggle-split::before {
margin-right: 0; }
.btn-sm + .dropdown-toggle-split, .btn-group-sm > .btn + .dropdown-toggle-split {
padding-right: 0.375rem;
padding-left: 0.375rem; }
.btn-lg + .dropdown-toggle-split, .btn-group-lg > .btn + .dropdown-toggle-split {
padding-right: 0.75rem;
padding-left: 0.75rem; }
.btn-group-vertical {
-webkit-box-orient: vertical;
-webkit-box-direction: normal;
-ms-flex-direction: column;
flex-direction: column;
-webkit-box-align: start;
-ms-flex-align: start;
align-items: flex-start;
-webkit-box-pack: center;
-ms-flex-pack: center;
justify-content: center; }
.btn-group-vertical .btn,
.btn-group-vertical .btn-group {
width: 100%; }
.btn-group-vertical > .btn + .btn,
.btn-group-vertical > .btn + .btn-group,
.btn-group-vertical > .btn-group + .btn,
.btn-group-vertical > .btn-group + .btn-group {
margin-top: -1px;
margin-left: 0; }
.btn-group-vertical > .btn:not(:last-child):not(.dropdown-toggle),
.btn-group-vertical > .btn-group:not(:last-child) > .btn {
border-bottom-right-radius: 0;
border-bottom-left-radius: 0; }
.btn-group-vertical > .btn:not(:first-child),
.btn-group-vertical > .btn-group:not(:first-child) > .btn {
border-top-left-radius: 0;
border-top-right-radius: 0; }
.btn-group-toggle > .btn,
.btn-group-toggle > .btn-group > .btn {
margin-bottom: 0; }
.btn-group-toggle > .btn input[type="radio"],
.btn-group-toggle > .btn input[type="checkbox"],
.btn-group-toggle > .btn-group > .btn input[type="radio"],
.btn-group-toggle > .btn-group > .btn input[type="checkbox"] {
position: absolute;
clip: rect(0, 0, 0, 0);
pointer-events: none; }
.input-group {
position: relative;
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-ms-flex-wrap: wrap;
flex-wrap: wrap;
-webkit-box-align: stretch;
-ms-flex-align: stretch;
align-items: stretch;
width: 100%; }
.input-group > .form-control,
.input-group > .custom-select,
.input-group > .custom-file {
position: relative;
-webkit-box-flex: 1;
-ms-flex: 1 1 auto;
flex: 1 1 auto;
width: 1%;
margin-bottom: 0; }
.input-group > .form-control:focus,
.input-group > .custom-select:focus,
.input-group > .custom-file:focus {
z-index: 3; }
.input-group > .form-control + .form-control,
.input-group > .form-control + .custom-select,
.input-group > .form-control + .custom-file,
.input-group > .custom-select + .form-control,
.input-group > .custom-select + .custom-select,
.input-group > .custom-select + .custom-file,
.input-group > .custom-file + .form-control,
.input-group > .custom-file + .custom-select,
.input-group > .custom-file + .custom-file {
margin-left: -1px; }
.input-group > .form-control:not(:last-child),
.input-group > .custom-select:not(:last-child) {
border-top-right-radius: 0;
border-bottom-right-radius: 0; }
.input-group > .form-control:not(:first-child),
.input-group > .custom-select:not(:first-child) {
border-top-left-radius: 0;
border-bottom-left-radius: 0; }
.input-group > .custom-file {
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-webkit-box-align: center;
-ms-flex-align: center;
align-items: center; }
.input-group > .custom-file:not(:last-child) .custom-file-label,
.input-group > .custom-file:not(:last-child) .custom-file-label::after {
border-top-right-radius: 0;
border-bottom-right-radius: 0; }
.input-group > .custom-file:not(:first-child) .custom-file-label,
.input-group > .custom-file:not(:first-child) .custom-file-label::after {
border-top-left-radius: 0;
border-bottom-left-radius: 0; }
.input-group-prepend,
.input-group-append {
display: -webkit-box;
display: -ms-flexbox;
display: flex; }
.input-group-prepend .btn,
.input-group-append .btn {
position: relative;
z-index: 2; }
.input-group-prepend .btn + .btn,
.input-group-prepend .btn + .input-group-text,
.input-group-prepend .input-group-text + .input-group-text,
.input-group-prepend .input-group-text + .btn,
.input-group-append .btn + .btn,
.input-group-append .btn + .input-group-text,
.input-group-append .input-group-text + .input-group-text,
.input-group-append .input-group-text + .btn {
margin-left: -1px; }
.input-group-prepend {
margin-right: -1px; }
.input-group-append {
margin-left: -1px; }
.input-group-text {
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
padding: 0.375rem 0.75rem;
margin-bottom: 0;
font-size: 0.875rem;
font-weight: 400;
line-height: 1.5;
color: #4F5467;
text-align: center;
white-space: nowrap;
background-color: #f8f9fa;
border: 1px solid #e9ecef;
border-radius: 2px; }
.input-group-text input[type="radio"],
.input-group-text input[type="checkbox"] {
margin-top: 0; }
.input-group > .input-group-prepend > .btn,
.input-group > .input-group-prepend > .input-group-text,
.input-group > .input-group-append:not(:last-child) > .btn,
.input-group > .input-group-append:not(:last-child) > .input-group-text,
.input-group > .input-group-append:last-child > .btn:not(:last-child):not(.dropdown-toggle),
.input-group > .input-group-append:last-child > .input-group-text:not(:last-child) {
border-top-right-radius: 0;
border-bottom-right-radius: 0; }
.input-group > .input-group-append > .btn,
.input-group > .input-group-append > .input-group-text,
.input-group > .input-group-prepend:not(:first-child) > .btn,
.input-group > .input-group-prepend:not(:first-child) > .input-group-text,
.input-group > .input-group-prepend:first-child > .btn:not(:first-child),
.input-group > .input-group-prepend:first-child > .input-group-text:not(:first-child) {
border-top-left-radius: 0;
border-bottom-left-radius: 0; }
.custom-control {
position: relative;
display: block;
min-height: 1.5rem;
padding-left: 1.5rem; }
.custom-control-inline {
display: -webkit-inline-box;
display: -ms-inline-flexbox;
display: inline-flex;
margin-right: 1rem; }
.custom-control-input {
position: absolute;
z-index: -1;
opacity: 0; }
.custom-control-input:checked ~ .custom-control-label::before {
color: #fff;
background-color: #2962FF; }
.custom-control-input:focus ~ .custom-control-label::before {
-webkit-box-shadow: 0 0 0 1px #eef5f9, transparent;
box-shadow: 0 0 0 1px #eef5f9, transparent; }
.custom-control-input:active ~ .custom-control-label::before {
color: #fff;
background-color: black; }
.custom-control-input:disabled ~ .custom-control-label {
color: #6c757d; }
.custom-control-input:disabled ~ .custom-control-label::before {
background-color: #e9ecef; }
.custom-control-label {
margin-bottom: 0; }
.custom-control-label::before {
position: absolute;
top: 0.25rem;
left: 0;
display: block;
width: 1rem;
height: 1rem;
pointer-events: none;
content: "";
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
background-color: #dee2e6; }
.custom-control-label::after {
position: absolute;
top: 0.25rem;
left: 0;
display: block;
width: 1rem;
height: 1rem;
content: "";
background-repeat: no-repeat;
background-position: center center;
background-size: 50% 50%; }
.custom-checkbox .custom-control-label::before {
border-radius: 2px; }
.custom-checkbox .custom-control-input:checked ~ .custom-control-label::before {
background-color: #2962FF; }
.custom-checkbox .custom-control-input:checked ~ .custom-control-label::after {
background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E"); }
.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::before {
background-color: #2962FF; }
.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::after {
background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 4'%3E%3Cpath stroke='%23fff' d='M0 2h4'/%3E%3C/svg%3E"); }
.custom-checkbox .custom-control-input:disabled:checked ~ .custom-control-label::before {
background-color: rgba(116, 96, 238, 0.5); }
.custom-checkbox .custom-control-input:disabled:indeterminate ~ .custom-control-label::before {
background-color: rgba(116, 96, 238, 0.5); }
.custom-radio .custom-control-label::before {
border-radius: 50%; }
.custom-radio .custom-control-input:checked ~ .custom-control-label::before {
background-color: #2962FF; }
.custom-radio .custom-control-input:checked ~ .custom-control-label::after {
background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23fff'/%3E%3C/svg%3E"); }
.custom-radio .custom-control-input:disabled:checked ~ .custom-control-label::before {
background-color: rgba(116, 96, 238, 0.5); }
.custom-select {
display: inline-block;
width: 100%;
height: calc(2.0625rem + 2px);
padding: 0.375rem 1.75rem 0.375rem 0.75rem;
line-height: 1.5;
color: #4F5467;
vertical-align: middle;
background: #fff url(../../assets/images/custom-select.png) no-repeat right 0.75rem center;
background-size: 8px 10px;
border: 1px solid #e9ecef;
border-radius: 2px;
-webkit-appearance: none;
-moz-appearance: none;
appearance: none; }
.custom-select:focus {
border-color: rgba(0, 0, 0, 0.25);
outline: 0;
-webkit-box-shadow: transparent;
box-shadow: transparent; }
.custom-select:focus::-ms-value {
color: #4F5467;
background-color: #fff; }
.custom-select[multiple], .custom-select[size]:not([size="1"]) {
height: auto;
padding-right: 0.75rem;
background-image: none; }
.custom-select:disabled {
color: #6c757d;
background-color: #e9ecef; }
.custom-select::-ms-expand {
opacity: 0; }
.custom-select-sm {
height: calc(1.64844rem + 2px);
padding-top: 0.375rem;
padding-bottom: 0.375rem;
font-size: 75%; }
.custom-select-lg {
height: calc(2.64063rem + 2px);
padding-top: 0.375rem;
padding-bottom: 0.375rem;
font-size: 125%; }
.custom-file {
position: relative;
display: inline-block;
width: 100%;
height: calc(2.0625rem + 2px);
margin-bottom: 0; }
.custom-file-input {
position: relative;
z-index: 2;
width: 100%;
height: calc(2.0625rem + 2px);
margin: 0;
opacity: 0; }
.custom-file-input:focus ~ .custom-file-label {
border-color: rgba(0, 0, 0, 0.25);
-webkit-box-shadow: transparent;
box-shadow: transparent; }
.custom-file-input:focus ~ .custom-file-label::after {
border-color: rgba(0, 0, 0, 0.25); }
.custom-file-input:lang(en) ~ .custom-file-label::after {
content: "Browse"; }
.custom-file-label {
position: absolute;
top: 0;
right: 0;
left: 0;
z-index: 1;
height: calc(2.0625rem + 2px);
padding: 0.375rem 0.75rem;
line-height: 1.5;
color: #4F5467;
background-color: #fff;
border: 1px solid #e9ecef;
border-radius: 2px; }
.custom-file-label::after {
position: absolute;
top: 0;
right: 0;
bottom: 0;
z-index: 3;
display: block;
height: calc(calc(2.0625rem + 2px) - 1px * 2);
padding: 0.375rem 0.75rem;
line-height: 1.5;
color: #4F5467;
content: "Browse";
background-color: #f8f9fa;
border-left: 1px solid #e9ecef;
border-radius: 0 2px 2px 0; }
.custom-range {
width: 100%;
padding-left: 0;
background-color: transparent;
-webkit-appearance: none;
-moz-appearance: none;
appearance: none; }
.custom-range:focus {
outline: none; }
.custom-range::-moz-focus-outer {
border: 0; }
.custom-range::-webkit-slider-thumb {
width: 1rem;
height: 1rem;
margin-top: -0.25rem;
background-color: #2962FF;
border: 0;
border-radius: 1rem;
-webkit-appearance: none;
appearance: none; }
.custom-range::-webkit-slider-thumb:focus {
outline: none;
-webkit-box-shadow: 0 0 0 1px #eef5f9, transparent;
box-shadow: 0 0 0 1px #eef5f9, transparent; }
.custom-range::-webkit-slider-thumb:active {
background-color: #dce5ff; }
.custom-range::-webkit-slider-runnable-track {
width: 100%;
height: 0.5rem;
color: transparent;
cursor: pointer;
background-color: #dee2e6;
border-color: transparent;
border-radius: 1rem; }
.custom-range::-moz-range-thumb {
width: 1rem;
height: 1rem;
background-color: #2962FF;
border: 0;
border-radius: 1rem;
-moz-appearance: none;
appearance: none; }
.custom-range::-moz-range-thumb:focus {
outline: none;
box-shadow: 0 0 0 1px #eef5f9, transparent; }
.custom-range::-moz-range-thumb:active {
background-color: #dce5ff; }
.custom-range::-moz-range-track {
width: 100%;
height: 0.5rem;
color: transparent;
cursor: pointer;
background-color: #dee2e6;
border-color: transparent;
border-radius: 1rem; }
.custom-range::-ms-thumb {
width: 1rem;
height: 1rem;
background-color: #2962FF;
border: 0;
border-radius: 1rem;
appearance: none; }
.custom-range::-ms-thumb:focus {
outline: none;
box-shadow: 0 0 0 1px #eef5f9, transparent; }
.custom-range::-ms-thumb:active {
background-color: #dce5ff; }
.custom-range::-ms-track {
width: 100%;
height: 0.5rem;
color: transparent;
cursor: pointer;
background-color: transparent;
border-color: transparent;
border-width: 0.5rem; }
.custom-range::-ms-fill-lower {
background-color: #dee2e6;
border-radius: 1rem; }
.custom-range::-ms-fill-upper {
margin-right: 15px;
background-color: #dee2e6;
border-radius: 1rem; }
.nav {
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-ms-flex-wrap: wrap;
flex-wrap: wrap;
padding-left: 0;
margin-bottom: 0;
list-style: none; }
.nav-link {
display: block;
padding: 0.5rem 1rem; }
.nav-link:hover, .nav-link:focus {
text-decoration: none; }
.nav-link.disabled {
color: #6c757d; }
.nav-tabs {
border-bottom: 1px solid #dee2e6; }
.nav-tabs .nav-item {
margin-bottom: -1px; }
.nav-tabs .nav-link {
border: 1px solid transparent;
border-top-left-radius: 2px;
border-top-right-radius: 2px; }
.nav-tabs .nav-link:hover, .nav-tabs .nav-link:focus {
border-color: #e9ecef #e9ecef #dee2e6; }
.nav-tabs .nav-link.disabled {
color: #6c757d;
background-color: transparent;
border-color: transparent; }
.nav-tabs .nav-link.active,
.nav-tabs .nav-item.show .nav-link {
color: #4F5467;
background-color: #fff;
border-color: #dee2e6 #dee2e6 #fff; }
.nav-tabs .dropdown-menu {
margin-top: -1px;
border-top-left-radius: 0;
border-top-right-radius: 0; }
.nav-pills .nav-link {
border-radius: 2px; }
.nav-pills .nav-link.active,
.nav-pills .show > .nav-link {
color: #fff;
background-color: #2962FF; }
.nav-fill .nav-item {
-webkit-box-flex: 1;
-ms-flex: 1 1 auto;
flex: 1 1 auto;
text-align: center; }
.nav-justified .nav-item {
-ms-flex-preferred-size: 0;
flex-basis: 0;
-webkit-box-flex: 1;
-ms-flex-positive: 1;
flex-grow: 1;
text-align: center; }
.tab-content > .tab-pane {
display: none; }
.tab-content > .active {
display: block; }
.navbar {
position: relative;
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-ms-flex-wrap: wrap;
flex-wrap: wrap;
-webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
-webkit-box-pack: justify;
-ms-flex-pack: justify;
justify-content: space-between;
padding: 0.5rem 1rem; }
.navbar > .container,
.navbar > .container-fluid {
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-ms-flex-wrap: wrap;
flex-wrap: wrap;
-webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
-webkit-box-pack: justify;
-ms-flex-pack: justify;
justify-content: space-between; }
.navbar-brand {
display: inline-block;
padding-top: 0.33594rem;
padding-bottom: 0.33594rem;
margin-right: 1rem;
font-size: 1.09375rem;
line-height: inherit;
white-space: nowrap; }
.navbar-brand:hover, .navbar-brand:focus {
text-decoration: none; }
.navbar-nav {
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-webkit-box-orient: vertical;
-webkit-box-direction: normal;
-ms-flex-direction: column;
flex-direction: column;
padding-left: 0;
margin-bottom: 0;
list-style: none; }
.navbar-nav .nav-link {
padding-right: 0;
padding-left: 0; }
.navbar-nav .dropdown-menu {
position: static;
float: none; }
.navbar-text {
display: inline-block;
padding-top: 0.5rem;
padding-bottom: 0.5rem; }
.navbar-collapse {
-ms-flex-preferred-size: 100%;
flex-basis: 100%;
-webkit-box-flex: 1;
-ms-flex-positive: 1;
flex-grow: 1;
-webkit-box-align: center;
-ms-flex-align: center;
align-items: center; }
.navbar-toggler {
padding: 0.25rem 0.75rem;
font-size: 1.09375rem;
line-height: 1;
background-color: transparent;
border: 1px solid transparent;
border-radius: 2px; }
.navbar-toggler:hover, .navbar-toggler:focus {
text-decoration: none; }
.navbar-toggler:not(:disabled):not(.disabled) {
cursor: pointer; }
.navbar-toggler-icon {
display: inline-block;
width: 1.5em;
height: 1.5em;
vertical-align: middle;
content: "";
background: no-repeat center center;
background-size: 100% 100%; }
@media (max-width: 575.98px) {
.navbar-expand-sm > .container,
.navbar-expand-sm > .container-fluid {
padding-right: 0;
padding-left: 0; } }
@media (min-width: 576px) {
.navbar-expand-sm {
-webkit-box-orient: horizontal;
-webkit-box-direction: normal;
-ms-flex-flow: row nowrap;
flex-flow: row nowrap;
-webkit-box-pack: start;
-ms-flex-pack: start;
justify-content: flex-start; }
.navbar-expand-sm .navbar-nav {
-webkit-box-orient: horizontal;
-webkit-box-direction: normal;
-ms-flex-direction: row;
flex-direction: row; }
.navbar-expand-sm .navbar-nav .dropdown-menu {
position: absolute; }
.navbar-expand-sm .navbar-nav .nav-link {
padding-right: 0.5rem;
padding-left: 0.5rem; }
.navbar-expand-sm > .container,
.navbar-expand-sm > .container-fluid {
-ms-flex-wrap: nowrap;
flex-wrap: nowrap; }
.navbar-expand-sm .navbar-collapse {
display: -webkit-box !important;
display: -ms-flexbox !important;
display: flex !important;
-ms-flex-preferred-size: auto;
flex-basis: auto; }
.navbar-expand-sm .navbar-toggler {
display: none; } }
@media (max-width: 767.98px) {
.navbar-expand-md > .container,
.navbar-expand-md > .container-fluid {
padding-right: 0;
padding-left: 0; } }
@media (min-width: 768px) {
.navbar-expand-md {
-webkit-box-orient: horizontal;
-webkit-box-direction: normal;
-ms-flex-flow: row nowrap;
flex-flow: row nowrap;
-webkit-box-pack: start;
-ms-flex-pack: start;
justify-content: flex-start; }
.navbar-expand-md .navbar-nav {
-webkit-box-orient: horizontal;
-webkit-box-direction: normal;
-ms-flex-direction: row;
flex-direction: row; }
.navbar-expand-md .navbar-nav .dropdown-menu {
position: absolute; }
.navbar-expand-md .navbar-nav .nav-link {
padding-right: 0.5rem;
padding-left: 0.5rem; }
.navbar-expand-md > .container,
.navbar-expand-md > .container-fluid {
-ms-flex-wrap: nowrap;
flex-wrap: nowrap; }
.navbar-expand-md .navbar-collapse {
display: -webkit-box !important;
display: -ms-flexbox !important;
display: flex !important;
-ms-flex-preferred-size: auto;
flex-basis: auto; }
.navbar-expand-md .navbar-toggler {
display: none; } }
@media (max-width: 991.98px) {
.navbar-expand-lg > .container,
.navbar-expand-lg > .container-fluid {
padding-right: 0;
padding-left: 0; } }
@media (min-width: 992px) {
.navbar-expand-lg {
-webkit-box-orient: horizontal;
-webkit-box-direction: normal;
-ms-flex-flow: row nowrap;
flex-flow: row nowrap;
-webkit-box-pack: start;
-ms-flex-pack: start;
justify-content: flex-start; }
.navbar-expand-lg .navbar-nav {
-webkit-box-orient: horizontal;
-webkit-box-direction: normal;
-ms-flex-direction: row;
flex-direction: row; }
.navbar-expand-lg .navbar-nav .dropdown-menu {
position: absolute; }
.navbar-expand-lg .navbar-nav .nav-link {
padding-right: 0.5rem;
padding-left: 0.5rem; }
.navbar-expand-lg > .container,
.navbar-expand-lg > .container-fluid {
-ms-flex-wrap: nowrap;
flex-wrap: nowrap; }
.navbar-expand-lg .navbar-collapse {
display: -webkit-box !important;
display: -ms-flexbox !important;
display: flex !important;
-ms-flex-preferred-size: auto;
flex-basis: auto; }
.navbar-expand-lg .navbar-toggler {
display: none; } }
@media (max-width: 1599.98px) {
.navbar-expand-xl > .container,
.navbar-expand-xl > .container-fluid {
padding-right: 0;
padding-left: 0; } }
@media (min-width: 1600px) {
.navbar-expand-xl {
-webkit-box-orient: horizontal;
-webkit-box-direction: normal;
-ms-flex-flow: row nowrap;
flex-flow: row nowrap;
-webkit-box-pack: start;
-ms-flex-pack: start;
justify-content: flex-start; }
.navbar-expand-xl .navbar-nav {
-webkit-box-orient: horizontal;
-webkit-box-direction: normal;
-ms-flex-direction: row;
flex-direction: row; }
.navbar-expand-xl .navbar-nav .dropdown-menu {
position: absolute; }
.navbar-expand-xl .navbar-nav .nav-link {
padding-right: 0.5rem;
padding-left: 0.5rem; }
.navbar-expand-xl > .container,
.navbar-expand-xl > .container-fluid {
-ms-flex-wrap: nowrap;
flex-wrap: nowrap; }
.navbar-expand-xl .navbar-collapse {
display: -webkit-box !important;
display: -ms-flexbox !important;
display: flex !important;
-ms-flex-preferred-size: auto;
flex-basis: auto; }
.navbar-expand-xl .navbar-toggler {
display: none; } }
.navbar-expand {
-webkit-box-orient: horizontal;
-webkit-box-direction: normal;
-ms-flex-flow: row nowrap;
flex-flow: row nowrap;
-webkit-box-pack: start;
-ms-flex-pack: start;
justify-content: flex-start; }
.navbar-expand > .container,
.navbar-expand > .container-fluid {
padding-right: 0;
padding-left: 0; }
.navbar-expand .navbar-nav {
-webkit-box-orient: horizontal;
-webkit-box-direction: normal;
-ms-flex-direction: row;
flex-direction: row; }
.navbar-expand .navbar-nav .dropdown-menu {
position: absolute; }
.navbar-expand .navbar-nav .nav-link {
padding-right: 0.5rem;
padding-left: 0.5rem; }
.navbar-expand > .container,
.navbar-expand > .container-fluid {
-ms-flex-wrap: nowrap;
flex-wrap: nowrap; }
.navbar-expand .navbar-collapse {
display: -webkit-box !important;
display: -ms-flexbox !important;
display: flex !important;
-ms-flex-preferred-size: auto;
flex-basis: auto; }
.navbar-expand .navbar-toggler {
display: none; }
.navbar-light .navbar-brand {
color: rgba(0, 0, 0, 0.9); }
.navbar-light .navbar-brand:hover, .navbar-light .navbar-brand:focus {
color: rgba(0, 0, 0, 0.9); }
.navbar-light .navbar-nav .nav-link {
color: rgba(0, 0, 0, 0.5); }
.navbar-light .navbar-nav .nav-link:hover, .navbar-light .navbar-nav .nav-link:focus {
color: rgba(0, 0, 0, 0.7); }
.navbar-light .navbar-nav .nav-link.disabled {
color: rgba(0, 0, 0, 0.3); }
.navbar-light .navbar-nav .show > .nav-link,
.navbar-light .navbar-nav .active > .nav-link,
.navbar-light .navbar-nav .nav-link.show,
.navbar-light .navbar-nav .nav-link.active {
color: rgba(0, 0, 0, 0.9); }
.navbar-light .navbar-toggler {
color: rgba(0, 0, 0, 0.5);
border-color: rgba(0, 0, 0, 0.1); }
.navbar-light .navbar-toggler-icon {
background-image: url("data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba(0, 0, 0, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E"); }
.navbar-light .navbar-text {
color: rgba(0, 0, 0, 0.5); }
.navbar-light .navbar-text a {
color: rgba(0, 0, 0, 0.9); }
.navbar-light .navbar-text a:hover, .navbar-light .navbar-text a:focus {
color: rgba(0, 0, 0, 0.9); }
.navbar-dark .navbar-brand {
color: #fff; }
.navbar-dark .navbar-brand:hover, .navbar-dark .navbar-brand:focus {
color: #fff; }
.navbar-dark .navbar-nav .nav-link {
color: rgba(255, 255, 255, 0.8); }
.navbar-dark .navbar-nav .nav-link:hover, .navbar-dark .navbar-nav .nav-link:focus {
color: white; }
.navbar-dark .navbar-nav .nav-link.disabled {
color: rgba(255, 255, 255, 0.25); }
.navbar-dark .navbar-nav .show > .nav-link,
.navbar-dark .navbar-nav .active > .nav-link,
.navbar-dark .navbar-nav .nav-link.show,
.navbar-dark .navbar-nav .nav-link.active {
color: #fff; }
.navbar-dark .navbar-toggler {
color: rgba(255, 255, 255, 0.8);
border-color: rgba(255, 255, 255, 0.1); }
.navbar-dark .navbar-toggler-icon {
background-image: url("data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba(255, 255, 255, 0.8)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E"); }
.navbar-dark .navbar-text {
color: rgba(255, 255, 255, 0.8); }
.navbar-dark .navbar-text a {
color: #fff; }
.navbar-dark .navbar-text a:hover, .navbar-dark .navbar-text a:focus {
color: #fff; }
.card {
position: relative;
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-webkit-box-orient: vertical;
-webkit-box-direction: normal;
-ms-flex-direction: column;
flex-direction: column;
min-width: 0;
word-wrap: break-word;
background-color: #fff;
background-clip: border-box;
border: 0px solid transparent;
border-radius: 0px; }
.card > hr {
margin-right: 0;
margin-left: 0; }
.card > .list-group:first-child .list-group-item:first-child {
border-top-left-radius: 0px;
border-top-right-radius: 0px; }
.card > .list-group:last-child .list-group-item:last-child {
border-bottom-right-radius: 0px;
border-bottom-left-radius: 0px; }
.card-body {
-webkit-box-flex: 1;
-ms-flex: 1 1 auto;
flex: 1 1 auto;
padding: 1.25rem; }
.card-title {
margin-bottom: 0.75rem; }
.card-subtitle {
margin-top: -0.375rem;
margin-bottom: 0; }
.card-text:last-child {
margin-bottom: 0; }
.card-link:hover {
text-decoration: none; }
.card-link + .card-link {
margin-left: 1.25rem; }
.card-header {
padding: 0.75rem 1.25rem;
margin-bottom: 0;
background-color: rgba(0, 0, 0, 0.03);
border-bottom: 0px solid transparent; }
.card-header:first-child {
border-radius: calc(0px - 0px) calc(0px - 0px) 0 0; }
.card-header + .list-group .list-group-item:first-child {
border-top: 0; }
.card-footer {
padding: 0.75rem 1.25rem;
background-color: rgba(0, 0, 0, 0.03);
border-top: 0px solid transparent; }
.card-footer:last-child {
border-radius: 0 0 calc(0px - 0px) calc(0px - 0px); }
.card-header-tabs {
margin-right: -0.625rem;
margin-bottom: -0.75rem;
margin-left: -0.625rem;
border-bottom: 0; }
.card-header-pills {
margin-right: -0.625rem;
margin-left: -0.625rem; }
.card-img-overlay {
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
padding: 1.25rem; }
.card-img {
width: 100%;
border-radius: calc(0px - 0px); }
.card-img-top {
width: 100%;
border-top-left-radius: calc(0px - 0px);
border-top-right-radius: calc(0px - 0px); }
.card-img-bottom {
width: 100%;
border-bottom-right-radius: calc(0px - 0px);
border-bottom-left-radius: calc(0px - 0px); }
.card-deck {
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-webkit-box-orient: vertical;
-webkit-box-direction: normal;
-ms-flex-direction: column;
flex-direction: column; }
.card-deck .card {
margin-bottom: 10px; }
@media (min-width: 576px) {
.card-deck {
-webkit-box-orient: horizontal;
-webkit-box-direction: normal;
-ms-flex-flow: row wrap;
flex-flow: row wrap;
margin-right: -10px;
margin-left: -10px; }
.card-deck .card {
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-webkit-box-flex: 1;
-ms-flex: 1 0 0%;
flex: 1 0 0%;
-webkit-box-orient: vertical;
-webkit-box-direction: normal;
-ms-flex-direction: column;
flex-direction: column;
margin-right: 10px;
margin-bottom: 0;
margin-left: 10px; } }
.card-group {
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-webkit-box-orient: vertical;
-webkit-box-direction: normal;
-ms-flex-direction: column;
flex-direction: column; }
.card-group > .card {
margin-bottom: 10px; }
@media (min-width: 576px) {
.card-group {
-webkit-box-orient: horizontal;
-webkit-box-direction: normal;
-ms-flex-flow: row wrap;
flex-flow: row wrap; }
.card-group > .card {
-webkit-box-flex: 1;
-ms-flex: 1 0 0%;
flex: 1 0 0%;
margin-bottom: 0; }
.card-group > .card + .card {
margin-left: 0;
border-left: 0; }
.card-group > .card:first-child {
border-top-right-radius: 0;
border-bottom-right-radius: 0; }
.card-group > .card:first-child .card-img-top,
.card-group > .card:first-child .card-header {
border-top-right-radius: 0; }
.card-group > .card:first-child .card-img-bottom,
.card-group > .card:first-child .card-footer {
border-bottom-right-radius: 0; }
.card-group > .card:last-child {
border-top-left-radius: 0;
border-bottom-left-radius: 0; }
.card-group > .card:last-child .card-img-top,
.card-group > .card:last-child .card-header {
border-top-left-radius: 0; }
.card-group > .card:last-child .card-img-bottom,
.card-group > .card:last-child .card-footer {
border-bottom-left-radius: 0; }
.card-group > .card:only-child {
border-radius: 0px; }
.card-group > .card:only-child .card-img-top,
.card-group > .card:only-child .card-header {
border-top-left-radius: 0px;
border-top-right-radius: 0px; }
.card-group > .card:only-child .card-img-bottom,
.card-group > .card:only-child .card-footer {
border-bottom-right-radius: 0px;
border-bottom-left-radius: 0px; }
.card-group > .card:not(:first-child):not(:last-child):not(:only-child) {
border-radius: 0; }
.card-group > .card:not(:first-child):not(:last-child):not(:only-child) .card-img-top,
.card-group > .card:not(:first-child):not(:last-child):not(:only-child) .card-img-bottom,
.card-group > .card:not(:first-child):not(:last-child):not(:only-child) .card-header,
.card-group > .card:not(:first-child):not(:last-child):not(:only-child) .card-footer {
border-radius: 0; } }
.card-columns .card {
margin-bottom: 0.75rem; }
@media (min-width: 576px) {
.card-columns {
-webkit-column-count: 3;
column-count: 3;
-webkit-column-gap: 1.25rem;
column-gap: 1.25rem;
orphans: 1;
widows: 1; }
.card-columns .card {
display: inline-block;
width: 100%; } }
.accordion .card:not(:first-of-type):not(:last-of-type) {
border-bottom: 0;
border-radius: 0; }
.accordion .card:not(:first-of-type) .card-header:first-child {
border-radius: 0; }
.accordion .card:first-of-type {
border-bottom: 0;
border-bottom-right-radius: 0;
border-bottom-left-radius: 0; }
.accordion .card:last-of-type {
border-top-left-radius: 0;
border-top-right-radius: 0; }
.breadcrumb {
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-ms-flex-wrap: wrap;
flex-wrap: wrap;
padding: 0.75rem 1rem;
margin-bottom: 1.5rem;
list-style: none;
background-color: #eef5f9;
border-radius: 2px; }
.breadcrumb-item + .breadcrumb-item {
padding-left: 0.5rem; }
.breadcrumb-item + .breadcrumb-item::before {
display: inline-block;
padding-right: 0.5rem;
color: #6c757d;
content: "/"; }
.breadcrumb-item + .breadcrumb-item:hover::before {
text-decoration: underline; }
.breadcrumb-item + .breadcrumb-item:hover::before {
text-decoration: none; }
.breadcrumb-item.active {
color: #6c757d; }
.pagination {
display: -webkit-box;
display: -ms-flexbox;
display: flex;
padding-left: 0;
list-style: none;
border-radius: 2px; }
.page-link {
position: relative;
display: block;
padding: 0.5rem 0.75rem;
margin-left: -1px;
line-height: 1.25;
color: #7460ee;
background-color: #fff;
border: 1px solid #dee2e6; }
.page-link:hover {
z-index: 2;
color: #381be7;
text-decoration: none;
background-color: #e9ecef;
border-color: #dee2e6; }
.page-link:focus {
z-index: 2;
outline: 0;
-webkit-box-shadow: transparent;
box-shadow: transparent; }
.page-link:not(:disabled):not(.disabled) {
cursor: pointer; }
.page-item:first-child .page-link {
margin-left: 0;
border-top-left-radius: 2px;
border-bottom-left-radius: 2px; }
.page-item:last-child .page-link {
border-top-right-radius: 2px;
border-bottom-right-radius: 2px; }
.page-item.active .page-link {
z-index: 1;
color: #fff;
background-color: #2962FF;
border-color: #2962FF; }
.page-item.disabled .page-link {
color: #6c757d;
pointer-events: none;
cursor: auto;
background-color: #fff;
border-color: #dee2e6; }
.pagination-lg .page-link {
padding: 0.75rem 1.5rem;
font-size: 1.09375rem;
line-height: 1.5; }
.pagination-lg .page-item:first-child .page-link {
border-top-left-radius: 2px;
border-bottom-left-radius: 2px; }
.pagination-lg .page-item:last-child .page-link {
border-top-right-radius: 2px;
border-bottom-right-radius: 2px; }
.pagination-sm .page-link {
padding: 0.25rem 0.5rem;
font-size: 0.76563rem;
line-height: 1.5; }
.pagination-sm .page-item:first-child .page-link {
border-top-left-radius: 1px;
border-bottom-left-radius: 1px; }
.pagination-sm .page-item:last-child .page-link {
border-top-right-radius: 1px;
border-bottom-right-radius: 1px; }
.badge {
display: inline-block;
padding: 0.25em 0.4em;
font-size: 75%;
font-weight: 800;
line-height: 1;
text-align: center;
white-space: nowrap;
vertical-align: baseline;
border-radius: 2px; }
.badge:empty {
display: none; }
.btn .badge {
position: relative;
top: -1px; }
.badge-pill {
padding-right: 0.2em;
padding-left: 0.2em;
border-radius: 10rem; }
.badge-primary {
color: #fff;
background-color: #7460ee; }
.badge-primary[href]:hover, .badge-primary[href]:focus {
color: #fff;
text-decoration: none;
background-color: #4c32e9; }
.badge-secondary {
color: #fff;
background-color: #6c757d; }
.badge-secondary[href]:hover, .badge-secondary[href]:focus {
color: #fff;
text-decoration: none;
background-color: #545b62; }
.badge-success {
color: #fff;
background-color: #36bea6; }
.badge-success[href]:hover, .badge-success[href]:focus {
color: #fff;
text-decoration: none;
background-color: #2b9683; }
.badge-info {
color: #fff;
background-color: #2962FF; }
.badge-info[href]:hover, .badge-info[href]:focus {
color: #fff;
text-decoration: none;
background-color: #0041f5; }
.badge-warning {
color: #212529;
background-color: #ffbc34; }
.badge-warning[href]:hover, .badge-warning[href]:focus {
color: #212529;
text-decoration: none;
background-color: #ffab01; }
.badge-danger {
color: #fff;
background-color: #f62d51; }
.badge-danger[href]:hover, .badge-danger[href]:focus {
color: #fff;
text-decoration: none;
background-color: #e60a31; }
.badge-light {
color: #212529;
background-color: #f8f9fa; }
.badge-light[href]:hover, .badge-light[href]:focus {
color: #212529;
text-decoration: none;
background-color: #dae0e5; }
.badge-dark {
color: #fff;
background-color: #343a40; }
.badge-dark[href]:hover, .badge-dark[href]:focus {
color: #fff;
text-decoration: none;
background-color: #1d2124; }
.badge-cyan {
color: #212529;
background-color: #4fc3f7; }
.badge-cyan[href]:hover, .badge-cyan[href]:focus {
color: #212529;
text-decoration: none;
background-color: #1eb2f5; }
.badge-orange {
color: #212529;
background-color: #fb8c00; }
.badge-orange[href]:hover, .badge-orange[href]:focus {
color: #212529;
text-decoration: none;
background-color: #c87000; }
.badge-purple {
color: #fff;
background-color: #7460ee; }
.badge-purple[href]:hover, .badge-purple[href]:focus {
color: #fff;
text-decoration: none;
background-color: #4c32e9; }
.jumbotron {
padding: 2rem 1rem;
margin-bottom: 2rem;
background-color: #e9ecef;
border-radius: 2px; }
@media (min-width: 576px) {
.jumbotron {
padding: 4rem 2rem; } }
.jumbotron-fluid {
padding-right: 0;
padding-left: 0;
border-radius: 0; }
.alert {
position: relative;
padding: 0.75rem 1.25rem;
margin-bottom: 1rem;
border: 1px solid transparent;
border-radius: 2px; }
.alert-heading {
color: inherit; }
.alert-link {
font-weight: 800; }
.alert-dismissible {
padding-right: 3.8125rem; }
.alert-dismissible .close {
position: absolute;
top: 0;
right: 0;
padding: 0.75rem 1.25rem;
color: inherit; }
.alert-primary {
color: #3c327c;
background-color: #e3dffc;
border-color: #d8d2fa; }
.alert-primary hr {
border-top-color: #c4bbf7; }
.alert-primary .alert-link {
color: #2a2358; }
.alert-secondary {
color: #383d41;
background-color: #e2e3e5;
border-color: #d6d8db; }
.alert-secondary hr {
border-top-color: #c8cbcf; }
.alert-secondary .alert-link {
color: #202326; }
.alert-success {
color: #1c6356;
background-color: #d7f2ed;
border-color: #c7ede6; }
.alert-success hr {
border-top-color: #b4e7dd; }
.alert-success .alert-link {
color: #113b33; }
.alert-info {
color: #153385;
background-color: #d4e0ff;
border-color: #c3d3ff; }
.alert-info hr {
border-top-color: #aac0ff; }
.alert-info .alert-link {
color: #0e2259; }
.alert-warning {
color: #85621b;
background-color: #fff2d6;
border-color: #ffecc6; }
.alert-warning hr {
border-top-color: #ffe4ad; }
.alert-warning .alert-link {
color: #5b4312; }
.alert-danger {
color: #80172a;
background-color: #fdd5dc;
border-color: #fcc4ce; }
.alert-danger hr {
border-top-color: #fbacba; }
.alert-danger .alert-link {
color: #550f1c; }
.alert-light {
color: #818182;
background-color: #fefefe;
border-color: #fdfdfe; }
.alert-light hr {
border-top-color: #ececf6; }
.alert-light .alert-link {
color: #686868; }
.alert-dark {
color: #1b1e21;
background-color: #d6d8d9;
border-color: #c6c8ca; }
.alert-dark hr {
border-top-color: #b9bbbe; }
.alert-dark .alert-link {
color: #040505; }
.alert-cyan {
color: #296580;
background-color: #dcf3fd;
border-color: #ceeefd; }
.alert-cyan hr {
border-top-color: #b6e6fc; }
.alert-cyan .alert-link {
color: #1d4759; }
.alert-orange {
color: #834900;
background-color: #fee8cc;
border-color: #fedfb8; }
.alert-orange hr {
border-top-color: #fed49f; }
.alert-orange .alert-link {
color: #502d00; }
.alert-purple {
color: #3c327c;
background-color: #e3dffc;
border-color: #d8d2fa; }
.alert-purple hr {
border-top-color: #c4bbf7; }
.alert-purple .alert-link {
color: #2a2358; }
@-webkit-keyframes progress-bar-stripes {
from {
background-position: 5px 0; }
to {
background-position: 0 0; } }
@keyframes progress-bar-stripes {
from {
background-position: 5px 0; }
to {
background-position: 0 0; } }
.progress {
display: -webkit-box;
display: -ms-flexbox;
display: flex;
height: 5px;
overflow: hidden;
font-size: 0.65625rem;
background-color: #f8f9fa;
border-radius: 2px; }
.progress-bar {
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-webkit-box-orient: vertical;
-webkit-box-direction: normal;
-ms-flex-direction: column;
flex-direction: column;
-webkit-box-pack: center;
-ms-flex-pack: center;
justify-content: center;
color: #fff;
text-align: center;
white-space: nowrap;
background-color: #7460ee;
-webkit-transition: width 0.6s ease;
-o-transition: width 0.6s ease;
transition: width 0.6s ease; }
@media screen and (prefers-reduced-motion: reduce) {
.progress-bar {
-webkit-transition: none;
-o-transition: none;
transition: none; } }
.progress-bar-striped {
background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
background-size: 5px 5px; }
.progress-bar-animated {
-webkit-animation: progress-bar-stripes 1s linear infinite;
animation: progress-bar-stripes 1s linear infinite; }
.media {
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-webkit-box-align: start;
-ms-flex-align: start;
align-items: flex-start; }
.media-body {
-webkit-box-flex: 1;
-ms-flex: 1;
flex: 1; }
.list-group {
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-webkit-box-orient: vertical;
-webkit-box-direction: normal;
-ms-flex-direction: column;
flex-direction: column;
padding-left: 0;
margin-bottom: 0; }
.list-group-item-action {
width: 100%;
color: #4F5467;
text-align: inherit; }
.list-group-item-action:hover, .list-group-item-action:focus {
color: #4F5467;
text-decoration: none;
background-color: #f8f9fa; }
.list-group-item-action:active {
color: #3e5569;
background-color: #e9ecef; }
.list-group-item {
position: relative;
display: block;
padding: 0.75rem 1.25rem;
margin-bottom: -1px;
background-color: #fff;
border: 1px solid rgba(0, 0, 0, 0.125); }
.list-group-item:first-child {
border-top-left-radius: 2px;
border-top-right-radius: 2px; }
.list-group-item:last-child {
margin-bottom: 0;
border-bottom-right-radius: 2px;
border-bottom-left-radius: 2px; }
.list-group-item:hover, .list-group-item:focus {
z-index: 1;
text-decoration: none; }
.list-group-item.disabled, .list-group-item:disabled {
color: #6c757d;
background-color: #fff; }
.list-group-item.active {
z-index: 2;
color: #fff;
background-color: #2962FF;
border-color: #2962FF; }
.list-group-flush .list-group-item {
border-right: 0;
border-left: 0;
border-radius: 0; }
.list-group-flush:first-child .list-group-item:first-child {
border-top: 0; }
.list-group-flush:last-child .list-group-item:last-child {
border-bottom: 0; }
.list-group-item-primary {
color: #3c327c;
background-color: #d8d2fa; }
.list-group-item-primary.list-group-item-action:hover, .list-group-item-primary.list-group-item-action:focus {
color: #3c327c;
background-color: #c4bbf7; }
.list-group-item-primary.list-group-item-action.active {
color: #fff;
background-color: #3c327c;
border-color: #3c327c; }
.list-group-item-secondary {
color: #383d41;
background-color: #d6d8db; }
.list-group-item-secondary.list-group-item-action:hover, .list-group-item-secondary.list-group-item-action:focus {
color: #383d41;
background-color: #c8cbcf; }
.list-group-item-secondary.list-group-item-action.active {
color: #fff;
background-color: #383d41;
border-color: #383d41; }
.list-group-item-success {
color: #1c6356;
background-color: #c7ede6; }
.list-group-item-success.list-group-item-action:hover, .list-group-item-success.list-group-item-action:focus {
color: #1c6356;
background-color: #b4e7dd; }
.list-group-item-success.list-group-item-action.active {
color: #fff;
background-color: #1c6356;
border-color: #1c6356; }
.list-group-item-info {
color: #153385;
background-color: #c3d3ff; }
.list-group-item-info.list-group-item-action:hover, .list-group-item-info.list-group-item-action:focus {
color: #153385;
background-color: #aac0ff; }
.list-group-item-info.list-group-item-action.active {
color: #fff;
background-color: #153385;
border-color: #153385; }
.list-group-item-warning {
color: #85621b;
background-color: #ffecc6; }
.list-group-item-warning.list-group-item-action:hover, .list-group-item-warning.list-group-item-action:focus {
color: #85621b;
background-color: #ffe4ad; }
.list-group-item-warning.list-group-item-action.active {
color: #fff;
background-color: #85621b;
border-color: #85621b; }
.list-group-item-danger {
color: #80172a;
background-color: #fcc4ce; }
.list-group-item-danger.list-group-item-action:hover, .list-group-item-danger.list-group-item-action:focus {
color: #80172a;
background-color: #fbacba; }
.list-group-item-danger.list-group-item-action.active {
color: #fff;
background-color: #80172a;
border-color: #80172a; }
.list-group-item-light {
color: #818182;
background-color: #fdfdfe; }
.list-group-item-light.list-group-item-action:hover, .list-group-item-light.list-group-item-action:focus {
color: #818182;
background-color: #ececf6; }
.list-group-item-light.list-group-item-action.active {
color: #fff;
background-color: #818182;
border-color: #818182; }
.list-group-item-dark {
color: #1b1e21;
background-color: #c6c8ca; }
.list-group-item-dark.list-group-item-action:hover, .list-group-item-dark.list-group-item-action:focus {
color: #1b1e21;
background-color: #b9bbbe; }
.list-group-item-dark.list-group-item-action.active {
color: #fff;
background-color: #1b1e21;
border-color: #1b1e21; }
.list-group-item-cyan {
color: #296580;
background-color: #ceeefd; }
.list-group-item-cyan.list-group-item-action:hover, .list-group-item-cyan.list-group-item-action:focus {
color: #296580;
background-color: #b6e6fc; }
.list-group-item-cyan.list-group-item-action.active {
color: #fff;
background-color: #296580;
border-color: #296580; }
.list-group-item-orange {
color: #834900;
background-color: #fedfb8; }
.list-group-item-orange.list-group-item-action:hover, .list-group-item-orange.list-group-item-action:focus {
color: #834900;
background-color: #fed49f; }
.list-group-item-orange.list-group-item-action.active {
color: #fff;
background-color: #834900;
border-color: #834900; }
.list-group-item-purple {
color: #3c327c;
background-color: #d8d2fa; }
.list-group-item-purple.list-group-item-action:hover, .list-group-item-purple.list-group-item-action:focus {
color: #3c327c;
background-color: #c4bbf7; }
.list-group-item-purple.list-group-item-action.active {
color: #fff;
background-color: #3c327c;
border-color: #3c327c; }
.close {
float: right;
font-size: 1.3125rem;
font-weight: 800;
line-height: 1;
color: #000;
text-shadow: 0 1px 0 #fff;
opacity: .5; }
.close:hover, .close:focus {
color: #000;
text-decoration: none;
opacity: .75; }
.close:not(:disabled):not(.disabled) {
cursor: pointer; }
button.close {
padding: 0;
background-color: transparent;
border: 0;
-webkit-appearance: none; }
.modal-open {
overflow: hidden; }
.modal {
position: fixed;
top: 0;
right: 0;
bottom: 0;
left: 0;
z-index: 1050;
display: none;
overflow: hidden;
outline: 0; }
.modal-open .modal {
overflow-x: hidden;
overflow-y: auto; }
.modal-dialog {
position: relative;
width: auto;
margin: 0.5rem;
pointer-events: none; }
.modal.fade .modal-dialog {
-webkit-transition: -webkit-transform 0.3s ease-out;
transition: -webkit-transform 0.3s ease-out;
-o-transition: transform 0.3s ease-out;
transition: transform 0.3s ease-out;
transition: transform 0.3s ease-out, -webkit-transform 0.3s ease-out;
-webkit-transform: translate(0, -25%);
-ms-transform: translate(0, -25%);
transform: translate(0, -25%); }
@media screen and (prefers-reduced-motion: reduce) {
.modal.fade .modal-dialog {
-webkit-transition: none;
-o-transition: none;
transition: none; } }
.modal.show .modal-dialog {
-webkit-transform: translate(0, 0);
-ms-transform: translate(0, 0);
transform: translate(0, 0); }
.modal-dialog-centered {
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
min-height: calc(100% - (0.5rem * 2)); }
.modal-content {
position: relative;
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-webkit-box-orient: vertical;
-webkit-box-direction: normal;
-ms-flex-direction: column;
flex-direction: column;
width: 100%;
pointer-events: auto;
background-color: #fff;
background-clip: padding-box;
border: 1px solid rgba(0, 0, 0, 0.2);
border-radius: 2px;
outline: 0; }
.modal-backdrop {
position: fixed;
top: 0;
right: 0;
bottom: 0;
left: 0;
z-index: 1040;
background-color: #000; }
.modal-backdrop.fade {
opacity: 0; }
.modal-backdrop.show {
opacity: 0.5; }
.modal-header {
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-webkit-box-align: start;
-ms-flex-align: start;
align-items: flex-start;
-webkit-box-pack: justify;
-ms-flex-pack: justify;
justify-content: space-between;
padding: 1rem;
border-bottom: 1px solid #e9ecef;
border-top-left-radius: 2px;
border-top-right-radius: 2px; }
.modal-header .close {
padding: 1rem;
margin: -1rem -1rem -1rem auto; }
.modal-title {
margin-bottom: 0;
line-height: 1.5; }
.modal-body {
position: relative;
-webkit-box-flex: 1;
-ms-flex: 1 1 auto;
flex: 1 1 auto;
padding: 1rem; }
.modal-footer {
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
-webkit-box-pack: end;
-ms-flex-pack: end;
justify-content: flex-end;
padding: 1rem;
border-top: 1px solid #e9ecef; }
.modal-footer > :not(:first-child) {
margin-left: .25rem; }
.modal-footer > :not(:last-child) {
margin-right: .25rem; }
.modal-scrollbar-measure {
position: absolute;
top: -9999px;
width: 50px;
height: 50px;
overflow: scroll; }
@media (min-width: 576px) {
.modal-dialog {
max-width: 500px;
margin: 1.75rem auto; }
.modal-dialog-centered {
min-height: calc(100% - (1.75rem * 2)); }
.modal-sm {
max-width: 300px; } }
@media (min-width: 992px) {
.modal-lg {
max-width: 800px; } }
.tooltip {
position: absolute;
z-index: 1070;
display: block;
margin: 0;
font-family: "Nunito Sans", sans-serif;
font-style: normal;
font-weight: 400;
line-height: 1.5;
text-align: left;
text-align: start;
text-decoration: none;
text-shadow: none;
text-transform: none;
letter-spacing: normal;
word-break: normal;
word-spacing: normal;
white-space: normal;
line-break: auto;
font-size: 0.76563rem;
word-wrap: break-word;
opacity: 0; }
.tooltip.show {
opacity: 0.9; }
.tooltip .arrow {
position: absolute;
display: block;
width: 0.8rem;
height: 0.4rem; }
.tooltip .arrow::before {
position: absolute;
content: "";
border-color: transparent;
border-style: solid; }
.bs-tooltip-top, .bs-tooltip-auto[x-placement^="top"] {
padding: 0.4rem 0; }
.bs-tooltip-top .arrow, .bs-tooltip-auto[x-placement^="top"] .arrow {
bottom: 0; }
.bs-tooltip-top .arrow::before, .bs-tooltip-auto[x-placement^="top"] .arrow::before {
top: 0;
border-width: 0.4rem 0.4rem 0;
border-top-color: #000; }
.bs-tooltip-right, .bs-tooltip-auto[x-placement^="right"] {
padding: 0 0.4rem; }
.bs-tooltip-right .arrow, .bs-tooltip-auto[x-placement^="right"] .arrow {
left: 0;
width: 0.4rem;
height: 0.8rem; }
.bs-tooltip-right .arrow::before, .bs-tooltip-auto[x-placement^="right"] .arrow::before {
right: 0;
border-width: 0.4rem 0.4rem 0.4rem 0;
border-right-color: #000; }
.bs-tooltip-bottom, .bs-tooltip-auto[x-placement^="bottom"] {
padding: 0.4rem 0; }
.bs-tooltip-bottom .arrow, .bs-tooltip-auto[x-placement^="bottom"] .arrow {
top: 0; }
.bs-tooltip-bottom .arrow::before, .bs-tooltip-auto[x-placement^="bottom"] .arrow::before {
bottom: 0;
border-width: 0 0.4rem 0.4rem;
border-bottom-color: #000; }
.bs-tooltip-left, .bs-tooltip-auto[x-placement^="left"] {
padding: 0 0.4rem; }
.bs-tooltip-left .arrow, .bs-tooltip-auto[x-placement^="left"] .arrow {
right: 0;
width: 0.4rem;
height: 0.8rem; }
.bs-tooltip-left .arrow::before, .bs-tooltip-auto[x-placement^="left"] .arrow::before {
left: 0;
border-width: 0.4rem 0 0.4rem 0.4rem;
border-left-color: #000; }
.tooltip-inner {
max-width: 200px;
padding: 0.25rem 0.5rem;
color: #fff;
text-align: center;
background-color: #000;
border-radius: 2px; }
.popover {
position: absolute;
top: 0;
left: 0;
z-index: 1060;
display: block;
max-width: 276px;
font-family: "Nunito Sans", sans-serif;
font-style: normal;
font-weight: 400;
line-height: 1.5;
text-align: left;
text-align: start;
text-decoration: none;
text-shadow: none;
text-transform: none;
letter-spacing: normal;
word-break: normal;
word-spacing: normal;
white-space: normal;
line-break: auto;
font-size: 0.76563rem;
word-wrap: break-word;
background-color: #fff;
background-clip: padding-box;
border: 1px solid rgba(0, 0, 0, 0.2);
border-radius: 2px; }
.popover .arrow {
position: absolute;
display: block;
width: 1rem;
height: 0.5rem;
margin: 0 2px; }
.popover .arrow::before, .popover .arrow::after {
position: absolute;
display: block;
content: "";
border-color: transparent;
border-style: solid; }
.bs-popover-top, .bs-popover-auto[x-placement^="top"] {
margin-bottom: 0.5rem; }
.bs-popover-top .arrow, .bs-popover-auto[x-placement^="top"] .arrow {
bottom: calc((0.5rem + 1px) * -1); }
.bs-popover-top .arrow::before, .bs-popover-auto[x-placement^="top"] .arrow::before,
.bs-popover-top .arrow::after, .bs-popover-auto[x-placement^="top"] .arrow::after {
border-width: 0.5rem 0.5rem 0; }
.bs-popover-top .arrow::before, .bs-popover-auto[x-placement^="top"] .arrow::before {
bottom: 0;
border-top-color: rgba(0, 0, 0, 0.25); }
.bs-popover-top .arrow::after, .bs-popover-auto[x-placement^="top"] .arrow::after {
bottom: 1px;
border-top-color: #fff; }
.bs-popover-right, .bs-popover-auto[x-placement^="right"] {
margin-left: 0.5rem; }
.bs-popover-right .arrow, .bs-popover-auto[x-placement^="right"] .arrow {
left: calc((0.5rem + 1px) * -1);
width: 0.5rem;
height: 1rem;
margin: 2px 0; }
.bs-popover-right .arrow::before, .bs-popover-auto[x-placement^="right"] .arrow::before,
.bs-popover-right .arrow::after, .bs-popover-auto[x-placement^="right"] .arrow::after {
border-width: 0.5rem 0.5rem 0.5rem 0; }
.bs-popover-right .arrow::before, .bs-popover-auto[x-placement^="right"] .arrow::before {
left: 0;
border-right-color: rgba(0, 0, 0, 0.25); }
.bs-popover-right .arrow::after, .bs-popover-auto[x-placement^="right"] .arrow::after {
left: 1px;
border-right-color: #fff; }
.bs-popover-bottom, .bs-popover-auto[x-placement^="bottom"] {
margin-top: 0.5rem; }
.bs-popover-bottom .arrow, .bs-popover-auto[x-placement^="bottom"] .arrow {
top: calc((0.5rem + 1px) * -1); }
.bs-popover-bottom .arrow::before, .bs-popover-auto[x-placement^="bottom"] .arrow::before,
.bs-popover-bottom .arrow::after, .bs-popover-auto[x-placement^="bottom"] .arrow::after {
border-width: 0 0.5rem 0.5rem 0.5rem; }
.bs-popover-bottom .arrow::before, .bs-popover-auto[x-placement^="bottom"] .arrow::before {
top: 0;
border-bottom-color: rgba(0, 0, 0, 0.25); }
.bs-popover-bottom .arrow::after, .bs-popover-auto[x-placement^="bottom"] .arrow::after {
top: 1px;
border-bottom-color: #fff; }
.bs-popover-bottom .popover-header::before, .bs-popover-auto[x-placement^="bottom"] .popover-header::before {
position: absolute;
top: 0;
left: 50%;
display: block;
width: 1rem;
margin-left: -0.5rem;
content: "";
border-bottom: 1px solid #f7f7f7; }
.bs-popover-left, .bs-popover-auto[x-placement^="left"] {
margin-right: 0.5rem; }
.bs-popover-left .arrow, .bs-popover-auto[x-placement^="left"] .arrow {
right: calc((0.5rem + 1px) * -1);
width: 0.5rem;
height: 1rem;
margin: 2px 0; }
.bs-popover-left .arrow::before, .bs-popover-auto[x-placement^="left"] .arrow::before,
.bs-popover-left .arrow::after, .bs-popover-auto[x-placement^="left"] .arrow::after {
border-width: 0.5rem 0 0.5rem 0.5rem; }
.bs-popover-left .arrow::before, .bs-popover-auto[x-placement^="left"] .arrow::before {
right: 0;
border-left-color: rgba(0, 0, 0, 0.25); }
.bs-popover-left .arrow::after, .bs-popover-auto[x-placement^="left"] .arrow::after {
right: 1px;
border-left-color: #fff; }
.popover-header {
padding: 0.5rem 0.75rem;
margin-bottom: 0;
font-size: 0.875rem;
color: inherit;
background-color: #f7f7f7;
border-bottom: 1px solid #ebebeb;
border-top-left-radius: calc(2px - 1px);
border-top-right-radius: calc(2px - 1px); }
.popover-header:empty {
display: none; }
.popover-body {
padding: 0.5rem 0.75rem;
color: #3e5569; }
.carousel {
position: relative; }
.carousel-inner {
position: relative;
width: 100%;
overflow: hidden; }
.carousel-item {
position: relative;
display: none;
-webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
width: 100%;
-webkit-transition: -webkit-transform 0.6s ease;
transition: -webkit-transform 0.6s ease;
-o-transition: transform 0.6s ease;
transition: transform 0.6s ease;
transition: transform 0.6s ease, -webkit-transform 0.6s ease;
-webkit-backface-visibility: hidden;
backface-visibility: hidden;
-webkit-perspective: 1000px;
perspective: 1000px; }
@media screen and (prefers-reduced-motion: reduce) {
.carousel-item {
-webkit-transition: none;
-o-transition: none;
transition: none; } }
.carousel-item.active,
.carousel-item-next,
.carousel-item-prev {
display: block; }
.carousel-item-next,
.carousel-item-prev {
position: absolute;
top: 0; }
.carousel-item-next.carousel-item-left,
.carousel-item-prev.carousel-item-right {
-webkit-transform: translateX(0);
-ms-transform: translateX(0);
transform: translateX(0); }
@supports ((-webkit-transform-style: preserve-3d) or (transform-style: preserve-3d)) {
.carousel-item-next.carousel-item-left,
.carousel-item-prev.carousel-item-right {
-webkit-transform: translate3d(0, 0, 0);
transform: translate3d(0, 0, 0); } }
.carousel-item-next,
.active.carousel-item-right {
-webkit-transform: translateX(100%);
-ms-transform: translateX(100%);
transform: translateX(100%); }
@supports ((-webkit-transform-style: preserve-3d) or (transform-style: preserve-3d)) {
.carousel-item-next,
.active.carousel-item-right {
-webkit-transform: translate3d(100%, 0, 0);
transform: translate3d(100%, 0, 0); } }
.carousel-item-prev,
.active.carousel-item-left {
-webkit-transform: translateX(-100%);
-ms-transform: translateX(-100%);
transform: translateX(-100%); }
@supports ((-webkit-transform-style: preserve-3d) or (transform-style: preserve-3d)) {
.carousel-item-prev,
.active.carousel-item-left {
-webkit-transform: translate3d(-100%, 0, 0);
transform: translate3d(-100%, 0, 0); } }
.carousel-fade .carousel-item {
opacity: 0;
-webkit-transition-duration: .6s;
-o-transition-duration: .6s;
transition-duration: .6s;
-webkit-transition-property: opacity;
-o-transition-property: opacity;
transition-property: opacity; }
.carousel-fade .carousel-item.active,
.carousel-fade .carousel-item-next.carousel-item-left,
.carousel-fade .carousel-item-prev.carousel-item-right {
opacity: 1; }
.carousel-fade .active.carousel-item-left,
.carousel-fade .active.carousel-item-right {
opacity: 0; }
.carousel-fade .carousel-item-next,
.carousel-fade .carousel-item-prev,
.carousel-fade .carousel-item.active,
.carousel-fade .active.carousel-item-left,
.carousel-fade .active.carousel-item-prev {
-webkit-transform: translateX(0);
-ms-transform: translateX(0);
transform: translateX(0); }
@supports ((-webkit-transform-style: preserve-3d) or (transform-style: preserve-3d)) {
.carousel-fade .carousel-item-next,
.carousel-fade .carousel-item-prev,
.carousel-fade .carousel-item.active,
.carousel-fade .active.carousel-item-left,
.carousel-fade .active.carousel-item-prev {
-webkit-transform: translate3d(0, 0, 0);
transform: translate3d(0, 0, 0); } }
.carousel-control-prev,
.carousel-control-next {
position: absolute;
top: 0;
bottom: 0;
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
-webkit-box-pack: center;
-ms-flex-pack: center;
justify-content: center;
width: 15%;
color: #fff;
text-align: center;
opacity: 0.5; }
.carousel-control-prev:hover, .carousel-control-prev:focus,
.carousel-control-next:hover,
.carousel-control-next:focus {
color: #fff;
text-decoration: none;
outline: 0;
opacity: .9; }
.carousel-control-prev {
left: 0; }
.carousel-control-next {
right: 0; }
.carousel-control-prev-icon,
.carousel-control-next-icon {
display: inline-block;
width: 20px;
height: 20px;
background: transparent no-repeat center center;
background-size: 100% 100%; }
.carousel-control-prev-icon {
background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3E%3Cpath d='M5.25 0l-4 4 4 4 1.5-1.5-2.5-2.5 2.5-2.5-1.5-1.5z'/%3E%3C/svg%3E"); }
.carousel-control-next-icon {
background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3E%3Cpath d='M2.75 0l-1.5 1.5 2.5 2.5-2.5 2.5 1.5 1.5 4-4-4-4z'/%3E%3C/svg%3E"); }
.carousel-indicators {
position: absolute;
right: 0;
bottom: 10px;
left: 0;
z-index: 15;
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-webkit-box-pack: center;
-ms-flex-pack: center;
justify-content: center;
padding-left: 0;
margin-right: 15%;
margin-left: 15%;
list-style: none; }
.carousel-indicators li {
position: relative;
-webkit-box-flex: 0;
-ms-flex: 0 1 auto;
flex: 0 1 auto;
width: 30px;
height: 3px;
margin-right: 3px;
margin-left: 3px;
text-indent: -999px;
background-color: rgba(255, 255, 255, 0.5); }
.carousel-indicators li::before {
position: absolute;
top: -10px;
left: 0;
display: inline-block;
width: 100%;
height: 10px;
content: ""; }
.carousel-indicators li::after {
position: absolute;
bottom: -10px;
left: 0;
display: inline-block;
width: 100%;
height: 10px;
content: ""; }
.carousel-indicators .active {
background-color: #fff; }
.carousel-caption {
position: absolute;
right: 15%;
bottom: 20px;
left: 15%;
z-index: 10;
padding-top: 20px;
padding-bottom: 20px;
color: #fff;
text-align: center; }
.align-baseline {
vertical-align: baseline !important; }
.align-top {
vertical-align: top !important; }
.align-middle {
vertical-align: middle !important; }
.align-bottom {
vertical-align: bottom !important; }
.align-text-bottom {
vertical-align: text-bottom !important; }
.align-text-top {
vertical-align: text-top !important; }
.bg-primary {
background-color: #7460ee !important; }
a.bg-primary:hover, a.bg-primary:focus,
button.bg-primary:hover,
button.bg-primary:focus {
background-color: #4c32e9 !important; }
.bg-secondary {
background-color: #6c757d !important; }
a.bg-secondary:hover, a.bg-secondary:focus,
button.bg-secondary:hover,
button.bg-secondary:focus {
background-color: #545b62 !important; }
.bg-success {
background-color: #36bea6 !important; }
a.bg-success:hover, a.bg-success:focus,
button.bg-success:hover,
button.bg-success:focus {
background-color: #2b9683 !important; }
.bg-info {
background-color: #2962FF !important; }
a.bg-info:hover, a.bg-info:focus,
button.bg-info:hover,
button.bg-info:focus {
background-color: #0041f5 !important; }
.bg-warning {
background-color: #ffbc34 !important; }
a.bg-warning:hover, a.bg-warning:focus,
button.bg-warning:hover,
button.bg-warning:focus {
background-color: #ffab01 !important; }
.bg-danger {
background-color: #f62d51 !important; }
a.bg-danger:hover, a.bg-danger:focus,
button.bg-danger:hover,
button.bg-danger:focus {
background-color: #e60a31 !important; }
.bg-light {
background-color: #f8f9fa !important; }
a.bg-light:hover, a.bg-light:focus,
button.bg-light:hover,
button.bg-light:focus {
background-color: #dae0e5 !important; }
.bg-dark {
background-color: #343a40 !important; }
a.bg-dark:hover, a.bg-dark:focus,
button.bg-dark:hover,
button.bg-dark:focus {
background-color: #1d2124 !important; }
.bg-cyan {
background-color: #4fc3f7 !important; }
a.bg-cyan:hover, a.bg-cyan:focus,
button.bg-cyan:hover,
button.bg-cyan:focus {
background-color: #1eb2f5 !important; }
.bg-orange {
background-color: #fb8c00 !important; }
a.bg-orange:hover, a.bg-orange:focus,
button.bg-orange:hover,
button.bg-orange:focus {
background-color: #c87000 !important; }
.bg-purple {
background-color: #7460ee !important; }
a.bg-purple:hover, a.bg-purple:focus,
button.bg-purple:hover,
button.bg-purple:focus {
background-color: #4c32e9 !important; }
.bg-white {
background-color: #fff !important; }
.bg-transparent {
background-color: transparent !important; }
.border {
border: 1px solid #e9ecef !important; }
.border-top {
border-top: 1px solid #e9ecef !important; }
.border-right {
border-right: 1px solid #e9ecef !important; }
.border-bottom {
border-bottom: 1px solid #e9ecef !important; }
.border-left {
border-left: 1px solid #e9ecef !important; }
.border-0 {
border: 0 !important; }
.border-top-0 {
border-top: 0 !important; }
.border-right-0 {
border-right: 0 !important; }
.border-bottom-0 {
border-bottom: 0 !important; }
.border-left-0 {
border-left: 0 !important; }
.border-primary {
border-color: #7460ee !important; }
.border-secondary {
border-color: #6c757d !important; }
.border-success {
border-color: #36bea6 !important; }
.border-info {
border-color: #2962FF !important; }
.border-warning {
border-color: #ffbc34 !important; }
.border-danger {
border-color: #f62d51 !important; }
.border-light {
border-color: #f8f9fa !important; }
.border-dark {
border-color: #343a40 !important; }
.border-cyan {
border-color: #4fc3f7 !important; }
.border-orange {
border-color: #fb8c00 !important; }
.border-purple {
border-color: #7460ee !important; }
.border-white {
border-color: #fff !important; }
.rounded {
border-radius: 2px !important; }
.rounded-top {
border-top-left-radius: 2px !important;
border-top-right-radius: 2px !important; }
.rounded-right {
border-top-right-radius: 2px !important;
border-bottom-right-radius: 2px !important; }
.rounded-bottom {
border-bottom-right-radius: 2px !important;
border-bottom-left-radius: 2px !important; }
.rounded-left {
border-top-left-radius: 2px !important;
border-bottom-left-radius: 2px !important; }
.rounded-circle {
border-radius: 50% !important; }
.rounded-0 {
border-radius: 0 !important; }
.clearfix::after {
display: block;
clear: both;
content: ""; }
.d-none {
display: none !important; }
.d-inline {
display: inline !important; }
.d-inline-block {
display: inline-block !important; }
.d-block {
display: block !important; }
.d-table {
display: table !important; }
.d-table-row {
display: table-row !important; }
.d-table-cell {
display: table-cell !important; }
.d-flex {
display: -webkit-box !important;
display: -ms-flexbox !important;
display: flex !important; }
.d-inline-flex {
display: -webkit-inline-box !important;
display: -ms-inline-flexbox !important;
display: inline-flex !important; }
@media (min-width: 576px) {
.d-sm-none {
display: none !important; }
.d-sm-inline {
display: inline !important; }
.d-sm-inline-block {
display: inline-block !important; }
.d-sm-block {
display: block !important; }
.d-sm-table {
display: table !important; }
.d-sm-table-row {
display: table-row !important; }
.d-sm-table-cell {
display: table-cell !important; }
.d-sm-flex {
display: -webkit-box !important;
display: -ms-flexbox !important;
display: flex !important; }
.d-sm-inline-flex {
display: -webkit-inline-box !important;
display: -ms-inline-flexbox !important;
display: inline-flex !important; } }
@media (min-width: 768px) {
.d-md-none {
display: none !important; }
.d-md-inline {
display: inline !important; }
.d-md-inline-block {
display: inline-block !important; }
.d-md-block {
display: block !important; }
.d-md-table {
display: table !important; }
.d-md-table-row {
display: table-row !important; }
.d-md-table-cell {
display: table-cell !important; }
.d-md-flex {
display: -webkit-box !important;
display: -ms-flexbox !important;
display: flex !important; }
.d-md-inline-flex {
display: -webkit-inline-box !important;
display: -ms-inline-flexbox !important;
display: inline-flex !important; } }
@media (min-width: 992px) {
.d-lg-none {
display: none !important; }
.d-lg-inline {
display: inline !important; }
.d-lg-inline-block {
display: inline-block !important; }
.d-lg-block {
display: block !important; }
.d-lg-table {
display: table !important; }
.d-lg-table-row {
display: table-row !important; }
.d-lg-table-cell {
display: table-cell !important; }
.d-lg-flex {
display: -webkit-box !important;
display: -ms-flexbox !important;
display: flex !important; }
.d-lg-inline-flex {
display: -webkit-inline-box !important;
display: -ms-inline-flexbox !important;
display: inline-flex !important; } }
@media (min-width: 1600px) {
.d-xl-none {
display: none !important; }
.d-xl-inline {
display: inline !important; }
.d-xl-inline-block {
display: inline-block !important; }
.d-xl-block {
display: block !important; }
.d-xl-table {
display: table !important; }
.d-xl-table-row {
display: table-row !important; }
.d-xl-table-cell {
display: table-cell !important; }
.d-xl-flex {
display: -webkit-box !important;
display: -ms-flexbox !important;
display: flex !important; }
.d-xl-inline-flex {
display: -webkit-inline-box !important;
display: -ms-inline-flexbox !important;
display: inline-flex !important; } }
@media print {
.d-print-none {
display: none !important; }
.d-print-inline {
display: inline !important; }
.d-print-inline-block {
display: inline-block !important; }
.d-print-block {
display: block !important; }
.d-print-table {
display: table !important; }
.d-print-table-row {
display: table-row !important; }
.d-print-table-cell {
display: table-cell !important; }
.d-print-flex {
display: -webkit-box !important;
display: -ms-flexbox !important;
display: flex !important; }
.d-print-inline-flex {
display: -webkit-inline-box !important;
display: -ms-inline-flexbox !important;
display: inline-flex !important; } }
.embed-responsive {
position: relative;
display: block;
width: 100%;
padding: 0;
overflow: hidden; }
.embed-responsive::before {
display: block;
content: ""; }
.embed-responsive .embed-responsive-item,
.embed-responsive iframe,
.embed-responsive embed,
.embed-responsive object,
.embed-responsive video {
position: absolute;
top: 0;
bottom: 0;
left: 0;
width: 100%;
height: 100%;
border: 0; }
.embed-responsive-21by9::before {
padding-top: 42.85714%; }
.embed-responsive-16by9::before {
padding-top: 56.25%; }
.embed-responsive-4by3::before {
padding-top: 75%; }
.embed-responsive-1by1::before {
padding-top: 100%; }
.flex-row {
-webkit-box-orient: horizontal !important;
-webkit-box-direction: normal !important;
-ms-flex-direction: row !important;
flex-direction: row !important; }
.flex-column {
-webkit-box-orient: vertical !important;
-webkit-box-direction: normal !important;
-ms-flex-direction: column !important;
flex-direction: column !important; }
.flex-row-reverse {
-webkit-box-orient: horizontal !important;
-webkit-box-direction: reverse !important;
-ms-flex-direction: row-reverse !important;
flex-direction: row-reverse !important; }
.flex-column-reverse {
-webkit-box-orient: vertical !important;
-webkit-box-direction: reverse !important;
-ms-flex-direction: column-reverse !important;
flex-direction: column-reverse !important; }
.flex-wrap {
-ms-flex-wrap: wrap !important;
flex-wrap: wrap !important; }
.flex-nowrap {
-ms-flex-wrap: nowrap !important;
flex-wrap: nowrap !important; }
.flex-wrap-reverse {
-ms-flex-wrap: wrap-reverse !important;
flex-wrap: wrap-reverse !important; }
.flex-fill {
-webkit-box-flex: 1 !important;
-ms-flex: 1 1 auto !important;
flex: 1 1 auto !important; }
.flex-grow-0 {
-webkit-box-flex: 0 !important;
-ms-flex-positive: 0 !important;
flex-grow: 0 !important; }
.flex-grow-1 {
-webkit-box-flex: 1 !important;
-ms-flex-positive: 1 !important;
flex-grow: 1 !important; }
.flex-shrink-0 {
-ms-flex-negative: 0 !important;
flex-shrink: 0 !important; }
.flex-shrink-1 {
-ms-flex-negative: 1 !important;
flex-shrink: 1 !important; }
.justify-content-start {
-webkit-box-pack: start !important;
-ms-flex-pack: start !important;
justify-content: flex-start !important; }
.justify-content-end {
-webkit-box-pack: end !important;
-ms-flex-pack: end !important;
justify-content: flex-end !important; }
.justify-content-center {
-webkit-box-pack: center !important;
-ms-flex-pack: center !important;
justify-content: center !important; }
.justify-content-between {
-webkit-box-pack: justify !important;
-ms-flex-pack: justify !important;
justify-content: space-between !important; }
.justify-content-around {
-ms-flex-pack: distribute !important;
justify-content: space-around !important; }
.align-items-start {
-webkit-box-align: start !important;
-ms-flex-align: start !important;
align-items: flex-start !important; }
.align-items-end {
-webkit-box-align: end !important;
-ms-flex-align: end !important;
align-items: flex-end !important; }
.align-items-center {
-webkit-box-align: center !important;
-ms-flex-align: center !important;
align-items: center !important; }
.align-items-baseline {
-webkit-box-align: baseline !important;
-ms-flex-align: baseline !important;
align-items: baseline !important; }
.align-items-stretch {
-webkit-box-align: stretch !important;
-ms-flex-align: stretch !important;
align-items: stretch !important; }
.align-content-start {
-ms-flex-line-pack: start !important;
align-content: flex-start !important; }
.align-content-end {
-ms-flex-line-pack: end !important;
align-content: flex-end !important; }
.align-content-center {
-ms-flex-line-pack: center !important;
align-content: center !important; }
.align-content-between {
-ms-flex-line-pack: justify !important;
align-content: space-between !important; }
.align-content-around {
-ms-flex-line-pack: distribute !important;
align-content: space-around !important; }
.align-content-stretch {
-ms-flex-line-pack: stretch !important;
align-content: stretch !important; }
.align-self-auto {
-ms-flex-item-align: auto !important;
align-self: auto !important; }
.align-self-start {
-ms-flex-item-align: start !important;
align-self: flex-start !important; }
.align-self-end {
-ms-flex-item-align: end !important;
align-self: flex-end !important; }
.align-self-center {
-ms-flex-item-align: center !important;
align-self: center !important; }
.align-self-baseline {
-ms-flex-item-align: baseline !important;
align-self: baseline !important; }
.align-self-stretch {
-ms-flex-item-align: stretch !important;
align-self: stretch !important; }
@media (min-width: 576px) {
.flex-sm-row {
-webkit-box-orient: horizontal !important;
-webkit-box-direction: normal !important;
-ms-flex-direction: row !important;
flex-direction: row !important; }
.flex-sm-column {
-webkit-box-orient: vertical !important;
-webkit-box-direction: normal !important;
-ms-flex-direction: column !important;
flex-direction: column !important; }
.flex-sm-row-reverse {
-webkit-box-orient: horizontal !important;
-webkit-box-direction: reverse !important;
-ms-flex-direction: row-reverse !important;
flex-direction: row-reverse !important; }
.flex-sm-column-reverse {
-webkit-box-orient: vertical !important;
-webkit-box-direction: reverse !important;
-ms-flex-direction: column-reverse !important;
flex-direction: column-reverse !important; }
.flex-sm-wrap {
-ms-flex-wrap: wrap !important;
flex-wrap: wrap !important; }
.flex-sm-nowrap {
-ms-flex-wrap: nowrap !important;
flex-wrap: nowrap !important; }
.flex-sm-wrap-reverse {
-ms-flex-wrap: wrap-reverse !important;
flex-wrap: wrap-reverse !important; }
.flex-sm-fill {
-webkit-box-flex: 1 !important;
-ms-flex: 1 1 auto !important;
flex: 1 1 auto !important; }
.flex-sm-grow-0 {
-webkit-box-flex: 0 !important;
-ms-flex-positive: 0 !important;
flex-grow: 0 !important; }
.flex-sm-grow-1 {
-webkit-box-flex: 1 !important;
-ms-flex-positive: 1 !important;
flex-grow: 1 !important; }
.flex-sm-shrink-0 {
-ms-flex-negative: 0 !important;
flex-shrink: 0 !important; }
.flex-sm-shrink-1 {
-ms-flex-negative: 1 !important;
flex-shrink: 1 !important; }
.justify-content-sm-start {
-webkit-box-pack: start !important;
-ms-flex-pack: start !important;
justify-content: flex-start !important; }
.justify-content-sm-end {
-webkit-box-pack: end !important;
-ms-flex-pack: end !important;
justify-content: flex-end !important; }
.justify-content-sm-center {
-webkit-box-pack: center !important;
-ms-flex-pack: center !important;
justify-content: center !important; }
.justify-content-sm-between {
-webkit-box-pack: justify !important;
-ms-flex-pack: justify !important;
justify-content: space-between !important; }
.justify-content-sm-around {
-ms-flex-pack: distribute !important;
justify-content: space-around !important; }
.align-items-sm-start {
-webkit-box-align: start !important;
-ms-flex-align: start !important;
align-items: flex-start !important; }
.align-items-sm-end {
-webkit-box-align: end !important;
-ms-flex-align: end !important;
align-items: flex-end !important; }
.align-items-sm-center {
-webkit-box-align: center !important;
-ms-flex-align: center !important;
align-items: center !important; }
.align-items-sm-baseline {
-webkit-box-align: baseline !important;
-ms-flex-align: baseline !important;
align-items: baseline !important; }
.align-items-sm-stretch {
-webkit-box-align: stretch !important;
-ms-flex-align: stretch !important;
align-items: stretch !important; }
.align-content-sm-start {
-ms-flex-line-pack: start !important;
align-content: flex-start !important; }
.align-content-sm-end {
-ms-flex-line-pack: end !important;
align-content: flex-end !important; }
.align-content-sm-center {
-ms-flex-line-pack: center !important;
align-content: center !important; }
.align-content-sm-between {
-ms-flex-line-pack: justify !important;
align-content: space-between !important; }
.align-content-sm-around {
-ms-flex-line-pack: distribute !important;
align-content: space-around !important; }
.align-content-sm-stretch {
-ms-flex-line-pack: stretch !important;
align-content: stretch !important; }
.align-self-sm-auto {
-ms-flex-item-align: auto !important;
align-self: auto !important; }
.align-self-sm-start {
-ms-flex-item-align: start !important;
align-self: flex-start !important; }
.align-self-sm-end {
-ms-flex-item-align: end !important;
align-self: flex-end !important; }
.align-self-sm-center {
-ms-flex-item-align: center !important;
align-self: center !important; }
.align-self-sm-baseline {
-ms-flex-item-align: baseline !important;
align-self: baseline !important; }
.align-self-sm-stretch {
-ms-flex-item-align: stretch !important;
align-self: stretch !important; } }
@media (min-width: 768px) {
.flex-md-row {
-webkit-box-orient: horizontal !important;
-webkit-box-direction: normal !important;
-ms-flex-direction: row !important;
flex-direction: row !important; }
.flex-md-column {
-webkit-box-orient: vertical !important;
-webkit-box-direction: normal !important;
-ms-flex-direction: column !important;
flex-direction: column !important; }
.flex-md-row-reverse {
-webkit-box-orient: horizontal !important;
-webkit-box-direction: reverse !important;
-ms-flex-direction: row-reverse !important;
flex-direction: row-reverse !important; }
.flex-md-column-reverse {
-webkit-box-orient: vertical !important;
-webkit-box-direction: reverse !important;
-ms-flex-direction: column-reverse !important;
flex-direction: column-reverse !important; }
.flex-md-wrap {
-ms-flex-wrap: wrap !important;
flex-wrap: wrap !important; }
.flex-md-nowrap {
-ms-flex-wrap: nowrap !important;
flex-wrap: nowrap !important; }
.flex-md-wrap-reverse {
-ms-flex-wrap: wrap-reverse !important;
flex-wrap: wrap-reverse !important; }
.flex-md-fill {
-webkit-box-flex: 1 !important;
-ms-flex: 1 1 auto !important;
flex: 1 1 auto !important; }
.flex-md-grow-0 {
-webkit-box-flex: 0 !important;
-ms-flex-positive: 0 !important;
flex-grow: 0 !important; }
.flex-md-grow-1 {
-webkit-box-flex: 1 !important;
-ms-flex-positive: 1 !important;
flex-grow: 1 !important; }
.flex-md-shrink-0 {
-ms-flex-negative: 0 !important;
flex-shrink: 0 !important; }
.flex-md-shrink-1 {
-ms-flex-negative: 1 !important;
flex-shrink: 1 !important; }
.justify-content-md-start {
-webkit-box-pack: start !important;
-ms-flex-pack: start !important;
justify-content: flex-start !important; }
.justify-content-md-end {
-webkit-box-pack: end !important;
-ms-flex-pack: end !important;
justify-content: flex-end !important; }
.justify-content-md-center {
-webkit-box-pack: center !important;
-ms-flex-pack: center !important;
justify-content: center !important; }
.justify-content-md-between {
-webkit-box-pack: justify !important;
-ms-flex-pack: justify !important;
justify-content: space-between !important; }
.justify-content-md-around {
-ms-flex-pack: distribute !important;
justify-content: space-around !important; }
.align-items-md-start {
-webkit-box-align: start !important;
-ms-flex-align: start !important;
align-items: flex-start !important; }
.align-items-md-end {
-webkit-box-align: end !important;
-ms-flex-align: end !important;
align-items: flex-end !important; }
.align-items-md-center {
-webkit-box-align: center !important;
-ms-flex-align: center !important;
align-items: center !important; }
.align-items-md-baseline {
-webkit-box-align: baseline !important;
-ms-flex-align: baseline !important;
align-items: baseline !important; }
.align-items-md-stretch {
-webkit-box-align: stretch !important;
-ms-flex-align: stretch !important;
align-items: stretch !important; }
.align-content-md-start {
-ms-flex-line-pack: start !important;
align-content: flex-start !important; }
.align-content-md-end {
-ms-flex-line-pack: end !important;
align-content: flex-end !important; }
.align-content-md-center {
-ms-flex-line-pack: center !important;
align-content: center !important; }
.align-content-md-between {
-ms-flex-line-pack: justify !important;
align-content: space-between !important; }
.align-content-md-around {
-ms-flex-line-pack: distribute !important;
align-content: space-around !important; }
.align-content-md-stretch {
-ms-flex-line-pack: stretch !important;
align-content: stretch !important; }
.align-self-md-auto {
-ms-flex-item-align: auto !important;
align-self: auto !important; }
.align-self-md-start {
-ms-flex-item-align: start !important;
align-self: flex-start !important; }
.align-self-md-end {
-ms-flex-item-align: end !important;
align-self: flex-end !important; }
.align-self-md-center {
-ms-flex-item-align: center !important;
align-self: center !important; }
.align-self-md-baseline {
-ms-flex-item-align: baseline !important;
align-self: baseline !important; }
.align-self-md-stretch {
-ms-flex-item-align: stretch !important;
align-self: stretch !important; } }
@media (min-width: 992px) {
.flex-lg-row {
-webkit-box-orient: horizontal !important;
-webkit-box-direction: normal !important;
-ms-flex-direction: row !important;
flex-direction: row !important; }
.flex-lg-column {
-webkit-box-orient: vertical !important;
-webkit-box-direction: normal !important;
-ms-flex-direction: column !important;
flex-direction: column !important; }
.flex-lg-row-reverse {
-webkit-box-orient: horizontal !important;
-webkit-box-direction: reverse !important;
-ms-flex-direction: row-reverse !important;
flex-direction: row-reverse !important; }
.flex-lg-column-reverse {
-webkit-box-orient: vertical !important;
-webkit-box-direction: reverse !important;
-ms-flex-direction: column-reverse !important;
flex-direction: column-reverse !important; }
.flex-lg-wrap {
-ms-flex-wrap: wrap !important;
flex-wrap: wrap !important; }
.flex-lg-nowrap {
-ms-flex-wrap: nowrap !important;
flex-wrap: nowrap !important; }
.flex-lg-wrap-reverse {
-ms-flex-wrap: wrap-reverse !important;
flex-wrap: wrap-reverse !important; }
.flex-lg-fill {
-webkit-box-flex: 1 !important;
-ms-flex: 1 1 auto !important;
flex: 1 1 auto !important; }
.flex-lg-grow-0 {
-webkit-box-flex: 0 !important;
-ms-flex-positive: 0 !important;
flex-grow: 0 !important; }
.flex-lg-grow-1 {
-webkit-box-flex: 1 !important;
-ms-flex-positive: 1 !important;
flex-grow: 1 !important; }
.flex-lg-shrink-0 {
-ms-flex-negative: 0 !important;
flex-shrink: 0 !important; }
.flex-lg-shrink-1 {
-ms-flex-negative: 1 !important;
flex-shrink: 1 !important; }
.justify-content-lg-start {
-webkit-box-pack: start !important;
-ms-flex-pack: start !important;
justify-content: flex-start !important; }
.justify-content-lg-end {
-webkit-box-pack: end !important;
-ms-flex-pack: end !important;
justify-content: flex-end !important; }
.justify-content-lg-center {
-webkit-box-pack: center !important;
-ms-flex-pack: center !important;
justify-content: center !important; }
.justify-content-lg-between {
-webkit-box-pack: justify !important;
-ms-flex-pack: justify !important;
justify-content: space-between !important; }
.justify-content-lg-around {
-ms-flex-pack: distribute !important;
justify-content: space-around !important; }
.align-items-lg-start {
-webkit-box-align: start !important;
-ms-flex-align: start !important;
align-items: flex-start !important; }
.align-items-lg-end {
-webkit-box-align: end !important;
-ms-flex-align: end !important;
align-items: flex-end !important; }
.align-items-lg-center {
-webkit-box-align: center !important;
-ms-flex-align: center !important;
align-items: center !important; }
.align-items-lg-baseline {
-webkit-box-align: baseline !important;
-ms-flex-align: baseline !important;
align-items: baseline !important; }
.align-items-lg-stretch {
-webkit-box-align: stretch !important;
-ms-flex-align: stretch !important;
align-items: stretch !important; }
.align-content-lg-start {
-ms-flex-line-pack: start !important;
align-content: flex-start !important; }
.align-content-lg-end {
-ms-flex-line-pack: end !important;
align-content: flex-end !important; }
.align-content-lg-center {
-ms-flex-line-pack: center !important;
align-content: center !important; }
.align-content-lg-between {
-ms-flex-line-pack: justify !important;
align-content: space-between !important; }
.align-content-lg-around {
-ms-flex-line-pack: distribute !important;
align-content: space-around !important; }
.align-content-lg-stretch {
-ms-flex-line-pack: stretch !important;
align-content: stretch !important; }
.align-self-lg-auto {
-ms-flex-item-align: auto !important;
align-self: auto !important; }
.align-self-lg-start {
-ms-flex-item-align: start !important;
align-self: flex-start !important; }
.align-self-lg-end {
-ms-flex-item-align: end !important;
align-self: flex-end !important; }
.align-self-lg-center {
-ms-flex-item-align: center !important;
align-self: center !important; }
.align-self-lg-baseline {
-ms-flex-item-align: baseline !important;
align-self: baseline !important; }
.align-self-lg-stretch {
-ms-flex-item-align: stretch !important;
align-self: stretch !important; } }
@media (min-width: 1600px) {
.flex-xl-row {
-webkit-box-orient: horizontal !important;
-webkit-box-direction: normal !important;
-ms-flex-direction: row !important;
flex-direction: row !important; }
.flex-xl-column {
-webkit-box-orient: vertical !important;
-webkit-box-direction: normal !important;
-ms-flex-direction: column !important;
flex-direction: column !important; }
.flex-xl-row-reverse {
-webkit-box-orient: horizontal !important;
-webkit-box-direction: reverse !important;
-ms-flex-direction: row-reverse !important;
flex-direction: row-reverse !important; }
.flex-xl-column-reverse {
-webkit-box-orient: vertical !important;
-webkit-box-direction: reverse !important;
-ms-flex-direction: column-reverse !important;
flex-direction: column-reverse !important; }
.flex-xl-wrap {
-ms-flex-wrap: wrap !important;
flex-wrap: wrap !important; }
.flex-xl-nowrap {
-ms-flex-wrap: nowrap !important;
flex-wrap: nowrap !important; }
.flex-xl-wrap-reverse {
-ms-flex-wrap: wrap-reverse !important;
flex-wrap: wrap-reverse !important; }
.flex-xl-fill {
-webkit-box-flex: 1 !important;
-ms-flex: 1 1 auto !important;
flex: 1 1 auto !important; }
.flex-xl-grow-0 {
-webkit-box-flex: 0 !important;
-ms-flex-positive: 0 !important;
flex-grow: 0 !important; }
.flex-xl-grow-1 {
-webkit-box-flex: 1 !important;
-ms-flex-positive: 1 !important;
flex-grow: 1 !important; }
.flex-xl-shrink-0 {
-ms-flex-negative: 0 !important;
flex-shrink: 0 !important; }
.flex-xl-shrink-1 {
-ms-flex-negative: 1 !important;
flex-shrink: 1 !important; }
.justify-content-xl-start {
-webkit-box-pack: start !important;
-ms-flex-pack: start !important;
justify-content: flex-start !important; }
.justify-content-xl-end {
-webkit-box-pack: end !important;
-ms-flex-pack: end !important;
justify-content: flex-end !important; }
.justify-content-xl-center {
-webkit-box-pack: center !important;
-ms-flex-pack: center !important;
justify-content: center !important; }
.justify-content-xl-between {
-webkit-box-pack: justify !important;
-ms-flex-pack: justify !important;
justify-content: space-between !important; }
.justify-content-xl-around {
-ms-flex-pack: distribute !important;
justify-content: space-around !important; }
.align-items-xl-start {
-webkit-box-align: start !important;
-ms-flex-align: start !important;
align-items: flex-start !important; }
.align-items-xl-end {
-webkit-box-align: end !important;
-ms-flex-align: end !important;
align-items: flex-end !important; }
.align-items-xl-center {
-webkit-box-align: center !important;
-ms-flex-align: center !important;
align-items: center !important; }
.align-items-xl-baseline {
-webkit-box-align: baseline !important;
-ms-flex-align: baseline !important;
align-items: baseline !important; }
.align-items-xl-stretch {
-webkit-box-align: stretch !important;
-ms-flex-align: stretch !important;
align-items: stretch !important; }
.align-content-xl-start {
-ms-flex-line-pack: start !important;
align-content: flex-start !important; }
.align-content-xl-end {
-ms-flex-line-pack: end !important;
align-content: flex-end !important; }
.align-content-xl-center {
-ms-flex-line-pack: center !important;
align-content: center !important; }
.align-content-xl-between {
-ms-flex-line-pack: justify !important;
align-content: space-between !important; }
.align-content-xl-around {
-ms-flex-line-pack: distribute !important;
align-content: space-around !important; }
.align-content-xl-stretch {
-ms-flex-line-pack: stretch !important;
align-content: stretch !important; }
.align-self-xl-auto {
-ms-flex-item-align: auto !important;
align-self: auto !important; }
.align-self-xl-start {
-ms-flex-item-align: start !important;
align-self: flex-start !important; }
.align-self-xl-end {
-ms-flex-item-align: end !important;
align-self: flex-end !important; }
.align-self-xl-center {
-ms-flex-item-align: center !important;
align-self: center !important; }
.align-self-xl-baseline {
-ms-flex-item-align: baseline !important;
align-self: baseline !important; }
.align-self-xl-stretch {
-ms-flex-item-align: stretch !important;
align-self: stretch !important; } }
.float-left {
float: left !important; }
.float-right {
float: right !important; }
.float-none {
float: none !important; }
@media (min-width: 576px) {
.float-sm-left {
float: left !important; }
.float-sm-right {
float: right !important; }
.float-sm-none {
float: none !important; } }
@media (min-width: 768px) {
.float-md-left {
float: left !important; }
.float-md-right {
float: right !important; }
.float-md-none {
float: none !important; } }
@media (min-width: 992px) {
.float-lg-left {
float: left !important; }
.float-lg-right {
float: right !important; }
.float-lg-none {
float: none !important; } }
@media (min-width: 1600px) {
.float-xl-left {
float: left !important; }
.float-xl-right {
float: right !important; }
.float-xl-none {
float: none !important; } }
.position-static {
position: static !important; }
.position-relative {
position: relative !important; }
.position-absolute {
position: absolute !important; }
.position-fixed {
position: fixed !important; }
.position-sticky {
position: -webkit-sticky !important;
position: sticky !important; }
.fixed-top {
position: fixed;
top: 0;
right: 0;
left: 0;
z-index: 1030; }
.fixed-bottom {
position: fixed;
right: 0;
bottom: 0;
left: 0;
z-index: 1030; }
@supports ((position: -webkit-sticky) or (position: sticky)) {
.sticky-top {
position: -webkit-sticky;
position: sticky;
top: 0;
z-index: 1020; } }
.sr-only {
position: absolute;
width: 1px;
height: 1px;
padding: 0;
overflow: hidden;
clip: rect(0, 0, 0, 0);
white-space: nowrap;
border: 0; }
.sr-only-focusable:active, .sr-only-focusable:focus {
position: static;
width: auto;
height: auto;
overflow: visible;
clip: auto;
white-space: normal; }
.shadow-sm {
-webkit-box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075) !important;
box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075) !important; }
.shadow {
-webkit-box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15) !important;
box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15) !important; }
.shadow-lg {
-webkit-box-shadow: 0 1rem 3rem rgba(0, 0, 0, 0.175) !important;
box-shadow: 0 1rem 3rem rgba(0, 0, 0, 0.175) !important; }
.shadow-none {
-webkit-box-shadow: none !important;
box-shadow: none !important; }
.w-25 {
width: 25% !important; }
.w-50 {
width: 50% !important; }
.w-75 {
width: 75% !important; }
.w-100 {
width: 100% !important; }
.w-auto {
width: auto !important; }
.h-25 {
height: 25% !important; }
.h-50 {
height: 50% !important; }
.h-75 {
height: 75% !important; }
.h-100 {
height: 100% !important; }
.h-auto {
height: auto !important; }
.mw-100 {
max-width: 100% !important; }
.mh-100 {
max-height: 100% !important; }
.m-0 {
margin: 0 !important; }
.mt-0,
.my-0 {
margin-top: 0 !important; }
.mr-0,
.mx-0 {
margin-right: 0 !important; }
.mb-0,
.my-0 {
margin-bottom: 0 !important; }
.ml-0,
.mx-0 {
margin-left: 0 !important; }
.m-1 {
margin: 0.25rem !important; }
.mt-1,
.my-1 {
margin-top: 0.25rem !important; }
.mr-1,
.mx-1 {
margin-right: 0.25rem !important; }
.mb-1,
.my-1 {
margin-bottom: 0.25rem !important; }
.ml-1,
.mx-1 {
margin-left: 0.25rem !important; }
.m-2 {
margin: 0.5rem !important; }
.mt-2,
.my-2 {
margin-top: 0.5rem !important; }
.mr-2,
.mx-2 {
margin-right: 0.5rem !important; }
.mb-2,
.my-2 {
margin-bottom: 0.5rem !important; }
.ml-2,
.mx-2 {
margin-left: 0.5rem !important; }
.m-3 {
margin: 1rem !important; }
.mt-3,
.my-3 {
margin-top: 1rem !important; }
.mr-3,
.mx-3 {
margin-right: 1rem !important; }
.mb-3,
.my-3 {
margin-bottom: 1rem !important; }
.ml-3,
.mx-3 {
margin-left: 1rem !important; }
.m-4 {
margin: 1.5rem !important; }
.mt-4,
.my-4 {
margin-top: 1.5rem !important; }
.mr-4,
.mx-4 {
margin-right: 1.5rem !important; }
.mb-4,
.my-4 {
margin-bottom: 1.5rem !important; }
.ml-4,
.mx-4 {
margin-left: 1.5rem !important; }
.m-5 {
margin: 3rem !important; }
.mt-5,
.my-5 {
margin-top: 3rem !important; }
.mr-5,
.mx-5 {
margin-right: 3rem !important; }
.mb-5,
.my-5 {
margin-bottom: 3rem !important; }
.ml-5,
.mx-5 {
margin-left: 3rem !important; }
.p-0 {
padding: 0 !important; }
.pt-0,
.py-0 {
padding-top: 0 !important; }
.pr-0,
.px-0 {
padding-right: 0 !important; }
.pb-0,
.py-0 {
padding-bottom: 0 !important; }
.pl-0,
.px-0 {
padding-left: 0 !important; }
.p-1 {
padding: 0.25rem !important; }
.pt-1,
.py-1 {
padding-top: 0.25rem !important; }
.pr-1,
.px-1 {
padding-right: 0.25rem !important; }
.pb-1,
.py-1 {
padding-bottom: 0.25rem !important; }
.pl-1,
.px-1 {
padding-left: 0.25rem !important; }
.p-2 {
padding: 0.5rem !important; }
.pt-2,
.py-2 {
padding-top: 0.5rem !important; }
.pr-2,
.px-2 {
padding-right: 0.5rem !important; }
.pb-2,
.py-2 {
padding-bottom: 0.5rem !important; }
.pl-2,
.px-2 {
padding-left: 0.5rem !important; }
.p-3 {
padding: 1rem !important; }
.pt-3,
.py-3 {
padding-top: 1rem !important; }
.pr-3,
.px-3 {
padding-right: 1rem !important; }
.pb-3,
.py-3 {
padding-bottom: 1rem !important; }
.pl-3,
.px-3 {
padding-left: 1rem !important; }
.p-4 {
padding: 1.5rem !important; }
.pt-4,
.py-4 {
padding-top: 1.5rem !important; }
.pr-4,
.px-4 {
padding-right: 1.5rem !important; }
.pb-4,
.py-4 {
padding-bottom: 1.5rem !important; }
.pl-4,
.px-4 {
padding-left: 1.5rem !important; }
.p-5 {
padding: 3rem !important; }
.pt-5,
.py-5 {
padding-top: 3rem !important; }
.pr-5,
.px-5 {
padding-right: 3rem !important; }
.pb-5,
.py-5 {
padding-bottom: 3rem !important; }
.pl-5,
.px-5 {
padding-left: 3rem !important; }
.m-auto {
margin: auto !important; }
.mt-auto,
.my-auto {
margin-top: auto !important; }
.mr-auto,
.mx-auto {
margin-right: auto !important; }
.mb-auto,
.my-auto {
margin-bottom: auto !important; }
.ml-auto,
.mx-auto {
margin-left: auto !important; }
@media (min-width: 576px) {
.m-sm-0 {
margin: 0 !important; }
.mt-sm-0,
.my-sm-0 {
margin-top: 0 !important; }
.mr-sm-0,
.mx-sm-0 {
margin-right: 0 !important; }
.mb-sm-0,
.my-sm-0 {
margin-bottom: 0 !important; }
.ml-sm-0,
.mx-sm-0 {
margin-left: 0 !important; }
.m-sm-1 {
margin: 0.25rem !important; }
.mt-sm-1,
.my-sm-1 {
margin-top: 0.25rem !important; }
.mr-sm-1,
.mx-sm-1 {
margin-right: 0.25rem !important; }
.mb-sm-1,
.my-sm-1 {
margin-bottom: 0.25rem !important; }
.ml-sm-1,
.mx-sm-1 {
margin-left: 0.25rem !important; }
.m-sm-2 {
margin: 0.5rem !important; }
.mt-sm-2,
.my-sm-2 {
margin-top: 0.5rem !important; }
.mr-sm-2,
.mx-sm-2 {
margin-right: 0.5rem !important; }
.mb-sm-2,
.my-sm-2 {
margin-bottom: 0.5rem !important; }
.ml-sm-2,
.mx-sm-2 {
margin-left: 0.5rem !important; }
.m-sm-3 {
margin: 1rem !important; }
.mt-sm-3,
.my-sm-3 {
margin-top: 1rem !important; }
.mr-sm-3,
.mx-sm-3 {
margin-right: 1rem !important; }
.mb-sm-3,
.my-sm-3 {
margin-bottom: 1rem !important; }
.ml-sm-3,
.mx-sm-3 {
margin-left: 1rem !important; }
.m-sm-4 {
margin: 1.5rem !important; }
.mt-sm-4,
.my-sm-4 {
margin-top: 1.5rem !important; }
.mr-sm-4,
.mx-sm-4 {
margin-right: 1.5rem !important; }
.mb-sm-4,
.my-sm-4 {
margin-bottom: 1.5rem !important; }
.ml-sm-4,
.mx-sm-4 {
margin-left: 1.5rem !important; }
.m-sm-5 {
margin: 3rem !important; }
.mt-sm-5,
.my-sm-5 {
margin-top: 3rem !important; }
.mr-sm-5,
.mx-sm-5 {
margin-right: 3rem !important; }
.mb-sm-5,
.my-sm-5 {
margin-bottom: 3rem !important; }
.ml-sm-5,
.mx-sm-5 {
margin-left: 3rem !important; }
.p-sm-0 {
padding: 0 !important; }
.pt-sm-0,
.py-sm-0 {
padding-top: 0 !important; }
.pr-sm-0,
.px-sm-0 {
padding-right: 0 !important; }
.pb-sm-0,
.py-sm-0 {
padding-bottom: 0 !important; }
.pl-sm-0,
.px-sm-0 {
padding-left: 0 !important; }
.p-sm-1 {
padding: 0.25rem !important; }
.pt-sm-1,
.py-sm-1 {
padding-top: 0.25rem !important; }
.pr-sm-1,
.px-sm-1 {
padding-right: 0.25rem !important; }
.pb-sm-1,
.py-sm-1 {
padding-bottom: 0.25rem !important; }
.pl-sm-1,
.px-sm-1 {
padding-left: 0.25rem !important; }
.p-sm-2 {
padding: 0.5rem !important; }
.pt-sm-2,
.py-sm-2 {
padding-top: 0.5rem !important; }
.pr-sm-2,
.px-sm-2 {
padding-right: 0.5rem !important; }
.pb-sm-2,
.py-sm-2 {
padding-bottom: 0.5rem !important; }
.pl-sm-2,
.px-sm-2 {
padding-left: 0.5rem !important; }
.p-sm-3 {
padding: 1rem !important; }
.pt-sm-3,
.py-sm-3 {
padding-top: 1rem !important; }
.pr-sm-3,
.px-sm-3 {
padding-right: 1rem !important; }
.pb-sm-3,
.py-sm-3 {
padding-bottom: 1rem !important; }
.pl-sm-3,
.px-sm-3 {
padding-left: 1rem !important; }
.p-sm-4 {
padding: 1.5rem !important; }
.pt-sm-4,
.py-sm-4 {
padding-top: 1.5rem !important; }
.pr-sm-4,
.px-sm-4 {
padding-right: 1.5rem !important; }
.pb-sm-4,
.py-sm-4 {
padding-bottom: 1.5rem !important; }
.pl-sm-4,
.px-sm-4 {
padding-left: 1.5rem !important; }
.p-sm-5 {
padding: 3rem !important; }
.pt-sm-5,
.py-sm-5 {
padding-top: 3rem !important; }
.pr-sm-5,
.px-sm-5 {
padding-right: 3rem !important; }
.pb-sm-5,
.py-sm-5 {
padding-bottom: 3rem !important; }
.pl-sm-5,
.px-sm-5 {
padding-left: 3rem !important; }
.m-sm-auto {
margin: auto !important; }
.mt-sm-auto,
.my-sm-auto {
margin-top: auto !important; }
.mr-sm-auto,
.mx-sm-auto {
margin-right: auto !important; }
.mb-sm-auto,
.my-sm-auto {
margin-bottom: auto !important; }
.ml-sm-auto,
.mx-sm-auto {
margin-left: auto !important; } }
@media (min-width: 768px) {
.m-md-0 {
margin: 0 !important; }
.mt-md-0,
.my-md-0 {
margin-top: 0 !important; }
.mr-md-0,
.mx-md-0 {
margin-right: 0 !important; }
.mb-md-0,
.my-md-0 {
margin-bottom: 0 !important; }
.ml-md-0,
.mx-md-0 {
margin-left: 0 !important; }
.m-md-1 {
margin: 0.25rem !important; }
.mt-md-1,
.my-md-1 {
margin-top: 0.25rem !important; }
.mr-md-1,
.mx-md-1 {
margin-right: 0.25rem !important; }
.mb-md-1,
.my-md-1 {
margin-bottom: 0.25rem !important; }
.ml-md-1,
.mx-md-1 {
margin-left: 0.25rem !important; }
.m-md-2 {
margin: 0.5rem !important; }
.mt-md-2,
.my-md-2 {
margin-top: 0.5rem !important; }
.mr-md-2,
.mx-md-2 {
margin-right: 0.5rem !important; }
.mb-md-2,
.my-md-2 {
margin-bottom: 0.5rem !important; }
.ml-md-2,
.mx-md-2 {
margin-left: 0.5rem !important; }
.m-md-3 {
margin: 1rem !important; }
.mt-md-3,
.my-md-3 {
margin-top: 1rem !important; }
.mr-md-3,
.mx-md-3 {
margin-right: 1rem !important; }
.mb-md-3,
.my-md-3 {
margin-bottom: 1rem !important; }
.ml-md-3,
.mx-md-3 {
margin-left: 1rem !important; }
.m-md-4 {
margin: 1.5rem !important; }
.mt-md-4,
.my-md-4 {
margin-top: 1.5rem !important; }
.mr-md-4,
.mx-md-4 {
margin-right: 1.5rem !important; }
.mb-md-4,
.my-md-4 {
margin-bottom: 1.5rem !important; }
.ml-md-4,
.mx-md-4 {
margin-left: 1.5rem !important; }
.m-md-5 {
margin: 3rem !important; }
.mt-md-5,
.my-md-5 {
margin-top: 3rem !important; }
.mr-md-5,
.mx-md-5 {
margin-right: 3rem !important; }
.mb-md-5,
.my-md-5 {
margin-bottom: 3rem !important; }
.ml-md-5,
.mx-md-5 {
margin-left: 3rem !important; }
.p-md-0 {
padding: 0 !important; }
.pt-md-0,
.py-md-0 {
padding-top: 0 !important; }
.pr-md-0,
.px-md-0 {
padding-right: 0 !important; }
.pb-md-0,
.py-md-0 {
padding-bottom: 0 !important; }
.pl-md-0,
.px-md-0 {
padding-left: 0 !important; }
.p-md-1 {
padding: 0.25rem !important; }
.pt-md-1,
.py-md-1 {
padding-top: 0.25rem !important; }
.pr-md-1,
.px-md-1 {
padding-right: 0.25rem !important; }
.pb-md-1,
.py-md-1 {
padding-bottom: 0.25rem !important; }
.pl-md-1,
.px-md-1 {
padding-left: 0.25rem !important; }
.p-md-2 {
padding: 0.5rem !important; }
.pt-md-2,
.py-md-2 {
padding-top: 0.5rem !important; }
.pr-md-2,
.px-md-2 {
padding-right: 0.5rem !important; }
.pb-md-2,
.py-md-2 {
padding-bottom: 0.5rem !important; }
.pl-md-2,
.px-md-2 {
padding-left: 0.5rem !important; }
.p-md-3 {
padding: 1rem !important; }
.pt-md-3,
.py-md-3 {
padding-top: 1rem !important; }
.pr-md-3,
.px-md-3 {
padding-right: 1rem !important; }
.pb-md-3,
.py-md-3 {
padding-bottom: 1rem !important; }
.pl-md-3,
.px-md-3 {
padding-left: 1rem !important; }
.p-md-4 {
padding: 1.5rem !important; }
.pt-md-4,
.py-md-4 {
padding-top: 1.5rem !important; }
.pr-md-4,
.px-md-4 {
padding-right: 1.5rem !important; }
.pb-md-4,
.py-md-4 {
padding-bottom: 1.5rem !important; }
.pl-md-4,
.px-md-4 {
padding-left: 1.5rem !important; }
.p-md-5 {
padding: 3rem !important; }
.pt-md-5,
.py-md-5 {
padding-top: 3rem !important; }
.pr-md-5,
.px-md-5 {
padding-right: 3rem !important; }
.pb-md-5,
.py-md-5 {
padding-bottom: 3rem !important; }
.pl-md-5,
.px-md-5 {
padding-left: 3rem !important; }
.m-md-auto {
margin: auto !important; }
.mt-md-auto,
.my-md-auto {
margin-top: auto !important; }
.mr-md-auto,
.mx-md-auto {
margin-right: auto !important; }
.mb-md-auto,
.my-md-auto {
margin-bottom: auto !important; }
.ml-md-auto,
.mx-md-auto {
margin-left: auto !important; } }
@media (min-width: 992px) {
.m-lg-0 {
margin: 0 !important; }
.mt-lg-0,
.my-lg-0 {
margin-top: 0 !important; }
.mr-lg-0,
.mx-lg-0 {
margin-right: 0 !important; }
.mb-lg-0,
.my-lg-0 {
margin-bottom: 0 !important; }
.ml-lg-0,
.mx-lg-0 {
margin-left: 0 !important; }
.m-lg-1 {
margin: 0.25rem !important; }
.mt-lg-1,
.my-lg-1 {
margin-top: 0.25rem !important; }
.mr-lg-1,
.mx-lg-1 {
margin-right: 0.25rem !important; }
.mb-lg-1,
.my-lg-1 {
margin-bottom: 0.25rem !important; }
.ml-lg-1,
.mx-lg-1 {
margin-left: 0.25rem !important; }
.m-lg-2 {
margin: 0.5rem !important; }
.mt-lg-2,
.my-lg-2 {
margin-top: 0.5rem !important; }
.mr-lg-2,
.mx-lg-2 {
margin-right: 0.5rem !important; }
.mb-lg-2,
.my-lg-2 {
margin-bottom: 0.5rem !important; }
.ml-lg-2,
.mx-lg-2 {
margin-left: 0.5rem !important; }
.m-lg-3 {
margin: 1rem !important; }
.mt-lg-3,
.my-lg-3 {
margin-top: 1rem !important; }
.mr-lg-3,
.mx-lg-3 {
margin-right: 1rem !important; }
.mb-lg-3,
.my-lg-3 {
margin-bottom: 1rem !important; }
.ml-lg-3,
.mx-lg-3 {
margin-left: 1rem !important; }
.m-lg-4 {
margin: 1.5rem !important; }
.mt-lg-4,
.my-lg-4 {
margin-top: 1.5rem !important; }
.mr-lg-4,
.mx-lg-4 {
margin-right: 1.5rem !important; }
.mb-lg-4,
.my-lg-4 {
margin-bottom: 1.5rem !important; }
.ml-lg-4,
.mx-lg-4 {
margin-left: 1.5rem !important; }
.m-lg-5 {
margin: 3rem !important; }
.mt-lg-5,
.my-lg-5 {
margin-top: 3rem !important; }
.mr-lg-5,
.mx-lg-5 {
margin-right: 3rem !important; }
.mb-lg-5,
.my-lg-5 {
margin-bottom: 3rem !important; }
.ml-lg-5,
.mx-lg-5 {
margin-left: 3rem !important; }
.p-lg-0 {
padding: 0 !important; }
.pt-lg-0,
.py-lg-0 {
padding-top: 0 !important; }
.pr-lg-0,
.px-lg-0 {
padding-right: 0 !important; }
.pb-lg-0,
.py-lg-0 {
padding-bottom: 0 !important; }
.pl-lg-0,
.px-lg-0 {
padding-left: 0 !important; }
.p-lg-1 {
padding: 0.25rem !important; }
.pt-lg-1,
.py-lg-1 {
padding-top: 0.25rem !important; }
.pr-lg-1,
.px-lg-1 {
padding-right: 0.25rem !important; }
.pb-lg-1,
.py-lg-1 {
padding-bottom: 0.25rem !important; }
.pl-lg-1,
.px-lg-1 {
padding-left: 0.25rem !important; }
.p-lg-2 {
padding: 0.5rem !important; }
.pt-lg-2,
.py-lg-2 {
padding-top: 0.5rem !important; }
.pr-lg-2,
.px-lg-2 {
padding-right: 0.5rem !important; }
.pb-lg-2,
.py-lg-2 {
padding-bottom: 0.5rem !important; }
.pl-lg-2,
.px-lg-2 {
padding-left: 0.5rem !important; }
.p-lg-3 {
padding: 1rem !important; }
.pt-lg-3,
.py-lg-3 {
padding-top: 1rem !important; }
.pr-lg-3,
.px-lg-3 {
padding-right: 1rem !important; }
.pb-lg-3,
.py-lg-3 {
padding-bottom: 1rem !important; }
.pl-lg-3,
.px-lg-3 {
padding-left: 1rem !important; }
.p-lg-4 {
padding: 1.5rem !important; }
.pt-lg-4,
.py-lg-4 {
padding-top: 1.5rem !important; }
.pr-lg-4,
.px-lg-4 {
padding-right: 1.5rem !important; }
.pb-lg-4,
.py-lg-4 {
padding-bottom: 1.5rem !important; }
.pl-lg-4,
.px-lg-4 {
padding-left: 1.5rem !important; }
.p-lg-5 {
padding: 3rem !important; }
.pt-lg-5,
.py-lg-5 {
padding-top: 3rem !important; }
.pr-lg-5,
.px-lg-5 {
padding-right: 3rem !important; }
.pb-lg-5,
.py-lg-5 {
padding-bottom: 3rem !important; }
.pl-lg-5,
.px-lg-5 {
padding-left: 3rem !important; }
.m-lg-auto {
margin: auto !important; }
.mt-lg-auto,
.my-lg-auto {
margin-top: auto !important; }
.mr-lg-auto,
.mx-lg-auto {
margin-right: auto !important; }
.mb-lg-auto,
.my-lg-auto {
margin-bottom: auto !important; }
.ml-lg-auto,
.mx-lg-auto {
margin-left: auto !important; } }
@media (min-width: 1600px) {
.m-xl-0 {
margin: 0 !important; }
.mt-xl-0,
.my-xl-0 {
margin-top: 0 !important; }
.mr-xl-0,
.mx-xl-0 {
margin-right: 0 !important; }
.mb-xl-0,
.my-xl-0 {
margin-bottom: 0 !important; }
.ml-xl-0,
.mx-xl-0 {
margin-left: 0 !important; }
.m-xl-1 {
margin: 0.25rem !important; }
.mt-xl-1,
.my-xl-1 {
margin-top: 0.25rem !important; }
.mr-xl-1,
.mx-xl-1 {
margin-right: 0.25rem !important; }
.mb-xl-1,
.my-xl-1 {
margin-bottom: 0.25rem !important; }
.ml-xl-1,
.mx-xl-1 {
margin-left: 0.25rem !important; }
.m-xl-2 {
margin: 0.5rem !important; }
.mt-xl-2,
.my-xl-2 {
margin-top: 0.5rem !important; }
.mr-xl-2,
.mx-xl-2 {
margin-right: 0.5rem !important; }
.mb-xl-2,
.my-xl-2 {
margin-bottom: 0.5rem !important; }
.ml-xl-2,
.mx-xl-2 {
margin-left: 0.5rem !important; }
.m-xl-3 {
margin: 1rem !important; }
.mt-xl-3,
.my-xl-3 {
margin-top: 1rem !important; }
.mr-xl-3,
.mx-xl-3 {
margin-right: 1rem !important; }
.mb-xl-3,
.my-xl-3 {
margin-bottom: 1rem !important; }
.ml-xl-3,
.mx-xl-3 {
margin-left: 1rem !important; }
.m-xl-4 {
margin: 1.5rem !important; }
.mt-xl-4,
.my-xl-4 {
margin-top: 1.5rem !important; }
.mr-xl-4,
.mx-xl-4 {
margin-right: 1.5rem !important; }
.mb-xl-4,
.my-xl-4 {
margin-bottom: 1.5rem !important; }
.ml-xl-4,
.mx-xl-4 {
margin-left: 1.5rem !important; }
.m-xl-5 {
margin: 3rem !important; }
.mt-xl-5,
.my-xl-5 {
margin-top: 3rem !important; }
.mr-xl-5,
.mx-xl-5 {
margin-right: 3rem !important; }
.mb-xl-5,
.my-xl-5 {
margin-bottom: 3rem !important; }
.ml-xl-5,
.mx-xl-5 {
margin-left: 3rem !important; }
.p-xl-0 {
padding: 0 !important; }
.pt-xl-0,
.py-xl-0 {
padding-top: 0 !important; }
.pr-xl-0,
.px-xl-0 {
padding-right: 0 !important; }
.pb-xl-0,
.py-xl-0 {
padding-bottom: 0 !important; }
.pl-xl-0,
.px-xl-0 {
padding-left: 0 !important; }
.p-xl-1 {
padding: 0.25rem !important; }
.pt-xl-1,
.py-xl-1 {
padding-top: 0.25rem !important; }
.pr-xl-1,
.px-xl-1 {
padding-right: 0.25rem !important; }
.pb-xl-1,
.py-xl-1 {
padding-bottom: 0.25rem !important; }
.pl-xl-1,
.px-xl-1 {
padding-left: 0.25rem !important; }
.p-xl-2 {
padding: 0.5rem !important; }
.pt-xl-2,
.py-xl-2 {
padding-top: 0.5rem !important; }
.pr-xl-2,
.px-xl-2 {
padding-right: 0.5rem !important; }
.pb-xl-2,
.py-xl-2 {
padding-bottom: 0.5rem !important; }
.pl-xl-2,
.px-xl-2 {
padding-left: 0.5rem !important; }
.p-xl-3 {
padding: 1rem !important; }
.pt-xl-3,
.py-xl-3 {
padding-top: 1rem !important; }
.pr-xl-3,
.px-xl-3 {
padding-right: 1rem !important; }
.pb-xl-3,
.py-xl-3 {
padding-bottom: 1rem !important; }
.pl-xl-3,
.px-xl-3 {
padding-left: 1rem !important; }
.p-xl-4 {
padding: 1.5rem !important; }
.pt-xl-4,
.py-xl-4 {
padding-top: 1.5rem !important; }
.pr-xl-4,
.px-xl-4 {
padding-right: 1.5rem !important; }
.pb-xl-4,
.py-xl-4 {
padding-bottom: 1.5rem !important; }
.pl-xl-4,
.px-xl-4 {
padding-left: 1.5rem !important; }
.p-xl-5 {
padding: 3rem !important; }
.pt-xl-5,
.py-xl-5 {
padding-top: 3rem !important; }
.pr-xl-5,
.px-xl-5 {
padding-right: 3rem !important; }
.pb-xl-5,
.py-xl-5 {
padding-bottom: 3rem !important; }
.pl-xl-5,
.px-xl-5 {
padding-left: 3rem !important; }
.m-xl-auto {
margin: auto !important; }
.mt-xl-auto,
.my-xl-auto {
margin-top: auto !important; }
.mr-xl-auto,
.mx-xl-auto {
margin-right: auto !important; }
.mb-xl-auto,
.my-xl-auto {
margin-bottom: auto !important; }
.ml-xl-auto,
.mx-xl-auto {
margin-left: auto !important; } }
.text-monospace {
font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; }
.text-justify {
text-align: justify !important; }
.text-nowrap {
white-space: nowrap !important; }
.text-truncate {
overflow: hidden;
-o-text-overflow: ellipsis;
text-overflow: ellipsis;
white-space: nowrap; }
.text-left {
text-align: left !important; }
.text-right {
text-align: right !important; }
.text-center {
text-align: center !important; }
@media (min-width: 576px) {
.text-sm-left {
text-align: left !important; }
.text-sm-right {
text-align: right !important; }
.text-sm-center {
text-align: center !important; } }
@media (min-width: 768px) {
.text-md-left {
text-align: left !important; }
.text-md-right {
text-align: right !important; }
.text-md-center {
text-align: center !important; } }
@media (min-width: 992px) {
.text-lg-left {
text-align: left !important; }
.text-lg-right {
text-align: right !important; }
.text-lg-center {
text-align: center !important; } }
@media (min-width: 1600px) {
.text-xl-left {
text-align: left !important; }
.text-xl-right {
text-align: right !important; }
.text-xl-center {
text-align: center !important; } }
.text-lowercase {
text-transform: lowercase !important; }
.text-uppercase {
text-transform: uppercase !important; }
.text-capitalize {
text-transform: capitalize !important; }
.font-weight-light {
font-weight: 300 !important; }
.font-weight-normal {
font-weight: 400 !important; }
.font-weight-bold {
font-weight: 800 !important; }
.font-italic {
font-style: italic !important; }
.text-white {
color: #fff !important; }
.text-primary {
color: #7460ee !important; }
a.text-primary:hover, a.text-primary:focus {
color: #4c32e9 !important; }
.text-secondary {
color: #6c757d !important; }
a.text-secondary:hover, a.text-secondary:focus {
color: #545b62 !important; }
.text-success {
color: #36bea6 !important; }
a.text-success:hover, a.text-success:focus {
color: #2b9683 !important; }
.text-info {
color: #2962FF !important; }
a.text-info:hover, a.text-info:focus {
color: #0041f5 !important; }
.text-warning {
color: #ffbc34 !important; }
a.text-warning:hover, a.text-warning:focus {
color: #ffab01 !important; }
.text-danger {
color: #f62d51 !important; }
a.text-danger:hover, a.text-danger:focus {
color: #e60a31 !important; }
.text-light {
color: #f8f9fa !important; }
a.text-light:hover, a.text-light:focus {
color: #dae0e5 !important; }
.text-dark {
color: #343a40 !important; }
a.text-dark:hover, a.text-dark:focus {
color: #1d2124 !important; }
.text-cyan {
color: #4fc3f7 !important; }
a.text-cyan:hover, a.text-cyan:focus {
color: #1eb2f5 !important; }
.text-orange {
color: #fb8c00 !important; }
a.text-orange:hover, a.text-orange:focus {
color: #c87000 !important; }
.text-purple {
color: #7460ee !important; }
a.text-purple:hover, a.text-purple:focus {
color: #4c32e9 !important; }
.text-body {
color: #3e5569 !important; }
.text-muted {
color: #a1aab2 !important; }
.text-black-50 {
color: rgba(0, 0, 0, 0.5) !important; }
.text-white-50 {
color: rgba(255, 255, 255, 0.5) !important; }
.text-hide {
font: 0/0 a;
color: transparent;
text-shadow: none;
background-color: transparent;
border: 0; }
.visible {
visibility: visible !important; }
.invisible {
visibility: hidden !important; }
@media print {
*,
*::before,
*::after {
text-shadow: none !important;
-webkit-box-shadow: none !important;
box-shadow: none !important; }
a:not(.btn) {
text-decoration: underline; }
abbr[title]::after {
content: " (" attr(title) ")"; }
pre {
white-space: pre-wrap !important; }
pre,
blockquote {
border: 1px solid #a1aab2;
page-break-inside: avoid; }
thead {
display: table-header-group; }
tr,
img {
page-break-inside: avoid; }
p,
h2,
h3 {
orphans: 3;
widows: 3; }
h2,
h3 {
page-break-after: avoid; }
@page {
size: a3; }
body {
min-width: 992px !important; }
.container {
min-width: 992px !important; }
.navbar {
display: none; }
.badge {
border: 1px solid #000; }
.table {
border-collapse: collapse !important; }
.table td,
.table th {
background-color: #fff !important; }
.table-bordered th,
.table-bordered td {
border: 1px solid #dee2e6 !important; } }
/*******************
Padding margin property
*******************/
html[dir="ltr"] body .m-t-5 {
margin-top: 5px; }
html[dir="ltr"] body .m-b-5 {
margin-bottom: 5px; }
html[dir="ltr"] body .m-r-5 {
margin-right: 5px; }
html[dir="ltr"] body .m-l-5 {
margin-left: 5px; }
html[dir="ltr"] body .p-t-5 {
padding-top: 5px; }
html[dir="ltr"] body .p-b-5 {
padding-bottom: 5px; }
html[dir="ltr"] body .p-r-5 {
padding-right: 5px; }
html[dir="ltr"] body .p-l-5 {
padding-left: 5px; }
html[dir="ltr"] body .p-5 {
padding: 5px; }
html[dir="ltr"] body .m-5 {
margin: 5px; }
html[dir="ltr"] body .m-t-10 {
margin-top: 10px; }
html[dir="ltr"] body .m-b-10 {
margin-bottom: 10px; }
html[dir="ltr"] body .m-r-10 {
margin-right: 10px; }
html[dir="ltr"] body .m-l-10 {
margin-left: 10px; }
html[dir="ltr"] body .p-t-10 {
padding-top: 10px; }
html[dir="ltr"] body .p-b-10 {
padding-bottom: 10px; }
html[dir="ltr"] body .p-r-10 {
padding-right: 10px; }
html[dir="ltr"] body .p-l-10 {
padding-left: 10px; }
html[dir="ltr"] body .p-10 {
padding: 10px; }
html[dir="ltr"] body .m-10 {
margin: 10px; }
html[dir="ltr"] body .m-t-15 {
margin-top: 15px; }
html[dir="ltr"] body .m-b-15 {
margin-bottom: 15px; }
html[dir="ltr"] body .m-r-15 {
margin-right: 15px; }
html[dir="ltr"] body .m-l-15 {
margin-left: 15px; }
html[dir="ltr"] body .p-t-15 {
padding-top: 15px; }
html[dir="ltr"] body .p-b-15 {
padding-bottom: 15px; }
html[dir="ltr"] body .p-r-15 {
padding-right: 15px; }
html[dir="ltr"] body .p-l-15 {
padding-left: 15px; }
html[dir="ltr"] body .p-15 {
padding: 15px; }
html[dir="ltr"] body .m-15 {
margin: 15px; }
html[dir="ltr"] body .m-t-20 {
margin-top: 20px; }
html[dir="ltr"] body .m-b-20 {
margin-bottom: 20px; }
html[dir="ltr"] body .m-r-20 {
margin-right: 20px; }
html[dir="ltr"] body .m-l-20 {
margin-left: 20px; }
html[dir="ltr"] body .p-t-20 {
padding-top: 20px; }
html[dir="ltr"] body .p-b-20 {
padding-bottom: 20px; }
html[dir="ltr"] body .p-r-20 {
padding-right: 20px; }
html[dir="ltr"] body .p-l-20 {
padding-left: 20px; }
html[dir="ltr"] body .p-20 {
padding: 20px; }
html[dir="ltr"] body .m-20 {
margin: 20px; }
html[dir="ltr"] body .m-t-25 {
margin-top: 25px; }
html[dir="ltr"] body .m-b-25 {
margin-bottom: 25px; }
html[dir="ltr"] body .m-r-25 {
margin-right: 25px; }
html[dir="ltr"] body .m-l-25 {
margin-left: 25px; }
html[dir="ltr"] body .p-t-25 {
padding-top: 25px; }
html[dir="ltr"] body .p-b-25 {
padding-bottom: 25px; }
html[dir="ltr"] body .p-r-25 {
padding-right: 25px; }
html[dir="ltr"] body .p-l-25 {
padding-left: 25px; }
html[dir="ltr"] body .p-25 {
padding: 25px; }
html[dir="ltr"] body .m-25 {
margin: 25px; }
html[dir="ltr"] body .m-t-30 {
margin-top: 30px; }
html[dir="ltr"] body .m-b-30 {
margin-bottom: 30px; }
html[dir="ltr"] body .m-r-30 {
margin-right: 30px; }
html[dir="ltr"] body .m-l-30 {
margin-left: 30px; }
html[dir="ltr"] body .p-t-30 {
padding-top: 30px; }
html[dir="ltr"] body .p-b-30 {
padding-bottom: 30px; }
html[dir="ltr"] body .p-r-30 {
padding-right: 30px; }
html[dir="ltr"] body .p-l-30 {
padding-left: 30px; }
html[dir="ltr"] body .p-30 {
padding: 30px; }
html[dir="ltr"] body .m-30 {
margin: 30px; }
html[dir="ltr"] body .m-t-40 {
margin-top: 40px; }
html[dir="ltr"] body .m-b-40 {
margin-bottom: 40px; }
html[dir="ltr"] body .m-r-40 {
margin-right: 40px; }
html[dir="ltr"] body .m-l-40 {
margin-left: 40px; }
html[dir="ltr"] body .p-t-40 {
padding-top: 40px; }
html[dir="ltr"] body .p-b-40 {
padding-bottom: 40px; }
html[dir="ltr"] body .p-r-40 {
padding-right: 40px; }
html[dir="ltr"] body .p-l-40 {
padding-left: 40px; }
html[dir="ltr"] body .p-40 {
padding: 40px; }
html[dir="ltr"] body .m-40 {
margin: 40px; }
/** * Zero */
html[dir="ltr"] body .m-0-0 {
margin: 0; }
html[dir="ltr"] body .m-t-0 {
margin-top: 0; }
html[dir="ltr"] body .m-r-0 {
margin-right: 0; }
html[dir="ltr"] body .m-b-0 {
margin-bottom: 0; }
html[dir="ltr"] body .m-l-0 {
margin-left: 0; }
html[dir="ltr"] body .p-0-0 {
padding: 0; }
html[dir="ltr"] body .p-t-0 {
padding-top: 0; }
html[dir="ltr"] body .p-r-0 {
padding-right: 0; }
html[dir="ltr"] body .p-b-0 {
padding-bottom: 0; }
html[dir="ltr"] body .p-l-0 {
padding-left: 0; }
#main-wrapper[data-layout="vertical"], #main-wrapper[data-layout="horizontal"] {
/*This is for the logo bg*/
/*This is for the sidebar bg*/ }
#main-wrapper[data-layout="vertical"] .topbar .top-navbar .navbar-header[data-logobg="skin1"], #main-wrapper[data-layout="horizontal"] .topbar .top-navbar .navbar-header[data-logobg="skin1"] {
background: #2962FF; }
#main-wrapper[data-layout="vertical"] .topbar .top-navbar .navbar-header[data-logobg="skin2"], #main-wrapper[data-layout="horizontal"] .topbar .top-navbar .navbar-header[data-logobg="skin2"] {
background: #fe5419; }
#main-wrapper[data-layout="vertical"] .topbar .top-navbar .navbar-header[data-logobg="skin3"], #main-wrapper[data-layout="horizontal"] .topbar .top-navbar .navbar-header[data-logobg="skin3"] {
background: #00b0ff; }
#main-wrapper[data-layout="vertical"] .topbar .top-navbar .navbar-header[data-logobg="skin4"], #main-wrapper[data-layout="horizontal"] .topbar .top-navbar .navbar-header[data-logobg="skin4"] {
background: #6659f7; }
#main-wrapper[data-layout="vertical"] .topbar .top-navbar .navbar-header[data-logobg="skin5"], #main-wrapper[data-layout="horizontal"] .topbar .top-navbar .navbar-header[data-logobg="skin5"] {
background: #414755; }
#main-wrapper[data-layout="vertical"] .topbar .top-navbar .navbar-header[data-logobg="skin6"], #main-wrapper[data-layout="horizontal"] .topbar .top-navbar .navbar-header[data-logobg="skin6"] {
background: #fff; }
#main-wrapper[data-layout="vertical"] .topbar .top-navbar .navbar-header[data-logobg="skin6"] .navbar-brand .dark-logo, #main-wrapper[data-layout="horizontal"] .topbar .top-navbar .navbar-header[data-logobg="skin6"] .navbar-brand .dark-logo {
display: inline; }
#main-wrapper[data-layout="vertical"] .topbar .top-navbar .navbar-header[data-logobg="skin6"] .navbar-brand .light-logo, #main-wrapper[data-layout="horizontal"] .topbar .top-navbar .navbar-header[data-logobg="skin6"] .navbar-brand .light-logo {
display: none; }
#main-wrapper[data-layout="vertical"] .topbar .top-navbar .navbar-header[data-logobg="skin6"] .nav-toggler, #main-wrapper[data-layout="vertical"] .topbar .top-navbar .navbar-header[data-logobg="skin6"] .topbartoggler, #main-wrapper[data-layout="horizontal"] .topbar .top-navbar .navbar-header[data-logobg="skin6"] .nav-toggler, #main-wrapper[data-layout="horizontal"] .topbar .top-navbar .navbar-header[data-logobg="skin6"] .topbartoggler {
color: #3e5569; }
#main-wrapper[data-layout="vertical"] .topbar .navbar-collapse[data-navbarbg="skin1"], #main-wrapper[data-layout="vertical"] .topbar[data-navbarbg="skin1"], #main-wrapper[data-layout="horizontal"] .topbar .navbar-collapse[data-navbarbg="skin1"], #main-wrapper[data-layout="horizontal"] .topbar[data-navbarbg="skin1"] {
background: #2962FF; }
#main-wrapper[data-layout="vertical"] .topbar .navbar-collapse[data-navbarbg="skin2"], #main-wrapper[data-layout="vertical"] .topbar[data-navbarbg="skin2"], #main-wrapper[data-layout="horizontal"] .topbar .navbar-collapse[data-navbarbg="skin2"], #main-wrapper[data-layout="horizontal"] .topbar[data-navbarbg="skin2"] {
background: #fe5419; }
#main-wrapper[data-layout="vertical"] .topbar .navbar-collapse[data-navbarbg="skin3"], #main-wrapper[data-layout="vertical"] .topbar[data-navbarbg="skin3"], #main-wrapper[data-layout="horizontal"] .topbar .navbar-collapse[data-navbarbg="skin3"], #main-wrapper[data-layout="horizontal"] .topbar[data-navbarbg="skin3"] {
background: #00b0ff; }
#main-wrapper[data-layout="vertical"] .topbar .navbar-collapse[data-navbarbg="skin4"], #main-wrapper[data-layout="vertical"] .topbar[data-navbarbg="skin4"], #main-wrapper[data-layout="horizontal"] .topbar .navbar-collapse[data-navbarbg="skin4"], #main-wrapper[data-layout="horizontal"] .topbar[data-navbarbg="skin4"] {
background: #6659f7; }
#main-wrapper[data-layout="vertical"] .topbar .navbar-collapse[data-navbarbg="skin5"], #main-wrapper[data-layout="vertical"] .topbar[data-navbarbg="skin5"], #main-wrapper[data-layout="horizontal"] .topbar .navbar-collapse[data-navbarbg="skin5"], #main-wrapper[data-layout="horizontal"] .topbar[data-navbarbg="skin5"] {
background: #414755; }
#main-wrapper[data-layout="vertical"] .topbar .navbar-collapse[data-navbarbg="skin6"], #main-wrapper[data-layout="vertical"] .topbar[data-navbarbg="skin6"], #main-wrapper[data-layout="horizontal"] .topbar .navbar-collapse[data-navbarbg="skin6"], #main-wrapper[data-layout="horizontal"] .topbar[data-navbarbg="skin6"] {
background: #fff; }
#main-wrapper[data-layout="vertical"] .left-sidebar[data-sidebarbg="skin1"], #main-wrapper[data-layout="vertical"] .left-sidebar[data-sidebarbg="skin1"] ul, #main-wrapper[data-layout="horizontal"] .left-sidebar[data-sidebarbg="skin1"], #main-wrapper[data-layout="horizontal"] .left-sidebar[data-sidebarbg="skin1"] ul {
background: #2962FF; }
#main-wrapper[data-layout="vertical"] .left-sidebar[data-sidebarbg="skin1"] .create-btn, #main-wrapper[data-layout="vertical"] .left-sidebar[data-sidebarbg="skin1"] ul .create-btn, #main-wrapper[data-layout="horizontal"] .left-sidebar[data-sidebarbg="skin1"] .create-btn, #main-wrapper[data-layout="horizontal"] .left-sidebar[data-sidebarbg="skin1"] ul .create-btn {
background: #4fc3f7; }
#main-wrapper[data-layout="vertical"] .left-sidebar[data-sidebarbg="skin2"], #main-wrapper[data-layout="vertical"] .left-sidebar[data-sidebarbg="skin2"] ul, #main-wrapper[data-layout="horizontal"] .left-sidebar[data-sidebarbg="skin2"], #main-wrapper[data-layout="horizontal"] .left-sidebar[data-sidebarbg="skin2"] ul {
background: #fe5419; }
#main-wrapper[data-layout="vertical"] .left-sidebar[data-sidebarbg="skin2"]::after, #main-wrapper[data-layout="vertical"] .left-sidebar[data-sidebarbg="skin2"] ul::after, #main-wrapper[data-layout="horizontal"] .left-sidebar[data-sidebarbg="skin2"]::after, #main-wrapper[data-layout="horizontal"] .left-sidebar[data-sidebarbg="skin2"] ul::after {
background: url(../../assets/images/background/sidebarbg.png) no-repeat;
position: absolute;
top: 0px;
content: "";
width: 100%;
height: 100%;
opacity: 0.1;
z-index: -1; }
#main-wrapper[data-layout="vertical"] .left-sidebar[data-sidebarbg="skin3"], #main-wrapper[data-layout="vertical"] .left-sidebar[data-sidebarbg="skin3"] ul, #main-wrapper[data-layout="horizontal"] .left-sidebar[data-sidebarbg="skin3"], #main-wrapper[data-layout="horizontal"] .left-sidebar[data-sidebarbg="skin3"] ul {
background: #00b0ff; }
#main-wrapper[data-layout="vertical"] .left-sidebar[data-sidebarbg="skin4"], #main-wrapper[data-layout="vertical"] .left-sidebar[data-sidebarbg="skin4"] ul, #main-wrapper[data-layout="horizontal"] .left-sidebar[data-sidebarbg="skin4"], #main-wrapper[data-layout="horizontal"] .left-sidebar[data-sidebarbg="skin4"] ul {
background: #6659f7; }
#main-wrapper[data-layout="vertical"] .left-sidebar[data-sidebarbg="skin5"], #main-wrapper[data-layout="vertical"] .left-sidebar[data-sidebarbg="skin5"] ul, #main-wrapper[data-layout="horizontal"] .left-sidebar[data-sidebarbg="skin5"], #main-wrapper[data-layout="horizontal"] .left-sidebar[data-sidebarbg="skin5"] ul {
background: #414755; }
#main-wrapper[data-layout="vertical"] .left-sidebar[data-sidebarbg="skin5"] .create-btn, #main-wrapper[data-layout="vertical"] .left-sidebar[data-sidebarbg="skin5"] ul .create-btn, #main-wrapper[data-layout="horizontal"] .left-sidebar[data-sidebarbg="skin5"] .create-btn, #main-wrapper[data-layout="horizontal"] .left-sidebar[data-sidebarbg="skin5"] ul .create-btn {
background: #4fc3f7; }
#main-wrapper[data-layout="vertical"] .left-sidebar[data-sidebarbg="skin6"], #main-wrapper[data-layout="horizontal"] .left-sidebar[data-sidebarbg="skin6"] {
background: #fff; }
#main-wrapper[data-layout="vertical"] .left-sidebar[data-sidebarbg="skin6"] .sidebar-nav ul, #main-wrapper[data-layout="horizontal"] .left-sidebar[data-sidebarbg="skin6"] .sidebar-nav ul {
background: #fff; }
#main-wrapper[data-layout="vertical"] .left-sidebar[data-sidebarbg="skin6"] .sidebar-nav ul .sidebar-item .sidebar-link, #main-wrapper[data-layout="horizontal"] .left-sidebar[data-sidebarbg="skin6"] .sidebar-nav ul .sidebar-item .sidebar-link {
color: #212529; }
#main-wrapper[data-layout="vertical"] .left-sidebar[data-sidebarbg="skin6"] .sidebar-nav ul .sidebar-item .sidebar-link i, #main-wrapper[data-layout="horizontal"] .left-sidebar[data-sidebarbg="skin6"] .sidebar-nav ul .sidebar-item .sidebar-link i {
color: #4F5467; }
#main-wrapper[data-layout="vertical"] .left-sidebar[data-sidebarbg="skin6"] .sidebar-nav ul .nav-small-cap, #main-wrapper[data-layout="horizontal"] .left-sidebar[data-sidebarbg="skin6"] .sidebar-nav ul .nav-small-cap {
color: #212529;
opacity: 0.7; }
#main-wrapper[data-layout="vertical"] .left-sidebar[data-sidebarbg="skin6"] .sidebar-nav .has-arrow::after, #main-wrapper[data-layout="horizontal"] .left-sidebar[data-sidebarbg="skin6"] .sidebar-nav .has-arrow::after {
border-color: #212529; }
#main-wrapper[data-layout="vertical"] .left-sidebar[data-sidebarbg="skin6"] .sidebar-nav .user-content, #main-wrapper[data-layout="vertical"] .left-sidebar[data-sidebarbg="skin6"] .sidebar-nav .user-name, #main-wrapper[data-layout="vertical"] .left-sidebar[data-sidebarbg="skin6"] .sidebar-nav .user-email, #main-wrapper[data-layout="horizontal"] .left-sidebar[data-sidebarbg="skin6"] .sidebar-nav .user-content, #main-wrapper[data-layout="horizontal"] .left-sidebar[data-sidebarbg="skin6"] .sidebar-nav .user-name, #main-wrapper[data-layout="horizontal"] .left-sidebar[data-sidebarbg="skin6"] .sidebar-nav .user-email {
color: #212529; }
#main-wrapper[data-layout="vertical"] .left-sidebar[data-sidebarbg="skin6"] .create-btn, #main-wrapper[data-layout="horizontal"] .left-sidebar[data-sidebarbg="skin6"] .create-btn {
background: #4fc3f7; }
/*==============================================================
For all pages
============================================================== */
#main-wrapper {
width: 100%;
overflow: hidden; }
.page-wrapper {
background: #eef5f9;
position: relative; }
.page-wrapper > .container-fluid {
padding: 20px;
min-height: calc(100vh - 180px); }
/*******************
Footer
*******************/
.footer {
padding: 15px 20px; }
/*******************
Stickey inner-left-part
*******************/
.left-part {
height: 100%;
width: 260px;
position: absolute;
border-right: 1px solid #e9ecef; }
.left-part.fixed-left-part {
position: fixed;
top: 0px;
padding-top: 10px; }
.left-part .show-left-part {
position: absolute;
top: 45%;
right: -41px; }
.right-part {
width: calc(100% - 260px);
min-height: calc(100vh - 64px);
overflow: auto;
margin-left: 260px; }
.reverse-mode .left-part {
right: 0;
border-left: 1px solid #e9ecef; }
.reverse-mode .show-left-part {
right: auto;
left: -41px; }
.reverse-mode .right-part {
margin-left: 0px;
margin-right: 260px; }
/*******************
Vertical layout
*******************/
#main-wrapper[data-layout="vertical"] {
/*Vertical*/
/*sidebar type*/
/*Sidebar position*/
/*Header position*/
/*Boxed Layout*/ }
#main-wrapper[data-layout="vertical"] .topbar .top-navbar .navbar-header {
-webkit-transition: 0.2s ease-in;
-o-transition: 0.2s ease-in;
transition: 0.2s ease-in; }
#main-wrapper[data-layout="vertical"][data-sidebartype="full"] .page-wrapper {
margin-left: 250px; }
#main-wrapper[data-layout="vertical"][data-sidebartype="iconbar"] .page-wrapper {
margin-left: 180px; }
#main-wrapper[data-layout="vertical"][data-sidebartype="iconbar"] .left-sidebar,
#main-wrapper[data-layout="vertical"][data-sidebartype="iconbar"] .topbar .top-navbar .navbar-header,
#main-wrapper[data-layout="vertical"][data-sidebartype="iconbar"] .sidebar-nav ul .sidebar-item {
width: 180px; }
#main-wrapper[data-layout="vertical"][data-sidebartype="iconbar"] .sidebar-nav ul .sidebar-item .sidebar-link {
display: block;
text-align: center; }
#main-wrapper[data-layout="vertical"][data-sidebartype="iconbar"] .sidebar-nav ul .sidebar-item .sidebar-link i {
display: block;
width: auto; }
#main-wrapper[data-layout="vertical"][data-sidebartype="overlay"] .topbar .top-navbar .navbar-header {
width: 250px; }
#main-wrapper[data-layout="vertical"][data-sidebartype="overlay"] .left-sidebar {
left: -250px; }
#main-wrapper[data-layout="vertical"][data-sidebartype="overlay"].show-sidebar .left-sidebar {
left: 0; }
#main-wrapper[data-layout="vertical"][data-sidebar-position="fixed"] .topbar .top-navbar .navbar-header {
position: fixed;
z-index: 10; }
#main-wrapper[data-layout="vertical"][data-sidebar-position="fixed"] .left-sidebar {
position: fixed; }
#main-wrapper[data-layout="vertical"][data-header-position="fixed"] .topbar {
position: fixed;
width: 100%; }
#main-wrapper[data-layout="vertical"][data-header-position="fixed"] .page-wrapper {
padding-top: 64px; }
#main-wrapper[data-layout="vertical"][data-boxed-layout="boxed"] {
max-width: 1200px;
margin: 0 auto;
position: relative;
-webkit-box-shadow: 1px 0 80px rgba(0, 0, 0, 0.2);
box-shadow: 1px 0 80px rgba(0, 0, 0, 0.2); }
#main-wrapper[data-layout="vertical"][data-boxed-layout="boxed"][data-header-position="fixed"] .topbar {
max-width: 1200px; }
/*******************
Vertical responsive layout
*******************/
@media (min-width: 768px) {
#main-wrapper[data-layout="vertical"] {
/*Vertical*/
/*Sidebar position*/
/*Vertical with mini-sidebar*/
/*Fixed sidebar with minisidebar*/ }
#main-wrapper[data-layout="vertical"][data-sidebartype="full"] .topbar .top-navbar .navbar-header {
width: 250px; }
#main-wrapper[data-layout="vertical"][data-sidebar-position="fixed"][data-sidebartype="full"] .topbar .top-navbar .navbar-collapse, #main-wrapper[data-layout="vertical"][data-sidebar-position="fixed"][data-sidebartype="overlay"] .topbar .top-navbar .navbar-collapse {
margin-left: 250px; }
#main-wrapper[data-layout="vertical"][data-sidebar-position="fixed"][data-sidebartype="mini-sidebar"] .topbar .top-navbar .navbar-collapse {
margin-left: 65px; }
#main-wrapper[data-layout="vertical"][data-sidebar-position="fixed"][data-sidebartype="iconbar"] .topbar .top-navbar .navbar-collapse {
margin-left: 180px; }
#main-wrapper[data-layout="vertical"][data-sidebartype="mini-sidebar"] .topbar .top-navbar .navbar-header {
width: 65px; }
#main-wrapper[data-layout="vertical"][data-sidebartype="mini-sidebar"] .topbar .top-navbar .navbar-header .logo-text {
display: none; }
#main-wrapper[data-layout="vertical"][data-sidebartype="mini-sidebar"] .topbar .top-navbar .navbar-header.expand-logo {
width: 250px; }
#main-wrapper[data-layout="vertical"][data-sidebartype="mini-sidebar"] .topbar .top-navbar .navbar-header.expand-logo .logo-text {
display: block; }
#main-wrapper[data-layout="vertical"][data-sidebar-position="fixed"][data-sidebartype="mini-sidebar"] .topbar .top-navbar .navbar-collapse {
margin-left: 65px; }
#main-wrapper[data-layout="vertical"][data-sidebartype="mini-sidebar"] .page-wrapper {
margin-left: 65px; }
#main-wrapper[data-layout="vertical"][data-sidebartype="mini-sidebar"] .sidebar-nav .hide-menu,
#main-wrapper[data-layout="vertical"][data-sidebartype="mini-sidebar"] .sidebar-nav .has-arrow:after {
display: none; }
#main-wrapper[data-layout="vertical"][data-sidebartype="mini-sidebar"] .sidebar-nav .nav-small-cap {
-webkit-box-pack: center;
-ms-flex-pack: center;
justify-content: center; }
#main-wrapper[data-layout="vertical"][data-sidebartype="mini-sidebar"] .left-sidebar {
width: 65px; }
#main-wrapper[data-layout="vertical"][data-sidebartype="mini-sidebar"] .left-sidebar:hover {
width: 250px; }
#main-wrapper[data-layout="vertical"][data-sidebartype="mini-sidebar"] .left-sidebar:hover .sidebar-nav .hide-menu,
#main-wrapper[data-layout="vertical"][data-sidebartype="mini-sidebar"] .left-sidebar:hover .sidebar-nav .has-arrow:after {
display: block; }
#main-wrapper[data-layout="vertical"][data-sidebartype="mini-sidebar"] .left-sidebar:hover .sidebar-nav .nav-small-cap {
-webkit-box-pack: start;
-ms-flex-pack: start;
justify-content: flex-start; } }
@media (max-width: 766px) {
#main-wrapper {
/*Header position*/ }
#main-wrapper[data-sidebartype="mini-sidebar"] .left-sidebar {
left: -250px; }
#main-wrapper.show-sidebar .left-sidebar {
left: 0; }
#main-wrapper[data-layout="vertical"][data-sidebar-position="fixed"] .topbar .top-navbar .navbar-collapse {
position: relative;
top: 64px; }
#main-wrapper[data-layout="vertical"][data-header-position="fixed"][data-sidebar-position="fixed"] .topbar .top-navbar .navbar-collapse {
position: relative;
top: 64px; }
.left-part {
left: -260px;
background: #eef5f9;
z-index: 1;
position: fixed;
-webkit-transition: 0.1s ease-in;
-o-transition: 0.1s ease-in;
transition: 0.1s ease-in; }
.left-part.show-panel {
left: 0px; }
.reverse-mode .left-part {
right: -260px;
left: auto; }
.reverse-mode .left-part.show-panel {
right: 0px; }
.right-part {
width: 100%;
margin-left: 0px; } }
* {
outline: none; }
body {
margin: 0;
overflow-x: hidden;
color: #3e5569;
background: #fff; }
html {
position: relative;
min-height: 100%; }
a {
color: #2962FF; }
a:hover,
a:focus {
text-decoration: none; }
a.link {
color: #3e5569; }
a.link:hover, a.link:focus {
color: #2962FF; }
.box {
border-radius: 2px;
padding: 10px; }
.no-wrap td,
.no-wrap th {
white-space: nowrap; }
/*******************
Blockquote
*******************/
html body blockquote {
border-left: 5px solid #7460ee;
border: 1px solid #e9ecef;
padding: 15px; }
.clear {
clear: both; }
ol li {
margin: 5px 0; }
/*******************
Thumb size
*******************/
.thumb-sm {
height: 32px;
width: 32px; }
.thumb-md {
height: 48px;
width: 48px; }
.thumb-lg {
height: 88px;
width: 88px; }
.hide {
display: none; }
.radius {
border-radius: 2px; }
/*******************
Opacity
*******************/
.op-5 {
opacity: 0.5; }
.op-3 {
opacity: 0.3; }
/*******************
font weight
*******************/
html body .font-bold {
font-weight: 800; }
html body .font-normal {
font-weight: 400; }
html body .font-light {
font-weight: 300; }
html body .font-medium {
font-weight: 600; }
html body .font-16 {
font-size: 16px; }
html body .font-12 {
font-size: 12px; }
html body .font-14 {
font-size: 14px; }
html body .font-10 {
font-size: 10px; }
html body .font-18 {
font-size: 18px; }
html body .font-20 {
font-size: 20px; }
html body .font-22 {
font-size: 22px; }
html body .font-24 {
font-size: 24px; }
html body .display-5 {
font-size: 3rem; }
html body .display-6 {
font-size: 2.5rem; }
html body .display-7 {
font-size: 2rem; }
/*******************
Background colors
*******************/
html body .bg-megna {
background-color: #4fc3f7; }
html body .bg-theme {
background-color: #2962FF; }
html body .bg-inverse {
background-color: #212529; }
html body .bg-purple {
background-color: #7460ee; }
html body .bg-light {
background-color: #e9ecef; }
html body .bg-white {
background-color: #fff; }
/*******************
Rounds
*******************/
.round {
line-height: 48px;
color: #fff;
width: 50px;
height: 50px;
display: inline-block;
font-weight: 400;
text-align: center;
border-radius: 100%;
background: #2962FF;
line-height: 52px; }
.round img {
border-radius: 100%; }
.round.round-info {
background: #2962FF; }
.round.round-warning {
background: #ffbc34; }
.round.round-danger {
background: #f62d51; }
.round.round-success {
background: #36bea6; }
.round.round-primary {
background: #7460ee; }
.round-lg {
line-height: 65px;
width: 60px;
height: 60px;
font-size: 30px; }
/*******************
Labels
*******************/
.label-rounded {
border-radius: 60px; }
/*******************
Badge
******************/
.badge {
font-weight: 300;
line-height: normal; }
.badge.badge-pill {
padding: 0.20em 0.6em; }
.badge-xs {
font-size: 9px; }
.badge-xs,
.badge-sm {
-webkit-transform: translate(0, -2px);
-ms-transform: translate(0, -2px);
-o-transform: translate(0, -2px);
transform: translate(0, -2px); }
/*******************
List-style-none
******************/
ul.list-style-none {
margin: 0px;
padding: 0px; }
ul.list-style-none li {
list-style: none; }
ul.list-style-none li a {
color: #3e5569;
padding: 8px 0px;
display: block;
text-decoration: none; }
ul.list-style-none li a:hover {
color: #2962FF; }
/*******************
Card
******************/
.card {
margin-bottom: 20px; }
.card .card-subtitle {
font-weight: 300;
margin-bottom: 10px;
color: #a1aab2; }
.card .card-title {
position: relative;
font-weight: 600;
margin-bottom: 10px; }
.card .card-actions {
float: right; }
.card .card-actions a {
padding: 0 5px;
cursor: pointer; }
.card .card-header .card-title {
margin-bottom: 0px; }
.card-alt {
margin: 0 -20px;
background: #e4e9ef; }
.card-group {
margin-bottom: 20px; }
.card-group .card {
border-right: 1px solid #e9ecef; }
.card-fullscreen {
position: fixed;
top: 0px;
left: 0px;
width: 100%;
height: 100%;
z-index: 9999;
overflow: auto; }
.oh {
overflow: hidden; }
.card-hover {
-webkit-transition: all .25s ease;
-o-transition: all .25s ease;
-moz-transition: all .25s ease;
transition: all .25s ease; }
.card-hover:hover {
webkit-transform: translateY(-4px) scale(1.01);
-moz-transform: translateY(-4px) scale(1.01);
-ms-transform: translateY(-4px) scale(1.01);
-o-transform: translateY(-4px) scale(1.01);
-webkit-transform: translateY(-4px) scale(1.01);
transform: translateY(-4px) scale(1.01);
-webkit-box-shadow: 0 14px 24px rgba(62, 57, 107, 0.1);
box-shadow: 0 14px 24px rgba(62, 57, 107, 0.1); }
.draggable-cards .card-header {
cursor: move; }
.card-moved .card {
background: #2962FF;
color: #fff; }
/*******************
Labels
*******************/
.label {
padding: 3px 10px;
line-height: 13px;
color: #fff;
font-weight: 400;
border-radius: 2px;
font-size: 75%; }
.label-rounded {
border-radius: 60px; }
.label-custom {
background-color: #4fc3f7; }
.label-success {
background-color: #36bea6; }
.label-info {
background-color: #2962FF; }
.label-warning {
background-color: #ffbc34; }
.label-danger {
background-color: #f62d51; }
.label-megna {
background-color: #4fc3f7; }
.label-primary {
background-color: #7460ee; }
.label-purple {
background-color: #7460ee; }
.label-red {
background-color: #f62d51; }
.label-inverse {
background-color: #343a40; }
.label-default {
background-color: #f8f9fa; }
/*******************
Preloader
********************/
.preloader {
width: 100%;
height: 100%;
top: 0px;
position: fixed;
z-index: 99999;
background: #fff; }
.lds-ripple {
display: inline-block;
position: relative;
width: 64px;
height: 64px;
position: absolute;
top: calc(50% - 3.5px);
left: calc(50% - 3.5px); }
.lds-ripple .lds-pos {
position: absolute;
border: 2px solid #2962FF;
opacity: 1;
border-radius: 50%;
-webkit-animation: lds-ripple 1s cubic-bezier(0, 0.1, 0.5, 1) infinite;
animation: lds-ripple 1s cubic-bezier(0, 0.1, 0.5, 1) infinite; }
.lds-ripple .lds-pos:nth-child(2) {
-webkit-animation-delay: -0.5s;
animation-delay: -0.5s; }
@-webkit-keyframes lds-ripple {
0% {
top: 28px;
left: 28px;
width: 0;
height: 0;
opacity: 0; }
5% {
top: 28px;
left: 28px;
width: 0;
height: 0;
opacity: 1; }
100% {
top: -1px;
left: -1px;
width: 58px;
height: 58px;
opacity: 0; } }
@keyframes lds-ripple {
0% {
top: 28px;
left: 28px;
width: 0;
height: 0;
opacity: 0; }
5% {
top: 28px;
left: 28px;
width: 0;
height: 0;
opacity: 1; }
100% {
top: -1px;
left: -1px;
width: 58px;
height: 58px;
opacity: 0; } }
/*******************
Notify
*******************/
.notify {
position: relative;
top: -18px;
right: -11px; }
.notify .heartbit {
position: absolute;
top: -20px;
right: -4px;
height: 25px;
width: 25px;
z-index: 10;
border: 5px solid #f62d51;
border-radius: 70px;
-moz-animation: heartbit 1s ease-out;
-moz-animation-iteration-count: infinite;
-o-animation: heartbit 1s ease-out;
-o-animation-iteration-count: infinite;
-webkit-animation: heartbit 1s ease-out;
-webkit-animation-iteration-count: infinite;
animation-iteration-count: infinite; }
.notify .point {
width: 6px;
height: 6px;
-webkit-border-radius: 30px;
-moz-border-radius: 30px;
border-radius: 30px;
background-color: #f62d51;
position: absolute;
right: 6px;
top: -10px; }
@-moz-keyframes heartbit {
0% {
-moz-transform: scale(0);
opacity: 0.0; }
25% {
-moz-transform: scale(0.1);
opacity: 0.1; }
50% {
-moz-transform: scale(0.5);
opacity: 0.3; }
75% {
-moz-transform: scale(0.8);
opacity: 0.5; }
100% {
-moz-transform: scale(1);
opacity: 0.0; } }
@-webkit-keyframes heartbit {
0% {
-webkit-transform: scale(0);
opacity: 0.0; }
25% {
-webkit-transform: scale(0.1);
opacity: 0.1; }
50% {
-webkit-transform: scale(0.5);
opacity: 0.3; }
75% {
-webkit-transform: scale(0.8);
opacity: 0.5; }
100% {
-webkit-transform: scale(1);
opacity: 0.0; } }
/*******************
General Topbar
*******************/
.topbar {
position: relative;
z-index: 50;
-webkit-transition: 0.2s ease-in;
-o-transition: 0.2s ease-in;
transition: 0.2s ease-in;
-webkit-box-shadow: 1px 0px 7px rgba(0, 0, 0, 0.05);
box-shadow: 1px 0px 7px rgba(0, 0, 0, 0.05);
background: #fff;
height: 64px; }
.topbar .navbar-collapse {
padding: 0px 10px 0 0; }
.topbar .top-navbar {
min-height: 64px;
padding: 0px; }
.topbar .top-navbar .dropdown-toggle::after {
display: none; }
.topbar .top-navbar .navbar-header {
line-height: 64px; }
.topbar .top-navbar .navbar-header .navbar-brand {
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
margin: 0px;
padding: 0 10px 0 10px; }
.topbar .top-navbar .navbar-header .navbar-brand .dark-logo {
display: none; }
.topbar .top-navbar .navbar-header .navbar-brand .logo-icon {
margin-right: 5px; }
.topbar .top-navbar .navbar-nav > .nav-item > .nav-link {
padding: 0px 15px;
font-size: 0.875rem;
line-height: 64px;
height: 64px; }
.topbar .top-navbar .navbar-nav > .nav-item {
-webkit-transition: 0.2s ease-in;
-o-transition: 0.2s ease-in;
transition: 0.2s ease-in; }
.topbar .top-navbar .navbar-nav > .nav-item:hover {
background: rgba(0, 0, 0, 0.05); }
.topbar .user-dd, .topbar .mailbox {
min-width: 280px; }
.topbar .nav-toggler, .topbar .topbartoggler {
color: #fff;
padding: 0 15px; }
.search-box .app-search {
z-index: 110;
width: 100%;
top: -1px;
-webkit-box-shadow: 1px 0px 20px rgba(0, 0, 0, 0.08);
box-shadow: 1px 0px 20px rgba(0, 0, 0, 0.08);
display: none;
left: 0px; }
.search-box .app-search .form-control {
padding: 23px 40px 20px 23px;
-webkit-transition: 0.2s ease-in;
-o-transition: 0.2s ease-in;
transition: 0.2s ease-in; }
.search-box .app-search .form-control:focus {
border-color: transparent; }
.search-box .app-search .srh-btn {
position: absolute;
top: 23px;
cursor: pointer;
right: 20px; }
/*******************
Megamenu
******************/
.topbar .mega-dropdown {
position: static; }
.topbar .mega-dropdown .dropdown-menu {
padding: 30px;
width: 100%;
max-height: 480px;
overflow: auto; }
/*******************
Designed dropdown
******************/
.topbar .dropdown-menu {
padding-top: 0px;
border: 0px;
-webkit-box-shadow: 1px 1px 15px rgba(0, 0, 0, 0.1);
box-shadow: 1px 1px 15px rgba(0, 0, 0, 0.1); }
.topbar .dropdown-menu .with-arrow {
position: absolute;
height: 10px;
overflow: hidden;
width: 40px;
top: -10px; }
.topbar .dropdown-menu .with-arrow > span {
background-color: #fff;
width: 15px;
height: 15px;
top: 3px;
left: 15px;
position: absolute;
content: "";
-moz-border-radius: 6px 0 0 0;
border-radius: 6px 0 0 0;
/*box-shadow:-3px -3px 8px rgba(0, 0, 0, 0.1); */ }
.topbar .dropdown-menu.dropdown-menu-right .with-arrow {
right: 0px; }
.topbar .dropdown-menu.dropdown-menu-right .with-arrow > span {
right: 20px;
left: auto; }
/*******************
Topbar Responsive
******************/
@media (max-width: 767px) {
.topbar .top-navbar .navbar-collapse.show, .topbar .top-navbar .navbar-collapse.collapsing {
display: block;
width: 100%;
border-top: 1px solid #e9ecef; }
.topbar .top-navbar .navbar-nav {
-webkit-box-orient: horizontal;
-webkit-box-direction: normal;
-ms-flex-direction: row;
flex-direction: row; }
.topbar .top-navbar .navbar-nav .dropdown {
position: static; }
.topbar .top-navbar .navbar-nav > .nav-item > .nav-link {
padding: 0 10px; }
.topbar .top-navbar .navbar-header {
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
width: 100%;
-webkit-box-pack: justify;
-ms-flex-pack: justify;
justify-content: space-between; }
.topbar .top-navbar .dropdown-menu {
position: absolute;
width: 100%; }
.topbar .top-navbar .dropdown-menu .with-arrow {
display: none; } }
/*
Template Name: Admin Template
Author: Wrappixel
File: scss
*/
/*******************
Table Cell
*******************/
.table-box {
display: table;
width: 100%; }
.cell {
display: table-cell;
vertical-align: middle; }
.table thead th,
.table th {
font-weight: 500; }
.nowrap {
white-space: nowrap; }
.lite-padding td {
padding: 5px; }
.v-middle td,
.v-middle th {
vertical-align: middle; }
/*******************
Table td vertical middle
*******************/
.vm.table td,
.vm.table th {
vertical-align: middle; }
.no-th-brd.table th {
border: 0px; }
.table.no-border tbody td {
border: 0px; }
/*******************
Table-Jsgrid table
******************/
.jsgrid-pager-page a,
.jsgrid-pager-current-page,
.jsgrid-pager-nav-button a {
-webkit-box-sizing: border-box;
box-sizing: border-box;
display: inline-block;
min-width: 1.5em;
padding: 0.5em 1em;
text-align: center;
text-decoration: none;
cursor: pointer;
color: #67757c;
border: 1px solid #ddd; }
.jsgrid-pager-page a:hover,
.jsgrid-pager-nav-button a:hover {
background-color: #2962FF;
color: #fff; }
.jsgrid-pager-current-page {
background-color: #2962FF;
color: #fff; }
.jsgrid-pager-page,
.jsgrid-pager-nav-button {
padding: 0; }
.jsgrid-pager-page.jsgrid-pager-current-page {
padding: 0.5em 1em !important; }
/*******************
Breadcrumb and page title
*******************/
.page-breadcrumb {
padding: 20px 20px 0 20px; }
.page-breadcrumb .page-title {
margin-bottom: 0px; }
.page-breadcrumb .breadcrumb {
padding: 0px;
margin: 0px;
background: transparent;
font-size: 12px; }
.page-breadcrumb .breadcrumb .breadcrumb-item + .breadcrumb-item::before {
content: "\e649";
font-family: themify;
color: #ced4da;
font-size: 11px; }
/*******************
Main sidebar
******************/
.left-sidebar {
position: absolute;
width: 250px;
height: 100%;
top: 0px;
z-index: 10;
padding-top: 64px;
background: #fff;
-webkit-box-shadow: 1px 0px 20px rgba(0, 0, 0, 0.08);
box-shadow: 1px 0px 20px rgba(0, 0, 0, 0.08); }
/*******************
sidebar navigation
******************/
.scroll-sidebar {
height: calc(100% - 20px);
position: relative; }
.sidebar-nav ul {
/*******************
Small cap
******************/ }
.sidebar-nav ul .sidebar-item {
width: 250px;
/*******************
First level
******************/ }
.sidebar-nav ul .sidebar-item .sidebar-link {
color: #fff;
padding: 14px 15px;
display: -webkit-box;
display: -ms-flexbox;
display: flex;
white-space: nowrap;
-webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
line-height: 25px;
opacity: 0.6; }
.sidebar-nav ul .sidebar-item .sidebar-link i {
font-style: normal;
width: 35px;
line-height: 25px;
font-size: 23px;
color: #fff;
display: inline-block;
text-align: center; }
.sidebar-nav ul .sidebar-item .sidebar-link.active, .sidebar-nav ul .sidebar-item .sidebar-link:hover {
opacity: 1; }
.sidebar-nav ul .sidebar-item.selected > .sidebar-link {
/*background: rgba(0, 0, 0, 0.04);*/
opacity: 1; }
.sidebar-nav ul .sidebar-item .first-level {
padding: 0 0 10px 0; }
.sidebar-nav ul .sidebar-item .first-level .sidebar-item.active .sidebar-link {
opacity: 1; }
.sidebar-nav ul .sidebar-item .first-level .sidebar-item .sidebar-link {
padding: 10px 15px; }
.sidebar-nav ul .sidebar-item .first-level .sidebar-item .sidebar-link i {
font-size: 14px; }
.sidebar-nav ul .nav-small-cap {
font-size: 12px;
padding: 14px 15px;
white-space: nowrap;
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
line-height: 30px;
margin-top: 10px;
color: #fff;
opacity: 0.3;
text-transform: uppercase; }
.sidebar-nav ul .nav-small-cap i {
line-height: 30px;
margin: 0 5px; }
.sidebar-nav > #sidebarnav > .sidebar-item > .sidebar-link:hover {
/*background: rgba(0, 0, 0, 0.04);*/ }
/*******************
common m-p removed
******************/
.sidebar-nav ul {
margin: 0px;
padding: 0px; }
.sidebar-nav ul li {
list-style: none; }
.collapse.in {
display: block; }
/*******************
Down arrow
******************/
.sidebar-nav .has-arrow {
position: relative; }
.sidebar-nav .has-arrow::after {
position: absolute;
content: '';
width: 7px;
height: 7px;
border-width: 1px 0 0 1px;
border-style: solid;
border-color: #fff;
margin-left: 10px;
-webkit-transform: rotate(135deg) translate(0, -50%);
-ms-transform: rotate(135deg) translate(0, -50%);
-o-transform: rotate(135deg) translate(0, -50%);
transform: rotate(135deg) translate(0, -50%);
-webkit-transform-origin: top;
-ms-transform-origin: top;
-o-transform-origin: top;
transform-origin: top;
top: 26px;
right: 15px;
-webkit-transition: all .3s ease-out;
-o-transition: all .3s ease-out;
transition: all .3s ease-out; }
/*.sidebar-nav .active > .has-arrow::after,*/
/*.sidebar-nav li.selected > .has-arrow::after,*/
.sidebar-nav li.active > .has-arrow::after,
.sidebar-nav li > .has-arrow.active::after,
.sidebar-nav .has-arrow[aria-expanded="true"]::after {
-webkit-transform: rotate(-135deg) translate(0, -50%);
-ms-transform: rotate(-135deg) translate(0, -50%);
-o-transform: rotate(-135deg) translate(0, -50%);
transform: rotate(-135deg) translate(0, -50%); }
/*******************
User Profile
******************/
.user-profile {
padding: 15px; }
.user-profile .user-content, .user-profile .user-name, .user-profile .user-email {
color: #fff;
overflow: hidden;
white-space: nowrap;
-o-text-overflow: ellipsis;
text-overflow: ellipsis; }
.create-btn {
height: 40px;
background: #343a40; }
/*******************
Wave Effects
*******************/
.waves-effect {
position: relative;
cursor: pointer;
display: inline-block;
overflow: hidden;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
-webkit-tap-highlight-color: transparent;
vertical-align: middle;
z-index: 1;
will-change: opacity, transform;
-webkit-transition: all 0.1s ease-out;
-moz-transition: all 0.1s ease-out;
-o-transition: all 0.1s ease-out;
-ms-transition: all 0.1s ease-out;
transition: all 0.1s ease-out; }
.waves-effect .waves-ripple {
position: absolute;
border-radius: 50%;
width: 20px;
height: 20px;
margin-top: -10px;
margin-left: -10px;
opacity: 0;
background: rgba(0, 0, 0, 0.2);
-webkit-transition: all 0.7s ease-out;
-moz-transition: all 0.7s ease-out;
-o-transition: all 0.7s ease-out;
-ms-transition: all 0.7s ease-out;
transition: all 0.7s ease-out;
-webkit-transition-property: -webkit-transform, opacity;
-moz-transition-property: -moz-transform, opacity;
-o-transition-property: -o-transform, opacity;
-webkit-transition-property: opacity, -webkit-transform;
transition-property: opacity, -webkit-transform;
-o-transition-property: transform, opacity;
transition-property: transform, opacity;
transition-property: transform, opacity, -webkit-transform;
-webkit-transform: scale(0);
-moz-transform: scale(0);
-ms-transform: scale(0);
-o-transform: scale(0);
transform: scale(0);
pointer-events: none; }
.waves-effect.waves-light .waves-ripple {
background-color: rgba(255, 255, 255, 0.45); }
.waves-effect.waves-red .waves-ripple {
background-color: rgba(244, 67, 54, 0.7); }
.waves-effect.waves-yellow .waves-ripple {
background-color: rgba(255, 235, 59, 0.7); }
.waves-effect.waves-orange .waves-ripple {
background-color: rgba(255, 152, 0, 0.7); }
.waves-effect.waves-purple .waves-ripple {
background-color: rgba(156, 39, 176, 0.7); }
.waves-effect.waves-green .waves-ripple {
background-color: rgba(76, 175, 80, 0.7); }
.waves-effect.waves-teal .waves-ripple {
background-color: rgba(0, 150, 136, 0.7); }
html body .waves-notransition {
-webkit-transition: none;
-moz-transition: none;
-o-transition: none;
-ms-transition: none;
transition: none; }
.waves-circle {
-webkit-transform: translateZ(0);
-moz-transform: translateZ(0);
-ms-transform: translateZ(0);
-o-transform: translateZ(0);
transform: translateZ(0);
text-align: center;
width: 2.5em;
height: 2.5em;
line-height: 2.5em;
border-radius: 50%;
-webkit-mask-image: none; }
.waves-input-wrapper {
border-radius: 0.2em;
vertical-align: bottom; }
.waves-input-wrapper .waves-button-input {
position: relative;
top: 0;
left: 0;
z-index: 1; }
.waves-block {
display: block; }
.btn-circle {
border-radius: 100%;
width: 40px;
height: 40px;
padding: 10px; }
.btn-circle.btn-sm, .btn-group-sm > .btn-circle.btn {
width: 35px;
height: 35px;
padding: 8px 10px;
font-size: 14px; }
.btn-circle.btn-lg, .btn-group-lg > .btn-circle.btn {
width: 50px;
height: 50px;
padding: 14px 15px;
font-size: 18px;
line-height: 23px; }
.btn-circle.btn-xl {
width: 70px;
height: 70px;
padding: 14px 15px;
font-size: 24px; }
.btn-xs {
padding: .25rem .5rem;
font-size: 10px; }
.btn-rounded {
border-radius: 60px;
padding: 7px 18px; }
.btn-rounded.btn-lg, .btn-group-lg > .btn-rounded.btn {
padding: .75rem 1.5rem; }
.btn-rounded.btn-sm, .btn-group-sm > .btn-rounded.btn {
padding: .25rem .5rem;
font-size: 12px; }
.btn-rounded.btn-xs {
padding: .25rem .5rem;
font-size: 10px; }
.btn-rounded.btn-md {
padding: 12px 35px;
font-size: 16px; }
.btn-primary, .btn-default, .btn-warning, .btn-outline-primary:hover, .btn-outline-warning:hover {
color: #fff; }
.btn-primary:hover, .btn-default:hover, .btn-warning:hover, .btn-outline-primary:hover:hover, .btn-outline-warning:hover:hover {
color: #fff; }
.btn-default {
background-color: #2962FF; }
.btn-facebook {
color: #fff;
background-color: #3b5998; }
.btn-facebook:hover {
color: #fff; }
.btn-twitter {
color: #fff;
background-color: #55acee; }
.btn-twitter:hover {
color: #fff; }
.btn-linkedin {
color: #fff;
background-color: #007bb6; }
.btn-linkedin:hover {
color: #fff; }
.btn-dribbble {
color: #fff;
background-color: #ea4c89; }
.btn-dribbble:hover {
color: #fff; }
.btn-googleplus {
color: #fff;
background-color: #dd4b39; }
.btn-googleplus:hover {
color: #fff; }
.btn-instagram {
color: #fff;
background-color: #3f729b; }
.btn-pinterest {
color: #fff;
background-color: #cb2027; }
.btn-dropbox {
color: #fff;
background-color: #007ee5; }
.btn-flickr {
color: #fff;
background-color: #ff0084; }
.btn-tumblr {
color: #fff;
background-color: #32506d; }
.btn-skype {
color: #fff;
background-color: #00aff0; }
.btn-youtube {
color: #fff;
background-color: #bb0000; }
.btn-github {
color: #fff;
background-color: #171515; }
.button-group .btn {
margin-bottom: 5px;
margin-right: 5px; }
.no-button-group .btn {
margin-bottom: 5px;
margin-right: 0px; }
.btn .text-active {
display: none; }
.btn.active .text-active {
display: inline-block; }
.btn.active .text {
display: none; }
/*******************
customizer
*******************/
.customizer {
background: #fff;
position: fixed;
height: 100%;
width: 280px;
top: 0px;
right: -280px;
z-index: 100;
-webkit-box-shadow: 1px 0px 20px rgba(0, 0, 0, 0.08);
box-shadow: 1px 0px 20px rgba(0, 0, 0, 0.08);
-webkit-transition: 0.3s ease-in;
-o-transition: 0.3s ease-in;
transition: 0.3s ease-in; }
.customizer .service-panel-toggle {
background: #f62d51;
padding: 12px 20px;
color: #fff;
position: absolute;
top: 30%;
left: -54px; }
.customizer.show-service-panel {
right: 0px; }
.customizer .customizer-body {
position: relative;
height: 100%; }
.customizer .customizer-tab {
display: -webkit-box;
display: -ms-flexbox;
display: flex; }
.customizer .customizer-tab .nav-item {
width: 33.33%;
text-align: center; }
.customizer .customizer-tab .nav-item .nav-link {
padding: 15px 12px;
color: #3e5569;
border-bottom: 3px solid transparent; }
.customizer .customizer-tab .nav-item .nav-link:hover, .customizer .customizer-tab .nav-item .nav-link.active {
border-bottom: 3px solid #2962FF;
color: #2962FF; }
.custom-control-label::after, .custom-control-label::before {
top: 0.15rem; }
.theme-color {
padding: 0px;
margin: 0px;
list-style: none; }
.theme-color .theme-item {
list-style: none;
display: inline-block;
margin-right: 5px; }
.theme-color .theme-item .theme-link {
border-radius: 100%;
width: 20px;
height: 20px;
display: block; }
.theme-color .theme-item .theme-link[data-logobg="skin1"], .theme-color .theme-item .theme-link[data-navbarbg="skin1"], .theme-color .theme-item .theme-link[data-sidebarbg="skin1"] {
background: #2962FF; }
.theme-color .theme-item .theme-link[data-logobg="skin2"], .theme-color .theme-item .theme-link[data-navbarbg="skin2"], .theme-color .theme-item .theme-link[data-sidebarbg="skin2"] {
background: #fe5419; }
.theme-color .theme-item .theme-link[data-logobg="skin3"], .theme-color .theme-item .theme-link[data-navbarbg="skin3"], .theme-color .theme-item .theme-link[data-sidebarbg="skin3"] {
background: #00b0ff; }
.theme-color .theme-item .theme-link[data-logobg="skin4"], .theme-color .theme-item .theme-link[data-navbarbg="skin4"], .theme-color .theme-item .theme-link[data-sidebarbg="skin4"] {
background: #6659f7; }
.theme-color .theme-item .theme-link[data-logobg="skin5"], .theme-color .theme-item .theme-link[data-navbarbg="skin5"], .theme-color .theme-item .theme-link[data-sidebarbg="skin5"] {
background: #414755; }
.theme-color .theme-item .theme-link[data-logobg="skin6"], .theme-color .theme-item .theme-link[data-navbarbg="skin6"], .theme-color .theme-item .theme-link[data-sidebarbg="skin6"] {
background: #e9ecef; }
/*!
* animate.css -http://daneden.me/animate
* Version - 3.5.1
* Licensed under the MIT license - http://opensource.org/licenses/MIT
*
* Copyright (c) 2016 Daniel Eden
*/
.animated {
-webkit-animation-duration: 1s;
animation-duration: 1s;
-webkit-animation-fill-mode: both;
animation-fill-mode: both; }
.animated.infinite {
-webkit-animation-iteration-count: infinite;
animation-iteration-count: infinite; }
.animated.hinge {
-webkit-animation-duration: 2s;
animation-duration: 2s; }
.animated.flipOutX, .animated.flipOutY, .animated.bounceIn, .animated.bounceOut {
-webkit-animation-duration: .75s;
animation-duration: .75s; }
@-webkit-keyframes bounce {
from, 20%, 53%, 80%, to {
-webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
-webkit-transform: translate3d(0, 0, 0);
transform: translate3d(0, 0, 0); }
40%, 43% {
-webkit-animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
-webkit-transform: translate3d(0, -30px, 0);
transform: translate3d(0, -30px, 0); }
70% {
-webkit-animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
-webkit-transform: translate3d(0, -15px, 0);
transform: translate3d(0, -15px, 0); }
90% {
-webkit-transform: translate3d(0, -4px, 0);
transform: translate3d(0, -4px, 0); } }
@keyframes bounce {
from, 20%, 53%, 80%, to {
-webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
-webkit-transform: translate3d(0, 0, 0);
transform: translate3d(0, 0, 0); }
40%, 43% {
-webkit-animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
-webkit-transform: translate3d(0, -30px, 0);
transform: translate3d(0, -30px, 0); }
70% {
-webkit-animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
-webkit-transform: translate3d(0, -15px, 0);
transform: translate3d(0, -15px, 0); }
90% {
-webkit-transform: translate3d(0, -4px, 0);
transform: translate3d(0, -4px, 0); } }
.bounce {
-webkit-animation-name: bounce;
animation-name: bounce;
-webkit-transform-origin: center bottom;
-ms-transform-origin: center bottom;
transform-origin: center bottom; }
@-webkit-keyframes flash {
from, 50%, to {
opacity: 1; }
25%, 75% {
opacity: 0; } }
@keyframes flash {
from, 50%, to {
opacity: 1; }
25%, 75% {
opacity: 0; } }
.flash {
-webkit-animation-name: flash;
animation-name: flash; }
@-webkit-keyframes pulse {
from {
-webkit-transform: scale3d(1, 1, 1);
transform: scale3d(1, 1, 1); }
50% {
-webkit-transform: scale3d(1.05, 1.05, 1.05);
transform: scale3d(1.05, 1.05, 1.05); }
to {
-webkit-transform: scale3d(1, 1, 1);
transform: scale3d(1, 1, 1); } }
@keyframes pulse {
from {
-webkit-transform: scale3d(1, 1, 1);
transform: scale3d(1, 1, 1); }
50% {
-webkit-transform: scale3d(1.05, 1.05, 1.05);
transform: scale3d(1.05, 1.05, 1.05); }
to {
-webkit-transform: scale3d(1, 1, 1);
transform: scale3d(1, 1, 1); } }
.pulse {
-webkit-animation-name: pulse;
animation-name: pulse; }
@-webkit-keyframes rubberBand {
from {
-webkit-transform: scale3d(1, 1, 1);
transform: scale3d(1, 1, 1); }
30% {
-webkit-transform: scale3d(1.25, 0.75, 1);
transform: scale3d(1.25, 0.75, 1); }
40% {
-webkit-transform: scale3d(0.75, 1.25, 1);
transform: scale3d(0.75, 1.25, 1); }
50% {
-webkit-transform: scale3d(1.15, 0.85, 1);
transform: scale3d(1.15, 0.85, 1); }
65% {
-webkit-transform: scale3d(0.95, 1.05, 1);
transform: scale3d(0.95, 1.05, 1); }
75% {
-webkit-transform: scale3d(1.05, 0.95, 1);
transform: scale3d(1.05, 0.95, 1); }
to {
-webkit-transform: scale3d(1, 1, 1);
transform: scale3d(1, 1, 1); } }
@keyframes rubberBand {
from {
-webkit-transform: scale3d(1, 1, 1);
transform: scale3d(1, 1, 1); }
30% {
-webkit-transform: scale3d(1.25, 0.75, 1);
transform: scale3d(1.25, 0.75, 1); }
40% {
-webkit-transform: scale3d(0.75, 1.25, 1);
transform: scale3d(0.75, 1.25, 1); }
50% {
-webkit-transform: scale3d(1.15, 0.85, 1);
transform: scale3d(1.15, 0.85, 1); }
65% {
-webkit-transform: scale3d(0.95, 1.05, 1);
transform: scale3d(0.95, 1.05, 1); }
75% {
-webkit-transform: scale3d(1.05, 0.95, 1);
transform: scale3d(1.05, 0.95, 1); }
to {
-webkit-transform: scale3d(1, 1, 1);
transform: scale3d(1, 1, 1); } }
.rubberBand {
-webkit-animation-name: rubberBand;
animation-name: rubberBand; }
@-webkit-keyframes shake {
from, to {
-webkit-transform: translate3d(0, 0, 0);
transform: translate3d(0, 0, 0); }
10%, 30%, 50%, 70%, 90% {
-webkit-transform: translate3d(-10px, 0, 0);
transform: translate3d(-10px, 0, 0); }
20%, 40%, 60%, 80% {
-webkit-transform: translate3d(10px, 0, 0);
transform: translate3d(10px, 0, 0); } }
@keyframes shake {
from, to {
-webkit-transform: translate3d(0, 0, 0);
transform: translate3d(0, 0, 0); }
10%, 30%, 50%, 70%, 90% {
-webkit-transform: translate3d(-10px, 0, 0);
transform: translate3d(-10px, 0, 0); }
20%, 40%, 60%, 80% {
-webkit-transform: translate3d(10px, 0, 0);
transform: translate3d(10px, 0, 0); } }
.shake {
-webkit-animation-name: shake;
animation-name: shake; }
@-webkit-keyframes headShake {
0% {
-webkit-transform: translateX(0);
transform: translateX(0); }
6.5% {
-webkit-transform: translateX(-6px) rotateY(-9deg);
transform: translateX(-6px) rotateY(-9deg); }
18.5% {
-webkit-transform: translateX(5px) rotateY(7deg);
transform: translateX(5px) rotateY(7deg); }
31.5% {
-webkit-transform: translateX(-3px) rotateY(-5deg);
transform: translateX(-3px) rotateY(-5deg); }
43.5% {
-webkit-transform: translateX(2px) rotateY(3deg);
transform: translateX(2px) rotateY(3deg); }
50% {
-webkit-transform: translateX(0);
transform: translateX(0); } }
@keyframes headShake {
0% {
-webkit-transform: translateX(0);
transform: translateX(0); }
6.5% {
-webkit-transform: translateX(-6px) rotateY(-9deg);
transform: translateX(-6px) rotateY(-9deg); }
18.5% {
-webkit-transform: translateX(5px) rotateY(7deg);
transform: translateX(5px) rotateY(7deg); }
31.5% {
-webkit-transform: translateX(-3px) rotateY(-5deg);
transform: translateX(-3px) rotateY(-5deg); }
43.5% {
-webkit-transform: translateX(2px) rotateY(3deg);
transform: translateX(2px) rotateY(3deg); }
50% {
-webkit-transform: translateX(0);
transform: translateX(0); } }
.headShake {
-webkit-animation-timing-function: ease-in-out;
animation-timing-function: ease-in-out;
-webkit-animation-name: headShake;
animation-name: headShake; }
@-webkit-keyframes swing {
20% {
-webkit-transform: rotate3d(0, 0, 1, 15deg);
transform: rotate3d(0, 0, 1, 15deg); }
40% {
-webkit-transform: rotate3d(0, 0, 1, -10deg);
transform: rotate3d(0, 0, 1, -10deg); }
60% {
-webkit-transform: rotate3d(0, 0, 1, 5deg);
transform: rotate3d(0, 0, 1, 5deg); }
80% {
-webkit-transform: rotate3d(0, 0, 1, -5deg);
transform: rotate3d(0, 0, 1, -5deg); }
to {
-webkit-transform: rotate3d(0, 0, 1, 0deg);
transform: rotate3d(0, 0, 1, 0deg); } }
@keyframes swing {
20% {
-webkit-transform: rotate3d(0, 0, 1, 15deg);
transform: rotate3d(0, 0, 1, 15deg); }
40% {
-webkit-transform: rotate3d(0, 0, 1, -10deg);
transform: rotate3d(0, 0, 1, -10deg); }
60% {
-webkit-transform: rotate3d(0, 0, 1, 5deg);
transform: rotate3d(0, 0, 1, 5deg); }
80% {
-webkit-transform: rotate3d(0, 0, 1, -5deg);
transform: rotate3d(0, 0, 1, -5deg); }
to {
-webkit-transform: rotate3d(0, 0, 1, 0deg);
transform: rotate3d(0, 0, 1, 0deg); } }
.swing {
-webkit-transform-origin: top center;
-ms-transform-origin: top center;
transform-origin: top center;
-webkit-animation-name: swing;
animation-name: swing; }
@-webkit-keyframes tada {
from {
-webkit-transform: scale3d(1, 1, 1);
transform: scale3d(1, 1, 1); }
10%, 20% {
-webkit-transform: scale3d(0.9, 0.9, 0.9) rotate3d(0, 0, 1, -3deg);
transform: scale3d(0.9, 0.9, 0.9) rotate3d(0, 0, 1, -3deg); }
30%, 50%, 70%, 90% {
-webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg);
transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg); }
40%, 60%, 80% {
-webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg);
transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg); }
to {
-webkit-transform: scale3d(1, 1, 1);
transform: scale3d(1, 1, 1); } }
@keyframes tada {
from {
-webkit-transform: scale3d(1, 1, 1);
transform: scale3d(1, 1, 1); }
10%, 20% {
-webkit-transform: scale3d(0.9, 0.9, 0.9) rotate3d(0, 0, 1, -3deg);
transform: scale3d(0.9, 0.9, 0.9) rotate3d(0, 0, 1, -3deg); }
30%, 50%, 70%, 90% {
-webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg);
transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg); }
40%, 60%, 80% {
-webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg);
transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg); }
to {
-webkit-transform: scale3d(1, 1, 1);
transform: scale3d(1, 1, 1); } }
.tada {
-webkit-animation-name: tada;
animation-name: tada; }
@-webkit-keyframes wobble {
from {
-webkit-transform: none;
transform: none; }
15% {
-webkit-transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);
transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg); }
30% {
-webkit-transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);
transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg); }
45% {
-webkit-transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);
transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg); }
60% {
-webkit-transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);
transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg); }
75% {
-webkit-transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);
transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg); }
to {
-webkit-transform: none;
transform: none; } }
@keyframes wobble {
from {
-webkit-transform: none;
transform: none; }
15% {
-webkit-transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);
transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg); }
30% {
-webkit-transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);
transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg); }
45% {
-webkit-transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);
transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg); }
60% {
-webkit-transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);
transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg); }
75% {
-webkit-transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);
transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg); }
to {
-webkit-transform: none;
transform: none; } }
.wobble {
-webkit-animation-name: wobble;
animation-name: wobble; }
@-webkit-keyframes jello {
from, 11.1%, to {
-webkit-transform: none;
transform: none; }
22.2% {
-webkit-transform: skewX(-12.5deg) skewY(-12.5deg);
transform: skewX(-12.5deg) skewY(-12.5deg); }
33.3% {
-webkit-transform: skewX(6.25deg) skewY(6.25deg);
transform: skewX(6.25deg) skewY(6.25deg); }
44.4% {
-webkit-transform: skewX(-3.125deg) skewY(-3.125deg);
transform: skewX(-3.125deg) skewY(-3.125deg); }
55.5% {
-webkit-transform: skewX(1.5625deg) skewY(1.5625deg);
transform: skewX(1.5625deg) skewY(1.5625deg); }
66.6% {
-webkit-transform: skewX(-0.78125deg) skewY(-0.78125deg);
transform: skewX(-0.78125deg) skewY(-0.78125deg); }
77.7% {
-webkit-transform: skewX(0.39063deg) skewY(0.39063deg);
transform: skewX(0.39063deg) skewY(0.39063deg); }
88.8% {
-webkit-transform: skewX(-0.19531deg) skewY(-0.19531deg);
transform: skewX(-0.19531deg) skewY(-0.19531deg); } }
@keyframes jello {
from, 11.1%, to {
-webkit-transform: none;
transform: none; }
22.2% {
-webkit-transform: skewX(-12.5deg) skewY(-12.5deg);
transform: skewX(-12.5deg) skewY(-12.5deg); }
33.3% {
-webkit-transform: skewX(6.25deg) skewY(6.25deg);
transform: skewX(6.25deg) skewY(6.25deg); }
44.4% {
-webkit-transform: skewX(-3.125deg) skewY(-3.125deg);
transform: skewX(-3.125deg) skewY(-3.125deg); }
55.5% {
-webkit-transform: skewX(1.5625deg) skewY(1.5625deg);
transform: skewX(1.5625deg) skewY(1.5625deg); }
66.6% {
-webkit-transform: skewX(-0.78125deg) skewY(-0.78125deg);
transform: skewX(-0.78125deg) skewY(-0.78125deg); }
77.7% {
-webkit-transform: skewX(0.39063deg) skewY(0.39063deg);
transform: skewX(0.39063deg) skewY(0.39063deg); }
88.8% {
-webkit-transform: skewX(-0.19531deg) skewY(-0.19531deg);
transform: skewX(-0.19531deg) skewY(-0.19531deg); } }
.jello {
-webkit-animation-name: jello;
animation-name: jello;
-webkit-transform-origin: center;
-ms-transform-origin: center;
transform-origin: center; }
@-webkit-keyframes bounceIn {
from, 20%, 40%, 60%, 80%, to {
-webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); }
0% {
opacity: 0;
-webkit-transform: scale3d(0.3, 0.3, 0.3);
transform: scale3d(0.3, 0.3, 0.3); }
20% {
-webkit-transform: scale3d(1.1, 1.1, 1.1);
transform: scale3d(1.1, 1.1, 1.1); }
40% {
-webkit-transform: scale3d(0.9, 0.9, 0.9);
transform: scale3d(0.9, 0.9, 0.9); }
60% {
opacity: 1;
-webkit-transform: scale3d(1.03, 1.03, 1.03);
transform: scale3d(1.03, 1.03, 1.03); }
80% {
-webkit-transform: scale3d(0.97, 0.97, 0.97);
transform: scale3d(0.97, 0.97, 0.97); }
to {
opacity: 1;
-webkit-transform: scale3d(1, 1, 1);
transform: scale3d(1, 1, 1); } }
@keyframes bounceIn {
from, 20%, 40%, 60%, 80%, to {
-webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); }
0% {
opacity: 0;
-webkit-transform: scale3d(0.3, 0.3, 0.3);
transform: scale3d(0.3, 0.3, 0.3); }
20% {
-webkit-transform: scale3d(1.1, 1.1, 1.1);
transform: scale3d(1.1, 1.1, 1.1); }
40% {
-webkit-transform: scale3d(0.9, 0.9, 0.9);
transform: scale3d(0.9, 0.9, 0.9); }
60% {
opacity: 1;
-webkit-transform: scale3d(1.03, 1.03, 1.03);
transform: scale3d(1.03, 1.03, 1.03); }
80% {
-webkit-transform: scale3d(0.97, 0.97, 0.97);
transform: scale3d(0.97, 0.97, 0.97); }
to {
opacity: 1;
-webkit-transform: scale3d(1, 1, 1);
transform: scale3d(1, 1, 1); } }
.bounceIn {
-webkit-animation-name: bounceIn;
animation-name: bounceIn; }
@-webkit-keyframes bounceInDown {
from, 60%, 75%, 90%, to {
-webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); }
0% {
opacity: 0;
-webkit-transform: translate3d(0, -3000px, 0);
transform: translate3d(0, -3000px, 0); }
60% {
opacity: 1;
-webkit-transform: translate3d(0, 25px, 0);
transform: translate3d(0, 25px, 0); }
75% {
-webkit-transform: translate3d(0, -10px, 0);
transform: translate3d(0, -10px, 0); }
90% {
-webkit-transform: translate3d(0, 5px, 0);
transform: translate3d(0, 5px, 0); }
to {
-webkit-transform: none;
transform: none; } }
@keyframes bounceInDown {
from, 60%, 75%, 90%, to {
-webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); }
0% {
opacity: 0;
-webkit-transform: translate3d(0, -3000px, 0);
transform: translate3d(0, -3000px, 0); }
60% {
opacity: 1;
-webkit-transform: translate3d(0, 25px, 0);
transform: translate3d(0, 25px, 0); }
75% {
-webkit-transform: translate3d(0, -10px, 0);
transform: translate3d(0, -10px, 0); }
90% {
-webkit-transform: translate3d(0, 5px, 0);
transform: translate3d(0, 5px, 0); }
to {
-webkit-transform: none;
transform: none; } }
.bounceInDown {
-webkit-animation-name: bounceInDown;
animation-name: bounceInDown; }
@-webkit-keyframes bounceInLeft {
from, 60%, 75%, 90%, to {
-webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); }
0% {
opacity: 0;
-webkit-transform: translate3d(-3000px, 0, 0);
transform: translate3d(-3000px, 0, 0); }
60% {
opacity: 1;
-webkit-transform: translate3d(25px, 0, 0);
transform: translate3d(25px, 0, 0); }
75% {
-webkit-transform: translate3d(-10px, 0, 0);
transform: translate3d(-10px, 0, 0); }
90% {
-webkit-transform: translate3d(5px, 0, 0);
transform: translate3d(5px, 0, 0); }
to {
-webkit-transform: none;
transform: none; } }
@keyframes bounceInLeft {
from, 60%, 75%, 90%, to {
-webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); }
0% {
opacity: 0;
-webkit-transform: translate3d(-3000px, 0, 0);
transform: translate3d(-3000px, 0, 0); }
60% {
opacity: 1;
-webkit-transform: translate3d(25px, 0, 0);
transform: translate3d(25px, 0, 0); }
75% {
-webkit-transform: translate3d(-10px, 0, 0);
transform: translate3d(-10px, 0, 0); }
90% {
-webkit-transform: translate3d(5px, 0, 0);
transform: translate3d(5px, 0, 0); }
to {
-webkit-transform: none;
transform: none; } }
.bounceInLeft {
-webkit-animation-name: bounceInLeft;
animation-name: bounceInLeft; }
@-webkit-keyframes bounceInRight {
from, 60%, 75%, 90%, to {
-webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); }
from {
opacity: 0;
-webkit-transform: translate3d(3000px, 0, 0);
transform: translate3d(3000px, 0, 0); }
60% {
opacity: 1;
-webkit-transform: translate3d(-25px, 0, 0);
transform: translate3d(-25px, 0, 0); }
75% {
-webkit-transform: translate3d(10px, 0, 0);
transform: translate3d(10px, 0, 0); }
90% {
-webkit-transform: translate3d(-5px, 0, 0);
transform: translate3d(-5px, 0, 0); }
to {
-webkit-transform: none;
transform: none; } }
@keyframes bounceInRight {
from, 60%, 75%, 90%, to {
-webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); }
from {
opacity: 0;
-webkit-transform: translate3d(3000px, 0, 0);
transform: translate3d(3000px, 0, 0); }
60% {
opacity: 1;
-webkit-transform: translate3d(-25px, 0, 0);
transform: translate3d(-25px, 0, 0); }
75% {
-webkit-transform: translate3d(10px, 0, 0);
transform: translate3d(10px, 0, 0); }
90% {
-webkit-transform: translate3d(-5px, 0, 0);
transform: translate3d(-5px, 0, 0); }
to {
-webkit-transform: none;
transform: none; } }
.bounceInRight {
-webkit-animation-name: bounceInRight;
animation-name: bounceInRight; }
@-webkit-keyframes bounceInUp {
from, 60%, 75%, 90%, to {
-webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); }
from {
opacity: 0;
-webkit-transform: translate3d(0, 3000px, 0);
transform: translate3d(0, 3000px, 0); }
60% {
opacity: 1;
-webkit-transform: translate3d(0, -20px, 0);
transform: translate3d(0, -20px, 0); }
75% {
-webkit-transform: translate3d(0, 10px, 0);
transform: translate3d(0, 10px, 0); }
90% {
-webkit-transform: translate3d(0, -5px, 0);
transform: translate3d(0, -5px, 0); }
to {
-webkit-transform: translate3d(0, 0, 0);
transform: translate3d(0, 0, 0); } }
@keyframes bounceInUp {
from, 60%, 75%, 90%, to {
-webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); }
from {
opacity: 0;
-webkit-transform: translate3d(0, 3000px, 0);
transform: translate3d(0, 3000px, 0); }
60% {
opacity: 1;
-webkit-transform: translate3d(0, -20px, 0);
transform: translate3d(0, -20px, 0); }
75% {
-webkit-transform: translate3d(0, 10px, 0);
transform: translate3d(0, 10px, 0); }
90% {
-webkit-transform: translate3d(0, -5px, 0);
transform: translate3d(0, -5px, 0); }
to {
-webkit-transform: translate3d(0, 0, 0);
transform: translate3d(0, 0, 0); } }
.bounceInUp {
-webkit-animation-name: bounceInUp;
animation-name: bounceInUp; }
@-webkit-keyframes bounceOut {
20% {
-webkit-transform: scale3d(0.9, 0.9, 0.9);
transform: scale3d(0.9, 0.9, 0.9); }
50%, 55% {
opacity: 1;
-webkit-transform: scale3d(1.1, 1.1, 1.1);
transform: scale3d(1.1, 1.1, 1.1); }
to {
opacity: 0;
-webkit-transform: scale3d(0.3, 0.3, 0.3);
transform: scale3d(0.3, 0.3, 0.3); } }
@keyframes bounceOut {
20% {
-webkit-transform: scale3d(0.9, 0.9, 0.9);
transform: scale3d(0.9, 0.9, 0.9); }
50%, 55% {
opacity: 1;
-webkit-transform: scale3d(1.1, 1.1, 1.1);
transform: scale3d(1.1, 1.1, 1.1); }
to {
opacity: 0;
-webkit-transform: scale3d(0.3, 0.3, 0.3);
transform: scale3d(0.3, 0.3, 0.3); } }
.bounceOut {
-webkit-animation-name: bounceOut;
animation-name: bounceOut; }
@-webkit-keyframes bounceOutDown {
20% {
-webkit-transform: translate3d(0, 10px, 0);
transform: translate3d(0, 10px, 0); }
40%, 45% {
opacity: 1;
-webkit-transform: translate3d(0, -20px, 0);
transform: translate3d(0, -20px, 0); }
to {
opacity: 0;
-webkit-transform: translate3d(0, 2000px, 0);
transform: translate3d(0, 2000px, 0); } }
@keyframes bounceOutDown {
20% {
-webkit-transform: translate3d(0, 10px, 0);
transform: translate3d(0, 10px, 0); }
40%, 45% {
opacity: 1;
-webkit-transform: translate3d(0, -20px, 0);
transform: translate3d(0, -20px, 0); }
to {
opacity: 0;
-webkit-transform: translate3d(0, 2000px, 0);
transform: translate3d(0, 2000px, 0); } }
.bounceOutDown {
-webkit-animation-name: bounceOutDown;
animation-name: bounceOutDown; }
@-webkit-keyframes bounceOutLeft {
20% {
opacity: 1;
-webkit-transform: translate3d(20px, 0, 0);
transform: translate3d(20px, 0, 0); }
to {
opacity: 0;
-webkit-transform: translate3d(-2000px, 0, 0);
transform: translate3d(-2000px, 0, 0); } }
@keyframes bounceOutLeft {
20% {
opacity: 1;
-webkit-transform: translate3d(20px, 0, 0);
transform: translate3d(20px, 0, 0); }
to {
opacity: 0;
-webkit-transform: translate3d(-2000px, 0, 0);
transform: translate3d(-2000px, 0, 0); } }
.bounceOutLeft {
-webkit-animation-name: bounceOutLeft;
animation-name: bounceOutLeft; }
@-webkit-keyframes bounceOutRight {
20% {
opacity: 1;
-webkit-transform: translate3d(-20px, 0, 0);
transform: translate3d(-20px, 0, 0); }
to {
opacity: 0;
-webkit-transform: translate3d(2000px, 0, 0);
transform: translate3d(2000px, 0, 0); } }
@keyframes bounceOutRight {
20% {
opacity: 1;
-webkit-transform: translate3d(-20px, 0, 0);
transform: translate3d(-20px, 0, 0); }
to {
opacity: 0;
-webkit-transform: translate3d(2000px, 0, 0);
transform: translate3d(2000px, 0, 0); } }
.bounceOutRight {
-webkit-animation-name: bounceOutRight;
animation-name: bounceOutRight; }
@-webkit-keyframes bounceOutUp {
20% {
-webkit-transform: translate3d(0, -10px, 0);
transform: translate3d(0, -10px, 0); }
40%, 45% {
opacity: 1;
-webkit-transform: translate3d(0, 20px, 0);
transform: translate3d(0, 20px, 0); }
to {
opacity: 0;
-webkit-transform: translate3d(0, -2000px, 0);
transform: translate3d(0, -2000px, 0); } }
@keyframes bounceOutUp {
20% {
-webkit-transform: translate3d(0, -10px, 0);
transform: translate3d(0, -10px, 0); }
40%, 45% {
opacity: 1;
-webkit-transform: translate3d(0, 20px, 0);
transform: translate3d(0, 20px, 0); }
to {
opacity: 0;
-webkit-transform: translate3d(0, -2000px, 0);
transform: translate3d(0, -2000px, 0); } }
.bounceOutUp {
-webkit-animation-name: bounceOutUp;
animation-name: bounceOutUp; }
@-webkit-keyframes fadeIn {
from {
opacity: 0; }
to {
opacity: 1; } }
@keyframes fadeIn {
from {
opacity: 0; }
to {
opacity: 1; } }
.fadeIn {
-webkit-animation-name: fadeIn;
animation-name: fadeIn; }
@-webkit-keyframes fadeInDown {
from {
opacity: 0;
-webkit-transform: translate3d(0, -100%, 0);
transform: translate3d(0, -100%, 0); }
to {
opacity: 1;
-webkit-transform: none;
transform: none; } }
@keyframes fadeInDown {
from {
opacity: 0;
-webkit-transform: translate3d(0, -100%, 0);
transform: translate3d(0, -100%, 0); }
to {
opacity: 1;
-webkit-transform: none;
transform: none; } }
.fadeInDown {
-webkit-animation-name: fadeInDown;
animation-name: fadeInDown; }
@-webkit-keyframes fadeInDownBig {
from {
opacity: 0;
-webkit-transform: translate3d(0, -2000px, 0);
transform: translate3d(0, -2000px, 0); }
to {
opacity: 1;
-webkit-transform: none;
transform: none; } }
@keyframes fadeInDownBig {
from {
opacity: 0;
-webkit-transform: translate3d(0, -2000px, 0);
transform: translate3d(0, -2000px, 0); }
to {
opacity: 1;
-webkit-transform: none;
transform: none; } }
.fadeInDownBig {
-webkit-animation-name: fadeInDownBig;
animation-name: fadeInDownBig; }
@-webkit-keyframes fadeInLeft {
from {
opacity: 0;
-webkit-transform: translate3d(-100%, 0, 0);
transform: translate3d(-100%, 0, 0); }
to {
opacity: 1;
-webkit-transform: none;
transform: none; } }
@keyframes fadeInLeft {
from {
opacity: 0;
-webkit-transform: translate3d(-100%, 0, 0);
transform: translate3d(-100%, 0, 0); }
to {
opacity: 1;
-webkit-transform: none;
transform: none; } }
.fadeInLeft {
-webkit-animation-name: fadeInLeft;
animation-name: fadeInLeft; }
@-webkit-keyframes fadeInLeftBig {
from {
opacity: 0;
-webkit-transform: translate3d(-2000px, 0, 0);
transform: translate3d(-2000px, 0, 0); }
to {
opacity: 1;
-webkit-transform: none;
transform: none; } }
@keyframes fadeInLeftBig {
from {
opacity: 0;
-webkit-transform: translate3d(-2000px, 0, 0);
transform: translate3d(-2000px, 0, 0); }
to {
opacity: 1;
-webkit-transform: none;
transform: none; } }
.fadeInLeftBig {
-webkit-animation-name: fadeInLeftBig;
animation-name: fadeInLeftBig; }
@-webkit-keyframes fadeInRight {
from {
opacity: 0;
-webkit-transform: translate3d(100%, 0, 0);
transform: translate3d(100%, 0, 0); }
to {
opacity: 1;
-webkit-transform: none;
transform: none; } }
@keyframes fadeInRight {
from {
opacity: 0;
-webkit-transform: translate3d(100%, 0, 0);
transform: translate3d(100%, 0, 0); }
to {
opacity: 1;
-webkit-transform: none;
transform: none; } }
.fadeInRight {
-webkit-animation-name: fadeInRight;
animation-name: fadeInRight; }
@-webkit-keyframes fadeInRightBig {
from {
opacity: 0;
-webkit-transform: translate3d(2000px, 0, 0);
transform: translate3d(2000px, 0, 0); }
to {
opacity: 1;
-webkit-transform: none;
transform: none; } }
@keyframes fadeInRightBig {
from {
opacity: 0;
-webkit-transform: translate3d(2000px, 0, 0);
transform: translate3d(2000px, 0, 0); }
to {
opacity: 1;
-webkit-transform: none;
transform: none; } }
.fadeInRightBig {
-webkit-animation-name: fadeInRightBig;
animation-name: fadeInRightBig; }
@-webkit-keyframes fadeInUp {
from {
opacity: 0;
-webkit-transform: translate3d(0, 100%, 0);
transform: translate3d(0, 100%, 0); }
to {
opacity: 1;
-webkit-transform: none;
transform: none; } }
@keyframes fadeInUp {
from {
opacity: 0;
-webkit-transform: translate3d(0, 100%, 0);
transform: translate3d(0, 100%, 0); }
to {
opacity: 1;
-webkit-transform: none;
transform: none; } }
.fadeInUp {
-webkit-animation-name: fadeInUp;
animation-name: fadeInUp; }
@-webkit-keyframes fadeInUpBig {
from {
opacity: 0;
-webkit-transform: translate3d(0, 2000px, 0);
transform: translate3d(0, 2000px, 0); }
to {
opacity: 1;
-webkit-transform: none;
transform: none; } }
@keyframes fadeInUpBig {
from {
opacity: 0;
-webkit-transform: translate3d(0, 2000px, 0);
transform: translate3d(0, 2000px, 0); }
to {
opacity: 1;
-webkit-transform: none;
transform: none; } }
.fadeInUpBig {
-webkit-animation-name: fadeInUpBig;
animation-name: fadeInUpBig; }
@-webkit-keyframes fadeOut {
from {
opacity: 1; }
to {
opacity: 0; } }
@keyframes fadeOut {
from {
opacity: 1; }
to {
opacity: 0; } }
.fadeOut {
-webkit-animation-name: fadeOut;
animation-name: fadeOut; }
@-webkit-keyframes fadeOutDown {
from {
opacity: 1; }
to {
opacity: 0;
-webkit-transform: translate3d(0, 100%, 0);
transform: translate3d(0, 100%, 0); } }
@keyframes fadeOutDown {
from {
opacity: 1; }
to {
opacity: 0;
-webkit-transform: translate3d(0, 100%, 0);
transform: translate3d(0, 100%, 0); } }
.fadeOutDown {
-webkit-animation-name: fadeOutDown;
animation-name: fadeOutDown; }
@-webkit-keyframes fadeOutDownBig {
from {
opacity: 1; }
to {
opacity: 0;
-webkit-transform: translate3d(0, 2000px, 0);
transform: translate3d(0, 2000px, 0); } }
@keyframes fadeOutDownBig {
from {
opacity: 1; }
to {
opacity: 0;
-webkit-transform: translate3d(0, 2000px, 0);
transform: translate3d(0, 2000px, 0); } }
.fadeOutDownBig {
-webkit-animation-name: fadeOutDownBig;
animation-name: fadeOutDownBig; }
@-webkit-keyframes fadeOutLeft {
from {
opacity: 1; }
to {
opacity: 0;
-webkit-transform: translate3d(-100%, 0, 0);
transform: translate3d(-100%, 0, 0); } }
@keyframes fadeOutLeft {
from {
opacity: 1; }
to {
opacity: 0;
-webkit-transform: translate3d(-100%, 0, 0);
transform: translate3d(-100%, 0, 0); } }
.fadeOutLeft {
-webkit-animation-name: fadeOutLeft;
animation-name: fadeOutLeft; }
@-webkit-keyframes fadeOutLeftBig {
from {
opacity: 1; }
to {
opacity: 0;
-webkit-transform: translate3d(-2000px, 0, 0);
transform: translate3d(-2000px, 0, 0); } }
@keyframes fadeOutLeftBig {
from {
opacity: 1; }
to {
opacity: 0;
-webkit-transform: translate3d(-2000px, 0, 0);
transform: translate3d(-2000px, 0, 0); } }
.fadeOutLeftBig {
-webkit-animation-name: fadeOutLeftBig;
animation-name: fadeOutLeftBig; }
@-webkit-keyframes fadeOutRight {
from {
opacity: 1; }
to {
opacity: 0;
-webkit-transform: translate3d(100%, 0, 0);
transform: translate3d(100%, 0, 0); } }
@keyframes fadeOutRight {
from {
opacity: 1; }
to {
opacity: 0;
-webkit-transform: translate3d(100%, 0, 0);
transform: translate3d(100%, 0, 0); } }
.fadeOutRight {
-webkit-animation-name: fadeOutRight;
animation-name: fadeOutRight; }
@-webkit-keyframes fadeOutRightBig {
from {
opacity: 1; }
to {
opacity: 0;
-webkit-transform: translate3d(2000px, 0, 0);
transform: translate3d(2000px, 0, 0); } }
@keyframes fadeOutRightBig {
from {
opacity: 1; }
to {
opacity: 0;
-webkit-transform: translate3d(2000px, 0, 0);
transform: translate3d(2000px, 0, 0); } }
.fadeOutRightBig {
-webkit-animation-name: fadeOutRightBig;
animation-name: fadeOutRightBig; }
@-webkit-keyframes fadeOutUp {
from {
opacity: 1; }
to {
opacity: 0;
-webkit-transform: translate3d(0, -100%, 0);
transform: translate3d(0, -100%, 0); } }
@keyframes fadeOutUp {
from {
opacity: 1; }
to {
opacity: 0;
-webkit-transform: translate3d(0, -100%, 0);
transform: translate3d(0, -100%, 0); } }
.fadeOutUp {
-webkit-animation-name: fadeOutUp;
animation-name: fadeOutUp; }
@-webkit-keyframes fadeOutUpBig {
from {
opacity: 1; }
to {
opacity: 0;
-webkit-transform: translate3d(0, -2000px, 0);
transform: translate3d(0, -2000px, 0); } }
@keyframes fadeOutUpBig {
from {
opacity: 1; }
to {
opacity: 0;
-webkit-transform: translate3d(0, -2000px, 0);
transform: translate3d(0, -2000px, 0); } }
.fadeOutUpBig {
-webkit-animation-name: fadeOutUpBig;
animation-name: fadeOutUpBig; }
@-webkit-keyframes flip {
from {
-webkit-transform: perspective(400px) rotate3d(0, 1, 0, -360deg);
transform: perspective(400px) rotate3d(0, 1, 0, -360deg);
-webkit-animation-timing-function: ease-out;
animation-timing-function: ease-out; }
40% {
-webkit-transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg);
transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg);
-webkit-animation-timing-function: ease-out;
animation-timing-function: ease-out; }
50% {
-webkit-transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg);
transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg);
-webkit-animation-timing-function: ease-in;
animation-timing-function: ease-in; }
80% {
-webkit-transform: perspective(400px) scale3d(0.95, 0.95, 0.95);
transform: perspective(400px) scale3d(0.95, 0.95, 0.95);
-webkit-animation-timing-function: ease-in;
animation-timing-function: ease-in; }
to {
-webkit-transform: perspective(400px);
transform: perspective(400px);
-webkit-animation-timing-function: ease-in;
animation-timing-function: ease-in; } }
@keyframes flip {
from {
-webkit-transform: perspective(400px) rotate3d(0, 1, 0, -360deg);
transform: perspective(400px) rotate3d(0, 1, 0, -360deg);
-webkit-animation-timing-function: ease-out;
animation-timing-function: ease-out; }
40% {
-webkit-transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg);
transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg);
-webkit-animation-timing-function: ease-out;
animation-timing-function: ease-out; }
50% {
-webkit-transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg);
transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg);
-webkit-animation-timing-function: ease-in;
animation-timing-function: ease-in; }
80% {
-webkit-transform: perspective(400px) scale3d(0.95, 0.95, 0.95);
transform: perspective(400px) scale3d(0.95, 0.95, 0.95);
-webkit-animation-timing-function: ease-in;
animation-timing-function: ease-in; }
to {
-webkit-transform: perspective(400px);
transform: perspective(400px);
-webkit-animation-timing-function: ease-in;
animation-timing-function: ease-in; } }
.animated.flip {
-webkit-backface-visibility: visible;
backface-visibility: visible;
-webkit-animation-name: flip;
animation-name: flip; }
@-webkit-keyframes flipInX {
from {
-webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
-webkit-animation-timing-function: ease-in;
animation-timing-function: ease-in;
opacity: 0; }
40% {
-webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
-webkit-animation-timing-function: ease-in;
animation-timing-function: ease-in; }
60% {
-webkit-transform: perspective(400px) rotate3d(1, 0, 0, 10deg);
transform: perspective(400px) rotate3d(1, 0, 0, 10deg);
opacity: 1; }
80% {
-webkit-transform: perspective(400px) rotate3d(1, 0, 0, -5deg);
transform: perspective(400px) rotate3d(1, 0, 0, -5deg); }
to {
-webkit-transform: perspective(400px);
transform: perspective(400px); } }
@keyframes flipInX {
from {
-webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
-webkit-animation-timing-function: ease-in;
animation-timing-function: ease-in;
opacity: 0; }
40% {
-webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
-webkit-animation-timing-function: ease-in;
animation-timing-function: ease-in; }
60% {
-webkit-transform: perspective(400px) rotate3d(1, 0, 0, 10deg);
transform: perspective(400px) rotate3d(1, 0, 0, 10deg);
opacity: 1; }
80% {
-webkit-transform: perspective(400px) rotate3d(1, 0, 0, -5deg);
transform: perspective(400px) rotate3d(1, 0, 0, -5deg); }
to {
-webkit-transform: perspective(400px);
transform: perspective(400px); } }
.flipInX {
-webkit-backface-visibility: visible !important;
backface-visibility: visible !important;
-webkit-animation-name: flipInX;
animation-name: flipInX; }
@-webkit-keyframes flipInY {
from {
-webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
-webkit-animation-timing-function: ease-in;
animation-timing-function: ease-in;
opacity: 0; }
40% {
-webkit-transform: perspective(400px) rotate3d(0, 1, 0, -20deg);
transform: perspective(400px) rotate3d(0, 1, 0, -20deg);
-webkit-animation-timing-function: ease-in;
animation-timing-function: ease-in; }
60% {
-webkit-transform: perspective(400px) rotate3d(0, 1, 0, 10deg);
transform: perspective(400px) rotate3d(0, 1, 0, 10deg);
opacity: 1; }
80% {
-webkit-transform: perspective(400px) rotate3d(0, 1, 0, -5deg);
transform: perspective(400px) rotate3d(0, 1, 0, -5deg); }
to {
-webkit-transform: perspective(400px);
transform: perspective(400px); } }
@keyframes flipInY {
from {
-webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
-webkit-animation-timing-function: ease-in;
animation-timing-function: ease-in;
opacity: 0; }
40% {
-webkit-transform: perspective(400px) rotate3d(0, 1, 0, -20deg);
transform: perspective(400px) rotate3d(0, 1, 0, -20deg);
-webkit-animation-timing-function: ease-in;
animation-timing-function: ease-in; }
60% {
-webkit-transform: perspective(400px) rotate3d(0, 1, 0, 10deg);
transform: perspective(400px) rotate3d(0, 1, 0, 10deg);
opacity: 1; }
80% {
-webkit-transform: perspective(400px) rotate3d(0, 1, 0, -5deg);
transform: perspective(400px) rotate3d(0, 1, 0, -5deg); }
to {
-webkit-transform: perspective(400px);
transform: perspective(400px); } }
.flipInY {
-webkit-backface-visibility: visible !important;
backface-visibility: visible !important;
-webkit-animation-name: flipInY;
animation-name: flipInY; }
@-webkit-keyframes flipOutX {
from {
-webkit-transform: perspective(400px);
transform: perspective(400px); }
30% {
-webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
opacity: 1; }
to {
-webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
opacity: 0; } }
@keyframes flipOutX {
from {
-webkit-transform: perspective(400px);
transform: perspective(400px); }
30% {
-webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
opacity: 1; }
to {
-webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
opacity: 0; } }
.flipOutX {
-webkit-animation-name: flipOutX;
animation-name: flipOutX;
-webkit-backface-visibility: visible !important;
backface-visibility: visible !important; }
@-webkit-keyframes flipOutY {
from {
-webkit-transform: perspective(400px);
transform: perspective(400px); }
30% {
-webkit-transform: perspective(400px) rotate3d(0, 1, 0, -15deg);
transform: perspective(400px) rotate3d(0, 1, 0, -15deg);
opacity: 1; }
to {
-webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
opacity: 0; } }
@keyframes flipOutY {
from {
-webkit-transform: perspective(400px);
transform: perspective(400px); }
30% {
-webkit-transform: perspective(400px) rotate3d(0, 1, 0, -15deg);
transform: perspective(400px) rotate3d(0, 1, 0, -15deg);
opacity: 1; }
to {
-webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
opacity: 0; } }
.flipOutY {
-webkit-backface-visibility: visible !important;
backface-visibility: visible !important;
-webkit-animation-name: flipOutY;
animation-name: flipOutY; }
@-webkit-keyframes lightSpeedIn {
from {
-webkit-transform: translate3d(100%, 0, 0) skewX(-30deg);
transform: translate3d(100%, 0, 0) skewX(-30deg);
opacity: 0; }
60% {
-webkit-transform: skewX(20deg);
transform: skewX(20deg);
opacity: 1; }
80% {
-webkit-transform: skewX(-5deg);
transform: skewX(-5deg);
opacity: 1; }
to {
-webkit-transform: none;
transform: none;
opacity: 1; } }
@keyframes lightSpeedIn {
from {
-webkit-transform: translate3d(100%, 0, 0) skewX(-30deg);
transform: translate3d(100%, 0, 0) skewX(-30deg);
opacity: 0; }
60% {
-webkit-transform: skewX(20deg);
transform: skewX(20deg);
opacity: 1; }
80% {
-webkit-transform: skewX(-5deg);
transform: skewX(-5deg);
opacity: 1; }
to {
-webkit-transform: none;
transform: none;
opacity: 1; } }
.lightSpeedIn {
-webkit-animation-name: lightSpeedIn;
animation-name: lightSpeedIn;
-webkit-animation-timing-function: ease-out;
animation-timing-function: ease-out; }
@-webkit-keyframes lightSpeedOut {
from {
opacity: 1; }
to {
-webkit-transform: translate3d(100%, 0, 0) skewX(30deg);
transform: translate3d(100%, 0, 0) skewX(30deg);
opacity: 0; } }
@keyframes lightSpeedOut {
from {
opacity: 1; }
to {
-webkit-transform: translate3d(100%, 0, 0) skewX(30deg);
transform: translate3d(100%, 0, 0) skewX(30deg);
opacity: 0; } }
.lightSpeedOut {
-webkit-animation-name: lightSpeedOut;
animation-name: lightSpeedOut;
-webkit-animation-timing-function: ease-in;
animation-timing-function: ease-in; }
@-webkit-keyframes rotateIn {
from {
-webkit-transform-origin: center;
transform-origin: center;
-webkit-transform: rotate3d(0, 0, 1, -200deg);
transform: rotate3d(0, 0, 1, -200deg);
opacity: 0; }
to {
-webkit-transform-origin: center;
transform-origin: center;
-webkit-transform: none;
transform: none;
opacity: 1; } }
@keyframes rotateIn {
from {
-webkit-transform-origin: center;
transform-origin: center;
-webkit-transform: rotate3d(0, 0, 1, -200deg);
transform: rotate3d(0, 0, 1, -200deg);
opacity: 0; }
to {
-webkit-transform-origin: center;
transform-origin: center;
-webkit-transform: none;
transform: none;
opacity: 1; } }
.rotateIn {
-webkit-animation-name: rotateIn;
animation-name: rotateIn; }
@-webkit-keyframes rotateInDownLeft {
from {
-webkit-transform-origin: left bottom;
transform-origin: left bottom;
-webkit-transform: rotate3d(0, 0, 1, -45deg);
transform: rotate3d(0, 0, 1, -45deg);
opacity: 0; }
to {
-webkit-transform-origin: left bottom;
transform-origin: left bottom;
-webkit-transform: none;
transform: none;
opacity: 1; } }
@keyframes rotateInDownLeft {
from {
-webkit-transform-origin: left bottom;
transform-origin: left bottom;
-webkit-transform: rotate3d(0, 0, 1, -45deg);
transform: rotate3d(0, 0, 1, -45deg);
opacity: 0; }
to {
-webkit-transform-origin: left bottom;
transform-origin: left bottom;
-webkit-transform: none;
transform: none;
opacity: 1; } }
.rotateInDownLeft {
-webkit-animation-name: rotateInDownLeft;
animation-name: rotateInDownLeft; }
@-webkit-keyframes rotateInDownRight {
from {
-webkit-transform-origin: right bottom;
transform-origin: right bottom;
-webkit-transform: rotate3d(0, 0, 1, 45deg);
transform: rotate3d(0, 0, 1, 45deg);
opacity: 0; }
to {
-webkit-transform-origin: right bottom;
transform-origin: right bottom;
-webkit-transform: none;
transform: none;
opacity: 1; } }
@keyframes rotateInDownRight {
from {
-webkit-transform-origin: right bottom;
transform-origin: right bottom;
-webkit-transform: rotate3d(0, 0, 1, 45deg);
transform: rotate3d(0, 0, 1, 45deg);
opacity: 0; }
to {
-webkit-transform-origin: right bottom;
transform-origin: right bottom;
-webkit-transform: none;
transform: none;
opacity: 1; } }
.rotateInDownRight {
-webkit-animation-name: rotateInDownRight;
animation-name: rotateInDownRight; }
@-webkit-keyframes rotateInUpLeft {
from {
-webkit-transform-origin: left bottom;
transform-origin: left bottom;
-webkit-transform: rotate3d(0, 0, 1, 45deg);
transform: rotate3d(0, 0, 1, 45deg);
opacity: 0; }
to {
-webkit-transform-origin: left bottom;
transform-origin: left bottom;
-webkit-transform: none;
transform: none;
opacity: 1; } }
@keyframes rotateInUpLeft {
from {
-webkit-transform-origin: left bottom;
transform-origin: left bottom;
-webkit-transform: rotate3d(0, 0, 1, 45deg);
transform: rotate3d(0, 0, 1, 45deg);
opacity: 0; }
to {
-webkit-transform-origin: left bottom;
transform-origin: left bottom;
-webkit-transform: none;
transform: none;
opacity: 1; } }
.rotateInUpLeft {
-webkit-animation-name: rotateInUpLeft;
animation-name: rotateInUpLeft; }
@-webkit-keyframes rotateInUpRight {
from {
-webkit-transform-origin: right bottom;
transform-origin: right bottom;
-webkit-transform: rotate3d(0, 0, 1, -90deg);
transform: rotate3d(0, 0, 1, -90deg);
opacity: 0; }
to {
-webkit-transform-origin: right bottom;
transform-origin: right bottom;
-webkit-transform: none;
transform: none;
opacity: 1; } }
@keyframes rotateInUpRight {
from {
-webkit-transform-origin: right bottom;
transform-origin: right bottom;
-webkit-transform: rotate3d(0, 0, 1, -90deg);
transform: rotate3d(0, 0, 1, -90deg);
opacity: 0; }
to {
-webkit-transform-origin: right bottom;
transform-origin: right bottom;
-webkit-transform: none;
transform: none;
opacity: 1; } }
.rotateInUpRight {
-webkit-animation-name: rotateInUpRight;
animation-name: rotateInUpRight; }
@-webkit-keyframes rotateOut {
from {
-webkit-transform-origin: center;
transform-origin: center;
opacity: 1; }
to {
-webkit-transform-origin: center;
transform-origin: center;
-webkit-transform: rotate3d(0, 0, 1, 200deg);
transform: rotate3d(0, 0, 1, 200deg);
opacity: 0; } }
@keyframes rotateOut {
from {
-webkit-transform-origin: center;
transform-origin: center;
opacity: 1; }
to {
-webkit-transform-origin: center;
transform-origin: center;
-webkit-transform: rotate3d(0, 0, 1, 200deg);
transform: rotate3d(0, 0, 1, 200deg);
opacity: 0; } }
.rotateOut {
-webkit-animation-name: rotateOut;
animation-name: rotateOut; }
@-webkit-keyframes rotateOutDownLeft {
from {
-webkit-transform-origin: left bottom;
transform-origin: left bottom;
opacity: 1; }
to {
-webkit-transform-origin: left bottom;
transform-origin: left bottom;
-webkit-transform: rotate3d(0, 0, 1, 45deg);
transform: rotate3d(0, 0, 1, 45deg);
opacity: 0; } }
@keyframes rotateOutDownLeft {
from {
-webkit-transform-origin: left bottom;
transform-origin: left bottom;
opacity: 1; }
to {
-webkit-transform-origin: left bottom;
transform-origin: left bottom;
-webkit-transform: rotate3d(0, 0, 1, 45deg);
transform: rotate3d(0, 0, 1, 45deg);
opacity: 0; } }
.rotateOutDownLeft {
-webkit-animation-name: rotateOutDownLeft;
animation-name: rotateOutDownLeft; }
@-webkit-keyframes rotateOutDownRight {
from {
-webkit-transform-origin: right bottom;
transform-origin: right bottom;
opacity: 1; }
to {
-webkit-transform-origin: right bottom;
transform-origin: right bottom;
-webkit-transform: rotate3d(0, 0, 1, -45deg);
transform: rotate3d(0, 0, 1, -45deg);
opacity: 0; } }
@keyframes rotateOutDownRight {
from {
-webkit-transform-origin: right bottom;
transform-origin: right bottom;
opacity: 1; }
to {
-webkit-transform-origin: right bottom;
transform-origin: right bottom;
-webkit-transform: rotate3d(0, 0, 1, -45deg);
transform: rotate3d(0, 0, 1, -45deg);
opacity: 0; } }
.rotateOutDownRight {
-webkit-animation-name: rotateOutDownRight;
animation-name: rotateOutDownRight; }
@-webkit-keyframes rotateOutUpLeft {
from {
-webkit-transform-origin: left bottom;
transform-origin: left bottom;
opacity: 1; }
to {
-webkit-transform-origin: left bottom;
transform-origin: left bottom;
-webkit-transform: rotate3d(0, 0, 1, -45deg);
transform: rotate3d(0, 0, 1, -45deg);
opacity: 0; } }
@keyframes rotateOutUpLeft {
from {
-webkit-transform-origin: left bottom;
transform-origin: left bottom;
opacity: 1; }
to {
-webkit-transform-origin: left bottom;
transform-origin: left bottom;
-webkit-transform: rotate3d(0, 0, 1, -45deg);
transform: rotate3d(0, 0, 1, -45deg);
opacity: 0; } }
.rotateOutUpLeft {
-webkit-animation-name: rotateOutUpLeft;
animation-name: rotateOutUpLeft; }
@-webkit-keyframes rotateOutUpRight {
from {
-webkit-transform-origin: right bottom;
transform-origin: right bottom;
opacity: 1; }
to {
-webkit-transform-origin: right bottom;
transform-origin: right bottom;
-webkit-transform: rotate3d(0, 0, 1, 90deg);
transform: rotate3d(0, 0, 1, 90deg);
opacity: 0; } }
@keyframes rotateOutUpRight {
from {
-webkit-transform-origin: right bottom;
transform-origin: right bottom;
opacity: 1; }
to {
-webkit-transform-origin: right bottom;
transform-origin: right bottom;
-webkit-transform: rotate3d(0, 0, 1, 90deg);
transform: rotate3d(0, 0, 1, 90deg);
opacity: 0; } }
.rotateOutUpRight {
-webkit-animation-name: rotateOutUpRight;
animation-name: rotateOutUpRight; }
@-webkit-keyframes hinge {
0% {
-webkit-transform-origin: top left;
transform-origin: top left;
-webkit-animation-timing-function: ease-in-out;
animation-timing-function: ease-in-out; }
20%, 60% {
-webkit-transform: rotate3d(0, 0, 1, 80deg);
transform: rotate3d(0, 0, 1, 80deg);
-webkit-transform-origin: top left;
transform-origin: top left;
-webkit-animation-timing-function: ease-in-out;
animation-timing-function: ease-in-out; }
40%, 80% {
-webkit-transform: rotate3d(0, 0, 1, 60deg);
transform: rotate3d(0, 0, 1, 60deg);
-webkit-transform-origin: top left;
transform-origin: top left;
-webkit-animation-timing-function: ease-in-out;
animation-timing-function: ease-in-out;
opacity: 1; }
to {
-webkit-transform: translate3d(0, 700px, 0);
transform: translate3d(0, 700px, 0);
opacity: 0; } }
@keyframes hinge {
0% {
-webkit-transform-origin: top left;
transform-origin: top left;
-webkit-animation-timing-function: ease-in-out;
animation-timing-function: ease-in-out; }
20%, 60% {
-webkit-transform: rotate3d(0, 0, 1, 80deg);
transform: rotate3d(0, 0, 1, 80deg);
-webkit-transform-origin: top left;
transform-origin: top left;
-webkit-animation-timing-function: ease-in-out;
animation-timing-function: ease-in-out; }
40%, 80% {
-webkit-transform: rotate3d(0, 0, 1, 60deg);
transform: rotate3d(0, 0, 1, 60deg);
-webkit-transform-origin: top left;
transform-origin: top left;
-webkit-animation-timing-function: ease-in-out;
animation-timing-function: ease-in-out;
opacity: 1; }
to {
-webkit-transform: translate3d(0, 700px, 0);
transform: translate3d(0, 700px, 0);
opacity: 0; } }
.hinge {
-webkit-animation-name: hinge;
animation-name: hinge; }
@-webkit-keyframes rollIn {
from {
opacity: 0;
-webkit-transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg);
transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg); }
to {
opacity: 1;
-webkit-transform: none;
transform: none; } }
@keyframes rollIn {
from {
opacity: 0;
-webkit-transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg);
transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg); }
to {
opacity: 1;
-webkit-transform: none;
transform: none; } }
.rollIn {
-webkit-animation-name: rollIn;
animation-name: rollIn; }
@-webkit-keyframes rollOut {
from {
opacity: 1; }
to {
opacity: 0;
-webkit-transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg);
transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg); } }
@keyframes rollOut {
from {
opacity: 1; }
to {
opacity: 0;
-webkit-transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg);
transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg); } }
.rollOut {
-webkit-animation-name: rollOut;
animation-name: rollOut; }
@-webkit-keyframes zoomIn {
from {
opacity: 0;
-webkit-transform: scale3d(0.3, 0.3, 0.3);
transform: scale3d(0.3, 0.3, 0.3); }
50% {
opacity: 1; } }
@keyframes zoomIn {
from {
opacity: 0;
-webkit-transform: scale3d(0.3, 0.3, 0.3);
transform: scale3d(0.3, 0.3, 0.3); }
50% {
opacity: 1; } }
.zoomIn {
-webkit-animation-name: zoomIn;
animation-name: zoomIn; }
@-webkit-keyframes zoomInDown {
from {
opacity: 0;
-webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -1000px, 0);
transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -1000px, 0);
-webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); }
60% {
opacity: 1;
-webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);
transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);
-webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); } }
@keyframes zoomInDown {
from {
opacity: 0;
-webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -1000px, 0);
transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -1000px, 0);
-webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); }
60% {
opacity: 1;
-webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);
transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);
-webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); } }
.zoomInDown {
-webkit-animation-name: zoomInDown;
animation-name: zoomInDown; }
@-webkit-keyframes zoomInLeft {
from {
opacity: 0;
-webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(-1000px, 0, 0);
transform: scale3d(0.1, 0.1, 0.1) translate3d(-1000px, 0, 0);
-webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); }
60% {
opacity: 1;
-webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(10px, 0, 0);
transform: scale3d(0.475, 0.475, 0.475) translate3d(10px, 0, 0);
-webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); } }
@keyframes zoomInLeft {
from {
opacity: 0;
-webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(-1000px, 0, 0);
transform: scale3d(0.1, 0.1, 0.1) translate3d(-1000px, 0, 0);
-webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); }
60% {
opacity: 1;
-webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(10px, 0, 0);
transform: scale3d(0.475, 0.475, 0.475) translate3d(10px, 0, 0);
-webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); } }
.zoomInLeft {
-webkit-animation-name: zoomInLeft;
animation-name: zoomInLeft; }
@-webkit-keyframes zoomInRight {
from {
opacity: 0;
-webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(1000px, 0, 0);
transform: scale3d(0.1, 0.1, 0.1) translate3d(1000px, 0, 0);
-webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); }
60% {
opacity: 1;
-webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(-10px, 0, 0);
transform: scale3d(0.475, 0.475, 0.475) translate3d(-10px, 0, 0);
-webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); } }
@keyframes zoomInRight {
from {
opacity: 0;
-webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(1000px, 0, 0);
transform: scale3d(0.1, 0.1, 0.1) translate3d(1000px, 0, 0);
-webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); }
60% {
opacity: 1;
-webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(-10px, 0, 0);
transform: scale3d(0.475, 0.475, 0.475) translate3d(-10px, 0, 0);
-webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); } }
.zoomInRight {
-webkit-animation-name: zoomInRight;
animation-name: zoomInRight; }
@-webkit-keyframes zoomInUp {
from {
opacity: 0;
-webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 1000px, 0);
transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 1000px, 0);
-webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); }
60% {
opacity: 1;
-webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);
transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);
-webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); } }
@keyframes zoomInUp {
from {
opacity: 0;
-webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 1000px, 0);
transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 1000px, 0);
-webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); }
60% {
opacity: 1;
-webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);
transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);
-webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); } }
.zoomInUp {
-webkit-animation-name: zoomInUp;
animation-name: zoomInUp; }
@-webkit-keyframes zoomOut {
from {
opacity: 1; }
50% {
opacity: 0;
-webkit-transform: scale3d(0.3, 0.3, 0.3);
transform: scale3d(0.3, 0.3, 0.3); }
to {
opacity: 0; } }
@keyframes zoomOut {
from {
opacity: 1; }
50% {
opacity: 0;
-webkit-transform: scale3d(0.3, 0.3, 0.3);
transform: scale3d(0.3, 0.3, 0.3); }
to {
opacity: 0; } }
.zoomOut {
-webkit-animation-name: zoomOut;
animation-name: zoomOut; }
@-webkit-keyframes zoomOutDown {
40% {
opacity: 1;
-webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);
transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);
-webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); }
to {
opacity: 0;
-webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 2000px, 0);
transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 2000px, 0);
-webkit-transform-origin: center bottom;
transform-origin: center bottom;
-webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); } }
@keyframes zoomOutDown {
40% {
opacity: 1;
-webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);
transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);
-webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); }
to {
opacity: 0;
-webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 2000px, 0);
transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 2000px, 0);
-webkit-transform-origin: center bottom;
transform-origin: center bottom;
-webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); } }
.zoomOutDown {
-webkit-animation-name: zoomOutDown;
animation-name: zoomOutDown; }
@-webkit-keyframes zoomOutLeft {
40% {
opacity: 1;
-webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(42px, 0, 0);
transform: scale3d(0.475, 0.475, 0.475) translate3d(42px, 0, 0); }
to {
opacity: 0;
-webkit-transform: scale(0.1) translate3d(-2000px, 0, 0);
transform: scale(0.1) translate3d(-2000px, 0, 0);
-webkit-transform-origin: left center;
transform-origin: left center; } }
@keyframes zoomOutLeft {
40% {
opacity: 1;
-webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(42px, 0, 0);
transform: scale3d(0.475, 0.475, 0.475) translate3d(42px, 0, 0); }
to {
opacity: 0;
-webkit-transform: scale(0.1) translate3d(-2000px, 0, 0);
transform: scale(0.1) translate3d(-2000px, 0, 0);
-webkit-transform-origin: left center;
transform-origin: left center; } }
.zoomOutLeft {
-webkit-animation-name: zoomOutLeft;
animation-name: zoomOutLeft; }
@-webkit-keyframes zoomOutRight {
40% {
opacity: 1;
-webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(-42px, 0, 0);
transform: scale3d(0.475, 0.475, 0.475) translate3d(-42px, 0, 0); }
to {
opacity: 0;
-webkit-transform: scale(0.1) translate3d(2000px, 0, 0);
transform: scale(0.1) translate3d(2000px, 0, 0);
-webkit-transform-origin: right center;
transform-origin: right center; } }
@keyframes zoomOutRight {
40% {
opacity: 1;
-webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(-42px, 0, 0);
transform: scale3d(0.475, 0.475, 0.475) translate3d(-42px, 0, 0); }
to {
opacity: 0;
-webkit-transform: scale(0.1) translate3d(2000px, 0, 0);
transform: scale(0.1) translate3d(2000px, 0, 0);
-webkit-transform-origin: right center;
transform-origin: right center; } }
.zoomOutRight {
-webkit-animation-name: zoomOutRight;
animation-name: zoomOutRight; }
@-webkit-keyframes zoomOutUp {
40% {
opacity: 1;
-webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);
transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);
-webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); }
to {
opacity: 0;
-webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -2000px, 0);
transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -2000px, 0);
-webkit-transform-origin: center bottom;
transform-origin: center bottom;
-webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); } }
@keyframes zoomOutUp {
40% {
opacity: 1;
-webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);
transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);
-webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); }
to {
opacity: 0;
-webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -2000px, 0);
transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -2000px, 0);
-webkit-transform-origin: center bottom;
transform-origin: center bottom;
-webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); } }
.zoomOutUp {
-webkit-animation-name: zoomOutUp;
animation-name: zoomOutUp; }
@-webkit-keyframes slideInDown {
from {
-webkit-transform: translate3d(0, -100%, 0);
transform: translate3d(0, -100%, 0);
visibility: visible; }
to {
-webkit-transform: translate3d(0, 0, 0);
transform: translate3d(0, 0, 0); } }
@keyframes slideInDown {
from {
-webkit-transform: translate3d(0, -100%, 0);
transform: translate3d(0, -100%, 0);
visibility: visible; }
to {
-webkit-transform: translate3d(0, 0, 0);
transform: translate3d(0, 0, 0); } }
.slideInDown {
-webkit-animation-name: slideInDown;
animation-name: slideInDown; }
@-webkit-keyframes slideInLeft {
from {
-webkit-transform: translate3d(-100%, 0, 0);
transform: translate3d(-100%, 0, 0);
visibility: visible; }
to {
-webkit-transform: translate3d(0, 0, 0);
transform: translate3d(0, 0, 0); } }
@keyframes slideInLeft {
from {
-webkit-transform: translate3d(-100%, 0, 0);
transform: translate3d(-100%, 0, 0);
visibility: visible; }
to {
-webkit-transform: translate3d(0, 0, 0);
transform: translate3d(0, 0, 0); } }
.slideInLeft {
-webkit-animation-name: slideInLeft;
animation-name: slideInLeft; }
@-webkit-keyframes slideInRight {
from {
-webkit-transform: translate3d(100%, 0, 0);
transform: translate3d(100%, 0, 0);
visibility: visible; }
to {
-webkit-transform: translate3d(0, 0, 0);
transform: translate3d(0, 0, 0); } }
@keyframes slideInRight {
from {
-webkit-transform: translate3d(100%, 0, 0);
transform: translate3d(100%, 0, 0);
visibility: visible; }
to {
-webkit-transform: translate3d(0, 0, 0);
transform: translate3d(0, 0, 0); } }
.slideInRight {
-webkit-animation-name: slideInRight;
animation-name: slideInRight; }
@-webkit-keyframes slideInUp {
from {
-webkit-transform: translate3d(0, 100%, 0);
transform: translate3d(0, 100%, 0);
visibility: visible; }
to {
-webkit-transform: translate3d(0, 0, 0);
transform: translate3d(0, 0, 0); } }
@keyframes slideInUp {
from {
-webkit-transform: translate3d(0, 100%, 0);
transform: translate3d(0, 100%, 0);
visibility: visible; }
to {
-webkit-transform: translate3d(0, 0, 0);
transform: translate3d(0, 0, 0); } }
.slideInUp {
-webkit-animation-name: slideInUp;
animation-name: slideInUp; }
@-webkit-keyframes slideOutDown {
from {
-webkit-transform: translate3d(0, 0, 0);
transform: translate3d(0, 0, 0); }
to {
visibility: hidden;
-webkit-transform: translate3d(0, 100%, 0);
transform: translate3d(0, 100%, 0); } }
@keyframes slideOutDown {
from {
-webkit-transform: translate3d(0, 0, 0);
transform: translate3d(0, 0, 0); }
to {
visibility: hidden;
-webkit-transform: translate3d(0, 100%, 0);
transform: translate3d(0, 100%, 0); } }
.slideOutDown {
-webkit-animation-name: slideOutDown;
animation-name: slideOutDown; }
@-webkit-keyframes slideOutLeft {
from {
-webkit-transform: translate3d(0, 0, 0);
transform: translate3d(0, 0, 0); }
to {
visibility: hidden;
-webkit-transform: translate3d(-100%, 0, 0);
transform: translate3d(-100%, 0, 0); } }
@keyframes slideOutLeft {
from {
-webkit-transform: translate3d(0, 0, 0);
transform: translate3d(0, 0, 0); }
to {
visibility: hidden;
-webkit-transform: translate3d(-100%, 0, 0);
transform: translate3d(-100%, 0, 0); } }
.slideOutLeft {
-webkit-animation-name: slideOutLeft;
animation-name: slideOutLeft; }
@-webkit-keyframes slideOutRight {
from {
-webkit-transform: translate3d(0, 0, 0);
transform: translate3d(0, 0, 0); }
to {
visibility: hidden;
-webkit-transform: translate3d(100%, 0, 0);
transform: translate3d(100%, 0, 0); } }
@keyframes slideOutRight {
from {
-webkit-transform: translate3d(0, 0, 0);
transform: translate3d(0, 0, 0); }
to {
visibility: hidden;
-webkit-transform: translate3d(100%, 0, 0);
transform: translate3d(100%, 0, 0); } }
.slideOutRight {
-webkit-animation-name: slideOutRight;
animation-name: slideOutRight; }
@-webkit-keyframes slideOutUp {
from {
-webkit-transform: translate3d(0, 0, 0);
transform: translate3d(0, 0, 0); }
to {
visibility: hidden;
-webkit-transform: translate3d(0, -100%, 0);
transform: translate3d(0, -100%, 0); } }
@keyframes slideOutUp {
from {
-webkit-transform: translate3d(0, 0, 0);
transform: translate3d(0, 0, 0); }
to {
visibility: hidden;
-webkit-transform: translate3d(0, -100%, 0);
transform: translate3d(0, -100%, 0); } }
.slideOutUp {
-webkit-animation-name: slideOutUp;
animation-name: slideOutUp; }
.ps-container {
-ms-touch-action: auto;
touch-action: auto;
overflow: hidden !important;
-ms-overflow-style: none; }
@supports (-ms-overflow-style: none) {
.ps-container {
overflow: auto !important; } }
@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {
.ps-container {
overflow: auto !important; } }
.ps-container.ps-active-x > .ps-scrollbar-x-rail, .ps-container.ps-active-y > .ps-scrollbar-y-rail {
display: block;
background-color: transparent; }
.ps-container.ps-in-scrolling.ps-x > .ps-scrollbar-x-rail {
background-color: transparent;
opacity: .9; }
.ps-container.ps-in-scrolling.ps-x > .ps-scrollbar-x-rail > .ps-scrollbar-x {
background-color: rgba(0, 0, 0, 0.2);
height: 11px; }
.ps-container.ps-in-scrolling.ps-y > .ps-scrollbar-y-rail {
background-color: transparent;
opacity: .9; }
.ps-container.ps-in-scrolling.ps-y > .ps-scrollbar-y-rail > .ps-scrollbar-y {
background-color: rgba(0, 0, 0, 0.2);
width: 11px; }
.ps-container > .ps-scrollbar-x-rail {
display: none;
position: absolute;
opacity: 0;
-webkit-transition: background-color .2s linear,opacity .2s linear;
-o-transition: background-color .2s linear,opacity .2s linear;
-moz-transition: background-color .2s linear,opacity .2s linear;
transition: background-color .2s linear,opacity .2s linear;
bottom: 0;
height: 15px; }
.ps-container > .ps-scrollbar-x-rail > .ps-scrollbar-x {
position: absolute;
background-color: rgba(0, 0, 0, 0.2);
-webkit-border-radius: 6px;
-moz-border-radius: 6px;
border-radius: 6px;
-webkit-transition: background-color .2s linear,height .2s linear,width .2s ease-in-out,-webkit-border-radius .2s ease-in-out;
transition: background-color .2s linear,height .2s linear,width .2s ease-in-out,-webkit-border-radius .2s ease-in-out;
-o-transition: background-color .2s linear,height .2s linear,width .2s ease-in-out,border-radius .2s ease-in-out;
-moz-transition: background-color .2s linear,height .2s linear,width .2s ease-in-out,border-radius .2s ease-in-out,-moz-border-radius .2s ease-in-out;
-webkit-transition: background-color .2s linear,height .2s linear,width .2s ease-in-out,border-radius .2s ease-in-out;
transition: background-color .2s linear,height .2s linear,width .2s ease-in-out,border-radius .2s ease-in-out;
transition: background-color .2s linear,height .2s linear,width .2s ease-in-out,border-radius .2s ease-in-out,-webkit-border-radius .2s ease-in-out,-moz-border-radius .2s ease-in-out;
bottom: 2px;
height: 6px; }
.ps-container > .ps-scrollbar-x-rail:hover > .ps-scrollbar-x, .ps-container > .ps-scrollbar-x-rail:active > .ps-scrollbar-x {
height: 6px; }
.ps-container > .ps-scrollbar-y-rail {
display: none;
position: absolute;
opacity: 0;
-webkit-transition: background-color .2s linear,opacity .2s linear;
-o-transition: background-color .2s linear,opacity .2s linear;
-moz-transition: background-color .2s linear,opacity .2s linear;
transition: background-color .2s linear,opacity .2s linear;
right: 0;
width: 15px; }
.ps-container > .ps-scrollbar-y-rail > .ps-scrollbar-y {
position: absolute;
background-color: rgba(0, 0, 0, 0.2);
-webkit-border-radius: 6px;
-moz-border-radius: 6px;
border-radius: 6px;
-webkit-transition: background-color .2s linear,height .2s linear,width .2s ease-in-out,-webkit-border-radius .2s ease-in-out;
transition: background-color .2s linear,height .2s linear,width .2s ease-in-out,-webkit-border-radius .2s ease-in-out;
-o-transition: background-color .2s linear,height .2s linear,width .2s ease-in-out,border-radius .2s ease-in-out;
-moz-transition: background-color .2s linear,height .2s linear,width .2s ease-in-out,border-radius .2s ease-in-out,-moz-border-radius .2s ease-in-out;
-webkit-transition: background-color .2s linear,height .2s linear,width .2s ease-in-out,border-radius .2s ease-in-out;
transition: background-color .2s linear,height .2s linear,width .2s ease-in-out,border-radius .2s ease-in-out;
transition: background-color .2s linear,height .2s linear,width .2s ease-in-out,border-radius .2s ease-in-out,-webkit-border-radius .2s ease-in-out,-moz-border-radius .2s ease-in-out;
right: 2px;
width: 6px; }
.ps-container > .ps-scrollbar-y-rail:hover > .ps-scrollbar-y, .ps-container > .ps-scrollbar-y-rail:active > .ps-scrollbar-y {
width: 6px; }
.ps-container:hover.ps-in-scrolling.ps-x > .ps-scrollbar-x-rail {
background-color: transparent;
opacity: .9; }
.ps-container:hover.ps-in-scrolling.ps-x > .ps-scrollbar-x-rail > .ps-scrollbar-x {
background-color: rgba(0, 0, 0, 0.2);
height: 6px; }
.ps-container:hover.ps-in-scrolling.ps-y > .ps-scrollbar-y-rail {
background-color: transparent;
opacity: .9; }
.ps-container:hover.ps-in-scrolling.ps-y > .ps-scrollbar-y-rail > .ps-scrollbar-y {
background-color: rgba(0, 0, 0, 0.2);
width: 6px; }
.ps-container:hover > .ps-scrollbar-x-rail, .ps-container:hover > .ps-scrollbar-y-rail {
opacity: .6; }
.ps-container:hover > .ps-scrollbar-x-rail:hover {
background-color: transparent;
opacity: .9; }
.ps-container:hover > .ps-scrollbar-x-rail:hover > .ps-scrollbar-x {
background-color: rgba(0, 0, 0, 0.2); }
.ps-container:hover > .ps-scrollbar-y-rail:hover {
background-color: transparent;
opacity: .9; }
.ps-container:hover > .ps-scrollbar-y-rail:hover > .ps-scrollbar-y {
background-color: rgba(0, 0, 0, 0.2); }
.ps-container .ps-scrollbar-y-rail {
position: absolute;
/* please don't change 'position' */
right: 3px;
/* there must be 'right' for ps-scrollbar-y-rail */
width: 8px;
-webkit-border-radius: 4px;
-moz-border-radius: 4px;
border-radius: 4px;
opacity: 0;
filter: alpha(opacity=0);
-o-transition: background-color .2s linear, opacity .2s linear;
-webkit-transition: background-color .2s linear, opacity .2s linear;
-moz-transition: background-color .2s linear, opacity .2s linear;
transition: background-color .2s linear, opacity .2s linear; }
/*
Template Name: Admin Template
Author: Niravjoshi / Wrappixel
File: scss
*/
html body .jqstooltip,
html body .flotTip {
width: auto !important;
height: auto !important;
background: #212529;
color: #fff;
padding: 5px 10px; }
body .jqstooltip {
border-color: transparent;
border-radius: 60px; }
.chartist-tooltip {
position: absolute;
display: inline-block;
opacity: 0;
border-radius: 2px;
padding: 10px 20px;
background: #2962FF;
color: #fff;
ext-align: center;
pointer-events: none;
z-index: 1;
-webkit-transition: opacity .2s linear;
-moz-transition: opacity .2s linear;
-o-transition: opacity .2s linear;
transition: opacity .2s linear; }
.chartist-tooltip:before {
content: "";
position: absolute;
top: 100%;
left: 50%;
width: 0;
height: 0;
margin-left: -5px;
border: 5px solid transparent;
border-top-color: #2962FF; }
.chartist-tooltip.tooltip-show {
opacity: 1; }
.ct-area,
.ct-line {
pointer-events: none; }
.c3-chart-arcs-title {
fill: #a1aab2; }
.c3 line,
.c3 path {
stroke: #e9ecef; }
.c3-chart-arc path {
stroke: transparent; }
.popover-item {
margin-left: -15px; }
.popover-item:hover {
z-index: 10;
position: relative; }
.custom-select {
-moz-appearance: none;
-webkit-appearance: none;
-o-appearance: none;
background-size: auto; }
.select2-container--classic .select2-selection--single,
.select2-container--default .select2-selection--single,
.select2-container--default .select2-selection--single .select2-selection__rendered,
.select2-container--default .select2-selection--single .select2-selection__arrow,
.select2-container--default .select2-selection--multiple {
border-color: #e9ecef;
height: 40px;
color: #3e5569;
line-height: 40px; }
.select2-container--default .select2-selection--multiple {
line-height: 27px; }
.select2-container--classic .select2-selection--multiple .select2-selection__choice,
.select2-container--default .select2-selection--multiple .select2-selection__choice,
.select2-container--default .select2-selection--multiple .select2-selection__choice__remove {
background-color: #2962FF;
border-color: #2962FF;
color: #fff; }
.m-icon {
width: 33%;
display: inline-block; }
@media (max-width: 767.98px) {
.m-icon {
width: 100%; } }
.f-icon,
.t-icon,
.w-icon,
.sl-icon,
.if-icon,
.m-icon {
cursor: pointer;
padding: 13px 15px;
white-space: nowrap;
overflow: hidden;
-o-text-overflow: ellipsis;
text-overflow: ellipsis; }
.f-icon:hover,
.t-icon:hover,
.w-icon:hover,
.sl-icon:hover,
.if-icon:hover,
.m-icon:hover {
background-color: #f8f9fa; }
.table.dataTable {
border-collapse: collapse !important; }
.dataTables_wrapper {
padding: 0px; }
.note-editor.note-frame,
.dropzone {
border-color: #e9ecef; }
.dropzone {
border-style: dotted; }
.note-toolbar {
z-index: 1; }
.nav-pills.custom-pills .nav-link {
border-radius: 0;
opacity: 0.7; }
.nav-pills.custom-pills .nav-link.active {
color: #2962FF;
opacity: 1;
background-color: transparent;
border-bottom: 2px solid #2962FF; }
label {
font-weight: 600; }
.r-separator .form-group {
border-bottom: 1px solid #e9ecef; }
.r-separator .form-group:last-child {
border-bottom: none; }
.striped-rows .row:nth-child(odd) {
background-color: #f8f9fa; }
.b-form .row {
border-bottom: 1px solid #e9ecef;
margin-bottom: 0;
padding: 15px 0; }
.b-form .row:last-child {
border-bottom: none; }
.b-label {
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
-webkit-box-pack: end;
-ms-flex-pack: end;
justify-content: flex-end; }
.error .form-control {
border-color: #f62d51; }
.error .help-block {
color: #f62d51; }
.validate .form-control {
border-color: #36bea6; }
.validate .help-block {
color: #36bea6; }
@media (min-height: 33.875em) {
.picker--opened .picker__frame {
top: 30%;
bottom: auto; } }
.dtp > .dtp-content > .dtp-date-view > header.dtp-header {
background: #1d50de; }
.dtp div.dtp-date,
.dtp div.dtp-time,
.dtp table.dtp-picker-days tr > td > a.selected {
background: #2962FF; }
.dtp .p10 > a {
color: #fff; }
.datepicker .day,
.datepicker .dow {
padding: 5px 10px; }
.docs-buttons .btn,
.docs-data .input-group {
margin-bottom: 5px; }
.scrollable {
position: relative; }
.error-box {
height: 100%;
position: fixed;
background: url(../../../../assets/images/background/error-bg.jpg) no-repeat center center #fff;
width: 100%; }
.error-box .error-body {
padding-top: 5%; }
.error-box .error-title {
font-size: 210px;
font-weight: 900;
text-shadow: 4px 4px 0 #fff, 6px 6px 0 #343a40;
line-height: 210px; }
.price-label {
position: absolute;
top: -10px;
margin: 0 auto;
left: 0;
right: 0;
width: 100px;
padding: 5px 10px; }
.price-sign {
position: absolute;
font-size: 15px;
top: 5px;
margin-left: -10px; }
/*******************/
/*Guage chart*/
/*******************/
.gaugejs-box {
position: relative;
margin: 0 auto; }
.gaugejs-box canvas.gaugejs {
width: 100% !important;
height: auto !important; }
html[dir="rtl"] {
/*******************
Padding margin property
*******************/
/** * Zero */
/* Stickey inner-left-part */
/* plugins */
/*.sl-icon i,
[class*=" ti-"],
[class^=ti-] {
float: right;
margin-left: 10px;
line-height: 20px;
}*/
/* Vertical responsive layout */ }
html[dir="rtl"] body .m-t-5 {
margin-top: 5px; }
html[dir="rtl"] body .m-b-5 {
margin-bottom: 5px; }
html[dir="rtl"] body .m-r-5 {
margin-left: 5px; }
html[dir="rtl"] body .m-l-5 {
margin-right: 5px; }
html[dir="rtl"] body .p-t-5 {
padding-top: 5px; }
html[dir="rtl"] body .p-b-5 {
padding-bottom: 5px; }
html[dir="rtl"] body .p-r-5 {
padding-left: 5px; }
html[dir="rtl"] body .p-l-5 {
padding-right: 5px; }
html[dir="rtl"] body .p-5 {
padding: 5px; }
html[dir="rtl"] body .m-5 {
margin: 5px; }
html[dir="rtl"] body .m-t-10 {
margin-top: 10px; }
html[dir="rtl"] body .m-b-10 {
margin-bottom: 10px; }
html[dir="rtl"] body .m-r-10 {
margin-left: 10px; }
html[dir="rtl"] body .m-l-10 {
margin-right: 10px; }
html[dir="rtl"] body .p-t-10 {
padding-top: 10px; }
html[dir="rtl"] body .p-b-10 {
padding-bottom: 10px; }
html[dir="rtl"] body .p-r-10 {
padding-left: 10px; }
html[dir="rtl"] body .p-l-10 {
padding-right: 10px; }
html[dir="rtl"] body .p-10 {
padding: 10px; }
html[dir="rtl"] body .m-10 {
margin: 10px; }
html[dir="rtl"] body .m-t-15 {
margin-top: 15px; }
html[dir="rtl"] body .m-b-15 {
margin-bottom: 15px; }
html[dir="rtl"] body .m-r-15 {
margin-left: 15px; }
html[dir="rtl"] body .m-l-15 {
margin-right: 15px; }
html[dir="rtl"] body .p-t-15 {
padding-top: 15px; }
html[dir="rtl"] body .p-b-15 {
padding-bottom: 15px; }
html[dir="rtl"] body .p-r-15 {
padding-left: 15px; }
html[dir="rtl"] body .p-l-15 {
padding-right: 15px; }
html[dir="rtl"] body .p-15 {
padding: 15px; }
html[dir="rtl"] body .m-15 {
margin: 15px; }
html[dir="rtl"] body .m-t-20 {
margin-top: 20px; }
html[dir="rtl"] body .m-b-20 {
margin-bottom: 20px; }
html[dir="rtl"] body .m-r-20 {
margin-left: 20px; }
html[dir="rtl"] body .m-l-20 {
margin-right: 20px; }
html[dir="rtl"] body .p-t-20 {
padding-top: 20px; }
html[dir="rtl"] body .p-b-20 {
padding-bottom: 20px; }
html[dir="rtl"] body .p-r-20 {
padding-left: 20px; }
html[dir="rtl"] body .p-l-20 {
padding-right: 20px; }
html[dir="rtl"] body .p-20 {
padding: 20px; }
html[dir="rtl"] body .m-20 {
margin: 20px; }
html[dir="rtl"] body .m-t-25 {
margin-top: 25px; }
html[dir="rtl"] body .m-b-25 {
margin-bottom: 25px; }
html[dir="rtl"] body .m-r-25 {
margin-left: 25px; }
html[dir="rtl"] body .m-l-25 {
margin-right: 25px; }
html[dir="rtl"] body .p-t-25 {
padding-top: 25px; }
html[dir="rtl"] body .p-b-25 {
padding-bottom: 25px; }
html[dir="rtl"] body .p-r-25 {
padding-left: 25px; }
html[dir="rtl"] body .p-l-25 {
padding-right: 25px; }
html[dir="rtl"] body .p-25 {
padding: 25px; }
html[dir="rtl"] body .m-25 {
margin: 25px; }
html[dir="rtl"] body .m-t-30 {
margin-top: 30px; }
html[dir="rtl"] body .m-b-30 {
margin-bottom: 30px; }
html[dir="rtl"] body .m-r-30 {
margin-left: 30px; }
html[dir="rtl"] body .m-l-30 {
margin-right: 30px; }
html[dir="rtl"] body .p-t-30 {
padding-top: 30px; }
html[dir="rtl"] body .p-b-30 {
padding-bottom: 30px; }
html[dir="rtl"] body .p-r-30 {
padding-left: 30px; }
html[dir="rtl"] body .p-l-30 {
padding-right: 30px; }
html[dir="rtl"] body .p-30 {
padding: 30px; }
html[dir="rtl"] body .m-30 {
margin: 30px; }
html[dir="rtl"] body .m-t-40 {
margin-top: 40px; }
html[dir="rtl"] body .m-b-40 {
margin-bottom: 40px; }
html[dir="rtl"] body .m-r-40 {
margin-left: 40px; }
html[dir="rtl"] body .m-l-40 {
margin-right: 40px; }
html[dir="rtl"] body .p-t-40 {
padding-top: 40px; }
html[dir="rtl"] body .p-b-40 {
padding-bottom: 40px; }
html[dir="rtl"] body .p-r-40 {
padding-left: 40px; }
html[dir="rtl"] body .p-l-40 {
padding-right: 40px; }
html[dir="rtl"] body .p-40 {
padding: 40px; }
html[dir="rtl"] body .m-40 {
margin: 40px; }
html[dir="rtl"] body .m-0-0 {
margin: 0; }
html[dir="rtl"] body .m-t-0 {
margin-top: 0; }
html[dir="rtl"] body .m-r-0 {
margin-left: 0; }
html[dir="rtl"] body .m-b-0 {
margin-bottom: 0; }
html[dir="rtl"] body .m-l-0 {
margin-right: 0; }
html[dir="rtl"] body .p-0-0 {
padding: 0; }
html[dir="rtl"] body .p-t-0 {
padding-top: 0; }
html[dir="rtl"] body .p-r-0 {
padding-left: 0; }
html[dir="rtl"] body .p-b-0 {
padding-bottom: 0; }
html[dir="rtl"] body .p-l-0 {
padding-right: 0; }
html[dir="rtl"] body {
text-align: right;
direction: rtl; }
html[dir="rtl"] .page-breadcrumb .breadcrumb .breadcrumb-item + .breadcrumb-item {
padding-right: 0.5rem;
padding-left: 0; }
html[dir="rtl"] .page-breadcrumb .breadcrumb .breadcrumb-item + .breadcrumb-item::before {
content: "\e64a";
padding-right: 0;
padding-left: 0.5rem; }
html[dir="rtl"] .custom-select {
padding: .375rem .75rem .375rem 1.75rem;
background: url(../../assets/images/custom-select.png) left 0.35rem center no-repeat #fff; }
html[dir="rtl"] .custom-control {
padding-left: 0;
padding-right: 1.5rem; }
html[dir="rtl"] .custom-control-label::after,
html[dir="rtl"] .custom-control-label::before {
left: auto;
right: 0px; }
html[dir="rtl"] .list-group {
padding: 0px; }
html[dir="rtl"] .float-left {
float: right !important; }
html[dir="rtl"] .float-right {
float: left !important; }
html[dir="rtl"] .text-left {
text-align: right !important; }
html[dir="rtl"] .text-right {
text-align: left !important; }
html[dir="rtl"] .close {
float: left; }
html[dir="rtl"] .modal-header .close {
float: left;
margin: -1rem auto -1rem -1rem; }
html[dir="rtl"] .modal-footer > :not(:last-child) {
margin-left: 0.25rem;
margin-right: 0; }
html[dir="rtl"] .ml-auto {
margin-right: auto !important;
margin-left: 0px !important; }
html[dir="rtl"] .mr-auto {
margin-left: auto !important;
margin-right: 0px !important; }
html[dir="rtl"] .border-right {
border-right: none !important;
border-left: 1px solid #e9ecef !important; }
html[dir="rtl"] .border-left {
border-left: none !important;
border-right: 1px solid #e9ecef !important; }
html[dir="rtl"] .alert-dismissible {
padding-left: 3.8125rem;
padding-right: 1.25rem; }
html[dir="rtl"] .alert-dismissible .close {
left: 0;
right: auto; }
html[dir="rtl"] .custom-file-label {
left: auto;
right: 0;
width: 100%; }
html[dir="rtl"] .custom-file-label::after {
right: auto;
left: 0; }
html[dir="rtl"] .dropdown-menu-right {
right: auto;
left: 0; }
html[dir="rtl"] .dropdown-menu {
text-align: right; }
html[dir="rtl"] .topbar .navbar-collapse {
padding: 0 0 0 10px; }
html[dir="rtl"] .navbar-nav,
html[dir="rtl"] .nav,
html[dir="rtl"] .list-unstyled,
html[dir="rtl"] .pagination {
padding-right: 0; }
html[dir="rtl"] .topbar .top-navbar .navbar-header .navbar-brand .logo-icon {
margin-right: 0; }
html[dir="rtl"] .topbar .dropdown-menu.dropdown-menu-right .with-arrow {
left: 0;
right: auto; }
html[dir="rtl"] .topbar .dropdown-menu.dropdown-menu-right .with-arrow > span {
left: 20px;
right: auto; }
html[dir="rtl"] .search-box .app-search .srh-btn {
right: auto;
left: 20px; }
html[dir="rtl"] .mailbox .message-center .message-item .mail-contnet {
padding-right: 10px;
padding-left: 0; }
html[dir="rtl"] .customizer {
left: -280px;
right: auto; }
html[dir="rtl"] .customizer.show-service-panel {
left: 0;
right: auto; }
html[dir="rtl"] .customizer .service-panel-toggle {
right: -54px;
left: auto; }
html[dir="rtl"] .sidebar-nav .has-arrow::after {
margin-left: 0;
margin-right: 10px;
right: auto;
left: 15px; }
html[dir="rtl"] .left-part {
border-left: 1px solid #e9ecef;
border-right: none; }
html[dir="rtl"] .left-part .show-left-part {
left: -41px;
right: auto; }
html[dir="rtl"] .right-part {
margin-right: 260px;
margin-left: 0; }
html[dir="rtl"] .reverse-mode .left-part {
right: auto;
left: 0; }
html[dir="rtl"] .reverse-mode .show-left-part {
left: auto;
right: -41px; }
html[dir="rtl"] .reverse-mode .right-part {
margin-right: 0px;
margin-left: 260px; }
html[dir="rtl"] .profiletimeline {
padding-right: 40px;
padding-left: 0;
margin: 40px 30px 0 10px;
border-right: 1px solid #e9ecef;
border-left: none; }
html[dir="rtl"] .profiletimeline .sl-left {
float: right;
margin-right: -60px;
margin-left: 15px; }
html[dir="rtl"] .feed-widget .feed-body .feed-item > .feed-icon {
margin-right: 0;
margin-left: 10px; }
html[dir="rtl"] div.dataTables_wrapper div.dataTables_filter {
text-align: left; }
html[dir="rtl"] table.table-bordered.dataTable th,
html[dir="rtl"] table.table-bordered.dataTable td {
border-left-width: 1px; }
html[dir="rtl"] div.dataTables_wrapper div.dataTables_filter input {
margin-right: 0.5rem;
margin-left: 0; }
html[dir="rtl"] div.table-responsive > div.dataTables_wrapper > div.row > div[class^="col-"]:last-child {
padding-left: 1px; }
html[dir="rtl"] .lobilists .lobilist-actions {
right: auto;
left: 8px; }
html[dir="rtl"] .lobilists .lobilist-item .todo-actions {
right: auto;
left: 4px; }
html[dir="rtl"] .lobilists .lobilist-check {
left: auto;
right: 12px; }
html[dir="rtl"] .lobilists .lobilist-item,
html[dir="rtl"] .lobilists .lobilist-item-placeholder {
padding-left: 0;
padding-right: 35px; }
html[dir="rtl"] .lobilists .lobilist-item .drag-handler {
left: auto;
right: 0; }
html[dir="rtl"] .lobilists .lobilist-wrapper,
html[dir="rtl"] .lobilists .lobilist-placeholder {
margin-left: 16px;
margin-right: 0; }
html[dir="rtl"] .datepicker {
direction: rtl; }
html[dir="rtl"] .minicolors .minicolors-grid {
right: 22px;
left: auto; }
html[dir="rtl"] .wizard > .steps > ul > li,
html[dir="rtl"] .wizard > .actions > ul > li {
float: right; }
html[dir="rtl"] .wizard-content .wizard > .steps > ul > li:after {
right: auto;
left: 0; }
html[dir="rtl"] .wizard-content .wizard > .steps > ul > li:before {
left: auto;
right: 0; }
html[dir="rtl"] .wizard-content .wizard.vertical > .steps {
float: right; }
html[dir="rtl"] .css-bar > i {
margin-left: 0;
margin-right: 5px; }
html[dir="rtl"] .treeview span.icon {
margin-right: 0;
margin-left: 5px; }
html[dir="rtl"] #main-wrapper {
/*sidebar type*/ }
html[dir="rtl"] #main-wrapper[data-sidebartype="full"] .page-wrapper {
margin-right: 250px;
margin-left: 0; }
html[dir="rtl"] #main-wrapper[data-sidebartype="iconbar"] .page-wrapper {
margin-right: 180px;
margin-left: 0; }
html[dir="rtl"] #main-wrapper[data-sidebartype="overlay"] .left-sidebar {
right: -250px;
left: auto; }
html[dir="rtl"] #main-wrapper[data-sidebartype="overlay"].show-sidebar .left-sidebar {
right: 0;
left: auto; }
html[dir="rtl"] .dz-hidden-input {
display: none; }
@media (min-width: 768px) {
html[dir="rtl"] #main-wrapper {
/*Sidebar position*/
/*Fixed sidebar with minisidebar*/ }
html[dir="rtl"] #main-wrapper[data-sidebar-position="fixed"][data-sidebartype="full"] .topbar .top-navbar .navbar-collapse, html[dir="rtl"] #main-wrapper[data-sidebar-position="fixed"][data-sidebartype="overlay"] .topbar .top-navbar .navbar-collapse {
margin-right: 250px;
margin-left: 0; }
html[dir="rtl"] #main-wrapper[data-sidebar-position="fixed"][data-sidebartype="mini-sidebar"] .topbar .top-navbar .navbar-collapse {
margin-right: 65px;
margin-left: 0; }
html[dir="rtl"] #main-wrapper[data-sidebar-position="fixed"][data-sidebartype="iconbar"] .topbar .top-navbar .navbar-collapse {
margin-right: 180px;
margin-left: 0; }
html[dir="rtl"] #main-wrapper[data-sidebar-position="fixed"][data-sidebartype="mini-sidebar"] .topbar .top-navbar .navbar-collapse {
margin-right: 65px;
margin-left: 0; }
html[dir="rtl"] #main-wrapper[data-sidebartype="mini-sidebar"] .page-wrapper {
margin-right: 65px;
margin-left: 0; } }
@media (max-width: 766px) {
html[dir="rtl"] #main-wrapper[data-sidebartype="mini-sidebar"] .left-sidebar {
right: -250px;
left: auto; }
html[dir="rtl"] #main-wrapper.show-sidebar .left-sidebar {
right: 0;
left: auto; }
html[dir="rtl"] .left-part {
right: -260px;
left: auto; }
html[dir="rtl"] .left-part.show-panel {
right: 0px;
left: auto; }
html[dir="rtl"] .right-part {
margin-right: 0px; } }
/*******************************/
/*******************************/
/*Theme Colors*/
/*Topbar Colors*/
/*Sidebar Colors*/
/*Boxed layout width*/
/*Shadow*/
/*transitions*/
/*Dark transparent bg*/
.search-box .app-search .form-control, .topbar .mega-dropdown .dropdown-menu {
border-radius: 0px; }
.topbar .dropdown-menu .with-arrow > span {
transform: rotate(45deg);
-ms-transform: rotate(45deg);
-webkit-transform: rotate(45deg);
-o-transform: rotate(45deg);
-moz-transform: rotate(45deg); }
/*******************************/
/*******************************/
/**
* Table Of Content
*
* 1. Color system
* 2. Options
* 3. Body
* 4. Typography
* 5. Breadcrumbs
* 6. Cards
* 7. Dropdowns
* 8. Buttons
* 9. Typography
* 10. Progress bars
* 11. Tables
* 12. Forms
* 14. Component
*/
/*******************
Campaign
*******************/
.campaign {
position: relative;
height: 250px; }
.campaign .ct-series-a .ct-area {
fill-opacity: 0.2;
fill: url(#gradient); }
.campaign .ct-series-a .ct-line, .campaign .ct-series-a .ct-point {
stroke: #4fc3f7;
stroke-width: 2px; }
.campaign .ct-series-b .ct-area {
fill: #7460ee;
fill-opacity: 0.1; }
.campaign .ct-series-b .ct-line, .campaign .ct-series-b .ct-point {
stroke: #7460ee;
stroke-width: 2px; }
.campaign .ct-series-a .ct-point, .campaign .ct-series-b .ct-point {
stroke-width: 6px; }
/*******************************/
/*******************************/
/*Theme Colors*/
/*Topbar Colors*/
/*Sidebar Colors*/
/*Boxed layout width*/
/*Shadow*/
/*transitions*/
/*Dark transparent bg*/
.search-box .app-search .form-control, .topbar .mega-dropdown .dropdown-menu {
border-radius: 0px; }
.topbar .dropdown-menu .with-arrow > span {
transform: rotate(45deg);
-ms-transform: rotate(45deg);
-webkit-transform: rotate(45deg);
-o-transform: rotate(45deg);
-moz-transform: rotate(45deg); }
/*******************************/
/*******************************/
/**
* Table Of Content
*
* 1. Color system
* 2. Options
* 3. Body
* 4. Typography
* 5. Breadcrumbs
* 6. Cards
* 7. Dropdowns
* 8. Buttons
* 9. Typography
* 10. Progress bars
* 11. Tables
* 12. Forms
* 14. Component
*/
/*******************
Campaign
*******************/
.earningsbox .c3-line {
stroke-width: 2px; }
.product-sales.c3 line, .product-sales.c3 path {
stroke: #e9ecef; }
.product-sales .c3-shape {
stroke: #fff !important;
stroke-width: 3px; }
/*******************************/
/*******************************/
/*Theme Colors*/
/*Topbar Colors*/
/*Sidebar Colors*/
/*Boxed layout width*/
/*Shadow*/
/*transitions*/
/*Dark transparent bg*/
.search-box .app-search .form-control, .topbar .mega-dropdown .dropdown-menu {
border-radius: 0px; }
.topbar .dropdown-menu .with-arrow > span {
transform: rotate(45deg);
-ms-transform: rotate(45deg);
-webkit-transform: rotate(45deg);
-o-transform: rotate(45deg);
-moz-transform: rotate(45deg); }
/*******************************/
/*******************************/
/**
* Table Of Content
*
* 1. Color system
* 2. Options
* 3. Body
* 4. Typography
* 5. Breadcrumbs
* 6. Cards
* 7. Dropdowns
* 8. Buttons
* 9. Typography
* 10. Progress bars
* 11. Tables
* 12. Forms
* 14. Component
*/
/*******************
Campaign
*******************/
.e-campaign .css-bar .data-text {
margin: 0 auto;
position: absolute;
left: 0;
z-index: 200;
right: 0;
top: 70px;
text-align: center; }
.e-campaign .css-bar .data-text .success-rate {
font-size: 60px; }
.e-campaign .css-bar .data-text .rate-label {
margin-top: -20px; }
.e-campaign .c-cost {
padding: 10px 20px;
border: 1px solid #e9ecef;
border-radius: 5px; }
.e-campaign .c-cost i {
font-size: 48px; }
.poll-widget .collapsible {
border: none;
-webkit-box-shadow: none;
box-shadow: none; }
.poll-widget .collapsible .collapsible-header,
.poll-widget .collapsible .collapsible-body {
border-bottom: none;
padding: 1rem 0; }
#calendar .fc-toolbar {
padding: 0px 15px 24px; }
.jvectormap-zoomout,
.jvectormap-zoomin {
display: none; }
@media (max-width: 767px) {
.e-campaign .c-cost {
margin: 0 auto;
width: 100%; }
.e-campaign .stats {
text-align: center; } }
.css-bar-xlg {
width: 223px;
height: 223px;
font-size: 20px; }
.css-bar-xlg:after,
.css-bar-xlg > img {
width: 213px;
height: 213px;
margin-left: 5px;
margin-top: 5px;
line-height: 30px; }
/*******************************/
/*******************************/
/*Theme Colors*/
/*Topbar Colors*/
/*Sidebar Colors*/
/*Boxed layout width*/
/*Shadow*/
/*transitions*/
/*Dark transparent bg*/
.search-box .app-search .form-control, .topbar .mega-dropdown .dropdown-menu {
border-radius: 0px; }
.topbar .dropdown-menu .with-arrow > span {
transform: rotate(45deg);
-ms-transform: rotate(45deg);
-webkit-transform: rotate(45deg);
-o-transform: rotate(45deg);
-moz-transform: rotate(45deg); }
/*******************************/
/*******************************/
/**
* Table Of Content
*
* 1. Color system
* 2. Options
* 3. Body
* 4. Typography
* 5. Breadcrumbs
* 6. Cards
* 7. Dropdowns
* 8. Buttons
* 9. Typography
* 10. Progress bars
* 11. Tables
* 12. Forms
* 14. Component
*/
.gredient-info-bg {
background: -webkit-gradient(linear, left top, right top, from(#41a6f6), to(#425be0));
background: -webkit-linear-gradient(left, #41a6f6 0%, #425be0 100%);
background: -o-linear-gradient(left, #41a6f6 0%, #425be0 100%);
background: linear-gradient(to right, #41a6f6 0%, #425be0 100%); }
.product-sales .c3-shape {
stroke: transparent !important;
stroke-width: 3px; }
/*******************
Earnings
*******************/
.earnings {
position: relative;
height: 250px; }
.earnings .ct-series-a .ct-area {
fill-opacity: 0.2;
fill: url(#gradient); }
.earnings .ct-series-a .ct-line,
.earnings .ct-series-a .ct-point {
stroke: #2962FF;
stroke-width: 2px; }
.earnings .ct-series-b .ct-area {
fill: #4fc3f7;
fill-opacity: 0.1; }
.earnings .ct-series-b .ct-line,
.earnings .ct-series-b .ct-point {
stroke: #4fc3f7;
stroke-width: 2px; }
.earnings .ct-series-a .ct-point,
.earnings .ct-series-b .ct-point {
stroke-width: 6px; }
.ct-grid {
stroke-width: 0.3px;
stroke-dasharray: 0px; }
.ct-series-a .ct-bar {
stroke: #2962FF; }
@media (max-width: 1023px) {
.gredient-info-bg .info {
margin-top: 15px; } }
/*******************************/
/*******************************/
/*Theme Colors*/
/*Topbar Colors*/
/*Sidebar Colors*/
/*Boxed layout width*/
/*Shadow*/
/*transitions*/
/*Dark transparent bg*/
.search-box .app-search .form-control, .topbar .mega-dropdown .dropdown-menu {
border-radius: 0px; }
.topbar .dropdown-menu .with-arrow > span {
transform: rotate(45deg);
-ms-transform: rotate(45deg);
-webkit-transform: rotate(45deg);
-o-transform: rotate(45deg);
-moz-transform: rotate(45deg); }
/*******************************/
/*******************************/
/**
* Table Of Content
*
* 1. Color system
* 2. Options
* 3. Body
* 4. Typography
* 5. Breadcrumbs
* 6. Cards
* 7. Dropdowns
* 8. Buttons
* 9. Typography
* 10. Progress bars
* 11. Tables
* 12. Forms
* 14. Component
*/
.ct-series-a .ct-bar {
stroke: #2962FF; }
.ct-series-b .ct-bar {
stroke: #4fc3f7; }
@media (max-width: 767px) {
.ct-bar {
stroke-width: 10px !important; } }
/*******************************/
/*******************************/
/*Theme Colors*/
/*Topbar Colors*/
/*Sidebar Colors*/
/*Boxed layout width*/
/*Shadow*/
/*transitions*/
/*Dark transparent bg*/
.search-box .app-search .form-control, .topbar .mega-dropdown .dropdown-menu {
border-radius: 0px; }
.topbar .dropdown-menu .with-arrow > span {
transform: rotate(45deg);
-ms-transform: rotate(45deg);
-webkit-transform: rotate(45deg);
-o-transform: rotate(45deg);
-moz-transform: rotate(45deg); }
/*******************************/
/*******************************/
/**
* Table Of Content
*
* 1. Color system
* 2. Options
* 3. Body
* 4. Typography
* 5. Breadcrumbs
* 6. Cards
* 7. Dropdowns
* 8. Buttons
* 9. Typography
* 10. Progress bars
* 11. Tables
* 12. Forms
* 14. Component
*/
.auth-wrapper {
min-height: 100vh;
position: relative; }
.auth-wrapper .auth-box {
background: #fff;
padding: 20px;
-webkit-box-shadow: 1px 0px 20px rgba(0, 0, 0, 0.08);
box-shadow: 1px 0px 20px rgba(0, 0, 0, 0.08);
max-width: 400px;
width: 90%;
margin: 10% 0; }
.auth-wrapper .auth-box .logo {
text-align: center; }
.auth-wrapper .auth-box.on-sidebar {
top: 0px;
right: 0px;
height: 100%;
margin: 0px;
position: absolute; }
.auth-wrapper #recoverform {
display: none; }
.auth-wrapper .auth-sidebar {
position: fixed;
height: 100%;
right: 0px;
overflow: auto;
margin: 0px;
top: 0px; }
@media (max-width: 767px) {
.auth-wrapper .auth-sidebar {
position: relative;
max-width: 100%;
width: 100%;
margin: 40px 0 60px; }
.auth-wrapper .demo-text {
margin-top: 30px; } }
/*******************************/
/*******************************/
/*Theme Colors*/
/*Topbar Colors*/
/*Sidebar Colors*/
/*Boxed layout width*/
/*Shadow*/
/*transitions*/
/*Dark transparent bg*/
.search-box .app-search .form-control, .topbar .mega-dropdown .dropdown-menu {
border-radius: 0px; }
.topbar .dropdown-menu .with-arrow > span {
transform: rotate(45deg);
-ms-transform: rotate(45deg);
-webkit-transform: rotate(45deg);
-o-transform: rotate(45deg);
-moz-transform: rotate(45deg); }
/*******************************/
/*******************************/
/**
* Table Of Content
*
* 1. Color system
* 2. Options
* 3. Body
* 4. Typography
* 5. Breadcrumbs
* 6. Cards
* 7. Dropdowns
* 8. Buttons
* 9. Typography
* 10. Progress bars
* 11. Tables
* 12. Forms
* 14. Component
*/
.email-app {
position: relative; }
.email-app .list-group .list-group-item {
padding: 0px;
background: transparent;
border: none; }
.email-app .list-group .list-group-item .list-group-item-action {
padding: 12px 15px;
display: block;
color: #3e5569; }
.email-app .list-group .list-group-item .list-group-item-action .mdi {
font-size: 18px;
vertical-align: middle;
margin-right: 5px; }
.email-app .list-group .list-group-item .list-group-item-action:hover, .email-app .list-group .list-group-item .list-group-item-action.active {
background: rgba(0, 0, 0, 0.03); }
.email-app .email-table {
table-layout: fixed; }
.email-app .email-table .selected {
background: #fff8e1; }
.email-app .email-table .max-texts,
.email-app .email-table .user-name h6 {
white-space: nowrap;
overflow: hidden;
-o-text-overflow: ellipsis;
text-overflow: ellipsis; }
.email-app .email-table .max-texts {
padding: 1rem 5px; }
.email-app .email-table .chb {
width: 50px; }
.email-app .email-table .time {
width: 100px;
text-align: right; }
.email-app .email-table .starred,
.email-app .email-table .clip {
width: 25px;
padding: 1rem 5px; }
.email-app .email-table .user-image {
width: 45px;
padding: 1rem 5px; }
.email-app .email-table .user-name {
width: 130px;
padding: 1rem 5px; }
.email-app .email-table .user-name .m-b-0 {
font-weight: 300; }
.email-app .email-table .unread .m-b-0,
.email-app .email-table .unread .max-texts {
font-weight: 600; }
@media (max-width: 767px) {
.email-table {
min-width: 500px; } }
/*******************************/
/*******************************/
/*Theme Colors*/
/*Topbar Colors*/
/*Sidebar Colors*/
/*Boxed layout width*/
/*Shadow*/
/*transitions*/
/*Dark transparent bg*/
.search-box .app-search .form-control, .topbar .mega-dropdown .dropdown-menu {
border-radius: 0px; }
.topbar .dropdown-menu .with-arrow > span {
transform: rotate(45deg);
-ms-transform: rotate(45deg);
-webkit-transform: rotate(45deg);
-o-transform: rotate(45deg);
-moz-transform: rotate(45deg); }
/*******************************/
/*******************************/
/**
* Table Of Content
*
* 1. Color system
* 2. Options
* 3. Body
* 4. Typography
* 5. Breadcrumbs
* 6. Cards
* 7. Dropdowns
* 8. Buttons
* 9. Typography
* 10. Progress bars
* 11. Tables
* 12. Forms
* 14. Component
*/
.lobilists .lobilist {
-webkit-box-shadow: none;
box-shadow: none; }
.lobilists .lobilist.lobilist-primary {
border-color: #e9ecef; }
.lobilists .lobilist.lobilist-primary .lobilist-header,
.lobilists .lobilist.lobilist-primary .lobilist-footer,
.lobilists .lobilist.lobilist-primary .lobilist-form-footer {
border-color: #7460ee;
background-color: #7460ee; }
.lobilists .lobilist.lobilist-danger {
border-color: #e9ecef; }
.lobilists .lobilist.lobilist-danger .lobilist-header,
.lobilists .lobilist.lobilist-danger .lobilist-footer,
.lobilists .lobilist.lobilist-danger .lobilist-form-footer {
border-color: #f62d51;
background-color: #f62d51; }
.lobilists .lobilist.lobilist-info {
border-color: #e9ecef; }
.lobilists .lobilist.lobilist-info .lobilist-header,
.lobilists .lobilist.lobilist-info .lobilist-footer,
.lobilists .lobilist.lobilist-info .lobilist-form-footer {
border-color: #2962FF;
background-color: #2962FF; }
.lobilists .lobilist.lobilist-success {
border-color: #e9ecef; }
.lobilists .lobilist.lobilist-success .lobilist-header,
.lobilists .lobilist.lobilist-success .lobilist-footer {
border-color: #36bea6;
background-color: #36bea6; }
.lobilists .lobilist-footer,
.lobilists .lobilist-form-footer {
border-color: #e9ecef !important;
background: rgba(0, 0, 0, 0.02) !important; }
.lobilists .btn-link {
background: transparent;
border: 0;
-webkit-box-shadow: none;
box-shadow: none;
color: #343a40 !important; }
.lobilists.single-line {
height: 500px; }
.lobilist,
.lobilists {
position: relative; }
.lobilists [type="checkbox"]:not(:checked),
.lobilists [type="checkbox"]:checked {
opacity: 1;
position: relative; }
.lobilists .lobilist-item {
margin-bottom: 16px;
padding-top: 5px; }
.lobilists .lobilist-item-title {
color: #343a40; }
.lobilists .lobilist-item-description {
font-style: normal;
font-size: 13px; }
.lobilists .lobilist-check {
top: 10px; }
.lobilists .lobilist-item-duedate {
position: relative;
font-size: 12px;
left: 0px; }
.lobilists .lobilist-actions {
top: 0px; }
.lobilist-actions .btn i {
font-size: 15px;
vertical-align: middle; }
/*******************************/
/*******************************/
/*Theme Colors*/
/*Topbar Colors*/
/*Sidebar Colors*/
/*Boxed layout width*/
/*Shadow*/
/*transitions*/
/*Dark transparent bg*/
.search-box .app-search .form-control, .topbar .mega-dropdown .dropdown-menu {
border-radius: 0px; }
.topbar .dropdown-menu .with-arrow > span {
transform: rotate(45deg);
-ms-transform: rotate(45deg);
-webkit-transform: rotate(45deg);
-o-transform: rotate(45deg);
-moz-transform: rotate(45deg); }
/*******************************/
/*******************************/
/**
* Table Of Content
*
* 1. Color system
* 2. Options
* 3. Body
* 4. Typography
* 5. Breadcrumbs
* 6. Cards
* 7. Dropdowns
* 8. Buttons
* 9. Typography
* 10. Progress bars
* 11. Tables
* 12. Forms
* 14. Component
*/
.twitter-typeahead {
width: 100%; }
.twitter-typeahead .tt-menu {
width: 100%;
background: #fff;
border: 1px solid #f8f9fa;
border-radius: 5px;
padding: .75rem 0; }
.twitter-typeahead .tt-menu .tt-suggestion {
padding: .25rem .75rem;
cursor: pointer; }
.twitter-typeahead .tt-menu .tt-suggestion:hover {
background-color: #7460ee;
color: #fff; }
.twitter-typeahead .empty-message {
padding: 5px 10px;
text-align: center; }
.twitter-typeahead .rtl-typeahead .tt-menu {
text-align: right; }
.twitter-typeahead .league-name {
margin: 0 10px 5px;
padding: 7px 5px 10px;
border-bottom: 1px solid #e9ecef; }
.scrollable-dropdown .twitter-typeahead .tt-menu {
max-height: 80px;
overflow-y: auto; }
.bootstrap-maxlength {
margin-top: .5rem; }
/*
Template Name: Admin Template
Author: Wrappixel
File: scss
*/
/*******************************/
/*******************************/
/*Theme Colors*/
/*Topbar Colors*/
/*Sidebar Colors*/
/*Boxed layout width*/
/*Shadow*/
/*transitions*/
/*Dark transparent bg*/
.search-box .app-search .form-control, .topbar .mega-dropdown .dropdown-menu {
border-radius: 0px; }
.topbar .dropdown-menu .with-arrow > span {
transform: rotate(45deg);
-ms-transform: rotate(45deg);
-webkit-transform: rotate(45deg);
-o-transform: rotate(45deg);
-moz-transform: rotate(45deg); }
/*******************************/
/*******************************/
/**
* Table Of Content
*
* 1. Color system
* 2. Options
* 3. Body
* 4. Typography
* 5. Breadcrumbs
* 6. Cards
* 7. Dropdowns
* 8. Buttons
* 9. Typography
* 10. Progress bars
* 11. Tables
* 12. Forms
* 14. Component
*/
/*******************
User card page
******************/
.el-element-overlay .white-box {
padding: 0px; }
.el-element-overlay .el-card-item {
position: relative;
padding-bottom: 20px; }
.el-element-overlay .el-card-item .el-card-avatar {
margin-bottom: 20px; }
.el-element-overlay .el-card-item .el-card-content {
text-align: center; }
.el-element-overlay .el-card-item .el-overlay-1 {
width: 100%;
overflow: hidden;
position: relative;
text-align: center;
cursor: default; }
.el-element-overlay .el-card-item .el-overlay-1 img {
display: block;
position: relative;
-webkit-transition: all .4s linear;
-o-transition: all .4s linear;
transition: all .4s linear;
width: 100%;
height: auto; }
.el-element-overlay .el-card-item .el-overlay-1:hover img {
-ms-transform: scale(1.2) translateZ(0);
-webkit-transform: scale(1.2) translateZ(0);
/* transform: scale(1.2) translateZ(0); */ }
.el-element-overlay .el-card-item .el-overlay-1 .el-info {
text-decoration: none;
display: inline-block;
text-transform: uppercase;
color: #fff;
background-color: transparent;
filter: alpha(opacity=0);
-webkit-transition: all .2s ease-in-out;
-o-transition: all .2s ease-in-out;
transition: all .2s ease-in-out;
padding: 0;
margin: auto;
position: absolute;
top: 50%;
left: 0;
right: 0;
transform: translateY(-50%) translateZ(0);
-webkit-transform: translateY(-50%) translateZ(0);
-ms-transform: translateY(-50%) translateZ(0); }
.el-element-overlay .el-card-item .el-overlay-1 .el-info .el-item {
list-style: none;
display: inline-block;
margin: 0 3px; }
.el-element-overlay .el-card-item .el-overlay-1 .el-info .el-item .el-link {
border-color: #fff;
color: #fff;
padding: 12px 15px 10px; }
.el-element-overlay .el-card-item .el-overlay-1 .el-info .el-item .el-link:hover {
background: #2962FF;
border-color: #2962FF; }
.el-element-overlay .el-card-item .el-overlay {
width: 100%;
height: 100%;
position: absolute;
overflow: hidden;
top: 0;
left: 0;
opacity: 0;
background-color: rgba(0, 0, 0, 0.7);
-webkit-transition: all .4s ease-in-out;
-o-transition: all .4s ease-in-out;
transition: all .4s ease-in-out; }
.el-element-overlay .el-card-item .el-overlay-1:hover .el-overlay {
opacity: 1;
filter: alpha(opacity=100);
-webkit-transform: translateZ(0);
-ms-transform: translateZ(0);
transform: translateZ(0); }
.el-element-overlay .el-card-item .el-overlay-1 .scrl-dwn {
top: -100%; }
.el-element-overlay .el-card-item .el-overlay-1 .scrl-up {
top: 100%;
height: 0px; }
.el-element-overlay .el-card-item .el-overlay-1:hover .scrl-dwn {
top: 0px; }
.el-element-overlay .el-card-item .el-overlay-1:hover .scrl-up {
top: 0px;
height: 100%; }
/*
Template Name: Admin Template
Author: Wrappixel
File: scss
*/
/*******************************/
/*******************************/
/*Theme Colors*/
/*Topbar Colors*/
/*Sidebar Colors*/
/*Boxed layout width*/
/*Shadow*/
/*transitions*/
/*Dark transparent bg*/
.search-box .app-search .form-control, .topbar .mega-dropdown .dropdown-menu {
border-radius: 0px; }
.topbar .dropdown-menu .with-arrow > span {
transform: rotate(45deg);
-ms-transform: rotate(45deg);
-webkit-transform: rotate(45deg);
-o-transform: rotate(45deg);
-moz-transform: rotate(45deg); }
/*******************************/
/*******************************/
/**
* Table Of Content
*
* 1. Color system
* 2. Options
* 3. Body
* 4. Typography
* 5. Breadcrumbs
* 6. Cards
* 7. Dropdowns
* 8. Buttons
* 9. Typography
* 10. Progress bars
* 11. Tables
* 12. Forms
* 14. Component
*/
/*******************
google map Page
******************/
.gmaps, .gmaps-panaroma {
height: 300px; }
.gmaps, .gmaps-panaroma {
height: 300px;
background: #e9ecef;
border-radius: 2px; }
.gmaps-overlay {
display: block;
text-align: center;
color: #fff;
font-size: 16px;
line-height: 40px;
background: #2962FF;
border-radius: 4px;
padding: 10px 20px; }
.gmaps-overlay_arrow {
left: 50%;
margin-left: -16px;
width: 0;
height: 0;
position: absolute; }
.gmaps-overlay_arrow.above {
bottom: -15px;
border-left: 16px solid transparent;
border-right: 16px solid transparent;
border-top: 16px solid #2962FF; }
.gmaps-overlay_arrow.below {
top: -15px;
border-left: 16px solid transparent;
border-right: 16px solid transparent;
border-bottom: 16px solid #2962FF; }
/*******************
vector map Page
******************/
.jvectormap-zoomin, .jvectormap-zoomout {
width: 10px;
height: 10px;
line-height: 10px; }
.jvectormap-zoomout {
top: 40px; }
/*
Template Name: Admin Template
Author: Wrappixel
File: scss
*/
/*******************************/
/*******************************/
/*Theme Colors*/
/*Topbar Colors*/
/*Sidebar Colors*/
/*Boxed layout width*/
/*Shadow*/
/*transitions*/
/*Dark transparent bg*/
.search-box .app-search .form-control, .topbar .mega-dropdown .dropdown-menu {
border-radius: 0px; }
.topbar .dropdown-menu .with-arrow > span {
transform: rotate(45deg);
-ms-transform: rotate(45deg);
-webkit-transform: rotate(45deg);
-o-transform: rotate(45deg);
-moz-transform: rotate(45deg); }
/*******************************/
/*******************************/
/**
* Table Of Content
*
* 1. Color system
* 2. Options
* 3. Body
* 4. Typography
* 5. Breadcrumbs
* 6. Cards
* 7. Dropdowns
* 8. Buttons
* 9. Typography
* 10. Progress bars
* 11. Tables
* 12. Forms
* 14. Component
*/
/*******************
Timeline page
******************/
.timeline {
position: relative;
padding: 20px 0 20px;
list-style: none;
max-width: 1200px;
margin: 0 auto; }
.timeline:before {
content: " ";
position: absolute;
top: 0;
bottom: 0;
left: 50%;
width: 3px;
margin-left: -1.5px;
background-color: #e9ecef; }
.timeline > .timeline-item {
position: relative;
margin-bottom: 20px; }
.timeline > .timeline-item:before,
.timeline > .timeline-item:after {
content: " ";
display: table; }
.timeline > .timeline-item:after {
clear: both; }
.timeline > .timeline-item > .timeline-panel {
float: left;
position: relative;
width: 46%;
padding: 20px;
border: 1px solid #e9ecef;
border-radius: 2px;
-webkit-box-shadow: 0 1px 6px rgba(0, 0, 0, 0.05);
box-shadow: 0 1px 6px rgba(0, 0, 0, 0.05); }
.timeline > .timeline-item > .timeline-panel:before {
content: " ";
display: inline-block;
position: absolute;
top: 26px;
right: -8px;
border-top: 8px solid transparent;
border-right: 0 solid #e9ecef;
border-bottom: 8px solid transparent;
border-left: 8px solid #e9ecef; }
.timeline > .timeline-item > .timeline-panel:after {
content: " ";
display: inline-block;
position: absolute;
top: 27px;
right: -7px;
border-top: 7px solid transparent;
border-right: 0 solid #fff;
border-bottom: 7px solid transparent;
border-left: 7px solid #fff; }
.timeline > .timeline-item > .timeline-badge {
z-index: 10;
position: absolute;
top: 16px;
left: 50%;
width: 50px;
height: 50px;
margin-left: -25px;
border-radius: 50% 50% 50% 50%;
text-align: center;
font-size: 1.4em;
line-height: 50px;
color: #fff;
overflow: hidden; }
.timeline > .timeline-item.timeline-inverted > .timeline-panel {
float: right; }
.timeline > .timeline-item.timeline-inverted > .timeline-panel:before {
right: auto;
left: -8px;
border-right-width: 8px;
border-left-width: 0; }
.timeline > .timeline-item.timeline-inverted > .timeline-panel:after {
right: auto;
left: -7px;
border-right-width: 7px;
border-left-width: 0; }
.timeline-badge.primary {
background-color: #7460ee; }
.timeline-badge.success {
background-color: #36bea6; }
.timeline-badge.warning {
background-color: #ffbc34; }
.timeline-badge.danger {
background-color: #f62d51; }
.timeline-badge.info {
background-color: #2962FF; }
.timeline-title {
margin-top: 0;
color: inherit;
font-weight: 400; }
.timeline-body > p,
.timeline-body > ul {
margin-bottom: 0; }
.timeline-left:before {
left: 30px; }
.timeline-left > .timeline-item > .timeline-badge {
left: 30px;
top: 9px; }
.timeline-left > .timeline-item > .timeline-panel {
width: calc(100% - 80px); }
.timeline-right:before {
right: 30px;
left: auto; }
.timeline-right > .timeline-item > .timeline-badge {
right: 5px;
top: 9px;
left: auto; }
.timeline-right > .timeline-item > .timeline-panel {
width: calc(100% - 80px); }
/*******************
Horizontal Timeline page
******************/
.cd-horizontal-timeline .events a {
padding-bottom: 6px;
color: #2962FF; }
.cd-horizontal-timeline .filling-line,
.cd-horizontal-timeline .events a.selected::after {
background: #2962FF; }
.cd-horizontal-timeline .events a.selected::after {
border-color: #2962FF; }
.cd-horizontal-timeline .m-t-40 {
margin-top: 40px !important; }
/*******************************/
/*******************************/
/*Theme Colors*/
/*Topbar Colors*/
/*Sidebar Colors*/
/*Boxed layout width*/
/*Shadow*/
/*transitions*/
/*Dark transparent bg*/
.search-box .app-search .form-control, .topbar .mega-dropdown .dropdown-menu {
border-radius: 0px; }
.topbar .dropdown-menu .with-arrow > span {
transform: rotate(45deg);
-ms-transform: rotate(45deg);
-webkit-transform: rotate(45deg);
-o-transform: rotate(45deg);
-moz-transform: rotate(45deg); }
/*******************************/
/*******************************/
/**
* Table Of Content
*
* 1. Color system
* 2. Options
* 3. Body
* 4. Typography
* 5. Breadcrumbs
* 6. Cards
* 7. Dropdowns
* 8. Buttons
* 9. Typography
* 10. Progress bars
* 11. Tables
* 12. Forms
* 14. Component
*/
.dd {
position: relative;
display: block;
margin: 0;
padding: 0;
max-width: 600px;
list-style: none;
font-size: 13px;
line-height: 20px; }
.dd-list {
display: block;
position: relative;
margin: 0;
padding: 0;
list-style: none; }
.dd-list .dd-list {
padding-left: 30px; }
.dd-collapsed .dd-list {
display: none; }
.dd-item,
.dd-empty,
.dd-placeholder {
display: block;
position: relative;
margin: 0;
padding: 0;
min-height: 20px;
font-size: 13px;
line-height: 20px; }
.dd-handle {
display: block;
height: 30px;
margin: 5px 0;
padding: 5px 10px;
cursor: move;
color: #979898;
text-decoration: none;
font-weight: bold;
border: 1px solid #e5e5e5;
background: #fafafa;
-webkit-box-sizing: border-box;
box-sizing: border-box;
-moz-box-sizing: border-box; }
.dd-handle:hover {
color: #317eeb;
background: #fff; }
.dd-item > button {
display: block;
position: relative;
cursor: pointer;
float: left;
width: 25px;
height: 20px;
margin: 5px 0;
padding: 0;
text-indent: 100%;
white-space: nowrap;
overflow: hidden;
border: 0;
background: transparent;
font-size: 12px;
line-height: 1;
text-align: center;
font-weight: bold; }
.dd-item > button:before {
content: '+';
display: block;
position: absolute;
width: 100%;
text-align: center;
text-indent: 0; }
.dd-item > button[data-action="collapse"]:before {
content: '-'; }
.dd-placeholder,
.dd-empty {
margin: 5px 0;
padding: 0;
min-height: 30px;
background: #f5f5f5;
border: 1px dashed #b6bcbf;
-webkit-box-sizing: border-box;
box-sizing: border-box;
-moz-box-sizing: border-box; }
.dd-empty {
border: 1px dashed #bbb;
min-height: 100px;
background-color: #e5e5e5;
background-size: 60px 60px;
background-position: 0 0, 30px 30px; }
.dd-dragel {
position: absolute;
pointer-events: none;
z-index: 9999; }
.dd-dragel > .dd-item .dd-handle {
margin-top: 0; }
.dd-dragel .dd-handle {
-webkit-box-shadow: 2px 4px 6px 0 rgba(0, 0, 0, 0.1);
box-shadow: 2px 4px 6px 0 rgba(0, 0, 0, 0.1); }
.dd3-content {
display: block;
height: 30px;
margin: 5px 0;
padding: 5px 10px 5px 40px;
color: #979898;
text-decoration: none;
font-weight: bold;
border: 1px solid #e5e5e5;
background: #fafafa;
-webkit-box-sizing: border-box;
box-sizing: border-box;
-moz-box-sizing: border-box; }
.dd3-content:hover {
color: #317eeb;
background: #fff; }
.dd-dragel > .dd3-item > .dd3-content {
margin: 0; }
.dd3-item > button {
margin-left: 30px; }
.dd3-handle {
position: absolute;
margin: 0;
left: 0;
top: 0;
cursor: pointer;
width: 30px;
text-indent: 100%;
white-space: nowrap;
overflow: hidden;
border: 1px solid #ccc;
background: #d5d5d5;
border-top-right-radius: 0;
border-bottom-right-radius: 0; }
.dd3-handle:before {
content: "\f0c9";
font-family: FontAwesome;
display: block;
position: absolute;
left: 0;
top: 3px;
width: 100%;
text-align: center;
text-indent: 0;
color: #fff;
font-size: 14px;
font-weight: normal; }
.dd3-handle:hover {
background: #404040;
border: 1px solid #404040; }
.myadmin-dd .dd-list .dd-item .dd-handle {
background: #ffffff;
border: 1px solid rgba(120, 130, 140, 0.13);
padding: 8px 16px;
height: auto;
font-family: "Montserrat", sans-serif;
font-weight: 400;
border-radius: 0; }
.myadmin-dd-empty .dd-list .dd3-content {
height: auto;
border: 1px solid rgba(120, 130, 140, 0.13);
padding: 8px 16px 8px 46px;
background: #ffffff;
font-weight: 400; }
.myadmin-dd-empty .dd-list .dd3-handle {
border: 1px solid rgba(120, 130, 140, 0.13);
border-bottom: 0;
background: #ffffff;
height: 36px;
width: 36px; }
.dd3-handle:before {
color: #67757c;
top: 7px; }
/*
Template Name: Admin Template
Author: Wrappixel
File: scss
*/
/*
Template Name: Admin Template
Author: Wrappixel
File: scss
*/
/*******************
/*User mail widgets*/
/*******************/
.mailbox .drop-title {
font-weight: 600;
padding: 11px 20px 15px;
border-radius: 2px 2px 0 0;
position: relative; }
.mailbox .drop-title:after {
content: "";
position: absolute;
background: url(../../assets/images/background/img5.png) no-repeat;
opacity: 0.2;
top: 0px;
left: 0px;
height: 100%;
width: 100%;
background-size: cover; }
.mailbox .nav-link {
border-top: 1px solid #e9ecef;
padding-top: 15px;
color: #3e5569; }
.mailbox .message-center {
height: 317px;
overflow: auto;
position: relative; }
.mailbox .message-center .message-item {
border-bottom: 1px solid #e9ecef;
display: block;
text-decoration: none;
padding: 9px 15px; }
.mailbox .message-center .message-item:hover {
background: #f8f9fa; }
.mailbox .message-center .message-item .message-title {
color: #212529; }
.mailbox .message-center .message-item .user-img {
width: 40px;
position: relative;
display: inline-block;
margin: 0 0px 15px 0; }
.mailbox .message-center .message-item .user-img img {
width: 100%; }
.mailbox .message-center .message-item .user-img .profile-status {
border: 2px solid #fff;
border-radius: 50%;
display: inline-block;
height: 10px;
left: 30px;
position: absolute;
top: 1px;
width: 10px; }
.mailbox .message-center .message-item .user-img .online {
background: #36bea6; }
.mailbox .message-center .message-item .user-img .busy {
background: #f62d51; }
.mailbox .message-center .message-item .user-img .away {
background: #ffbc34; }
.mailbox .message-center .message-item .user-img .offline {
background: #ffbc34; }
.mailbox .message-center .message-item .mail-contnet {
display: inline-block;
width: 75%;
padding-left: 10px;
vertical-align: middle; }
.mailbox .message-center .message-item .mail-contnet .message-title {
margin: 5px 0px 0; }
.mailbox .message-center .message-item .mail-contnet .mail-desc,
.mailbox .message-center .message-item .mail-contnet .time {
font-size: 12px;
display: block;
margin: 1px 0;
-o-text-overflow: ellipsis;
text-overflow: ellipsis;
overflow: hidden;
color: #a1aab2;
white-space: nowrap; }
/*******************/
/*Comment widgets*/
/*******************/
.comment-widgets {
position: relative;
margin-bottom: 10px; }
.comment-widgets .comment-row {
border-bottom: 1px solid transparent;
padding: 14px;
display: -webkit-box;
display: -ms-flexbox;
display: flex;
margin: 10px 0; }
.comment-widgets .comment-row:last-child {
border-bottom: 0px; }
.comment-widgets .comment-row:hover, .comment-widgets .comment-row.active {
background: rgba(0, 0, 0, 0.05); }
.comment-text {
padding-left: 15px;
width: 100%; }
.comment-text:hover .comment-footer .action-icons,
.comment-text.active .comment-footer .action-icons {
visibility: visible; }
.comment-text p {
max-height: 65px;
width: 100%;
overflow: hidden; }
.comment-footer .action-icons {
visibility: hidden; }
.comment-footer .action-icons a {
padding-left: 7px;
vertical-align: middle;
color: #a1aab2; }
.comment-footer .action-icons a:hover, .comment-footer .action-icons a.active {
color: #2962FF; }
/*******************/
/*Chat widget*/
/*******************/
.chat-box {
overflow: auto; }
.chat-list {
margin: 0px;
padding: 0px; }
.chat-list .chat-item {
list-style: none;
margin-top: 30px; }
.chat-list .chat-item .chat-img {
display: inline-block;
width: 45px;
vertical-align: top; }
.chat-list .chat-item .chat-img img {
width: 45px;
border-radius: 100%; }
.chat-list .chat-item .chat-content {
width: calc(100% - 50px);
display: inline-block;
padding-left: 15px; }
.chat-list .chat-item .chat-content .box {
display: inline-block;
padding: 10px;
margin-bottom: 3px;
color: #343a40;
background: #f8f9fa; }
.chat-list .chat-item .chat-time {
display: block;
font-size: 10px;
color: #4F5467;
margin: 5px 0 15px 65px; }
.chat-list .chat-item.odd .chat-content {
text-align: right;
width: calc(100% - 0px); }
.chat-list .chat-item.odd .chat-time {
text-align: right; }
.chat-list .chat-item.odd .box {
clear: both;
color: #fff;
background: #2962FF; }
.chat-list .chat-item.odd + .odd {
margin-top: 0px; }
.chat-list .chat-item.reverse {
text-align: right; }
.chat-list .chat-item.reverse .chat-time {
text-align: left; }
.chat-list .chat-item.reverse .chat-content {
padding-left: 0px;
padding-right: 15px; }
/*******************/
/*Chat widget*/
/*******************/
.chat-windows {
position: fixed;
bottom: 0px;
right: 300px;
height: 350px;
max-height: 350px;
z-index: 9999;
-webkit-transition: 600ms;
-o-transition: 600ms;
transition: 600ms; }
.chat-windows.show-chat {
bottom: 0px; }
.chat-windows.hide-chat {
bottom: -350px; }
.chat-windows .user-chat {
min-width: 300px;
min-height: 350px;
background-color: #fff;
-webkit-box-shadow: 1px 0px 20px rgba(0, 0, 0, 0.08);
box-shadow: 1px 0px 20px rgba(0, 0, 0, 0.08);
float: right;
margin: 0 2px 0 0; }
.chat-windows .user-chat.mini-chat {
min-width: 40px;
min-height: 40px;
bottom: 0px;
top: 310px;
position: relative; }
.chat-windows .user-chat.mini-chat .chat-head .name,
.chat-windows .user-chat.mini-chat .chat-head i,
.chat-windows .user-chat.mini-chat .chat-footer,
.chat-windows .user-chat.mini-chat .chat-body {
display: none; }
.chat-windows .user-chat.mini-chat .chat-head img {
margin: 0; }
.chat-windows .user-chat.mini-chat .chat-head .status {
left: 28px;
top: 10px; }
.chat-windows .user-chat .chat-head {
height: 40px;
padding: 10px;
background-color: #2962FF;
color: #fff;
position: relative; }
.chat-windows .user-chat .chat-head img {
border-radius: 50%;
height: 25px;
width: 25px;
vertical-align: middle;
margin: -4px 8px 0 0;
display: inline-block;
cursor: pointer; }
.chat-windows .user-chat .chat-head .status {
border: 1px solid #fff;
border-radius: 50%;
position: absolute;
height: 8px;
width: 8px;
left: 28px;
top: 7px; }
.chat-windows .user-chat .chat-head .online {
background-color: #36bea6; }
.chat-windows .user-chat .chat-head .busy {
background-color: #f62d51; }
.chat-windows .user-chat .chat-head .away {
background-color: #fb8c00; }
.chat-windows .user-chat .chat-head .offline {
background-color: #ffbc34; }
.chat-windows .user-chat .chat-head i {
font-size: 14px;
float: right;
color: #fff;
margin: 3px 0 0 5px;
cursor: pointer; }
.chat-windows .user-chat .chat-footer {
padding: 0px;
border-top: 1px solid #e9ecef; }
.chat-windows .user-chat .chat-footer .form-control {
background-color: transparent;
color: #3e5569;
font-size: 14px;
border: 0px;
width: 100%;
height: 40px; }
.chat-windows .user-chat .chat-footer .form-control:focus, .chat-windows .user-chat .chat-footer .form-control:hover {
border: 0px; }
.chat-windows .user-chat .chat-body {
height: 270px;
padding: 15px 15px 0;
background-color: #eef5f9;
overflow: hidden;
max-width: 300px;
position: relative; }
.chat-list {
margin: 0px;
padding: 0px; }
.chat-list .msg_receive, .chat-list .msg_sent {
list-style: none;
margin-top: 30px; }
.chat-list .msg_receive .chat-img, .chat-list .msg_sent .chat-img {
display: inline-block;
width: 45px;
vertical-align: top; }
.chat-list .msg_receive .chat-img img, .chat-list .msg_sent .chat-img img {
width: 100%;
border-radius: 100%; }
.chat-list .msg_receive .chat-content, .chat-list .msg_sent .chat-content {
width: calc(100% - 50px);
display: inline-block;
padding-left: 15px; }
.chat-list .msg_receive .chat-content .box, .chat-list .msg_sent .chat-content .box {
display: inline-block;
padding: 10px;
margin-bottom: 3px;
background: #fff; }
.chat-list .msg_receive .chat-time, .chat-list .msg_sent .chat-time {
display: block;
font-size: 10px;
color: #a1aab2;
margin: 5px 0 15px 15px; }
.chat-list .msg_receive.odd .chat-content, .chat-list .msg_sent.odd .chat-content {
text-align: right;
width: calc(100% - 0px); }
.chat-list .msg_receive.odd .chat-content .box, .chat-list .msg_sent.odd .chat-content .box {
clear: both;
color: #fff;
background: #2962FF; }
.chat-list .msg_receive.odd .chat-time, .chat-list .msg_receive .reverse, .chat-list .msg_sent.odd .chat-time, .chat-list .msg_sent .reverse {
text-align: right; }
.chat-list .msg_receive.odd + .odd, .chat-list .msg_sent.odd + .odd {
margin-top: 0px; }
.chat-list .msg_receive.reverse .chat-content, .chat-list .msg_sent.reverse .chat-content {
padding-left: 0px;
padding-right: 15px; }
.chat-list .msg_receive.reverse .chat-time, .chat-list .msg_sent.reverse .chat-time {
text-align: left; }
.mailbox .chat-scroll {
height: calc(100vh - 100px); }
/*******************/
/*Steam line widget*/
/*******************/
.steamline {
position: relative;
border-left: 1px solid #e9ecef;
margin-left: 20px; }
.steamline .sl-left {
float: left;
margin-left: -20px;
z-index: 1;
width: 40px;
line-height: 40px;
text-align: center;
height: 40px;
border-radius: 100%;
color: #fff;
margin-right: 15px; }
.steamline .sl-left img {
max-width: 40px; }
.steamline .sl-right {
padding-left: 30px; }
.steamline .sl-right .desc,
.steamline .sl-right .inline-photos {
margin-bottom: 21px; }
.steamline .sl-item {
border-bottom: 1px solid #e9ecef;
margin: 20px 0; }
.steamline .sl-item:last-child {
border-bottom: none; }
.sl-date {
font-size: 10px;
color: #a1aab2; }
.time-item {
border-color: #e9ecef;
padding-bottom: 1px;
position: relative; }
.time-item:before {
content: " ";
display: table; }
.time-item:after {
background-color: #fff;
border-color: #e9ecef;
border-radius: 10px;
border-style: solid;
border-width: 2px;
bottom: 0;
content: '';
height: 14px;
left: 0;
margin-left: -8px;
position: absolute;
top: 5px;
width: 14px; }
.time-item-item:after {
content: " ";
display: table; }
.item-info {
margin-bottom: 15px;
margin-left: 15px; }
.item-info p {
margin-bottom: 10px !important; }
.feed-widget .feed-body .feed-item {
padding: 12px 0;
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-webkit-box-align: center;
-ms-flex-align: center;
align-items: center; }
.feed-widget .feed-body .feed-item:hover {
background: #f8f9fa; }
.feed-widget .feed-body .feed-item > .feed-icon {
width: 40px;
height: 40px;
margin-right: 10px;
display: inline-block;
text-align: center;
vertical-align: middle;
border-radius: 100%;
color: #fff; }
.feed-widget .feed-body .feed-item > .feed-icon i {
line-height: 40px; }
.todo-widget .todo-list .todo-item {
border: 0px;
margin-bottom: 0px;
padding: 20px 15px 15px 0px; }
.todo-widget .todo-list .todo-item .custom-checkbox {
width: 100%; }
.todo-widget .todo-list .todo-item .custom-checkbox .todo-label {
font-weight: 400;
width: 100%; }
.todo-widget .todo-list .todo-item .assignedto {
padding: 0 0 0 25px;
margin: 0px; }
.todo-widget .todo-list .todo-item .assignedto .assignee {
padding: 0px;
display: inline-block;
border: 0px;
margin-right: 2px; }
.todo-widget .todo-list .todo-item .assignedto .assignee .assignee-img {
width: 30px;
border-radius: 100%; }
.todo-widget .todo-list .todo-item .item-date {
padding-left: 25px;
font-size: 12px;
margin-top: 5px;
display: inline-block;
color: #a1aab2; }
.list-task .task-done .todo-desc,
.list-task .task-done .badge {
text-decoration: line-through; }
.profiletimeline {
position: relative;
padding-left: 40px;
margin: 40px 10px 0 30px;
border-left: 1px solid #e9ecef; }
.profiletimeline .sl-left {
float: left;
margin-left: -60px;
z-index: 1;
margin-right: 15px; }
.profiletimeline .sl-left img {
max-width: 40px; }
.profiletimeline .sl-item {
margin-top: 8px;
margin-bottom: 30px; }
.profiletimeline .sl-date {
font-size: 12px;
color: #a1aab2; }
/*
Template Name: Admin Template
Author: Niravjoshi / Wrappixel
File: scss
*/
#main-wrapper[data-layout="horizontal"] {
/****************************
This is for the fixed header layout
***************************/
/****************************
This is for the fixed sidebar layout
***************************/ }
#main-wrapper[data-layout="horizontal"][data-header-position="fixed"] .topbar {
position: fixed;
width: 100%; }
#main-wrapper[data-layout="horizontal"][data-header-position="fixed"] .left-sidebar {
padding-top: 64px; }
#main-wrapper[data-layout="horizontal"][data-sidebar-position="fixed"] .topbar {
position: fixed;
width: 100%; }
#main-wrapper[data-layout="horizontal"][data-sidebar-position="fixed"] .left-sidebar {
padding-top: 64px;
position: fixed; }
#main-wrapper[data-layout="horizontal"][data-sidebar-position="fixed"] .page-wrapper {
padding-top: 78px; }
/****************************
This is for the horizontal layout
***************************/
@media (min-width: 768px) {
#main-wrapper[data-layout="horizontal"] {
background: #eef5f9;
/****************************
This is for the Boxed horizontal layout
***************************/
/****************************
This is for the horizontal layout
***************************/ }
#main-wrapper[data-layout="horizontal"] .topbar {
-webkit-transition: 0s;
-o-transition: 0s;
transition: 0s; }
#main-wrapper[data-layout="horizontal"][data-boxed-layout="boxed"] .top-navbar, #main-wrapper[data-layout="horizontal"][data-boxed-layout="boxed"] .scroll-sidebar, #main-wrapper[data-layout="horizontal"][data-boxed-layout="boxed"] .page-wrapper {
max-width: 1200px;
margin: 0 auto;
position: relative; }
#main-wrapper[data-layout="horizontal"][data-boxed-layout="boxed"] .sidebar-nav #sidebarnav {
-ms-flex-wrap: wrap;
flex-wrap: wrap; }
#main-wrapper[data-layout="horizontal"][data-boxed-layout="boxed"] .sidebar-nav #sidebarnav > .sidebar-item > .has-arrow:after {
display: block; }
#main-wrapper[data-layout="horizontal"][data-boxed-layout="boxed"] .sidebar-nav .sidebar-item {
-webkit-box-flex: 1;
-ms-flex: 1 1 0px;
flex: 1 1 0; }
#main-wrapper[data-layout="horizontal"][data-sidebar-position="fixed"] .page-wrapper {
padding-top: 128px; }
#main-wrapper[data-layout="horizontal"] .topbar .top-navbar .navbar-header {
width: 200px;
border-right: 1px solid rgba(0, 0, 0, 0.1); }
#main-wrapper[data-layout="horizontal"] .topbar .sidebartoggler {
display: none; }
#main-wrapper[data-layout="horizontal"] .left-sidebar {
width: 100%;
height: auto;
position: relative;
padding-top: 0px;
z-index: 45;
-webkit-transition: 0s;
-o-transition: 0s;
transition: 0s; }
#main-wrapper[data-layout="horizontal"] .left-sidebar .scroll-sidebar {
height: 54px; }
#main-wrapper[data-layout="horizontal"] .sidebar-nav ul {
display: -webkit-box;
display: -ms-flexbox;
display: flex; }
#main-wrapper[data-layout="horizontal"] .scroll-sidebar {
height: auto; }
#main-wrapper[data-layout="horizontal"] .sidebar-nav #sidebarnav {
display: -webkit-box;
display: -ms-flexbox;
display: flex;
width: 100%; }
#main-wrapper[data-layout="horizontal"] .sidebar-nav #sidebarnav .sidebar-item {
position: relative;
width: auto; }
#main-wrapper[data-layout="horizontal"] .sidebar-nav #sidebarnav > .sidebar-item {
border-right: 1px solid rgba(0, 0, 0, 0.1); }
#main-wrapper[data-layout="horizontal"] .sidebar-nav #sidebarnav > .sidebar-item > .has-arrow:after {
-webkit-transform: rotate(-135deg) translate(0, -50%);
-ms-transform: rotate(-135deg) translate(0, -50%);
transform: rotate(-135deg) translate(0, -50%); }
#main-wrapper[data-layout="horizontal"] .sidebar-nav #sidebarnav > .sidebar-item:last-child > .first-level {
right: 0px;
left: auto; }
#main-wrapper[data-layout="horizontal"] .sidebar-nav #sidebarnav > .sidebar-item > .two-column + .first-level {
width: 400px; }
#main-wrapper[data-layout="horizontal"] .sidebar-nav #sidebarnav > .sidebar-item > .two-column + .first-level > .sidebar-item {
float: left;
width: 50%;
vertical-align: top; }
#main-wrapper[data-layout="horizontal"] .sidebar-nav #sidebarnav > .sidebar-item ul {
position: absolute;
left: 0px;
top: auto;
width: 220px;
padding-bottom: 0px;
z-index: 100;
display: none;
-webkit-box-shadow: 5px 10px 20px rgba(0, 0, 0, 0.1);
box-shadow: 5px 10px 20px rgba(0, 0, 0, 0.1); }
#main-wrapper[data-layout="horizontal"] .sidebar-nav #sidebarnav > .mega-dropdown {
position: static; }
#main-wrapper[data-layout="horizontal"] .sidebar-nav #sidebarnav > .mega-dropdown .first-level {
width: 100%; }
#main-wrapper[data-layout="horizontal"] .sidebar-nav #sidebarnav > .mega-dropdown .first-level > li {
width: 25%;
float: left; }
#main-wrapper[data-layout="horizontal"] .sidebar-nav #sidebarnav > .sidebar-item:hover {
background: rgba(0, 0, 0, 0.025); }
#main-wrapper[data-layout="horizontal"] .sidebar-nav #sidebarnav > .sidebar-item:hover ul.first-level,
#main-wrapper[data-layout="horizontal"] .sidebar-nav #sidebarnav > .sidebar-item:hover ul.first-level.collapse {
display: block; }
#main-wrapper[data-layout="horizontal"] .sidebar-nav #sidebarnav > .sidebar-item:hover ul.first-level:after,
#main-wrapper[data-layout="horizontal"] .sidebar-nav #sidebarnav > .sidebar-item:hover ul.first-level.collapse:after {
position: absolute;
content: "";
background: rgba(0, 0, 0, 0.025);
top: 0;
height: 100%;
width: 100%;
left: 0;
z-index: -1; }
#main-wrapper[data-layout="horizontal"] .sidebar-nav #sidebarnav > .sidebar-item ul.second-level {
left: 220px;
top: 0px; }
#main-wrapper[data-layout="horizontal"] .sidebar-nav #sidebarnav > .sidebar-item:last-child > .first-level ul.second-level,
#main-wrapper[data-layout="horizontal"] .sidebar-nav #sidebarnav > .sidebar-item .first-level .right-side-dd ul.second-level {
right: 220px;
top: 0px;
left: auto; }
#main-wrapper[data-layout="horizontal"] .sidebar-nav #sidebarnav ul.first-level > .sidebar-item:hover ul.second-level {
display: block; }
#main-wrapper[data-layout="horizontal"] .sidebar-nav #sidebarnav > .sidebar-item > .has-arrow:after,
#main-wrapper[data-layout="horizontal"] .sidebar-nav #sidebarnav .nav-small-cap,
#main-wrapper[data-layout="horizontal"] .sidebar-nav #sidebarnav .sidebar-footer,
#main-wrapper[data-layout="horizontal"] .sidebar-nav #sidebarnav .user-pro,
#main-wrapper[data-layout="horizontal"] .sidebar-nav #sidebarnav .badge {
display: none; } }
@media (min-width: 768px) and (max-width: 1023px) {
#main-wrapper[data-layout="horizontal"] .sidebar-nav > ul > .sidebar-item > .sidebar-link i {
display: none; }
#main-wrapper[data-layout="horizontal"] .sidebar-nav #sidebarnav > .sidebar-item {
-webkit-box-flex: 1;
-ms-flex: auto;
flex: auto; }
/****************************
This is for the fixed sidebar layout
***************************/
[data-sidebar-position="fixed"] .left-sidebar {
overflow: auto; } }
/*
Template Name: Admin Template
Author: Wrappixel
File: scss
*/
/*==============================================================
For Desktop & above all (1650px)
============================================================== */
/*==============================================================
For Laptop & above all (1370px)
============================================================== */
/*-- ==============================================================
Small Desktop & above all (1024px)
============================================================== */
/*-- ==============================================================
Ipad & above all(768px)
============================================================== */
@media (min-width: 768px) {
.bc-content {
-webkit-box-pack: end;
-ms-flex-pack: end;
justify-content: flex-end; } }
/*-- ==============================================================
Phone and below ipad(767px)
============================================================== */
@media (max-width: 991.98px) {
.do-block {
display: block !important; } }
================================================
FILE: public/admin-panel/dist/js/app-style-switcher.js
================================================
$(function() {
"use strict";
//****************************
/* Left header Theme Change function Start */
//****************************
function handlelogobg() {
$('.theme-color .theme-item .theme-link').on("click", function() {
var logobgskin = $(this).attr("data-logobg");
$('.topbar .top-navbar .navbar-header').attr("data-logobg", logobgskin);
});
};
handlelogobg();
//****************************
/* Top navbar Theme Change function Start */
//****************************
function handlenavbarbg() {
if ( $('#main-wrapper').attr('data-navbarbg') == 'skin5' ) {
// do this
$(".topbar .navbar").addClass('navbar-light');
$(".topbar .navbar").removeClass('navbar-dark');
} else {
// do that
}
$('.theme-color .theme-item .theme-link').on("click", function() {
var navbarbgskin = $(this).attr("data-navbarbg");
$('#main-wrapper').attr("data-navbarbg", navbarbgskin);
$('.topbar .navbar-collapse').attr("data-navbarbg", navbarbgskin);
if ( $('#main-wrapper').attr('data-navbarbg') == 'skin5' ) {
// do this
$(".topbar .navbar").addClass('navbar-light');
$(".topbar .navbar").removeClass('navbar-dark');
} else {
// do that
$(".topbar .navbar").removeClass('navbar-light');
$(".topbar .navbar").addClass('navbar-dark');
}
});
};
handlenavbarbg();
//****************************
// ManageSidebar Type
//****************************
function handlesidebartype() {
};
handlesidebartype();
//****************************
/* Manage sidebar bg color */
//****************************
function handlesidebarbg() {
$('.theme-color .theme-item .theme-link').on("click", function() {
var sidebarbgskin = $(this).attr("data-sidebarbg");
$('.left-sidebar').attr("data-sidebarbg", sidebarbgskin);
});
};
handlesidebarbg();
//****************************
/* sidebar position */
//****************************
function handlesidebarposition() {
$('#sidebar-position').change(function() {
if( $(this).is(":checked")) {
$('#main-wrapper').attr("data-sidebar-position", 'fixed' );
$('.topbar .top-navbar .navbar-header').attr("data-navheader", 'fixed' );
}else {
$('#main-wrapper').attr("data-sidebar-position", 'absolute' );
$('.topbar .top-navbar .navbar-header').attr("data-navheader", 'relative' );
}
});
};
handlesidebarposition ();
//****************************
/* Header position */
//****************************
function handleheaderposition() {
$('#header-position').change(function() {
if( $(this).is(":checked")) {
$('#main-wrapper').attr("data-header-position", 'fixed' );
}else {
$('#main-wrapper').attr("data-header-position", 'relative' );
}
});
};
handleheaderposition ();
//****************************
/* sidebar position */
//****************************
function handleboxedlayout() {
$('#boxed-layout').change(function() {
if( $(this).is(":checked")) {
$('#main-wrapper').attr("data-boxed-layout", 'boxed' );
}else {
$('#main-wrapper').attr("data-boxed-layout", 'full' );
}
});
};
handleboxedlayout ();
//****************************
/* Header position */
//****************************
function handlethemeview() {
$('#theme-view').change(function() {
if( $(this).is(":checked")) {
$('body').attr("data-theme", 'dark' );
}else {
$('body').attr("data-theme", 'light' );
}
});
};
handlethemeview ();
});
================================================
FILE: public/admin-panel/dist/js/custom.js
================================================
$(function() {
"use strict";
$(".preloader").fadeOut();
// ==============================================================
// Theme options
// ==============================================================
// ==============================================================
// sidebar-hover
// ==============================================================
$(".left-sidebar").hover(
function() {
$(".navbar-header").addClass("expand-logo");
},
function() {
$(".navbar-header").removeClass("expand-logo");
}
);
// this is for close icon when navigation open in mobile view
$(".nav-toggler").on('click', function() {
$("#main-wrapper").toggleClass("show-sidebar");
$(".nav-toggler i").toggleClass("ti-menu");
});
$(".nav-lock").on('click', function() {
$("body").toggleClass("lock-nav");
$(".nav-lock i").toggleClass("mdi-toggle-switch-off");
$("body, .page-wrapper").trigger("resize");
});
$(".search-box a, .search-box .app-search .srh-btn").on('click', function() {
$(".app-search").toggle(200);
$(".app-search input").focus();
});
// ==============================================================
// Right sidebar options
// ==============================================================
$(function() {
$(".service-panel-toggle").on('click', function() {
$(".customizer").toggleClass('show-service-panel');
});
$('.page-wrapper').on('click', function() {
$(".customizer").removeClass('show-service-panel');
});
});
// ==============================================================
// This is for the floating labels
// ==============================================================
$('.floating-labels .form-control').on('focus blur', function(e) {
$(this).parents('.form-group').toggleClass('focused', (e.type === 'focus' || this.value.length > 0));
}).trigger('blur');
// ==============================================================
//tooltip
// ==============================================================
$(function() {
$('[data-toggle="tooltip"]').tooltip()
})
// ==============================================================
//Popover
// ==============================================================
$(function() {
$('[data-toggle="popover"]').popover()
})
// ==============================================================
// Perfact scrollbar
// ==============================================================
$('.message-center, .customizer-body, .scrollable').perfectScrollbar({
wheelPropagation: !0
});
/*var ps = new PerfectScrollbar('.message-body');
var ps = new PerfectScrollbar('.notifications');
var ps = new PerfectScrollbar('.scroll-sidebar');
var ps = new PerfectScrollbar('.customizer-body');*/
// ==============================================================
// Resize all elements
// ==============================================================
$("body, .page-wrapper").trigger("resize");
$(".page-wrapper").delay(20).show();
// ==============================================================
// To do list
// ==============================================================
$(".list-task li label").click(function() {
$(this).toggleClass("task-done");
});
//****************************
/* This is for the mini-sidebar if width is less then 1170*/
//****************************
var setsidebartype = function() {
var width = (window.innerWidth > 0) ? window.innerWidth : this.screen.width;
if (width < 1170) {
$("#main-wrapper").attr("data-sidebartype", "mini-sidebar");
} else {
$("#main-wrapper").attr("data-sidebartype", "full");
}
};
$(window).ready(setsidebartype);
$(window).on("resize", setsidebartype);
//****************************
/* This is for sidebartoggler*/
//****************************
$('.sidebartoggler').on("click", function() {
$("#main-wrapper").toggleClass("mini-sidebar");
if ($("#main-wrapper").hasClass("mini-sidebar")) {
$(".sidebartoggler").prop("checked", !0);
$("#main-wrapper").attr("data-sidebartype", "mini-sidebar");
} else {
$(".sidebartoggler").prop("checked", !1);
$("#main-wrapper").attr("data-sidebartype", "full");
}
});
});
================================================
FILE: public/admin-panel/dist/js/jquery.ui.touch-punch-improved.js
================================================
/*!
* jQuery UI Touch Punch Improved 0.3.1
*
*
* Copyright 2013, Chris Hutchinson
* Original jquery-ui-touch-punch Copyright 2011, Dave Furfero
* Dual licensed under the MIT or GPL Version 2 licenses.
*
* Depends:
* jquery.ui.widget.js
* jquery.ui.mouse.js
*/
(function ($) {
var pointerEnabled = window.navigator.pointerEnabled
|| window.navigator.msPointerEnabled;
// Detect touch support
$.support.touch = 'ontouchend' in document || pointerEnabled;
// Ignore browsers without touch support or mouse support
if (!$.support.touch || !$.ui.mouse) {
return;
}
var mouseProto = $.ui.mouse.prototype,
_mouseInit = mouseProto._mouseInit,
touchHandled;
// see http://stackoverflow.com/a/12714084/220825
function fixTouch(touch) {
var winPageX = window.pageXOffset,
winPageY = window.pageYOffset,
x = touch.clientX,
y = touch.clientY;
if (touch.pageY === 0 && Math.floor(y) > Math.floor(touch.pageY) || touch.pageX === 0 && Math.floor(x) > Math.floor(touch.pageX)) {
// iOS4 clientX/clientY have the value that should have been
// in pageX/pageY. While pageX/page/ have the value 0
x = x - winPageX;
y = y - winPageY;
} else if (y < (touch.pageY - winPageY) || x < (touch.pageX - winPageX)) {
// Some Android browsers have totally bogus values for clientX/Y
// when scrolling/zooming a page. Detectable since clientX/clientY
// should never be smaller than pageX/pageY minus page scroll
x = touch.pageX - winPageX;
y = touch.pageY - winPageY;
}
return {
clientX: x,
clientY: y
};
}
/**
* Simulate a mouse event based on a corresponding touch event
* @param {Object} event A touch event
* @param {String} simulatedType The corresponding mouse event
*/
function simulateMouseEvent (event, simulatedType) {
// Ignore multi-touch events
if ((!pointerEnabled && event.originalEvent.touches.length > 1) || (pointerEnabled && !event.isPrimary)) {
return;
}
var touch = pointerEnabled ? event.originalEvent : event.originalEvent.changedTouches[0],
simulatedEvent = document.createEvent('MouseEvents'),
coord = fixTouch(touch);
// Check if element is an input or a textarea
if ($(touch.target).is("input") || $(touch.target).is("textarea")) {
event.stopPropagation();
} else {
event.preventDefault();
}
// Initialize the simulated mouse event using the touch event's coordinates
simulatedEvent.initMouseEvent(
simulatedType, // type
true, // bubbles
true, // cancelable
window, // view
1, // detail
event.screenX || touch.screenX, // screenX
event.screenY || touch.screenY, // screenY
event.clientX || coord.clientX, // clientX
event.clientY || coord.clientY, // clientY
false, // ctrlKey
false, // altKey
false, // shiftKey
false, // metaKey
0, // button
null // relatedTarget
);
// Dispatch the simulated event to the target element
event.target.dispatchEvent(simulatedEvent);
}
/**
* Handle the jQuery UI widget's touchstart events
* @param {Object} event The widget element's touchstart event
*/
mouseProto._touchStart = function (event) {
var self = this;
// Ignore the event if another widget is already being handled
if (touchHandled || (!pointerEnabled && !self._mouseCapture(event.originalEvent.changedTouches[0]))) {
return;
}
// Set the flag to prevent other widgets from inheriting the touch event
touchHandled = true;
// Track movement to determine if interaction was a click
self._touchMoved = false;
// Simulate the mouseover event
simulateMouseEvent(event, 'mouseover');
// Simulate the mousemove event
simulateMouseEvent(event, 'mousemove');
// Simulate the mousedown event
simulateMouseEvent(event, 'mousedown');
};
/**
* Handle the jQuery UI widget's touchmove events
* @param {Object} event The document's touchmove event
*/
mouseProto._touchMove = function (event) {
// Ignore event if not handled
if (!touchHandled) {
return;
}
// Interaction was not a click
this._touchMoved = true;
// Simulate the mousemove event
simulateMouseEvent(event, 'mousemove');
};
/**
* Handle the jQuery UI widget's touchend events
* @param {Object} event The document's touchend event
*/
mouseProto._touchEnd = function (event) {
// Ignore event if not handled
if (!touchHandled) {
return;
}
// Simulate the mouseup event
simulateMouseEvent(event, 'mouseup');
// Simulate the mouseout event
simulateMouseEvent(event, 'mouseout');
// If the touch interaction did not move, it should trigger a click
if (!this._touchMoved) {
// Simulate the click event
simulateMouseEvent(event, 'click');
}
// Unset the flag to allow other widgets to inherit the touch event
touchHandled = false;
};
/**
* A duck punch of the $.ui.mouse _mouseInit method to support touch events.
* This method extends the widget with bound touch event handlers that
* translate touch events to mouse events and pass them to the widget's
* original mouse event handling methods.
*/
mouseProto._mouseInit = function () {
var self = this;
self.element.on({
'touchstart': $.proxy(self, '_touchStart'),
'touchmove': $.proxy(self, '_touchMove'),
'touchend': $.proxy(self, '_touchEnd'),
'pointerDown': $.proxy(self, '_touchStart'),
'pointerMove': $.proxy(self, '_touchMove'),
'pointerUp': $.proxy(self, '_touchEnd'),
'MSPointerDown': $.proxy(self, '_touchStart'),
'MSPointerMove': $.proxy(self, '_touchMove'),
'MSPointerUp': $.proxy(self, '_touchEnd')
});
// Call the original $.ui.mouse init method
_mouseInit.call(self);
};
})(jQuery);
================================================
FILE: public/admin-panel/dist/js/pages/calendar/cal-init.js
================================================
! function($) {
"use strict";
var CalendarApp = function() {
this.$body = $("body")
this.$calendar = $('#event'),
this.$event = ('#event-events div.event-events'),
this.$categoryForm = $('#add-new-event form'),
this.$extEvents = $('#event-events'),
this.$modal = $('#my-event'),
this.$saveCategoryBtn = $('.save-category'),
this.$calendarObj = null
};
/* on drop */
CalendarApp.prototype.onDrop = function(eventObj, date) {
var $this = this;
// retrieve the dropped element's stored Event Object
var originalEventObject = eventObj.data('eventObject');
var $categoryClass = eventObj.attr('data-class');
// we need to copy it, so that multiple events don't have a reference to the same object
var copiedEventObject = $.extend({}, originalEventObject);
// assign it the date that was reported
copiedEventObject.start = date;
if ($categoryClass)
copiedEventObject['className'] = [$categoryClass];
// render the event on the event
$this.$calendar.fullCalendar('renderEvent', copiedEventObject, true);
// is the "remove after drop" checkbox checked?
if ($('#drop-remove').is(':checked')) {
// if so, remove the element from the "Draggable Events" list
eventObj.remove();
}
},
/* on click on event */
CalendarApp.prototype.onEventClick = function(calEvent, jsEvent, view) {
var $this = this;
var form = $("");
form.append("Change event name ");
form.append(" Save
");
$this.$modal.modal({
backdrop: 'static'
});
$this.$modal.find('.delete-event').show().end().find('.save-event').hide().end().find('.modal-body').empty().prepend(form).end().find('.delete-event').unbind('click').click(function() {
$this.$calendarObj.fullCalendar('removeEvents', function(ev) {
return (ev._id == calEvent._id);
});
$this.$modal.modal('hide');
});
$this.$modal.find('form').on('submit', function() {
calEvent.title = form.find("input[type=text]").val();
$this.$calendarObj.fullCalendar('updateEvent', calEvent);
$this.$modal.modal('hide');
return false;
});
},
CalendarApp.prototype.enableDrag = function() {
//init events
$(this.$event).each(function() {
// create an Event Object (http://arshaw.com/fullcalendar/docs/event_data/Event_Object/)
// it doesn't need to have a start or end
var eventObject = {
title: $.trim($(this).text()) // use the element's text as the event title
};
// store the Event Object in the DOM element so we can get to it later
$(this).data('eventObject', eventObject);
// make the event draggable using jQuery UI
$(this).draggable({
zIndex: 999,
revert: true, // will cause the event to go back to its
revertDuration: 0 // original position after the drag
});
});
}
/* Initializing */
CalendarApp.prototype.init = function() {
this.enableDrag();
/* Initialize the event */
var date = new Date();
var d = date.getDate();
var m = date.getMonth();
var y = date.getFullYear();
var form = '';
var today = new Date($.now());
var defaultEvents = [
];
var $this = this;
$this.$calendarObj = $this.$calendar.fullCalendar({
slotDuration: '00:15:00',
/* If we want to split day time each 15minutes */
minTime: '08:00:00',
maxTime: '19:00:00',
defaultView: 'month',
handleWindowResize: true,
header: {
left: 'prev,next today',
center: 'title',
right: 'month,agendaWeek,agendaDay'
},
events: defaultEvents,
editable: true,
droppable: true, // this allows things to be dropped onto the event !!!
eventLimit: true, // allow "more" link when too many events
selectable: true,
drop: function(date) { $this.onDrop($(this), date); },
select: function(start, end, allDay) { $this.onSelect(start, end, allDay); },
eventClick: function(calEvent, jsEvent, view) { $this.onEventClick(calEvent, jsEvent, view); }
});
},
//init CalendarApp
$.CalendarApp = new CalendarApp, $.CalendarApp.Constructor = CalendarApp
}(window.jQuery),
//initializing CalendarApp
$(window).on('load', function() {
$.CalendarApp.init()
});
================================================
FILE: public/admin-panel/dist/js/pages/chart/chart-init.js
================================================
$(function(){
var data = [5, 10, 15, 20, 15, 30, 40],
totalPoints = 100;
function getRandomData() {
if (data.length > 0) data = data.slice(1);
// Do a random walk
while (data.length < totalPoints) {
var prev = data.length > 0 ? data[data.length - 1] : 10,
y = prev + Math.random() * 10 - 5;
if (y < 0) {
y = 0;
} else if (y > 100) {
y = 100;
}
data.push(y);
}
// Zip the generated y values with the x values
var res = [];
for (var i = 0; i < data.length; ++i) {
res.push([i, data[i]])
}
return res;
}
// Set up the control widget
var updateInterval = 1000;
$("#updateInterval").val(updateInterval).change(function() {
var v = $(this).val();
if (v && !isNaN(+v)) {
updateInterval = +v;
if (updateInterval < 1) {
updateInterval = 1;
} else if (updateInterval > 1000) {
updateInterval = 1000;
}
$(this).val("" + updateInterval);
}
});
var plot = $.plot("#placeholder1", [getRandomData()], {
series: {
shadowSize: 1, // Drawing is faster without shadows
lines: { fill: true, fillColor: 'transparent' },
},
yaxis: {
min: 0,
max: 100,
show: true
},
xaxis: {
show: false
},
colors: ["#fe5419"],
grid: {
color: "#AFAFAF",
hoverable: true,
borderWidth: 0,
backgroundColor: 'transparent'
},
tooltip: true,
tooltipOpts: {
content: "Visits: %x",
defaultTheme: false
}
});
window.onresize = function(event) {
$.plot($("#placeholder1"), [getRandomData()]);
}
function update() {
plot.setData([getRandomData()]);
// Since the axes don't change, we don't need to call plot.setupGrid()
plot.draw();
setTimeout(update, updateInterval);
}
update();
});
================================================
FILE: public/admin-panel/dist/js/pages/chart/chart-page-init.js
================================================
$(function() {
// we use an inline data source in the example, usually data would
// be fetched from a server
// ==============================================================
// Real Time Visits
// ==============================================================
var data = [5, 10, 15, 20, 15, 30, 40],
totalPoints = 100;
function getRandomData() {
if (data.length > 0) data = data.slice(1);
// Do a random walk
while (data.length < totalPoints) {
var prev = data.length > 0 ? data[data.length - 1] : 10,
y = prev + Math.random() * 10 - 5;
if (y < 0) {
y = 0;
} else if (y > 100) {
y = 100;
}
data.push(y);
}
// Zip the generated y values with the x values
var res = [];
for (var i = 0; i < data.length; ++i) {
res.push([i, data[i]])
}
return res;
}
// Set up the control widget
var updateInterval = 1000;
$("#updateInterval").val(updateInterval).change(function() {
var v = $(this).val();
if (v && !isNaN(+v)) {
updateInterval = +v;
if (updateInterval < 1) {
updateInterval = 1;
} else if (updateInterval > 1000) {
updateInterval = 1000;
}
$(this).val("" + updateInterval);
}
});
var plot = $.plot("#real-time", [getRandomData()], {
series: {
shadowSize: 1, // Drawing is faster without shadows
lines: { fill: true, fillColor: 'transparent' },
},
yaxis: {
min: 0,
max: 100,
show: true
},
xaxis: {
show: false
},
colors: ["#488c13"],
grid: {
color: "#AFAFAF",
hoverable: true,
borderWidth: 0,
backgroundColor: 'transparent'
},
tooltip: true,
tooltipOpts: {
content: "Visits: %x",
defaultTheme: false
}
});
window.onresize = function(event) {
$.plot($("#real-time"), [getRandomData()]);
}
function update() {
plot.setData([getRandomData()]);
// Since the axes don't change, we don't need to call plot.setupGrid()
plot.draw();
setTimeout(update, updateInterval);
}
update();
console.log("document ready");
var offset = 0;
plot1();
function plot1() {
var sin = []
, cos = [];
for (var i = 0; i < 12; i += 0.2) {
sin.push([i, Math.sin(i + offset)]);
cos.push([i, Math.cos(i + offset)]);
}
var options = {
series: {
lines: {
show: true
}
, points: {
show: true
}
}
, grid: {
hoverable: true //IMPORTANT! this is needed for tooltip to work
}
, yaxis: {
min: -1.2
, max: 1.2
}
, colors: ["#ee7951", "#4fb9f0"]
, grid: {
color: "#AFAFAF"
, hoverable: true
, borderWidth: 0
, backgroundColor: '#FFF'
}
, tooltip: true
, tooltipOpts: {
content: "'%s' of %x.1 is %y.4"
, shifts: {
x: -60
, y: 25
}
}
};
var plotObj = $.plot($("#flot-line-chart"), [{
data: sin
, label: "sin(x)"
, }, {
data: cos
, label: "cos(x)"
}], options);
}
});
================================================
FILE: public/admin-panel/dist/js/pages/dashboards/dashboard1.js
================================================
/*
Template Name: Admin Pro Admin
Author: Wrappixel
Email: niravjoshi87@gmail.com
File: js
*/
$(function() {
"use strict";
// ==============================================================
// Newsletter
// ==============================================================
/*var chart = new Chartist.Line('.campaign', {
labels: [1, 2, 3, 4, 5, 6, 7, 8],
series: [
[0, 5, 6, 8, 25, 9, 8, 24],
[0, 3, 1, 2, 8, 1, 5, 1]
]
}, {
low: 0,
high: 28,
showArea: true,
fullWidth: true,
plugins: [
Chartist.plugins.tooltip()
],
axisY: {
onlyInteger: true,
scaleMinSpace: 40,
offset: 20,
labelInterpolationFnc: function(value) {
return (value / 1) + 'k';
}
},
});
*/
// Offset x1 a tiny amount so that the straight stroke gets a bounding box
// Straight lines don't get a bounding box
// Last remark on -> http://www.w3.org/TR/SVG11/coords.html#ObjectBoundingBox
chart.on('draw', function(ctx) {
if (ctx.type === 'area') {
ctx.element.attr({
x1: ctx.x1 + 0.001
});
}
});
// Create the gradient definition on created event (always after chart re-render)
chart.on('created', function(ctx) {
var defs = ctx.svg.elem('defs');
defs.elem('linearGradient', {
id: 'gradient',
x1: 0,
y1: 1,
x2: 0,
y2: 0
}).elem('stop', {
offset: 0,
'stop-color': 'rgba(255, 255, 255, 1)'
}).parent().elem('stop', {
offset: 1,
'stop-color': 'rgba(64, 196, 255, 1)'
});
});
var chart = [chart];
// ==============================================================
// Our Visitor
// ==============================================================
var sparklineLogin = function() {
$('#ravenue').sparkline([6, 10, 9, 11, 9, 10, 12], {
type: 'bar',
height: '100',
barWidth: '4',
width: '100%',
resize: true,
barSpacing: '11',
barColor: '#fff'
});
$('#views').sparkline([6, 10, 9, 11, 9, 10, 12], {
type: 'line',
height: '72',
lineColor: 'transparent',
fillColor: 'rgba(255, 255, 255, 0.3)',
width: '100%',
resize: true,
});
};
var sparkResize;
$(window).resize(function(e) {
clearTimeout(sparkResize);
sparkResize = setTimeout(sparklineLogin, 500);
});
sparklineLogin();
// This is for the chat messege on enter
$(function() {
$(document).on('keypress', "#textarea1", function(e) {
if (e.keyCode == 13) {
var id = $(this).attr("data-user-id");
var msg = $(this).val();
msg = msg_sent(msg);
$("#someDiv").append(msg);
$(this).val("");
$(this).focus();
}
});
});
});
================================================
FILE: public/admin-panel/dist/js/pages/maps/map-google.init.js
================================================
/*************************************************************************************/
// -->Template Name: Bootstrap Press Admin
// -->Author: Themedesigner
// -->Email: niravjoshi87@gmail.com
// -->File: google_map_init
/*************************************************************************************/
$(function() {
//******************************************//
// Basic Map
//******************************************//
var map;
map = new GMaps({
div: '#map',
lat: -12.043333,
lng: -77.028333
});
//******************************************//
// Map Events
//******************************************//
var map_1;
map_1 = new GMaps({
div: '#map_1',
zoom: 16,
lat: -12.043333,
lng: -77.028333,
click: function(e) {
alert('click');
},
dragend: function(e) {
alert('dragend');
}
});
//******************************************//
// Markers
//******************************************//
var map_2;
map_2 = new GMaps({
div: '#map_2',
lat: -12.043333,
lng: -77.028333
});
map_2.addMarker({
lat: -12.043333,
lng: -77.03,
title: 'Lima',
details: {
database_id: 42,
author: 'HPNeo'
},
click: function(e) {
if (console.log)
console.log(e);
alert('You clicked in this marker');
}
});
map_2.addMarker({
lat: -12.042,
lng: -77.028333,
title: 'Marker with InfoWindow',
infoWindow: {
content: 'HTML Content
'
}
});
//******************************************//
// Polylines
//******************************************//
var map_3;
map_3 = new GMaps({
div: '#map_3',
lat: -12.043333,
lng: -77.028333,
click: function(e) {
console.log(e);
}
});
path1 = [
[-12.044012922866312, -77.02470665341184],
[-12.05449279282314, -77.03024273281858],
[-12.055122327623378, -77.03039293652341],
[-12.075917129727586, -77.02764635449216],
[-12.07635776902266, -77.02792530422971],
[-12.076819390363665, -77.02893381481931],
[-12.088527520066453, -77.0241058385925],
[-12.090814532191756, -77.02271108990476]
];
map_3.drawPolyline({
path: path1,
strokeColor: '#131540',
strokeOpacity: 0.6,
strokeWeight: 6
});
//******************************************//
// Polygons
//******************************************//
var map_4;
map_4 = new GMaps({
div: '#map_4',
lat: -12.043333,
lng: -77.028333
});
var path2 = [
[-12.040397656836609, -77.03373871559225],
[-12.040248585302038, -77.03993927003302],
[-12.050047116528843, -77.02448169303511],
[-12.044804866577001, -77.02154422636042]
];
polygon = map_4.drawPolygon({
paths: path2,
strokeColor: '#BBD8E9',
strokeOpacity: 1,
strokeWeight: 3,
fillColor: '#BBD8E9',
fillOpacity: 0.6
});
//******************************************//
// Routes
//******************************************//
var map_5;
map_5 = new GMaps({
div: '#map_5',
lat: -12.043333,
lng: -77.028333
});
map_5.drawRoute({
origin: [-12.044012922866312, -77.02470665341184],
destination: [-12.090814532191756, -77.02271108990476],
travelMode: 'driving',
strokeColor: '#131540',
strokeOpacity: 0.6,
strokeWeight: 6
});
//******************************************//
// Routes Advance
//******************************************//
var map_6;
map_6 = new GMaps({
div: '#map_6',
lat: -12.043333,
lng: -77.028333
});
$('#start_travel').click(function(e) {
e.preventDefault();
map_6.travelRoute({
origin: [-12.044012922866312, -77.02470665341184],
destination: [-12.090814532191756, -77.02271108990476],
travelMode: 'driving',
step: function(e) {
$('#instructions').append('' + e.instructions + ' ');
$('#instructions li:eq(' + e.step_number + ')').delay(450 * e.step_number).fadeIn(200, function() {
map_6.setCenter(e.end_location.lat(), e.end_location.lng());
map_6.drawPolyline({
path: e.path,
strokeColor: '#131540',
strokeOpacity: 0.6,
strokeWeight: 6
});
});
}
});
});
//******************************************//
// Street View Panoramas
//******************************************//
panorama = GMaps.createPanorama({
el: '#panorama',
lat: 42.3455,
lng: -71.0983
});
//******************************************//
// Map Types
//******************************************//
var map_7;
map_7 = new GMaps({
div: '#map_7',
lat: -12.043333,
lng: -77.028333,
mapTypeControlOptions: {
mapTypeIds: ["hybrid", "roadmap", "satellite", "terrain", "osm"]
}
});
map_7.addMapType("osm", {
getTileUrl: function(coord, zoom) {
return "https://a.tile.openstreetmap.org/" + zoom + "/" + coord.x + "/" + coord.y + ".png";
},
tileSize: new google.maps.Size(256, 256),
name: "OpenStreetMap",
maxZoom: 18
});
map_7.setMapTypeId("osm");
//******************************************//
// Fusion Tables layers
//******************************************//
var map_8, infoWindow1;
infoWindow = new google.maps.InfoWindow({});
map_8 = new GMaps({
div: '#map_8',
zoom: 11,
lat: 41.850033,
lng: -87.6500523
});
map_8.loadFromFusionTables({
query: {
select: '\'Geocodable address\'',
from: '1mZ53Z70NsChnBMm-qEYmSDOvLXgrreLTkQUvvg'
},
suppressInfoWindows: true,
events: {
click: function(point) {
infoWindow.setContent('You clicked here!');
infoWindow.setPosition(point.latLng);
infoWindow.open(map_8.map_8);
}
}
});
//******************************************//
// KML layers
//******************************************//
var map_9, infoWindow2;
infoWindow2 = new google.maps.InfoWindow({});
map_9 = new GMaps({
div: '#map_9',
zoom: 12,
lat: 40.65,
lng: -73.95
});
map_9.loadFromKML({
url: 'http://api.flickr.com/services/feeds/geo/?g=322338@N20&lang=en-us&format=feed-georss',
suppressInfoWindows: true,
events: {
click: function(point) {
infoWindow2.setContent(point.featureData.infoWindowHtml);
infoWindow2.setPosition(point.latLng);
infoWindow2.open(map_9.map_9);
}
}
});
//******************************************//
// Geofences
//******************************************//
var map_10;
map_10 = new GMaps({
div: '#map_10',
lat: -12.043333,
lng: -77.028333
});
var path3 = [];
var p = [
[-12.040397656836609, -77.03373871559225],
[-12.040248585302038, -77.03993927003302],
[-12.050047116528843, -77.02448169303511],
[-12.044804866577001, -77.02154422636042]
];
for (var i in p) {
latlng = new google.maps.LatLng(p[i][0], p[i][1]);
path3.push(latlng);
}
polygon = map_10.drawPolygon({
paths: path3,
strokeColor: '#BBD8E9',
strokeOpacity: 1,
strokeWeight: 3,
fillColor: '#BBD8E9',
fillOpacity: 0.6
});
map_10.addMarker({
lat: -12.043333,
lng: -77.028333,
draggable: true,
fences: [polygon],
outside: function(m, f) {
alert('This marker has been moved outside of its fence');
}
});
});
================================================
FILE: public/admin-panel/dist/js/pages/mask/mask.init.js
================================================
$(function(e) {
"use strict";
$(".date-inputmask").inputmask("dd/mm/yyyy"),
$(".phone-inputmask").inputmask("(999) 999-9999"),
$(".international-inputmask").inputmask("+9(999)999-9999"),
$(".xphone-inputmask").inputmask("(999) 999-9999 / x999999"),
$(".purchase-inputmask").inputmask("aaaa 9999-****"),
$(".cc-inputmask").inputmask("9999 9999 9999 9999"),
$(".ssn-inputmask").inputmask("999-99-9999"),
$(".isbn-inputmask").inputmask("999-99-999-9999-9"),
$(".currency-inputmask").inputmask("$9999"),
$(".percentage-inputmask").inputmask("99%"),
$(".decimal-inputmask").inputmask({
alias: "decimal"
, radixPoint: "."
}),
$(".email-inputmask").inputmask({
mask: "*{1,20}[.*{1,20}][.*{1,20}][.*{1,20}]@*{1,20}[*{2,6}][*{1,2}].*{1,}[.*{2,6}][.*{1,2}]"
, greedy: !1
, onBeforePaste: function (n, a) {
return (e = e.toLowerCase()).replace("mailto:", "")
}
, definitions: {
"*": {
validator: "[0-9A-Za-z!#$%&'*+/=?^_`{|}~/-]"
, cardinality: 1
, casing: "lower"
}
}
})
});
================================================
FILE: public/admin-panel/dist/js/pages/sparkline/jquery.charts-sparkline.js
================================================
$(document).ready(function() {
var sparklineLogin = function() {
$("#sparkline1").sparkline([5,6,2,8,9,4,7,10,11,12,10], {
type: 'bar',
height: '45',
barWidth: 7,
barSpacing: 4,
barColor: '#99d683'
});
$('#sparkline2').sparkline([20, 40, 30], {
type: 'pie',
width: '50',
height: '45',
resize: true,
sliceColors: ['#13dafe', '#6164c1', '#f1f2f7']
});
$('#sparkline3').sparkline([5, 6, 2, 9, 4, 7, 10, 12], {
type: 'bar',
height: '164',
barWidth: '7',
resize: true,
barSpacing: '5',
barColor: '#f96262'
});
$("#sparkline4").sparkline([0, 23, 43, 35, 44, 45, 56, 37, 40, 45, 56, 7, 10], {
type: 'line',
width: '120',
height: '45',
lineColor: '#fb6d9d',
fillColor: 'transparent',
spotColor: '#fb6d9d',
minSpotColor: undefined,
maxSpotColor: undefined,
highlightSpotColor: undefined,
highlightLineColor: undefined
});
$('#sparkline5').sparkline([15, 23, 55, 35, 54, 45, 66, 47, 30], {
type: 'line',
width: '100%',
height: '160',
chartRangeMax: 50,
resize: true,
lineColor: '#13dafe',
fillColor: 'rgba(19, 218, 254, 0.3)',
highlightLineColor: 'rgba(0,0,0,.1)',
highlightSpotColor: 'rgba(0,0,0,.2)',
});
$('#sparkline5').sparkline([0, 13, 10, 14, 15, 10, 18, 20, 0], {
type: 'line',
width: '100%',
height: '160',
chartRangeMax: 40,
lineColor: '#6164c1',
fillColor: 'rgba(97, 100, 193, 0.3)',
composite: true,
resize: true,
highlightLineColor: 'rgba(0,0,0,.1)',
highlightSpotColor: 'rgba(0,0,0,.2)',
});
$('#sparkline6').sparkline([5, 6, 2, 8, 9, 4, 7, 10, 11, 12, 10], {
type: 'bar',
height: '45',
barWidth: '7',
barSpacing: '4',
barColor: '#13dafe'
});
$("#sparkline7").sparkline([0,2,8,6,8,5,6,4,8,6,4,2 ], {
type: 'line',
width: '100%',
height: '50',
lineColor: '#ffca4a',
fillColor: '#ffca4a',
highlightLineColor: 'rgba(0, 0, 0, 0.2)',
highlightSpotColor: '#4f4f4f'
});
$("#sparkline8").sparkline([2,4,4,6,8,5,6,4,8,6,6,2 ], {
type: 'line',
width: '100%',
height: '50',
lineColor: '#99d683',
fillColor: '#99d683',
maxSpotColor: '#99d683',
highlightLineColor: 'rgba(0, 0, 0, 0.2)',
highlightSpotColor: '#99d683'
});
$("#sparkline9").sparkline([0,2,8,6,8,5,6,4,8,6,6,2 ], {
type: 'line',
width: '100%',
height: '50',
lineColor: '#13dafe',
fillColor: '#13dafe',
minSpotColor:'#13dafe',
maxSpotColor: '#13dafe',
highlightLineColor: 'rgba(0, 0, 0, 0.2)',
highlightSpotColor: '#13dafe'
});
$("#sparkline10").sparkline([2,4,4,6,8,5,6,4,8,6,6,2], {
type: 'line',
width: '100%',
height: '50',
lineColor: '#6164c1',
fillColor: '#6164c1',
maxSpotColor: '#6164c1',
highlightLineColor: 'rgba(0, 0, 0, 0.2)',
highlightSpotColor: '#6164c1'
});
$('#sparkline11').sparkline([20, 40, 30], {
type: 'pie',
height: '200',
resize: true,
sliceColors: ['#13dafe', '#6164c1', '#f1f2f7']
});
$("#sparkline12").sparkline([5,6,2,8,9,4,7,10,11,12,10,4,7,10], {
type: 'bar',
height: '200',
barWidth: 10,
barSpacing: 7,
barColor: '#99d683'
});
$('#sparkline13').sparkline([5, 6, 2, 9, 4, 7, 10, 12,4,7,10], {
type: 'bar',
height: '200',
barWidth: '10',
resize: true,
barSpacing: '7',
barColor: '#f96262'
});
$('#sparkline13').sparkline([5, 6, 2, 9, 4, 7, 10, 12,4,7,10], {
type: 'line',
height: '200',
lineColor: '#f96262',
fillColor: 'transparent',
composite: true,
highlightLineColor: 'rgba(0,0,0,.1)',
highlightSpotColor: 'rgba(0,0,0,.2)'
});
$("#sparkline14").sparkline([0, 23, 43, 35, 44, 45, 56, 37, 40, 45, 56, 7, 10], {
type: 'line',
width: '100%',
height: '200',
lineColor: '#fff',
fillColor: 'transparent',
spotColor: '#fff',
minSpotColor: undefined,
maxSpotColor: undefined,
highlightSpotColor: undefined,
highlightLineColor: undefined
});
$('#sparkline15').sparkline([5, 6, 2, 8, 9, 4, 7, 10, 11, 12, 10, 9, 4, 7], {
type: 'bar',
height: '200',
barWidth: '10',
barSpacing: '10',
barColor: '#13dafe'
});
$('#sparkline16').sparkline([15, 23, 55, 35, 54, 45, 66, 47, 30], {
type: 'line',
width: '100%',
height: '200',
chartRangeMax: 50,
resize: true,
lineColor: '#13dafe',
fillColor: 'rgba(19, 218, 254, 0.3)',
highlightLineColor: 'rgba(0,0,0,.1)',
highlightSpotColor: 'rgba(0,0,0,.2)',
});
$('#sparkline16').sparkline([0, 13, 10, 14, 15, 10, 18, 20, 0], {
type: 'line',
width: '100%',
height: '200',
chartRangeMax: 40,
lineColor: '#6164c1',
fillColor: 'rgba(97, 100, 193, 0.3)',
composite: true,
resize: true,
highlightLineColor: 'rgba(0,0,0,.1)',
highlightSpotColor: 'rgba(0,0,0,.2)',
});
$('#sparklinedash').sparkline([ 0, 5, 6, 10, 9, 12, 4, 9], {
type: 'bar',
height: '30',
barWidth: '4',
resize: true,
barSpacing: '5',
barColor: '#00c292'
});
$('#sparklinedash2').sparkline([ 0, 5, 6, 10, 9, 12, 4, 9], {
type: 'bar',
height: '30',
barWidth: '4',
resize: true,
barSpacing: '5',
barColor: '#ab8ce4'
});
$('#sparklinedash3').sparkline([ 0, 5, 6, 10, 9, 12, 4, 9], {
type: 'bar',
height: '30',
barWidth: '4',
resize: true,
barSpacing: '5',
barColor: '#03a9f3'
});
$('#sparklinedash4').sparkline([ 0, 5, 6, 10, 9, 12, 4, 9], {
type: 'bar',
height: '30',
barWidth: '4',
resize: true,
barSpacing: '5',
barColor: '#fb9678'
});
}
var sparkResize;
$(window).resize(function(e) {
clearTimeout(sparkResize);
sparkResize = setTimeout(sparklineLogin, 500);
});
sparklineLogin();
});
================================================
FILE: public/admin-panel/dist/js/sidebarmenu.js
================================================
/*
Template Name: Admin Template
Author: Wrappixel
File: js
*/
// ==============================================================
// Auto select left navbar
// ==============================================================
$(function() {
"use strict";
var url = window.location + "";
var path = url.replace(window.location.protocol + "//" + window.location.host + "/", "");
var element = $('ul#sidebarnav a').filter(function() {
return this.href === url || this.href === path;// || url.href.indexOf(this.href) === 0;
});
element.parentsUntil(".sidebar-nav").each(function (index)
{
if($(this).is("li") && $(this).children("a").length !== 0)
{
$(this).children("a").addClass("active");
$(this).parent("ul#sidebarnav").length === 0
? $(this).addClass("active")
: $(this).addClass("selected");
}
else if(!$(this).is("ul") && $(this).children("a").length === 0)
{
$(this).addClass("selected");
}
else if($(this).is("ul")){
$(this).addClass('in');
}
});
element.addClass("active");
$('#sidebarnav a').on('click', function (e) {
if (!$(this).hasClass("active")) {
// hide any open menus and remove all other classes
$("ul", $(this).parents("ul:first")).removeClass("in");
$("a", $(this).parents("ul:first")).removeClass("active");
// open our new menu and add the open class
$(this).next("ul").addClass("in");
$(this).addClass("active");
}
else if ($(this).hasClass("active")) {
$(this).removeClass("active");
$(this).parents("ul:first").removeClass("active");
$(this).next("ul").removeClass("in");
}
})
$('#sidebarnav >li >a.has-arrow').on('click', function (e) {
e.preventDefault();
});
});
================================================
FILE: public/admin-panel/dist/js/waves.js
================================================
!function(t){"use strict";function e(t){return null!==t&&t===t.window}function n(t){return e(t)?t:9===t.nodeType&&t.defaultView}function a(t){var e,a,i={top:0,left:0},o=t&&t.ownerDocument;return e=o.documentElement,"undefined"!=typeof t.getBoundingClientRect&&(i=t.getBoundingClientRect()),a=n(o),{top:i.top+a.pageYOffset-e.clientTop,left:i.left+a.pageXOffset-e.clientLeft}}function i(t){var e="";for(var n in t)t.hasOwnProperty(n)&&(e+=n+":"+t[n]+";");return e}function o(t){if(d.allowEvent(t)===!1)return null;for(var e=null,n=t.target||t.srcElement;null!==n.parentElement;){if(!(n instanceof SVGElement||-1===n.className.indexOf("waves-effect"))){e=n;break}if(n.classList.contains("waves-effect")){e=n;break}n=n.parentElement}return e}function r(e){var n=o(e);null!==n&&(c.show(e,n),"ontouchstart"in t&&(n.addEventListener("touchend",c.hide,!1),n.addEventListener("touchcancel",c.hide,!1)),n.addEventListener("mouseup",c.hide,!1),n.addEventListener("mouseleave",c.hide,!1))}var s=s||{},u=document.querySelectorAll.bind(document),c={duration:750,show:function(t,e){if(2===t.button)return!1;var n=e||this,o=document.createElement("div");o.className="waves-ripple",n.appendChild(o);var r=a(n),s=t.pageY-r.top,u=t.pageX-r.left,d="scale("+n.clientWidth/100*10+")";"touches"in t&&(s=t.touches[0].pageY-r.top,u=t.touches[0].pageX-r.left),o.setAttribute("data-hold",Date.now()),o.setAttribute("data-scale",d),o.setAttribute("data-x",u),o.setAttribute("data-y",s);var l={top:s+"px",left:u+"px"};o.className=o.className+" waves-notransition",o.setAttribute("style",i(l)),o.className=o.className.replace("waves-notransition",""),l["-webkit-transform"]=d,l["-moz-transform"]=d,l["-ms-transform"]=d,l["-o-transform"]=d,l.transform=d,l.opacity="1",l["-webkit-transition-duration"]=c.duration+"ms",l["-moz-transition-duration"]=c.duration+"ms",l["-o-transition-duration"]=c.duration+"ms",l["transition-duration"]=c.duration+"ms",l["-webkit-transition-timing-function"]="cubic-bezier(0.250, 0.460, 0.450, 0.940)",l["-moz-transition-timing-function"]="cubic-bezier(0.250, 0.460, 0.450, 0.940)",l["-o-transition-timing-function"]="cubic-bezier(0.250, 0.460, 0.450, 0.940)",l["transition-timing-function"]="cubic-bezier(0.250, 0.460, 0.450, 0.940)",o.setAttribute("style",i(l))},hide:function(t){d.touchup(t);var e=this,n=(1.4*e.clientWidth,null),a=e.getElementsByClassName("waves-ripple");if(!(a.length>0))return!1;n=a[a.length-1];var o=n.getAttribute("data-x"),r=n.getAttribute("data-y"),s=n.getAttribute("data-scale"),u=Date.now()-Number(n.getAttribute("data-hold")),l=350-u;0>l&&(l=0),setTimeout(function(){var t={top:r+"px",left:o+"px",opacity:"0","-webkit-transition-duration":c.duration+"ms","-moz-transition-duration":c.duration+"ms","-o-transition-duration":c.duration+"ms","transition-duration":c.duration+"ms","-webkit-transform":s,"-moz-transform":s,"-ms-transform":s,"-o-transform":s,transform:s};n.setAttribute("style",i(t)),setTimeout(function(){try{e.removeChild(n)}catch(t){return!1}},c.duration)},l)},wrapInput:function(t){for(var e=0;e0&&(d.touches-=1)},500):"mousedown"===t.type&&d.touches>0&&(e=!1),e},touchup:function(t){d.allowEvent(t)}};s.displayEffect=function(e){e=e||{},"duration"in e&&(c.duration=e.duration),c.wrapInput(u(".waves-effect")),"ontouchstart"in t&&document.body.addEventListener("touchstart",r,!1),document.body.addEventListener("mousedown",r,!1)},s.attach=function(e){"input"===e.tagName.toLowerCase()&&(c.wrapInput([e]),e=e.parentElement),"ontouchstart"in t&&e.addEventListener("touchstart",r,!1),e.addEventListener("mousedown",r,!1)},t.Waves=s,document.addEventListener("DOMContentLoaded",function(){s.displayEffect()},!1)}(window);
================================================
FILE: public/css/app.css
================================================
@import url(https://fonts.googleapis.com/css?family=Nunito);
/*!
* Bootstrap v4.1.3 (https://getbootstrap.com/)
* Copyright 2011-2018 The Bootstrap Authors
* Copyright 2011-2018 Twitter, Inc.
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
*/:root{--blue:#3490dc;--indigo:#6574cd;--purple:#9561e2;--pink:#f66d9b;--red:#e3342f;--orange:#f6993f;--yellow:#ffed4a;--green:#38c172;--teal:#4dc0b5;--cyan:#6cb2eb;--white:#fff;--gray:#6c757d;--gray-dark:#343a40;--primary:#3490dc;--secondary:#6c757d;--success:#38c172;--info:#6cb2eb;--warning:#ffed4a;--danger:#e3342f;--light:#f8f9fa;--dark:#343a40;--breakpoint-xs:0;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:"Nunito",sans-serif;--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace}*,:after,:before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-ms-overflow-style:scrollbar;-webkit-tap-highlight-color:rgba(0,0,0,0)}@-ms-viewport{width:device-width}article,aside,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}body{margin:0;font-family:Nunito,sans-serif;font-size:.9rem;font-weight:400;line-height:1.6;color:#212529;text-align:left;background-color:#f8fafc}[tabindex="-1"]:focus{outline:0!important}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}abbr[data-original-title],abbr[title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;border-bottom:0}address{font-style:normal;line-height:inherit}address,dl,ol,ul{margin-bottom:1rem}dl,ol,ul{margin-top:0}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}dfn{font-style:italic}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#3490dc;text-decoration:none;background-color:transparent;-webkit-text-decoration-skip:objects}a:hover{color:#1d68a7;text-decoration:underline}a:not([href]):not([tabindex]),a:not([href]):not([tabindex]):focus,a:not([href]):not([tabindex]):hover{color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus{outline:0}code,kbd,pre,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}pre{margin-top:0;margin-bottom:1rem;overflow:auto;-ms-overflow-style:scrollbar}figure{margin:0 0 1rem}img{border-style:none}img,svg{vertical-align:middle}svg{overflow:hidden}table{border-collapse:collapse}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}th{text-align:inherit}label{display:inline-block;margin-bottom:.5rem}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}[type=reset],[type=submit],button,html [type=button]{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{margin-bottom:.5rem;font-family:inherit;font-weight:500;line-height:1.2;color:inherit}.h1,h1{font-size:2.25rem}.h2,h2{font-size:1.8rem}.h3,h3{font-size:1.575rem}.h4,h4{font-size:1.35rem}.h5,h5{font-size:1.125rem}.h6,h6{font-size:.9rem}.lead{font-size:1.125rem;font-weight:300}.display-1{font-size:6rem}.display-1,.display-2{font-weight:300;line-height:1.2}.display-2{font-size:5.5rem}.display-3{font-size:4.5rem}.display-3,.display-4{font-weight:300;line-height:1.2}.display-4{font-size:3.5rem}hr{margin-top:1rem;margin-bottom:1rem;border:0;border-top:1px solid rgba(0,0,0,.1)}.small,small{font-size:80%;font-weight:400}.mark,mark{padding:.2em;background-color:#fcf8e3}.list-inline,.list-unstyled{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:90%;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:1.125rem}.blockquote-footer{display:block;font-size:80%;color:#6c757d}.blockquote-footer:before{content:"\2014\A0"}.img-fluid,.img-thumbnail{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:#f8fafc;border:1px solid #dee2e6;border-radius:.25rem}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:90%;color:#6c757d}code{font-size:87.5%;color:#f66d9b;word-break:break-word}a>code{color:inherit}kbd{padding:.2rem .4rem;font-size:87.5%;color:#fff;background-color:#212529;border-radius:.2rem}kbd kbd{padding:0;font-size:100%;font-weight:700}pre{display:block;font-size:87.5%;color:#212529}pre code{font-size:inherit;color:inherit;word-break:normal}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:576px){.container{max-width:540px}}@media (min-width:768px){.container{max-width:720px}}@media (min-width:992px){.container{max-width:960px}}@media (min-width:1200px){.container{max-width:1140px}}.container-fluid{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}.row{display:flex;flex-wrap:wrap;margin-right:-15px;margin-left:-15px}.no-gutters{margin-right:0;margin-left:0}.no-gutters>.col,.no-gutters>[class*=col-]{padding-right:0;padding-left:0}.col,.col-1,.col-2,.col-3,.col-4,.col-5,.col-6,.col-7,.col-8,.col-9,.col-10,.col-11,.col-12,.col-auto,.col-lg,.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-auto,.col-md,.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11,.col-md-12,.col-md-auto,.col-sm,.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-auto,.col-xl,.col-xl-1,.col-xl-2,.col-xl-3,.col-xl-4,.col-xl-5,.col-xl-6,.col-xl-7,.col-xl-8,.col-xl-9,.col-xl-10,.col-xl-11,.col-xl-12,.col-xl-auto{position:relative;width:100%;min-height:1px;padding-right:15px;padding-left:15px}.col{flex-basis:0;flex-grow:1;max-width:100%}.col-auto{flex:0 0 auto;width:auto;max-width:none}.col-1{flex:0 0 8.3333333333%;max-width:8.3333333333%}.col-2{flex:0 0 16.6666666667%;max-width:16.6666666667%}.col-3{flex:0 0 25%;max-width:25%}.col-4{flex:0 0 33.3333333333%;max-width:33.3333333333%}.col-5{flex:0 0 41.6666666667%;max-width:41.6666666667%}.col-6{flex:0 0 50%;max-width:50%}.col-7{flex:0 0 58.3333333333%;max-width:58.3333333333%}.col-8{flex:0 0 66.6666666667%;max-width:66.6666666667%}.col-9{flex:0 0 75%;max-width:75%}.col-10{flex:0 0 83.3333333333%;max-width:83.3333333333%}.col-11{flex:0 0 91.6666666667%;max-width:91.6666666667%}.col-12{flex:0 0 100%;max-width:100%}.order-first{order:-1}.order-last{order:13}.order-0{order:0}.order-1{order:1}.order-2{order:2}.order-3{order:3}.order-4{order:4}.order-5{order:5}.order-6{order:6}.order-7{order:7}.order-8{order:8}.order-9{order:9}.order-10{order:10}.order-11{order:11}.order-12{order:12}.offset-1{margin-left:8.3333333333%}.offset-2{margin-left:16.6666666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.3333333333%}.offset-5{margin-left:41.6666666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.3333333333%}.offset-8{margin-left:66.6666666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.3333333333%}.offset-11{margin-left:91.6666666667%}@media (min-width:576px){.col-sm{flex-basis:0;flex-grow:1;max-width:100%}.col-sm-auto{flex:0 0 auto;width:auto;max-width:none}.col-sm-1{flex:0 0 8.3333333333%;max-width:8.3333333333%}.col-sm-2{flex:0 0 16.6666666667%;max-width:16.6666666667%}.col-sm-3{flex:0 0 25%;max-width:25%}.col-sm-4{flex:0 0 33.3333333333%;max-width:33.3333333333%}.col-sm-5{flex:0 0 41.6666666667%;max-width:41.6666666667%}.col-sm-6{flex:0 0 50%;max-width:50%}.col-sm-7{flex:0 0 58.3333333333%;max-width:58.3333333333%}.col-sm-8{flex:0 0 66.6666666667%;max-width:66.6666666667%}.col-sm-9{flex:0 0 75%;max-width:75%}.col-sm-10{flex:0 0 83.3333333333%;max-width:83.3333333333%}.col-sm-11{flex:0 0 91.6666666667%;max-width:91.6666666667%}.col-sm-12{flex:0 0 100%;max-width:100%}.order-sm-first{order:-1}.order-sm-last{order:13}.order-sm-0{order:0}.order-sm-1{order:1}.order-sm-2{order:2}.order-sm-3{order:3}.order-sm-4{order:4}.order-sm-5{order:5}.order-sm-6{order:6}.order-sm-7{order:7}.order-sm-8{order:8}.order-sm-9{order:9}.order-sm-10{order:10}.order-sm-11{order:11}.order-sm-12{order:12}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.3333333333%}.offset-sm-2{margin-left:16.6666666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.3333333333%}.offset-sm-5{margin-left:41.6666666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.3333333333%}.offset-sm-8{margin-left:66.6666666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.3333333333%}.offset-sm-11{margin-left:91.6666666667%}}@media (min-width:768px){.col-md{flex-basis:0;flex-grow:1;max-width:100%}.col-md-auto{flex:0 0 auto;width:auto;max-width:none}.col-md-1{flex:0 0 8.3333333333%;max-width:8.3333333333%}.col-md-2{flex:0 0 16.6666666667%;max-width:16.6666666667%}.col-md-3{flex:0 0 25%;max-width:25%}.col-md-4{flex:0 0 33.3333333333%;max-width:33.3333333333%}.col-md-5{flex:0 0 41.6666666667%;max-width:41.6666666667%}.col-md-6{flex:0 0 50%;max-width:50%}.col-md-7{flex:0 0 58.3333333333%;max-width:58.3333333333%}.col-md-8{flex:0 0 66.6666666667%;max-width:66.6666666667%}.col-md-9{flex:0 0 75%;max-width:75%}.col-md-10{flex:0 0 83.3333333333%;max-width:83.3333333333%}.col-md-11{flex:0 0 91.6666666667%;max-width:91.6666666667%}.col-md-12{flex:0 0 100%;max-width:100%}.order-md-first{order:-1}.order-md-last{order:13}.order-md-0{order:0}.order-md-1{order:1}.order-md-2{order:2}.order-md-3{order:3}.order-md-4{order:4}.order-md-5{order:5}.order-md-6{order:6}.order-md-7{order:7}.order-md-8{order:8}.order-md-9{order:9}.order-md-10{order:10}.order-md-11{order:11}.order-md-12{order:12}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.3333333333%}.offset-md-2{margin-left:16.6666666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.3333333333%}.offset-md-5{margin-left:41.6666666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.3333333333%}.offset-md-8{margin-left:66.6666666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.3333333333%}.offset-md-11{margin-left:91.6666666667%}}@media (min-width:992px){.col-lg{flex-basis:0;flex-grow:1;max-width:100%}.col-lg-auto{flex:0 0 auto;width:auto;max-width:none}.col-lg-1{flex:0 0 8.3333333333%;max-width:8.3333333333%}.col-lg-2{flex:0 0 16.6666666667%;max-width:16.6666666667%}.col-lg-3{flex:0 0 25%;max-width:25%}.col-lg-4{flex:0 0 33.3333333333%;max-width:33.3333333333%}.col-lg-5{flex:0 0 41.6666666667%;max-width:41.6666666667%}.col-lg-6{flex:0 0 50%;max-width:50%}.col-lg-7{flex:0 0 58.3333333333%;max-width:58.3333333333%}.col-lg-8{flex:0 0 66.6666666667%;max-width:66.6666666667%}.col-lg-9{flex:0 0 75%;max-width:75%}.col-lg-10{flex:0 0 83.3333333333%;max-width:83.3333333333%}.col-lg-11{flex:0 0 91.6666666667%;max-width:91.6666666667%}.col-lg-12{flex:0 0 100%;max-width:100%}.order-lg-first{order:-1}.order-lg-last{order:13}.order-lg-0{order:0}.order-lg-1{order:1}.order-lg-2{order:2}.order-lg-3{order:3}.order-lg-4{order:4}.order-lg-5{order:5}.order-lg-6{order:6}.order-lg-7{order:7}.order-lg-8{order:8}.order-lg-9{order:9}.order-lg-10{order:10}.order-lg-11{order:11}.order-lg-12{order:12}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.3333333333%}.offset-lg-2{margin-left:16.6666666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.3333333333%}.offset-lg-5{margin-left:41.6666666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.3333333333%}.offset-lg-8{margin-left:66.6666666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.3333333333%}.offset-lg-11{margin-left:91.6666666667%}}@media (min-width:1200px){.col-xl{flex-basis:0;flex-grow:1;max-width:100%}.col-xl-auto{flex:0 0 auto;width:auto;max-width:none}.col-xl-1{flex:0 0 8.3333333333%;max-width:8.3333333333%}.col-xl-2{flex:0 0 16.6666666667%;max-width:16.6666666667%}.col-xl-3{flex:0 0 25%;max-width:25%}.col-xl-4{flex:0 0 33.3333333333%;max-width:33.3333333333%}.col-xl-5{flex:0 0 41.6666666667%;max-width:41.6666666667%}.col-xl-6{flex:0 0 50%;max-width:50%}.col-xl-7{flex:0 0 58.3333333333%;max-width:58.3333333333%}.col-xl-8{flex:0 0 66.6666666667%;max-width:66.6666666667%}.col-xl-9{flex:0 0 75%;max-width:75%}.col-xl-10{flex:0 0 83.3333333333%;max-width:83.3333333333%}.col-xl-11{flex:0 0 91.6666666667%;max-width:91.6666666667%}.col-xl-12{flex:0 0 100%;max-width:100%}.order-xl-first{order:-1}.order-xl-last{order:13}.order-xl-0{order:0}.order-xl-1{order:1}.order-xl-2{order:2}.order-xl-3{order:3}.order-xl-4{order:4}.order-xl-5{order:5}.order-xl-6{order:6}.order-xl-7{order:7}.order-xl-8{order:8}.order-xl-9{order:9}.order-xl-10{order:10}.order-xl-11{order:11}.order-xl-12{order:12}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.3333333333%}.offset-xl-2{margin-left:16.6666666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.3333333333%}.offset-xl-5{margin-left:41.6666666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.3333333333%}.offset-xl-8{margin-left:66.6666666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.3333333333%}.offset-xl-11{margin-left:91.6666666667%}}.table{width:100%;margin-bottom:1rem;background-color:transparent}.table td,.table th{padding:.75rem;vertical-align:top;border-top:1px solid #dee2e6}.table thead th{vertical-align:bottom;border-bottom:2px solid #dee2e6}.table tbody+tbody{border-top:2px solid #dee2e6}.table .table{background-color:#f8fafc}.table-sm td,.table-sm th{padding:.3rem}.table-bordered,.table-bordered td,.table-bordered th{border:1px solid #dee2e6}.table-bordered thead td,.table-bordered thead th{border-bottom-width:2px}.table-borderless tbody+tbody,.table-borderless td,.table-borderless th,.table-borderless thead th{border:0}.table-striped tbody tr:nth-of-type(odd){background-color:rgba(0,0,0,.05)}.table-hover tbody tr:hover{background-color:rgba(0,0,0,.075)}.table-primary,.table-primary>td,.table-primary>th{background-color:#c6e0f5}.table-hover .table-primary:hover,.table-hover .table-primary:hover>td,.table-hover .table-primary:hover>th{background-color:#b0d4f1}.table-secondary,.table-secondary>td,.table-secondary>th{background-color:#d6d8db}.table-hover .table-secondary:hover,.table-hover .table-secondary:hover>td,.table-hover .table-secondary:hover>th{background-color:#c8cbcf}.table-success,.table-success>td,.table-success>th{background-color:#c7eed8}.table-hover .table-success:hover,.table-hover .table-success:hover>td,.table-hover .table-success:hover>th{background-color:#b3e8ca}.table-info,.table-info>td,.table-info>th{background-color:#d6e9f9}.table-hover .table-info:hover,.table-hover .table-info:hover>td,.table-hover .table-info:hover>th{background-color:#c0ddf6}.table-warning,.table-warning>td,.table-warning>th{background-color:#fffacc}.table-hover .table-warning:hover,.table-hover .table-warning:hover>td,.table-hover .table-warning:hover>th{background-color:#fff8b3}.table-danger,.table-danger>td,.table-danger>th{background-color:#f7c6c5}.table-hover .table-danger:hover,.table-hover .table-danger:hover>td,.table-hover .table-danger:hover>th{background-color:#f4b0af}.table-light,.table-light>td,.table-light>th{background-color:#fdfdfe}.table-hover .table-light:hover,.table-hover .table-light:hover>td,.table-hover .table-light:hover>th{background-color:#ececf6}.table-dark,.table-dark>td,.table-dark>th{background-color:#c6c8ca}.table-hover .table-dark:hover,.table-hover .table-dark:hover>td,.table-hover .table-dark:hover>th{background-color:#b9bbbe}.table-active,.table-active>td,.table-active>th,.table-hover .table-active:hover,.table-hover .table-active:hover>td,.table-hover .table-active:hover>th{background-color:rgba(0,0,0,.075)}.table .thead-dark th{color:#f8fafc;background-color:#212529;border-color:#32383e}.table .thead-light th{color:#495057;background-color:#e9ecef;border-color:#dee2e6}.table-dark{color:#f8fafc;background-color:#212529}.table-dark td,.table-dark th,.table-dark thead th{border-color:#32383e}.table-dark.table-bordered{border:0}.table-dark.table-striped tbody tr:nth-of-type(odd){background-color:hsla(0,0%,100%,.05)}.table-dark.table-hover tbody tr:hover{background-color:hsla(0,0%,100%,.075)}@media (max-width:575.98px){.table-responsive-sm{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.table-responsive-sm>.table-bordered{border:0}}@media (max-width:767.98px){.table-responsive-md{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.table-responsive-md>.table-bordered{border:0}}@media (max-width:991.98px){.table-responsive-lg{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.table-responsive-lg>.table-bordered{border:0}}@media (max-width:1199.98px){.table-responsive-xl{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.table-responsive-xl>.table-bordered{border:0}}.table-responsive{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.table-responsive>.table-bordered{border:0}.form-control{display:block;width:100%;height:calc(2.19rem + 2px);padding:.375rem .75rem;font-size:.9rem;line-height:1.6;color:#495057;background-color:#fff;background-clip:padding-box;border:1px solid #ced4da;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media screen and (prefers-reduced-motion:reduce){.form-control{transition:none}}.form-control::-ms-expand{background-color:transparent;border:0}.form-control:focus{color:#495057;background-color:#fff;border-color:#a1cbef;outline:0;box-shadow:0 0 0 .2rem rgba(52,144,220,.25)}.form-control::-webkit-input-placeholder{color:#6c757d;opacity:1}.form-control:-ms-input-placeholder{color:#6c757d;opacity:1}.form-control::-ms-input-placeholder{color:#6c757d;opacity:1}.form-control::placeholder{color:#6c757d;opacity:1}.form-control:disabled,.form-control[readonly]{background-color:#e9ecef;opacity:1}select.form-control:focus::-ms-value{color:#495057;background-color:#fff}.form-control-file,.form-control-range{display:block;width:100%}.col-form-label{padding-top:calc(.375rem + 1px);padding-bottom:calc(.375rem + 1px);margin-bottom:0;font-size:inherit;line-height:1.6}.col-form-label-lg{padding-top:calc(.5rem + 1px);padding-bottom:calc(.5rem + 1px);font-size:1.125rem;line-height:1.5}.col-form-label-sm{padding-top:calc(.25rem + 1px);padding-bottom:calc(.25rem + 1px);font-size:.7875rem;line-height:1.5}.form-control-plaintext{display:block;width:100%;padding-top:.375rem;padding-bottom:.375rem;margin-bottom:0;line-height:1.6;color:#212529;background-color:transparent;border:solid transparent;border-width:1px 0}.form-control-plaintext.form-control-lg,.form-control-plaintext.form-control-sm{padding-right:0;padding-left:0}.form-control-sm{height:calc(1.68125rem + 2px);padding:.25rem .5rem;font-size:.7875rem;line-height:1.5;border-radius:.2rem}.form-control-lg{height:calc(2.6875rem + 2px);padding:.5rem 1rem;font-size:1.125rem;line-height:1.5;border-radius:.3rem}select.form-control[multiple],select.form-control[size],textarea.form-control{height:auto}.form-group{margin-bottom:1rem}.form-text{display:block;margin-top:.25rem}.form-row{display:flex;flex-wrap:wrap;margin-right:-5px;margin-left:-5px}.form-row>.col,.form-row>[class*=col-]{padding-right:5px;padding-left:5px}.form-check{position:relative;display:block;padding-left:1.25rem}.form-check-input{position:absolute;margin-top:.3rem;margin-left:-1.25rem}.form-check-input:disabled~.form-check-label{color:#6c757d}.form-check-label{margin-bottom:0}.form-check-inline{display:inline-flex;align-items:center;padding-left:0;margin-right:.75rem}.form-check-inline .form-check-input{position:static;margin-top:0;margin-right:.3125rem;margin-left:0}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#38c172}.valid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.7875rem;line-height:1.6;color:#fff;background-color:rgba(56,193,114,.9);border-radius:.25rem}.custom-select.is-valid,.form-control.is-valid,.was-validated .custom-select:valid,.was-validated .form-control:valid{border-color:#38c172}.custom-select.is-valid:focus,.form-control.is-valid:focus,.was-validated .custom-select:valid:focus,.was-validated .form-control:valid:focus{border-color:#38c172;box-shadow:0 0 0 .2rem rgba(56,193,114,.25)}.custom-select.is-valid~.valid-feedback,.custom-select.is-valid~.valid-tooltip,.form-control-file.is-valid~.valid-feedback,.form-control-file.is-valid~.valid-tooltip,.form-control.is-valid~.valid-feedback,.form-control.is-valid~.valid-tooltip,.was-validated .custom-select:valid~.valid-feedback,.was-validated .custom-select:valid~.valid-tooltip,.was-validated .form-control-file:valid~.valid-feedback,.was-validated .form-control-file:valid~.valid-tooltip,.was-validated .form-control:valid~.valid-feedback,.was-validated .form-control:valid~.valid-tooltip{display:block}.form-check-input.is-valid~.form-check-label,.was-validated .form-check-input:valid~.form-check-label{color:#38c172}.form-check-input.is-valid~.valid-feedback,.form-check-input.is-valid~.valid-tooltip,.was-validated .form-check-input:valid~.valid-feedback,.was-validated .form-check-input:valid~.valid-tooltip{display:block}.custom-control-input.is-valid~.custom-control-label,.was-validated .custom-control-input:valid~.custom-control-label{color:#38c172}.custom-control-input.is-valid~.custom-control-label:before,.was-validated .custom-control-input:valid~.custom-control-label:before{background-color:#98e1b7}.custom-control-input.is-valid~.valid-feedback,.custom-control-input.is-valid~.valid-tooltip,.was-validated .custom-control-input:valid~.valid-feedback,.was-validated .custom-control-input:valid~.valid-tooltip{display:block}.custom-control-input.is-valid:checked~.custom-control-label:before,.was-validated .custom-control-input:valid:checked~.custom-control-label:before{background-color:#5cd08d}.custom-control-input.is-valid:focus~.custom-control-label:before,.was-validated .custom-control-input:valid:focus~.custom-control-label:before{box-shadow:0 0 0 1px #f8fafc,0 0 0 .2rem rgba(56,193,114,.25)}.custom-file-input.is-valid~.custom-file-label,.was-validated .custom-file-input:valid~.custom-file-label{border-color:#38c172}.custom-file-input.is-valid~.custom-file-label:after,.was-validated .custom-file-input:valid~.custom-file-label:after{border-color:inherit}.custom-file-input.is-valid~.valid-feedback,.custom-file-input.is-valid~.valid-tooltip,.was-validated .custom-file-input:valid~.valid-feedback,.was-validated .custom-file-input:valid~.valid-tooltip{display:block}.custom-file-input.is-valid:focus~.custom-file-label,.was-validated .custom-file-input:valid:focus~.custom-file-label{box-shadow:0 0 0 .2rem rgba(56,193,114,.25)}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#e3342f}.invalid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.7875rem;line-height:1.6;color:#fff;background-color:rgba(227,52,47,.9);border-radius:.25rem}.custom-select.is-invalid,.form-control.is-invalid,.was-validated .custom-select:invalid,.was-validated .form-control:invalid{border-color:#e3342f}.custom-select.is-invalid:focus,.form-control.is-invalid:focus,.was-validated .custom-select:invalid:focus,.was-validated .form-control:invalid:focus{border-color:#e3342f;box-shadow:0 0 0 .2rem rgba(227,52,47,.25)}.custom-select.is-invalid~.invalid-feedback,.custom-select.is-invalid~.invalid-tooltip,.form-control-file.is-invalid~.invalid-feedback,.form-control-file.is-invalid~.invalid-tooltip,.form-control.is-invalid~.invalid-feedback,.form-control.is-invalid~.invalid-tooltip,.was-validated .custom-select:invalid~.invalid-feedback,.was-validated .custom-select:invalid~.invalid-tooltip,.was-validated .form-control-file:invalid~.invalid-feedback,.was-validated .form-control-file:invalid~.invalid-tooltip,.was-validated .form-control:invalid~.invalid-feedback,.was-validated .form-control:invalid~.invalid-tooltip{display:block}.form-check-input.is-invalid~.form-check-label,.was-validated .form-check-input:invalid~.form-check-label{color:#e3342f}.form-check-input.is-invalid~.invalid-feedback,.form-check-input.is-invalid~.invalid-tooltip,.was-validated .form-check-input:invalid~.invalid-feedback,.was-validated .form-check-input:invalid~.invalid-tooltip{display:block}.custom-control-input.is-invalid~.custom-control-label,.was-validated .custom-control-input:invalid~.custom-control-label{color:#e3342f}.custom-control-input.is-invalid~.custom-control-label:before,.was-validated .custom-control-input:invalid~.custom-control-label:before{background-color:#f2a29f}.custom-control-input.is-invalid~.invalid-feedback,.custom-control-input.is-invalid~.invalid-tooltip,.was-validated .custom-control-input:invalid~.invalid-feedback,.was-validated .custom-control-input:invalid~.invalid-tooltip{display:block}.custom-control-input.is-invalid:checked~.custom-control-label:before,.was-validated .custom-control-input:invalid:checked~.custom-control-label:before{background-color:#e9605c}.custom-control-input.is-invalid:focus~.custom-control-label:before,.was-validated .custom-control-input:invalid:focus~.custom-control-label:before{box-shadow:0 0 0 1px #f8fafc,0 0 0 .2rem rgba(227,52,47,.25)}.custom-file-input.is-invalid~.custom-file-label,.was-validated .custom-file-input:invalid~.custom-file-label{border-color:#e3342f}.custom-file-input.is-invalid~.custom-file-label:after,.was-validated .custom-file-input:invalid~.custom-file-label:after{border-color:inherit}.custom-file-input.is-invalid~.invalid-feedback,.custom-file-input.is-invalid~.invalid-tooltip,.was-validated .custom-file-input:invalid~.invalid-feedback,.was-validated .custom-file-input:invalid~.invalid-tooltip{display:block}.custom-file-input.is-invalid:focus~.custom-file-label,.was-validated .custom-file-input:invalid:focus~.custom-file-label{box-shadow:0 0 0 .2rem rgba(227,52,47,.25)}.form-inline{display:flex;flex-flow:row wrap;align-items:center}.form-inline .form-check{width:100%}@media (min-width:576px){.form-inline label{justify-content:center}.form-inline .form-group,.form-inline label{display:flex;align-items:center;margin-bottom:0}.form-inline .form-group{flex:0 0 auto;flex-flow:row wrap}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-plaintext{display:inline-block}.form-inline .custom-select,.form-inline .input-group{width:auto}.form-inline .form-check{display:flex;align-items:center;justify-content:center;width:auto;padding-left:0}.form-inline .form-check-input{position:relative;margin-top:0;margin-right:.25rem;margin-left:0}.form-inline .custom-control{align-items:center;justify-content:center}.form-inline .custom-control-label{margin-bottom:0}}.btn{display:inline-block;font-weight:400;text-align:center;white-space:nowrap;vertical-align:middle;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;border:1px solid transparent;padding:.375rem .75rem;font-size:.9rem;line-height:1.6;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media screen and (prefers-reduced-motion:reduce){.btn{transition:none}}.btn:focus,.btn:hover{text-decoration:none}.btn.focus,.btn:focus{outline:0;box-shadow:0 0 0 .2rem rgba(52,144,220,.25)}.btn.disabled,.btn:disabled{opacity:.65}.btn:not(:disabled):not(.disabled){cursor:pointer}a.btn.disabled,fieldset:disabled a.btn{pointer-events:none}.btn-primary{color:#fff;background-color:#3490dc;border-color:#3490dc}.btn-primary:hover{color:#fff;background-color:#227dc7;border-color:#2176bd}.btn-primary.focus,.btn-primary:focus{box-shadow:0 0 0 .2rem rgba(52,144,220,.5)}.btn-primary.disabled,.btn-primary:disabled{color:#fff;background-color:#3490dc;border-color:#3490dc}.btn-primary:not(:disabled):not(.disabled).active,.btn-primary:not(:disabled):not(.disabled):active,.show>.btn-primary.dropdown-toggle{color:#fff;background-color:#2176bd;border-color:#1f6fb2}.btn-primary:not(:disabled):not(.disabled).active:focus,.btn-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(52,144,220,.5)}.btn-secondary{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary:hover{color:#fff;background-color:#5a6268;border-color:#545b62}.btn-secondary.focus,.btn-secondary:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-secondary.disabled,.btn-secondary:disabled{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary:not(:disabled):not(.disabled).active,.btn-secondary:not(:disabled):not(.disabled):active,.show>.btn-secondary.dropdown-toggle{color:#fff;background-color:#545b62;border-color:#4e555b}.btn-secondary:not(:disabled):not(.disabled).active:focus,.btn-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-success{color:#fff;background-color:#38c172;border-color:#38c172}.btn-success:hover{color:#fff;background-color:#2fa360;border-color:#2d995b}.btn-success.focus,.btn-success:focus{box-shadow:0 0 0 .2rem rgba(56,193,114,.5)}.btn-success.disabled,.btn-success:disabled{color:#fff;background-color:#38c172;border-color:#38c172}.btn-success:not(:disabled):not(.disabled).active,.btn-success:not(:disabled):not(.disabled):active,.show>.btn-success.dropdown-toggle{color:#fff;background-color:#2d995b;border-color:#2a9055}.btn-success:not(:disabled):not(.disabled).active:focus,.btn-success:not(:disabled):not(.disabled):active:focus,.show>.btn-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(56,193,114,.5)}.btn-info{color:#212529;background-color:#6cb2eb;border-color:#6cb2eb}.btn-info:hover{color:#fff;background-color:#4aa0e6;border-color:#3f9ae5}.btn-info.focus,.btn-info:focus{box-shadow:0 0 0 .2rem rgba(108,178,235,.5)}.btn-info.disabled,.btn-info:disabled{color:#212529;background-color:#6cb2eb;border-color:#6cb2eb}.btn-info:not(:disabled):not(.disabled).active,.btn-info:not(:disabled):not(.disabled):active,.show>.btn-info.dropdown-toggle{color:#fff;background-color:#3f9ae5;border-color:#3495e3}.btn-info:not(:disabled):not(.disabled).active:focus,.btn-info:not(:disabled):not(.disabled):active:focus,.show>.btn-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(108,178,235,.5)}.btn-warning{color:#212529;background-color:#ffed4a;border-color:#ffed4a}.btn-warning:hover{color:#212529;background-color:#ffe924;border-color:#ffe817}.btn-warning.focus,.btn-warning:focus{box-shadow:0 0 0 .2rem rgba(255,237,74,.5)}.btn-warning.disabled,.btn-warning:disabled{color:#212529;background-color:#ffed4a;border-color:#ffed4a}.btn-warning:not(:disabled):not(.disabled).active,.btn-warning:not(:disabled):not(.disabled):active,.show>.btn-warning.dropdown-toggle{color:#212529;background-color:#ffe817;border-color:#ffe70a}.btn-warning:not(:disabled):not(.disabled).active:focus,.btn-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(255,237,74,.5)}.btn-danger{color:#fff;background-color:#e3342f;border-color:#e3342f}.btn-danger:hover{color:#fff;background-color:#d0211c;border-color:#c51f1a}.btn-danger.focus,.btn-danger:focus{box-shadow:0 0 0 .2rem rgba(227,52,47,.5)}.btn-danger.disabled,.btn-danger:disabled{color:#fff;background-color:#e3342f;border-color:#e3342f}.btn-danger:not(:disabled):not(.disabled).active,.btn-danger:not(:disabled):not(.disabled):active,.show>.btn-danger.dropdown-toggle{color:#fff;background-color:#c51f1a;border-color:#b91d19}.btn-danger:not(:disabled):not(.disabled).active:focus,.btn-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(227,52,47,.5)}.btn-light{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:hover{color:#212529;background-color:#e2e6ea;border-color:#dae0e5}.btn-light.focus,.btn-light:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-light.disabled,.btn-light:disabled{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:not(:disabled):not(.disabled).active,.btn-light:not(:disabled):not(.disabled):active,.show>.btn-light.dropdown-toggle{color:#212529;background-color:#dae0e5;border-color:#d3d9df}.btn-light:not(:disabled):not(.disabled).active:focus,.btn-light:not(:disabled):not(.disabled):active:focus,.show>.btn-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-dark{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark:hover{color:#fff;background-color:#23272b;border-color:#1d2124}.btn-dark.focus,.btn-dark:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-dark.disabled,.btn-dark:disabled{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark:not(:disabled):not(.disabled).active,.btn-dark:not(:disabled):not(.disabled):active,.show>.btn-dark.dropdown-toggle{color:#fff;background-color:#1d2124;border-color:#171a1d}.btn-dark:not(:disabled):not(.disabled).active:focus,.btn-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-outline-primary{color:#3490dc;background-color:transparent;background-image:none;border-color:#3490dc}.btn-outline-primary:hover{color:#fff;background-color:#3490dc;border-color:#3490dc}.btn-outline-primary.focus,.btn-outline-primary:focus{box-shadow:0 0 0 .2rem rgba(52,144,220,.5)}.btn-outline-primary.disabled,.btn-outline-primary:disabled{color:#3490dc;background-color:transparent}.btn-outline-primary:not(:disabled):not(.disabled).active,.btn-outline-primary:not(:disabled):not(.disabled):active,.show>.btn-outline-primary.dropdown-toggle{color:#fff;background-color:#3490dc;border-color:#3490dc}.btn-outline-primary:not(:disabled):not(.disabled).active:focus,.btn-outline-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(52,144,220,.5)}.btn-outline-secondary{color:#6c757d;background-color:transparent;background-image:none;border-color:#6c757d}.btn-outline-secondary:hover{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary.focus,.btn-outline-secondary:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-outline-secondary.disabled,.btn-outline-secondary:disabled{color:#6c757d;background-color:transparent}.btn-outline-secondary:not(:disabled):not(.disabled).active,.btn-outline-secondary:not(:disabled):not(.disabled):active,.show>.btn-outline-secondary.dropdown-toggle{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary:not(:disabled):not(.disabled).active:focus,.btn-outline-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-outline-success{color:#38c172;background-color:transparent;background-image:none;border-color:#38c172}.btn-outline-success:hover{color:#fff;background-color:#38c172;border-color:#38c172}.btn-outline-success.focus,.btn-outline-success:focus{box-shadow:0 0 0 .2rem rgba(56,193,114,.5)}.btn-outline-success.disabled,.btn-outline-success:disabled{color:#38c172;background-color:transparent}.btn-outline-success:not(:disabled):not(.disabled).active,.btn-outline-success:not(:disabled):not(.disabled):active,.show>.btn-outline-success.dropdown-toggle{color:#fff;background-color:#38c172;border-color:#38c172}.btn-outline-success:not(:disabled):not(.disabled).active:focus,.btn-outline-success:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(56,193,114,.5)}.btn-outline-info{color:#6cb2eb;background-color:transparent;background-image:none;border-color:#6cb2eb}.btn-outline-info:hover{color:#212529;background-color:#6cb2eb;border-color:#6cb2eb}.btn-outline-info.focus,.btn-outline-info:focus{box-shadow:0 0 0 .2rem rgba(108,178,235,.5)}.btn-outline-info.disabled,.btn-outline-info:disabled{color:#6cb2eb;background-color:transparent}.btn-outline-info:not(:disabled):not(.disabled).active,.btn-outline-info:not(:disabled):not(.disabled):active,.show>.btn-outline-info.dropdown-toggle{color:#212529;background-color:#6cb2eb;border-color:#6cb2eb}.btn-outline-info:not(:disabled):not(.disabled).active:focus,.btn-outline-info:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(108,178,235,.5)}.btn-outline-warning{color:#ffed4a;background-color:transparent;background-image:none;border-color:#ffed4a}.btn-outline-warning:hover{color:#212529;background-color:#ffed4a;border-color:#ffed4a}.btn-outline-warning.focus,.btn-outline-warning:focus{box-shadow:0 0 0 .2rem rgba(255,237,74,.5)}.btn-outline-warning.disabled,.btn-outline-warning:disabled{color:#ffed4a;background-color:transparent}.btn-outline-warning:not(:disabled):not(.disabled).active,.btn-outline-warning:not(:disabled):not(.disabled):active,.show>.btn-outline-warning.dropdown-toggle{color:#212529;background-color:#ffed4a;border-color:#ffed4a}.btn-outline-warning:not(:disabled):not(.disabled).active:focus,.btn-outline-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(255,237,74,.5)}.btn-outline-danger{color:#e3342f;background-color:transparent;background-image:none;border-color:#e3342f}.btn-outline-danger:hover{color:#fff;background-color:#e3342f;border-color:#e3342f}.btn-outline-danger.focus,.btn-outline-danger:focus{box-shadow:0 0 0 .2rem rgba(227,52,47,.5)}.btn-outline-danger.disabled,.btn-outline-danger:disabled{color:#e3342f;background-color:transparent}.btn-outline-danger:not(:disabled):not(.disabled).active,.btn-outline-danger:not(:disabled):not(.disabled):active,.show>.btn-outline-danger.dropdown-toggle{color:#fff;background-color:#e3342f;border-color:#e3342f}.btn-outline-danger:not(:disabled):not(.disabled).active:focus,.btn-outline-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(227,52,47,.5)}.btn-outline-light{color:#f8f9fa;background-color:transparent;background-image:none;border-color:#f8f9fa}.btn-outline-light:hover{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light.focus,.btn-outline-light:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-light.disabled,.btn-outline-light:disabled{color:#f8f9fa;background-color:transparent}.btn-outline-light:not(:disabled):not(.disabled).active,.btn-outline-light:not(:disabled):not(.disabled):active,.show>.btn-outline-light.dropdown-toggle{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:not(:disabled):not(.disabled).active:focus,.btn-outline-light:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-dark{color:#343a40;background-color:transparent;background-image:none;border-color:#343a40}.btn-outline-dark:hover{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark.focus,.btn-outline-dark:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-outline-dark.disabled,.btn-outline-dark:disabled{color:#343a40;background-color:transparent}.btn-outline-dark:not(:disabled):not(.disabled).active,.btn-outline-dark:not(:disabled):not(.disabled):active,.show>.btn-outline-dark.dropdown-toggle{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark:not(:disabled):not(.disabled).active:focus,.btn-outline-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-link{font-weight:400;color:#3490dc;background-color:transparent}.btn-link:hover{color:#1d68a7;background-color:transparent}.btn-link.focus,.btn-link:focus,.btn-link:hover{text-decoration:underline;border-color:transparent}.btn-link.focus,.btn-link:focus{box-shadow:none}.btn-link.disabled,.btn-link:disabled{color:#6c757d;pointer-events:none}.btn-group-lg>.btn,.btn-lg{padding:.5rem 1rem;font-size:1.125rem;line-height:1.5;border-radius:.3rem}.btn-group-sm>.btn,.btn-sm{padding:.25rem .5rem;font-size:.7875rem;line-height:1.5;border-radius:.2rem}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:.5rem}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.fade{transition:opacity .15s linear}@media screen and (prefers-reduced-motion:reduce){.fade{transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{position:relative;height:0;overflow:hidden;transition:height .35s ease}@media screen and (prefers-reduced-motion:reduce){.collapsing{transition:none}}.dropdown,.dropleft,.dropright,.dropup{position:relative}.dropdown-toggle:after{display:inline-block;width:0;height:0;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.dropdown-toggle:empty:after{margin-left:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:10rem;padding:.5rem 0;margin:.125rem 0 0;font-size:.9rem;color:#212529;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.15);border-radius:.25rem}.dropdown-menu-right{right:0;left:auto}.dropup .dropdown-menu{top:auto;bottom:100%;margin-top:0;margin-bottom:.125rem}.dropup .dropdown-toggle:after{display:inline-block;width:0;height:0;margin-left:.255em;vertical-align:.255em;content:"";border-top:0;border-right:.3em solid transparent;border-bottom:.3em solid;border-left:.3em solid transparent}.dropup .dropdown-toggle:empty:after{margin-left:0}.dropright .dropdown-menu{top:0;right:auto;left:100%;margin-top:0;margin-left:.125rem}.dropright .dropdown-toggle:after{display:inline-block;width:0;height:0;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:0;border-bottom:.3em solid transparent;border-left:.3em solid}.dropright .dropdown-toggle:empty:after{margin-left:0}.dropright .dropdown-toggle:after{vertical-align:0}.dropleft .dropdown-menu{top:0;right:100%;left:auto;margin-top:0;margin-right:.125rem}.dropleft .dropdown-toggle:after{display:inline-block;width:0;height:0;margin-left:.255em;vertical-align:.255em;content:"";display:none}.dropleft .dropdown-toggle:before{display:inline-block;width:0;height:0;margin-right:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:.3em solid;border-bottom:.3em solid transparent}.dropleft .dropdown-toggle:empty:after{margin-left:0}.dropleft .dropdown-toggle:before{vertical-align:0}.dropdown-menu[x-placement^=bottom],.dropdown-menu[x-placement^=left],.dropdown-menu[x-placement^=right],.dropdown-menu[x-placement^=top]{right:auto;bottom:auto}.dropdown-divider{height:0;margin:.5rem 0;overflow:hidden;border-top:1px solid #e9ecef}.dropdown-item{display:block;width:100%;padding:.25rem 1.5rem;clear:both;font-weight:400;color:#212529;text-align:inherit;white-space:nowrap;background-color:transparent;border:0}.dropdown-item:focus,.dropdown-item:hover{color:#16181b;text-decoration:none;background-color:#f8f9fa}.dropdown-item.active,.dropdown-item:active{color:#fff;text-decoration:none;background-color:#3490dc}.dropdown-item.disabled,.dropdown-item:disabled{color:#6c757d;background-color:transparent}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:.5rem 1.5rem;margin-bottom:0;font-size:.7875rem;color:#6c757d;white-space:nowrap}.dropdown-item-text{display:block;padding:.25rem 1.5rem;color:#212529}.btn-group,.btn-group-vertical{position:relative;display:inline-flex;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;flex:0 1 auto}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:1}.btn-group-vertical .btn+.btn,.btn-group-vertical .btn+.btn-group,.btn-group-vertical .btn-group+.btn,.btn-group-vertical .btn-group+.btn-group,.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-toolbar{display:flex;flex-wrap:wrap;justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn-group:not(:last-child)>.btn,.btn-group>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:not(:first-child)>.btn,.btn-group>.btn:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split{padding-right:.5625rem;padding-left:.5625rem}.dropdown-toggle-split:after,.dropright .dropdown-toggle-split:after,.dropup .dropdown-toggle-split:after{margin-left:0}.dropleft .dropdown-toggle-split:before{margin-right:0}.btn-group-sm>.btn+.dropdown-toggle-split,.btn-sm+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-group-lg>.btn+.dropdown-toggle-split,.btn-lg+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group-vertical{flex-direction:column;align-items:flex-start;justify-content:center}.btn-group-vertical .btn,.btn-group-vertical .btn-group{width:100%}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn-group:not(:last-child)>.btn,.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child)>.btn,.btn-group-vertical>.btn:not(:first-child){border-top-left-radius:0;border-top-right-radius:0}.btn-group-toggle>.btn,.btn-group-toggle>.btn-group>.btn{margin-bottom:0}.btn-group-toggle>.btn-group>.btn input[type=checkbox],.btn-group-toggle>.btn-group>.btn input[type=radio],.btn-group-toggle>.btn input[type=checkbox],.btn-group-toggle>.btn input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group{position:relative;display:flex;flex-wrap:wrap;align-items:stretch;width:100%}.input-group>.custom-file,.input-group>.custom-select,.input-group>.form-control{position:relative;flex:1 1 auto;width:1%;margin-bottom:0}.input-group>.custom-file+.custom-file,.input-group>.custom-file+.custom-select,.input-group>.custom-file+.form-control,.input-group>.custom-select+.custom-file,.input-group>.custom-select+.custom-select,.input-group>.custom-select+.form-control,.input-group>.form-control+.custom-file,.input-group>.form-control+.custom-select,.input-group>.form-control+.form-control{margin-left:-1px}.input-group>.custom-file .custom-file-input:focus~.custom-file-label,.input-group>.custom-select:focus,.input-group>.form-control:focus{z-index:3}.input-group>.custom-file .custom-file-input:focus{z-index:4}.input-group>.custom-select:not(:last-child),.input-group>.form-control:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-select:not(:first-child),.input-group>.form-control:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.input-group>.custom-file{display:flex;align-items:center}.input-group>.custom-file:not(:last-child) .custom-file-label,.input-group>.custom-file:not(:last-child) .custom-file-label:after{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-file:not(:first-child) .custom-file-label{border-top-left-radius:0;border-bottom-left-radius:0}.input-group-append,.input-group-prepend{display:flex}.input-group-append .btn,.input-group-prepend .btn{position:relative;z-index:2}.input-group-append .btn+.btn,.input-group-append .btn+.input-group-text,.input-group-append .input-group-text+.btn,.input-group-append .input-group-text+.input-group-text,.input-group-prepend .btn+.btn,.input-group-prepend .btn+.input-group-text,.input-group-prepend .input-group-text+.btn,.input-group-prepend .input-group-text+.input-group-text{margin-left:-1px}.input-group-prepend{margin-right:-1px}.input-group-append{margin-left:-1px}.input-group-text{display:flex;align-items:center;padding:.375rem .75rem;margin-bottom:0;font-size:.9rem;font-weight:400;line-height:1.6;color:#495057;text-align:center;white-space:nowrap;background-color:#e9ecef;border:1px solid #ced4da;border-radius:.25rem}.input-group-text input[type=checkbox],.input-group-text input[type=radio]{margin-top:0}.input-group-lg>.form-control,.input-group-lg>.input-group-append>.btn,.input-group-lg>.input-group-append>.input-group-text,.input-group-lg>.input-group-prepend>.btn,.input-group-lg>.input-group-prepend>.input-group-text{height:calc(2.6875rem + 2px);padding:.5rem 1rem;font-size:1.125rem;line-height:1.5;border-radius:.3rem}.input-group-sm>.form-control,.input-group-sm>.input-group-append>.btn,.input-group-sm>.input-group-append>.input-group-text,.input-group-sm>.input-group-prepend>.btn,.input-group-sm>.input-group-prepend>.input-group-text{height:calc(1.68125rem + 2px);padding:.25rem .5rem;font-size:.7875rem;line-height:1.5;border-radius:.2rem}.input-group>.input-group-append:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group>.input-group-append:last-child>.input-group-text:not(:last-child),.input-group>.input-group-append:not(:last-child)>.btn,.input-group>.input-group-append:not(:last-child)>.input-group-text,.input-group>.input-group-prepend>.btn,.input-group>.input-group-prepend>.input-group-text{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.input-group-append>.btn,.input-group>.input-group-append>.input-group-text,.input-group>.input-group-prepend:first-child>.btn:not(:first-child),.input-group>.input-group-prepend:first-child>.input-group-text:not(:first-child),.input-group>.input-group-prepend:not(:first-child)>.btn,.input-group>.input-group-prepend:not(:first-child)>.input-group-text{border-top-left-radius:0;border-bottom-left-radius:0}.custom-control{position:relative;display:block;min-height:1.44rem;padding-left:1.5rem}.custom-control-inline{display:inline-flex;margin-right:1rem}.custom-control-input{position:absolute;z-index:-1;opacity:0}.custom-control-input:checked~.custom-control-label:before{color:#fff;background-color:#3490dc}.custom-control-input:focus~.custom-control-label:before{box-shadow:0 0 0 1px #f8fafc,0 0 0 .2rem rgba(52,144,220,.25)}.custom-control-input:active~.custom-control-label:before{color:#fff;background-color:#cce3f6}.custom-control-input:disabled~.custom-control-label{color:#6c757d}.custom-control-input:disabled~.custom-control-label:before{background-color:#e9ecef}.custom-control-label{position:relative;margin-bottom:0}.custom-control-label:before{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:#dee2e6}.custom-control-label:after,.custom-control-label:before{position:absolute;top:.22rem;left:-1.5rem;display:block;width:1rem;height:1rem;content:""}.custom-control-label:after{background-repeat:no-repeat;background-position:50%;background-size:50% 50%}.custom-checkbox .custom-control-label:before{border-radius:.25rem}.custom-checkbox .custom-control-input:checked~.custom-control-label:before{background-color:#3490dc}.custom-checkbox .custom-control-input:checked~.custom-control-label:after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E")}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label:before{background-color:#3490dc}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label:after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 4'%3E%3Cpath stroke='%23fff' d='M0 2h4'/%3E%3C/svg%3E")}.custom-checkbox .custom-control-input:disabled:checked~.custom-control-label:before{background-color:rgba(52,144,220,.5)}.custom-checkbox .custom-control-input:disabled:indeterminate~.custom-control-label:before{background-color:rgba(52,144,220,.5)}.custom-radio .custom-control-label:before{border-radius:50%}.custom-radio .custom-control-input:checked~.custom-control-label:before{background-color:#3490dc}.custom-radio .custom-control-input:checked~.custom-control-label:after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23fff'/%3E%3C/svg%3E")}.custom-radio .custom-control-input:disabled:checked~.custom-control-label:before{background-color:rgba(52,144,220,.5)}.custom-select{display:inline-block;width:100%;height:calc(2.19rem + 2px);padding:.375rem 1.75rem .375rem .75rem;line-height:1.6;color:#495057;vertical-align:middle;background:#fff url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3E%3Cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E") no-repeat right .75rem center;background-size:8px 10px;border:1px solid #ced4da;border-radius:.25rem;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-select:focus{border-color:#a1cbef;outline:0;box-shadow:0 0 0 .2rem rgba(161,203,239,.5)}.custom-select:focus::-ms-value{color:#495057;background-color:#fff}.custom-select[multiple],.custom-select[size]:not([size="1"]){height:auto;padding-right:.75rem;background-image:none}.custom-select:disabled{color:#6c757d;background-color:#e9ecef}.custom-select::-ms-expand{opacity:0}.custom-select-sm{height:calc(1.68125rem + 2px);font-size:75%}.custom-select-lg,.custom-select-sm{padding-top:.375rem;padding-bottom:.375rem}.custom-select-lg{height:calc(2.6875rem + 2px);font-size:125%}.custom-file{display:inline-block;margin-bottom:0}.custom-file,.custom-file-input{position:relative;width:100%;height:calc(2.19rem + 2px)}.custom-file-input{z-index:2;margin:0;opacity:0}.custom-file-input:focus~.custom-file-label{border-color:#a1cbef;box-shadow:0 0 0 .2rem rgba(52,144,220,.25)}.custom-file-input:focus~.custom-file-label:after{border-color:#a1cbef}.custom-file-input:disabled~.custom-file-label{background-color:#e9ecef}.custom-file-input:lang(en)~.custom-file-label:after{content:"Browse"}.custom-file-label{left:0;z-index:1;height:calc(2.19rem + 2px);background-color:#fff;border:1px solid #ced4da;border-radius:.25rem}.custom-file-label,.custom-file-label:after{position:absolute;top:0;right:0;padding:.375rem .75rem;line-height:1.6;color:#495057}.custom-file-label:after{bottom:0;z-index:3;display:block;height:2.19rem;content:"Browse";background-color:#e9ecef;border-left:1px solid #ced4da;border-radius:0 .25rem .25rem 0}.custom-range{width:100%;padding-left:0;background-color:transparent;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-range:focus{outline:none}.custom-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #f8fafc,0 0 0 .2rem rgba(52,144,220,.25)}.custom-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #f8fafc,0 0 0 .2rem rgba(52,144,220,.25)}.custom-range:focus::-ms-thumb{box-shadow:0 0 0 1px #f8fafc,0 0 0 .2rem rgba(52,144,220,.25)}.custom-range::-moz-focus-outer{border:0}.custom-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-.25rem;background-color:#3490dc;border:0;border-radius:1rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-webkit-appearance:none;appearance:none}@media screen and (prefers-reduced-motion:reduce){.custom-range::-webkit-slider-thumb{transition:none}}.custom-range::-webkit-slider-thumb:active{background-color:#cce3f6}.custom-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-moz-range-thumb{width:1rem;height:1rem;background-color:#3490dc;border:0;border-radius:1rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-moz-appearance:none;appearance:none}@media screen and (prefers-reduced-motion:reduce){.custom-range::-moz-range-thumb{transition:none}}.custom-range::-moz-range-thumb:active{background-color:#cce3f6}.custom-range::-moz-range-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-ms-thumb{width:1rem;height:1rem;margin-top:0;margin-right:.2rem;margin-left:.2rem;background-color:#3490dc;border:0;border-radius:1rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;appearance:none}@media screen and (prefers-reduced-motion:reduce){.custom-range::-ms-thumb{transition:none}}.custom-range::-ms-thumb:active{background-color:#cce3f6}.custom-range::-ms-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:transparent;border-color:transparent;border-width:.5rem}.custom-range::-ms-fill-lower,.custom-range::-ms-fill-upper{background-color:#dee2e6;border-radius:1rem}.custom-range::-ms-fill-upper{margin-right:15px}.custom-control-label:before,.custom-file-label,.custom-select{transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media screen and (prefers-reduced-motion:reduce){.custom-control-label:before,.custom-file-label,.custom-select{transition:none}}.nav{display:flex;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:.5rem 1rem}.nav-link:focus,.nav-link:hover{text-decoration:none}.nav-link.disabled{color:#6c757d}.nav-tabs{border-bottom:1px solid #dee2e6}.nav-tabs .nav-item{margin-bottom:-1px}.nav-tabs .nav-link{border:1px solid transparent;border-top-left-radius:.25rem;border-top-right-radius:.25rem}.nav-tabs .nav-link:focus,.nav-tabs .nav-link:hover{border-color:#e9ecef #e9ecef #dee2e6}.nav-tabs .nav-link.disabled{color:#6c757d;background-color:transparent;border-color:transparent}.nav-tabs .nav-item.show .nav-link,.nav-tabs .nav-link.active{color:#495057;background-color:#f8fafc;border-color:#dee2e6 #dee2e6 #f8fafc}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.nav-pills .nav-link{border-radius:.25rem}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:#fff;background-color:#3490dc}.nav-fill .nav-item{flex:1 1 auto;text-align:center}.nav-justified .nav-item{flex-basis:0;flex-grow:1;text-align:center}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{position:relative;padding:.5rem 1rem}.navbar,.navbar>.container,.navbar>.container-fluid{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between}.navbar-brand{display:inline-block;padding-top:.32rem;padding-bottom:.32rem;margin-right:1rem;font-size:1.125rem;line-height:inherit;white-space:nowrap}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-nav{display:flex;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link{padding-right:0;padding-left:0}.navbar-nav .dropdown-menu{position:static;float:none}.navbar-text{display:inline-block;padding-top:.5rem;padding-bottom:.5rem}.navbar-collapse{flex-basis:100%;flex-grow:1;align-items:center}.navbar-toggler{padding:.25rem .75rem;font-size:1.125rem;line-height:1;background-color:transparent;border:1px solid transparent;border-radius:.25rem}.navbar-toggler:focus,.navbar-toggler:hover{text-decoration:none}.navbar-toggler:not(:disabled):not(.disabled){cursor:pointer}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;content:"";background:no-repeat 50%;background-size:100% 100%}@media (max-width:575.98px){.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid{padding-right:0;padding-left:0}}@media (min-width:576px){.navbar-expand-sm{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-sm .navbar-nav{flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid{flex-wrap:nowrap}.navbar-expand-sm .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}}@media (max-width:767.98px){.navbar-expand-md>.container,.navbar-expand-md>.container-fluid{padding-right:0;padding-left:0}}@media (min-width:768px){.navbar-expand-md{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-md .navbar-nav{flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-md>.container,.navbar-expand-md>.container-fluid{flex-wrap:nowrap}.navbar-expand-md .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}}@media (max-width:991.98px){.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid{padding-right:0;padding-left:0}}@media (min-width:992px){.navbar-expand-lg{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-lg .navbar-nav{flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid{flex-wrap:nowrap}.navbar-expand-lg .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}}@media (max-width:1199.98px){.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid{padding-right:0;padding-left:0}}@media (min-width:1200px){.navbar-expand-xl{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-xl .navbar-nav{flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid{flex-wrap:nowrap}.navbar-expand-xl .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}}.navbar-expand{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand>.container,.navbar-expand>.container-fluid{padding-right:0;padding-left:0}.navbar-expand .navbar-nav{flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand>.container,.navbar-expand>.container-fluid{flex-wrap:nowrap}.navbar-expand .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-light .navbar-brand,.navbar-light .navbar-brand:focus,.navbar-light .navbar-brand:hover{color:rgba(0,0,0,.9)}.navbar-light .navbar-nav .nav-link{color:rgba(0,0,0,.5)}.navbar-light .navbar-nav .nav-link:focus,.navbar-light .navbar-nav .nav-link:hover{color:rgba(0,0,0,.7)}.navbar-light .navbar-nav .nav-link.disabled{color:rgba(0,0,0,.3)}.navbar-light .navbar-nav .active>.nav-link,.navbar-light .navbar-nav .nav-link.active,.navbar-light .navbar-nav .nav-link.show,.navbar-light .navbar-nav .show>.nav-link{color:rgba(0,0,0,.9)}.navbar-light .navbar-toggler{color:rgba(0,0,0,.5);border-color:rgba(0,0,0,.1)}.navbar-light .navbar-toggler-icon{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba(0, 0, 0, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E")}.navbar-light .navbar-text{color:rgba(0,0,0,.5)}.navbar-light .navbar-text a,.navbar-light .navbar-text a:focus,.navbar-light .navbar-text a:hover{color:rgba(0,0,0,.9)}.navbar-dark .navbar-brand,.navbar-dark .navbar-brand:focus,.navbar-dark .navbar-brand:hover{color:#fff}.navbar-dark .navbar-nav .nav-link{color:hsla(0,0%,100%,.5)}.navbar-dark .navbar-nav .nav-link:focus,.navbar-dark .navbar-nav .nav-link:hover{color:hsla(0,0%,100%,.75)}.navbar-dark .navbar-nav .nav-link.disabled{color:hsla(0,0%,100%,.25)}.navbar-dark .navbar-nav .active>.nav-link,.navbar-dark .navbar-nav .nav-link.active,.navbar-dark .navbar-nav .nav-link.show,.navbar-dark .navbar-nav .show>.nav-link{color:#fff}.navbar-dark .navbar-toggler{color:hsla(0,0%,100%,.5);border-color:hsla(0,0%,100%,.1)}.navbar-dark .navbar-toggler-icon{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba(255, 255, 255, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E")}.navbar-dark .navbar-text{color:hsla(0,0%,100%,.5)}.navbar-dark .navbar-text a,.navbar-dark .navbar-text a:focus,.navbar-dark .navbar-text a:hover{color:#fff}.card{position:relative;display:flex;flex-direction:column;min-width:0;word-wrap:break-word;background-color:#fff;background-clip:border-box;border:1px solid rgba(0,0,0,.125);border-radius:.25rem}.card>hr{margin-right:0;margin-left:0}.card>.list-group:first-child .list-group-item:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.card>.list-group:last-child .list-group-item:last-child{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.card-body{flex:1 1 auto;padding:1.25rem}.card-title{margin-bottom:.75rem}.card-subtitle{margin-top:-.375rem}.card-subtitle,.card-text:last-child{margin-bottom:0}.card-link:hover{text-decoration:none}.card-link+.card-link{margin-left:1.25rem}.card-header{padding:.75rem 1.25rem;margin-bottom:0;background-color:rgba(0,0,0,.03);border-bottom:1px solid rgba(0,0,0,.125)}.card-header:first-child{border-radius:calc(.25rem - 1px) calc(.25rem - 1px) 0 0}.card-header+.list-group .list-group-item:first-child{border-top:0}.card-footer{padding:.75rem 1.25rem;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.125)}.card-footer:last-child{border-radius:0 0 calc(.25rem - 1px) calc(.25rem - 1px)}.card-header-tabs{margin-bottom:-.75rem;border-bottom:0}.card-header-pills,.card-header-tabs{margin-right:-.625rem;margin-left:-.625rem}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:1.25rem}.card-img{width:100%;border-radius:calc(.25rem - 1px)}.card-img-top{width:100%;border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card-img-bottom{width:100%;border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card-deck{display:flex;flex-direction:column}.card-deck .card{margin-bottom:15px}@media (min-width:576px){.card-deck{flex-flow:row wrap;margin-right:-15px;margin-left:-15px}.card-deck .card{display:flex;flex:1 0 0%;flex-direction:column;margin-right:15px;margin-bottom:0;margin-left:15px}}.card-group{display:flex;flex-direction:column}.card-group>.card{margin-bottom:15px}@media (min-width:576px){.card-group{flex-flow:row wrap}.card-group>.card{flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}.card-group>.card:first-child{border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:first-child .card-header,.card-group>.card:first-child .card-img-top{border-top-right-radius:0}.card-group>.card:first-child .card-footer,.card-group>.card:first-child .card-img-bottom{border-bottom-right-radius:0}.card-group>.card:last-child{border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:last-child .card-header,.card-group>.card:last-child .card-img-top{border-top-left-radius:0}.card-group>.card:last-child .card-footer,.card-group>.card:last-child .card-img-bottom{border-bottom-left-radius:0}.card-group>.card:only-child{border-radius:.25rem}.card-group>.card:only-child .card-header,.card-group>.card:only-child .card-img-top{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.card-group>.card:only-child .card-footer,.card-group>.card:only-child .card-img-bottom{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.card-group>.card:not(:first-child):not(:last-child):not(:only-child),.card-group>.card:not(:first-child):not(:last-child):not(:only-child) .card-footer,.card-group>.card:not(:first-child):not(:last-child):not(:only-child) .card-header,.card-group>.card:not(:first-child):not(:last-child):not(:only-child) .card-img-bottom,.card-group>.card:not(:first-child):not(:last-child):not(:only-child) .card-img-top{border-radius:0}}.card-columns .card{margin-bottom:.75rem}@media (min-width:576px){.card-columns{-webkit-column-count:3;column-count:3;-webkit-column-gap:1.25rem;column-gap:1.25rem;orphans:1;widows:1}.card-columns .card{display:inline-block;width:100%}}.accordion .card:not(:first-of-type):not(:last-of-type){border-bottom:0;border-radius:0}.accordion .card:not(:first-of-type) .card-header:first-child{border-radius:0}.accordion .card:first-of-type{border-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.accordion .card:last-of-type{border-top-left-radius:0;border-top-right-radius:0}.breadcrumb{display:flex;flex-wrap:wrap;padding:.75rem 1rem;margin-bottom:1rem;list-style:none;background-color:#e9ecef;border-radius:.25rem}.breadcrumb-item+.breadcrumb-item{padding-left:.5rem}.breadcrumb-item+.breadcrumb-item:before{display:inline-block;padding-right:.5rem;color:#6c757d;content:"/"}.breadcrumb-item+.breadcrumb-item:hover:before{text-decoration:underline;text-decoration:none}.breadcrumb-item.active{color:#6c757d}.pagination{display:flex;padding-left:0;list-style:none;border-radius:.25rem}.page-link{position:relative;display:block;padding:.5rem .75rem;margin-left:-1px;line-height:1.25;color:#3490dc;background-color:#fff;border:1px solid #dee2e6}.page-link:hover{z-index:2;color:#1d68a7;text-decoration:none;background-color:#e9ecef;border-color:#dee2e6}.page-link:focus{z-index:2;outline:0;box-shadow:0 0 0 .2rem rgba(52,144,220,.25)}.page-link:not(:disabled):not(.disabled){cursor:pointer}.page-item:first-child .page-link{margin-left:0;border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.page-item:last-child .page-link{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.page-item.active .page-link{z-index:1;color:#fff;background-color:#3490dc;border-color:#3490dc}.page-item.disabled .page-link{color:#6c757d;pointer-events:none;cursor:auto;background-color:#fff;border-color:#dee2e6}.pagination-lg .page-link{padding:.75rem 1.5rem;font-size:1.125rem;line-height:1.5}.pagination-lg .page-item:first-child .page-link{border-top-left-radius:.3rem;border-bottom-left-radius:.3rem}.pagination-lg .page-item:last-child .page-link{border-top-right-radius:.3rem;border-bottom-right-radius:.3rem}.pagination-sm .page-link{padding:.25rem .5rem;font-size:.7875rem;line-height:1.5}.pagination-sm .page-item:first-child .page-link{border-top-left-radius:.2rem;border-bottom-left-radius:.2rem}.pagination-sm .page-item:last-child .page-link{border-top-right-radius:.2rem;border-bottom-right-radius:.2rem}.badge{display:inline-block;padding:.25em .4em;font-size:75%;font-weight:700;line-height:1;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25rem}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.badge-pill{padding-right:.6em;padding-left:.6em;border-radius:10rem}.badge-primary{color:#fff;background-color:#3490dc}.badge-primary[href]:focus,.badge-primary[href]:hover{color:#fff;text-decoration:none;background-color:#2176bd}.badge-secondary{color:#fff;background-color:#6c757d}.badge-secondary[href]:focus,.badge-secondary[href]:hover{color:#fff;text-decoration:none;background-color:#545b62}.badge-success{color:#fff;background-color:#38c172}.badge-success[href]:focus,.badge-success[href]:hover{color:#fff;text-decoration:none;background-color:#2d995b}.badge-info{color:#212529;background-color:#6cb2eb}.badge-info[href]:focus,.badge-info[href]:hover{color:#212529;text-decoration:none;background-color:#3f9ae5}.badge-warning{color:#212529;background-color:#ffed4a}.badge-warning[href]:focus,.badge-warning[href]:hover{color:#212529;text-decoration:none;background-color:#ffe817}.badge-danger{color:#fff;background-color:#e3342f}.badge-danger[href]:focus,.badge-danger[href]:hover{color:#fff;text-decoration:none;background-color:#c51f1a}.badge-light{color:#212529;background-color:#f8f9fa}.badge-light[href]:focus,.badge-light[href]:hover{color:#212529;text-decoration:none;background-color:#dae0e5}.badge-dark{color:#fff;background-color:#343a40}.badge-dark[href]:focus,.badge-dark[href]:hover{color:#fff;text-decoration:none;background-color:#1d2124}.jumbotron{padding:2rem 1rem;margin-bottom:2rem;background-color:#e9ecef;border-radius:.3rem}@media (min-width:576px){.jumbotron{padding:4rem 2rem}}.jumbotron-fluid{padding-right:0;padding-left:0;border-radius:0}.alert{position:relative;padding:.75rem 1.25rem;margin-bottom:1rem;border:1px solid transparent;border-radius:.25rem}.alert-heading{color:inherit}.alert-link{font-weight:700}.alert-dismissible{padding-right:3.85rem}.alert-dismissible .close{position:absolute;top:0;right:0;padding:.75rem 1.25rem;color:inherit}.alert-primary{color:#1b4b72;background-color:#d6e9f8;border-color:#c6e0f5}.alert-primary hr{border-top-color:#b0d4f1}.alert-primary .alert-link{color:#113049}.alert-secondary{color:#383d41;background-color:#e2e3e5;border-color:#d6d8db}.alert-secondary hr{border-top-color:#c8cbcf}.alert-secondary .alert-link{color:#202326}.alert-success{color:#1d643b;background-color:#d7f3e3;border-color:#c7eed8}.alert-success hr{border-top-color:#b3e8ca}.alert-success .alert-link{color:#123c24}.alert-info{color:#385d7a;background-color:#e2f0fb;border-color:#d6e9f9}.alert-info hr{border-top-color:#c0ddf6}.alert-info .alert-link{color:#284257}.alert-warning{color:#857b26;background-color:#fffbdb;border-color:#fffacc}.alert-warning hr{border-top-color:#fff8b3}.alert-warning .alert-link{color:#5d561b}.alert-danger{color:#761b18;background-color:#f9d6d5;border-color:#f7c6c5}.alert-danger hr{border-top-color:#f4b0af}.alert-danger .alert-link{color:#4c110f}.alert-light{color:#818182;background-color:#fefefe;border-color:#fdfdfe}.alert-light hr{border-top-color:#ececf6}.alert-light .alert-link{color:#686868}.alert-dark{color:#1b1e21;background-color:#d6d8d9;border-color:#c6c8ca}.alert-dark hr{border-top-color:#b9bbbe}.alert-dark .alert-link{color:#040505}@-webkit-keyframes progress-bar-stripes{0%{background-position:1rem 0}to{background-position:0 0}}@keyframes progress-bar-stripes{0%{background-position:1rem 0}to{background-position:0 0}}.progress{display:flex;height:1rem;overflow:hidden;font-size:.675rem;background-color:#e9ecef;border-radius:.25rem}.progress-bar{display:flex;flex-direction:column;justify-content:center;color:#fff;text-align:center;white-space:nowrap;background-color:#3490dc;transition:width .6s ease}@media screen and (prefers-reduced-motion:reduce){.progress-bar{transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg,hsla(0,0%,100%,.15) 25%,transparent 0,transparent 50%,hsla(0,0%,100%,.15) 0,hsla(0,0%,100%,.15) 75%,transparent 0,transparent);background-size:1rem 1rem}.progress-bar-animated{-webkit-animation:progress-bar-stripes 1s linear infinite;animation:progress-bar-stripes 1s linear infinite}.media{display:flex;align-items:flex-start}.media-body{flex:1}.list-group{display:flex;flex-direction:column;padding-left:0;margin-bottom:0}.list-group-item-action{width:100%;color:#495057;text-align:inherit}.list-group-item-action:focus,.list-group-item-action:hover{color:#495057;text-decoration:none;background-color:#f8f9fa}.list-group-item-action:active{color:#212529;background-color:#e9ecef}.list-group-item{position:relative;display:block;padding:.75rem 1.25rem;margin-bottom:-1px;background-color:#fff;border:1px solid rgba(0,0,0,.125)}.list-group-item:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.list-group-item:focus,.list-group-item:hover{z-index:1;text-decoration:none}.list-group-item.disabled,.list-group-item:disabled{color:#6c757d;background-color:#fff}.list-group-item.active{z-index:2;color:#fff;background-color:#3490dc;border-color:#3490dc}.list-group-flush .list-group-item{border-right:0;border-left:0;border-radius:0}.list-group-flush:first-child .list-group-item:first-child{border-top:0}.list-group-flush:last-child .list-group-item:last-child{border-bottom:0}.list-group-item-primary{color:#1b4b72;background-color:#c6e0f5}.list-group-item-primary.list-group-item-action:focus,.list-group-item-primary.list-group-item-action:hover{color:#1b4b72;background-color:#b0d4f1}.list-group-item-primary.list-group-item-action.active{color:#fff;background-color:#1b4b72;border-color:#1b4b72}.list-group-item-secondary{color:#383d41;background-color:#d6d8db}.list-group-item-secondary.list-group-item-action:focus,.list-group-item-secondary.list-group-item-action:hover{color:#383d41;background-color:#c8cbcf}.list-group-item-secondary.list-group-item-action.active{color:#fff;background-color:#383d41;border-color:#383d41}.list-group-item-success{color:#1d643b;background-color:#c7eed8}.list-group-item-success.list-group-item-action:focus,.list-group-item-success.list-group-item-action:hover{color:#1d643b;background-color:#b3e8ca}.list-group-item-success.list-group-item-action.active{color:#fff;background-color:#1d643b;border-color:#1d643b}.list-group-item-info{color:#385d7a;background-color:#d6e9f9}.list-group-item-info.list-group-item-action:focus,.list-group-item-info.list-group-item-action:hover{color:#385d7a;background-color:#c0ddf6}.list-group-item-info.list-group-item-action.active{color:#fff;background-color:#385d7a;border-color:#385d7a}.list-group-item-warning{color:#857b26;background-color:#fffacc}.list-group-item-warning.list-group-item-action:focus,.list-group-item-warning.list-group-item-action:hover{color:#857b26;background-color:#fff8b3}.list-group-item-warning.list-group-item-action.active{color:#fff;background-color:#857b26;border-color:#857b26}.list-group-item-danger{color:#761b18;background-color:#f7c6c5}.list-group-item-danger.list-group-item-action:focus,.list-group-item-danger.list-group-item-action:hover{color:#761b18;background-color:#f4b0af}.list-group-item-danger.list-group-item-action.active{color:#fff;background-color:#761b18;border-color:#761b18}.list-group-item-light{color:#818182;background-color:#fdfdfe}.list-group-item-light.list-group-item-action:focus,.list-group-item-light.list-group-item-action:hover{color:#818182;background-color:#ececf6}.list-group-item-light.list-group-item-action.active{color:#fff;background-color:#818182;border-color:#818182}.list-group-item-dark{color:#1b1e21;background-color:#c6c8ca}.list-group-item-dark.list-group-item-action:focus,.list-group-item-dark.list-group-item-action:hover{color:#1b1e21;background-color:#b9bbbe}.list-group-item-dark.list-group-item-action.active{color:#fff;background-color:#1b1e21;border-color:#1b1e21}.close{float:right;font-size:1.35rem;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.5}.close:not(:disabled):not(.disabled){cursor:pointer}.close:not(:disabled):not(.disabled):focus,.close:not(:disabled):not(.disabled):hover{color:#000;text-decoration:none;opacity:.75}button.close{padding:0;background-color:transparent;border:0;-webkit-appearance:none}.modal-open{overflow:hidden}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;display:none;overflow:hidden;outline:0}.modal-dialog{position:relative;width:auto;margin:.5rem;pointer-events:none}.modal.fade .modal-dialog{transition:-webkit-transform .3s ease-out;transition:transform .3s ease-out;transition:transform .3s ease-out,-webkit-transform .3s ease-out;-webkit-transform:translateY(-25%);transform:translateY(-25%)}@media screen and (prefers-reduced-motion:reduce){.modal.fade .modal-dialog{transition:none}}.modal.show .modal-dialog{-webkit-transform:translate(0);transform:translate(0)}.modal-dialog-centered{display:flex;align-items:center;min-height:calc(100% - 1rem)}.modal-dialog-centered:before{display:block;height:calc(100vh - 1rem);content:""}.modal-content{position:relative;display:flex;flex-direction:column;width:100%;pointer-events:auto;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem;outline:0}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:.5}.modal-header{display:flex;align-items:flex-start;justify-content:space-between;padding:1rem;border-bottom:1px solid #e9ecef;border-top-left-radius:.3rem;border-top-right-radius:.3rem}.modal-header .close{padding:1rem;margin:-1rem -1rem -1rem auto}.modal-title{margin-bottom:0;line-height:1.6}.modal-body{position:relative;flex:1 1 auto;padding:1rem}.modal-footer{display:flex;align-items:center;justify-content:flex-end;padding:1rem;border-top:1px solid #e9ecef}.modal-footer>:not(:first-child){margin-left:.25rem}.modal-footer>:not(:last-child){margin-right:.25rem}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:576px){.modal-dialog{max-width:500px;margin:1.75rem auto}.modal-dialog-centered{min-height:calc(100% - 3.5rem)}.modal-dialog-centered:before{height:calc(100vh - 3.5rem)}.modal-sm{max-width:300px}}@media (min-width:992px){.modal-lg{max-width:800px}}.tooltip{position:absolute;z-index:1070;display:block;margin:0;font-family:Nunito,sans-serif;font-style:normal;font-weight:400;line-height:1.6;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.7875rem;word-wrap:break-word;opacity:0}.tooltip.show{opacity:.9}.tooltip .arrow{position:absolute;display:block;width:.8rem;height:.4rem}.tooltip .arrow:before{position:absolute;content:"";border-color:transparent;border-style:solid}.bs-tooltip-auto[x-placement^=top],.bs-tooltip-top{padding:.4rem 0}.bs-tooltip-auto[x-placement^=top] .arrow,.bs-tooltip-top .arrow{bottom:0}.bs-tooltip-auto[x-placement^=top] .arrow:before,.bs-tooltip-top .arrow:before{top:0;border-width:.4rem .4rem 0;border-top-color:#000}.bs-tooltip-auto[x-placement^=right],.bs-tooltip-right{padding:0 .4rem}.bs-tooltip-auto[x-placement^=right] .arrow,.bs-tooltip-right .arrow{left:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=right] .arrow:before,.bs-tooltip-right .arrow:before{right:0;border-width:.4rem .4rem .4rem 0;border-right-color:#000}.bs-tooltip-auto[x-placement^=bottom],.bs-tooltip-bottom{padding:.4rem 0}.bs-tooltip-auto[x-placement^=bottom] .arrow,.bs-tooltip-bottom .arrow{top:0}.bs-tooltip-auto[x-placement^=bottom] .arrow:before,.bs-tooltip-bottom .arrow:before{bottom:0;border-width:0 .4rem .4rem;border-bottom-color:#000}.bs-tooltip-auto[x-placement^=left],.bs-tooltip-left{padding:0 .4rem}.bs-tooltip-auto[x-placement^=left] .arrow,.bs-tooltip-left .arrow{right:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=left] .arrow:before,.bs-tooltip-left .arrow:before{left:0;border-width:.4rem 0 .4rem .4rem;border-left-color:#000}.tooltip-inner{max-width:200px;padding:.25rem .5rem;color:#fff;text-align:center;background-color:#000;border-radius:.25rem}.popover{top:0;left:0;z-index:1060;max-width:276px;font-family:Nunito,sans-serif;font-style:normal;font-weight:400;line-height:1.6;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.7875rem;word-wrap:break-word;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem}.popover,.popover .arrow{position:absolute;display:block}.popover .arrow{width:1rem;height:.5rem;margin:0 .3rem}.popover .arrow:after,.popover .arrow:before{position:absolute;display:block;content:"";border-color:transparent;border-style:solid}.bs-popover-auto[x-placement^=top],.bs-popover-top{margin-bottom:.5rem}.bs-popover-auto[x-placement^=top] .arrow,.bs-popover-top .arrow{bottom:calc(-.5rem + -1px)}.bs-popover-auto[x-placement^=top] .arrow:after,.bs-popover-auto[x-placement^=top] .arrow:before,.bs-popover-top .arrow:after,.bs-popover-top .arrow:before{border-width:.5rem .5rem 0}.bs-popover-auto[x-placement^=top] .arrow:before,.bs-popover-top .arrow:before{bottom:0;border-top-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=top] .arrow:after,.bs-popover-top .arrow:after{bottom:1px;border-top-color:#fff}.bs-popover-auto[x-placement^=right],.bs-popover-right{margin-left:.5rem}.bs-popover-auto[x-placement^=right] .arrow,.bs-popover-right .arrow{left:calc(-.5rem + -1px);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=right] .arrow:after,.bs-popover-auto[x-placement^=right] .arrow:before,.bs-popover-right .arrow:after,.bs-popover-right .arrow:before{border-width:.5rem .5rem .5rem 0}.bs-popover-auto[x-placement^=right] .arrow:before,.bs-popover-right .arrow:before{left:0;border-right-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=right] .arrow:after,.bs-popover-right .arrow:after{left:1px;border-right-color:#fff}.bs-popover-auto[x-placement^=bottom],.bs-popover-bottom{margin-top:.5rem}.bs-popover-auto[x-placement^=bottom] .arrow,.bs-popover-bottom .arrow{top:calc(-.5rem + -1px)}.bs-popover-auto[x-placement^=bottom] .arrow:after,.bs-popover-auto[x-placement^=bottom] .arrow:before,.bs-popover-bottom .arrow:after,.bs-popover-bottom .arrow:before{border-width:0 .5rem .5rem}.bs-popover-auto[x-placement^=bottom] .arrow:before,.bs-popover-bottom .arrow:before{top:0;border-bottom-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=bottom] .arrow:after,.bs-popover-bottom .arrow:after{top:1px;border-bottom-color:#fff}.bs-popover-auto[x-placement^=bottom] .popover-header:before,.bs-popover-bottom .popover-header:before{position:absolute;top:0;left:50%;display:block;width:1rem;margin-left:-.5rem;content:"";border-bottom:1px solid #f7f7f7}.bs-popover-auto[x-placement^=left],.bs-popover-left{margin-right:.5rem}.bs-popover-auto[x-placement^=left] .arrow,.bs-popover-left .arrow{right:calc(-.5rem + -1px);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=left] .arrow:after,.bs-popover-auto[x-placement^=left] .arrow:before,.bs-popover-left .arrow:after,.bs-popover-left .arrow:before{border-width:.5rem 0 .5rem .5rem}.bs-popover-auto[x-placement^=left] .arrow:before,.bs-popover-left .arrow:before{right:0;border-left-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=left] .arrow:after,.bs-popover-left .arrow:after{right:1px;border-left-color:#fff}.popover-header{padding:.5rem .75rem;margin-bottom:0;font-size:.9rem;color:inherit;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.popover-header:empty{display:none}.popover-body{padding:.5rem .75rem;color:#212529}.carousel{position:relative}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-item{position:relative;display:none;align-items:center;width:100%;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000px;perspective:1000px}.carousel-item-next,.carousel-item-prev,.carousel-item.active{display:block;transition:-webkit-transform .6s ease;transition:transform .6s ease;transition:transform .6s ease,-webkit-transform .6s ease}@media screen and (prefers-reduced-motion:reduce){.carousel-item-next,.carousel-item-prev,.carousel-item.active{transition:none}}.carousel-item-next,.carousel-item-prev{position:absolute;top:0}.carousel-item-next.carousel-item-left,.carousel-item-prev.carousel-item-right{-webkit-transform:translateX(0);transform:translateX(0)}@supports ((-webkit-transform-style:preserve-3d) or (transform-style:preserve-3d)){.carousel-item-next.carousel-item-left,.carousel-item-prev.carousel-item-right{-webkit-transform:translateZ(0);transform:translateZ(0)}}.active.carousel-item-right,.carousel-item-next{-webkit-transform:translateX(100%);transform:translateX(100%)}@supports ((-webkit-transform-style:preserve-3d) or (transform-style:preserve-3d)){.active.carousel-item-right,.carousel-item-next{-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}.active.carousel-item-left,.carousel-item-prev{-webkit-transform:translateX(-100%);transform:translateX(-100%)}@supports ((-webkit-transform-style:preserve-3d) or (transform-style:preserve-3d)){.active.carousel-item-left,.carousel-item-prev{-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}.carousel-fade .carousel-item{opacity:0;transition-duration:.6s;transition-property:opacity}.carousel-fade .carousel-item-next.carousel-item-left,.carousel-fade .carousel-item-prev.carousel-item-right,.carousel-fade .carousel-item.active{opacity:1}.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{opacity:0}.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-prev,.carousel-fade .carousel-item-next,.carousel-fade .carousel-item-prev,.carousel-fade .carousel-item.active{-webkit-transform:translateX(0);transform:translateX(0)}@supports ((-webkit-transform-style:preserve-3d) or (transform-style:preserve-3d)){.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-prev,.carousel-fade .carousel-item-next,.carousel-fade .carousel-item-prev,.carousel-fade .carousel-item.active{-webkit-transform:translateZ(0);transform:translateZ(0)}}.carousel-control-next,.carousel-control-prev{position:absolute;top:0;bottom:0;display:flex;align-items:center;justify-content:center;width:15%;color:#fff;text-align:center;opacity:.5}.carousel-control-next:focus,.carousel-control-next:hover,.carousel-control-prev:focus,.carousel-control-prev:hover{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-next-icon,.carousel-control-prev-icon{display:inline-block;width:20px;height:20px;background:transparent no-repeat 50%;background-size:100% 100%}.carousel-control-prev-icon{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3E%3Cpath d='M5.25 0l-4 4 4 4 1.5-1.5-2.5-2.5 2.5-2.5-1.5-1.5z'/%3E%3C/svg%3E")}.carousel-control-next-icon{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3E%3Cpath d='M2.75 0l-1.5 1.5 2.5 2.5-2.5 2.5 1.5 1.5 4-4-4-4z'/%3E%3C/svg%3E")}.carousel-indicators{position:absolute;right:0;bottom:10px;left:0;z-index:15;display:flex;justify-content:center;padding-left:0;margin-right:15%;margin-left:15%;list-style:none}.carousel-indicators li{position:relative;flex:0 1 auto;width:30px;height:3px;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:hsla(0,0%,100%,.5)}.carousel-indicators li:before{top:-10px}.carousel-indicators li:after,.carousel-indicators li:before{position:absolute;left:0;display:inline-block;width:100%;height:10px;content:""}.carousel-indicators li:after{bottom:-10px}.carousel-indicators .active{background-color:#fff}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center}.align-baseline{vertical-align:baseline!important}.align-top{vertical-align:top!important}.align-middle{vertical-align:middle!important}.align-bottom{vertical-align:bottom!important}.align-text-bottom{vertical-align:text-bottom!important}.align-text-top{vertical-align:text-top!important}.bg-primary{background-color:#3490dc!important}a.bg-primary:focus,a.bg-primary:hover,button.bg-primary:focus,button.bg-primary:hover{background-color:#2176bd!important}.bg-secondary{background-color:#6c757d!important}a.bg-secondary:focus,a.bg-secondary:hover,button.bg-secondary:focus,button.bg-secondary:hover{background-color:#545b62!important}.bg-success{background-color:#38c172!important}a.bg-success:focus,a.bg-success:hover,button.bg-success:focus,button.bg-success:hover{background-color:#2d995b!important}.bg-info{background-color:#6cb2eb!important}a.bg-info:focus,a.bg-info:hover,button.bg-info:focus,button.bg-info:hover{background-color:#3f9ae5!important}.bg-warning{background-color:#ffed4a!important}a.bg-warning:focus,a.bg-warning:hover,button.bg-warning:focus,button.bg-warning:hover{background-color:#ffe817!important}.bg-danger{background-color:#e3342f!important}a.bg-danger:focus,a.bg-danger:hover,button.bg-danger:focus,button.bg-danger:hover{background-color:#c51f1a!important}.bg-light{background-color:#f8f9fa!important}a.bg-light:focus,a.bg-light:hover,button.bg-light:focus,button.bg-light:hover{background-color:#dae0e5!important}.bg-dark{background-color:#343a40!important}a.bg-dark:focus,a.bg-dark:hover,button.bg-dark:focus,button.bg-dark:hover{background-color:#1d2124!important}.bg-white{background-color:#fff!important}.bg-transparent{background-color:transparent!important}.border{border:1px solid #dee2e6!important}.border-top{border-top:1px solid #dee2e6!important}.border-right{border-right:1px solid #dee2e6!important}.border-bottom{border-bottom:1px solid #dee2e6!important}.border-left{border-left:1px solid #dee2e6!important}.border-0{border:0!important}.border-top-0{border-top:0!important}.border-right-0{border-right:0!important}.border-bottom-0{border-bottom:0!important}.border-left-0{border-left:0!important}.border-primary{border-color:#3490dc!important}.border-secondary{border-color:#6c757d!important}.border-success{border-color:#38c172!important}.border-info{border-color:#6cb2eb!important}.border-warning{border-color:#ffed4a!important}.border-danger{border-color:#e3342f!important}.border-light{border-color:#f8f9fa!important}.border-dark{border-color:#343a40!important}.border-white{border-color:#fff!important}.rounded{border-radius:.25rem!important}.rounded-top{border-top-left-radius:.25rem!important}.rounded-right,.rounded-top{border-top-right-radius:.25rem!important}.rounded-bottom,.rounded-right{border-bottom-right-radius:.25rem!important}.rounded-bottom,.rounded-left{border-bottom-left-radius:.25rem!important}.rounded-left{border-top-left-radius:.25rem!important}.rounded-circle{border-radius:50%!important}.rounded-0{border-radius:0!important}.clearfix:after{display:block;clear:both;content:""}.d-none{display:none!important}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:flex!important}.d-inline-flex{display:inline-flex!important}@media (min-width:576px){.d-sm-none{display:none!important}.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:flex!important}.d-sm-inline-flex{display:inline-flex!important}}@media (min-width:768px){.d-md-none{display:none!important}.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:flex!important}.d-md-inline-flex{display:inline-flex!important}}@media (min-width:992px){.d-lg-none{display:none!important}.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:flex!important}.d-lg-inline-flex{display:inline-flex!important}}@media (min-width:1200px){.d-xl-none{display:none!important}.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:flex!important}.d-xl-inline-flex{display:inline-flex!important}}@media print{.d-print-none{display:none!important}.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:flex!important}.d-print-inline-flex{display:inline-flex!important}}.embed-responsive{position:relative;display:block;width:100%;padding:0;overflow:hidden}.embed-responsive:before{display:block;content:""}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive-21by9:before{padding-top:42.8571428571%}.embed-responsive-16by9:before{padding-top:56.25%}.embed-responsive-4by3:before{padding-top:75%}.embed-responsive-1by1:before{padding-top:100%}.flex-row{flex-direction:row!important}.flex-column{flex-direction:column!important}.flex-row-reverse{flex-direction:row-reverse!important}.flex-column-reverse{flex-direction:column-reverse!important}.flex-wrap{flex-wrap:wrap!important}.flex-nowrap{flex-wrap:nowrap!important}.flex-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-fill{flex:1 1 auto!important}.flex-grow-0{flex-grow:0!important}.flex-grow-1{flex-grow:1!important}.flex-shrink-0{flex-shrink:0!important}.flex-shrink-1{flex-shrink:1!important}.justify-content-start{justify-content:flex-start!important}.justify-content-end{justify-content:flex-end!important}.justify-content-center{justify-content:center!important}.justify-content-between{justify-content:space-between!important}.justify-content-around{justify-content:space-around!important}.align-items-start{align-items:flex-start!important}.align-items-end{align-items:flex-end!important}.align-items-center{align-items:center!important}.align-items-baseline{align-items:baseline!important}.align-items-stretch{align-items:stretch!important}.align-content-start{align-content:flex-start!important}.align-content-end{align-content:flex-end!important}.align-content-center{align-content:center!important}.align-content-between{align-content:space-between!important}.align-content-around{align-content:space-around!important}.align-content-stretch{align-content:stretch!important}.align-self-auto{align-self:auto!important}.align-self-start{align-self:flex-start!important}.align-self-end{align-self:flex-end!important}.align-self-center{align-self:center!important}.align-self-baseline{align-self:baseline!important}.align-self-stretch{align-self:stretch!important}@media (min-width:576px){.flex-sm-row{flex-direction:row!important}.flex-sm-column{flex-direction:column!important}.flex-sm-row-reverse{flex-direction:row-reverse!important}.flex-sm-column-reverse{flex-direction:column-reverse!important}.flex-sm-wrap{flex-wrap:wrap!important}.flex-sm-nowrap{flex-wrap:nowrap!important}.flex-sm-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-sm-fill{flex:1 1 auto!important}.flex-sm-grow-0{flex-grow:0!important}.flex-sm-grow-1{flex-grow:1!important}.flex-sm-shrink-0{flex-shrink:0!important}.flex-sm-shrink-1{flex-shrink:1!important}.justify-content-sm-start{justify-content:flex-start!important}.justify-content-sm-end{justify-content:flex-end!important}.justify-content-sm-center{justify-content:center!important}.justify-content-sm-between{justify-content:space-between!important}.justify-content-sm-around{justify-content:space-around!important}.align-items-sm-start{align-items:flex-start!important}.align-items-sm-end{align-items:flex-end!important}.align-items-sm-center{align-items:center!important}.align-items-sm-baseline{align-items:baseline!important}.align-items-sm-stretch{align-items:stretch!important}.align-content-sm-start{align-content:flex-start!important}.align-content-sm-end{align-content:flex-end!important}.align-content-sm-center{align-content:center!important}.align-content-sm-between{align-content:space-between!important}.align-content-sm-around{align-content:space-around!important}.align-content-sm-stretch{align-content:stretch!important}.align-self-sm-auto{align-self:auto!important}.align-self-sm-start{align-self:flex-start!important}.align-self-sm-end{align-self:flex-end!important}.align-self-sm-center{align-self:center!important}.align-self-sm-baseline{align-self:baseline!important}.align-self-sm-stretch{align-self:stretch!important}}@media (min-width:768px){.flex-md-row{flex-direction:row!important}.flex-md-column{flex-direction:column!important}.flex-md-row-reverse{flex-direction:row-reverse!important}.flex-md-column-reverse{flex-direction:column-reverse!important}.flex-md-wrap{flex-wrap:wrap!important}.flex-md-nowrap{flex-wrap:nowrap!important}.flex-md-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-md-fill{flex:1 1 auto!important}.flex-md-grow-0{flex-grow:0!important}.flex-md-grow-1{flex-grow:1!important}.flex-md-shrink-0{flex-shrink:0!important}.flex-md-shrink-1{flex-shrink:1!important}.justify-content-md-start{justify-content:flex-start!important}.justify-content-md-end{justify-content:flex-end!important}.justify-content-md-center{justify-content:center!important}.justify-content-md-between{justify-content:space-between!important}.justify-content-md-around{justify-content:space-around!important}.align-items-md-start{align-items:flex-start!important}.align-items-md-end{align-items:flex-end!important}.align-items-md-center{align-items:center!important}.align-items-md-baseline{align-items:baseline!important}.align-items-md-stretch{align-items:stretch!important}.align-content-md-start{align-content:flex-start!important}.align-content-md-end{align-content:flex-end!important}.align-content-md-center{align-content:center!important}.align-content-md-between{align-content:space-between!important}.align-content-md-around{align-content:space-around!important}.align-content-md-stretch{align-content:stretch!important}.align-self-md-auto{align-self:auto!important}.align-self-md-start{align-self:flex-start!important}.align-self-md-end{align-self:flex-end!important}.align-self-md-center{align-self:center!important}.align-self-md-baseline{align-self:baseline!important}.align-self-md-stretch{align-self:stretch!important}}@media (min-width:992px){.flex-lg-row{flex-direction:row!important}.flex-lg-column{flex-direction:column!important}.flex-lg-row-reverse{flex-direction:row-reverse!important}.flex-lg-column-reverse{flex-direction:column-reverse!important}.flex-lg-wrap{flex-wrap:wrap!important}.flex-lg-nowrap{flex-wrap:nowrap!important}.flex-lg-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-lg-fill{flex:1 1 auto!important}.flex-lg-grow-0{flex-grow:0!important}.flex-lg-grow-1{flex-grow:1!important}.flex-lg-shrink-0{flex-shrink:0!important}.flex-lg-shrink-1{flex-shrink:1!important}.justify-content-lg-start{justify-content:flex-start!important}.justify-content-lg-end{justify-content:flex-end!important}.justify-content-lg-center{justify-content:center!important}.justify-content-lg-between{justify-content:space-between!important}.justify-content-lg-around{justify-content:space-around!important}.align-items-lg-start{align-items:flex-start!important}.align-items-lg-end{align-items:flex-end!important}.align-items-lg-center{align-items:center!important}.align-items-lg-baseline{align-items:baseline!important}.align-items-lg-stretch{align-items:stretch!important}.align-content-lg-start{align-content:flex-start!important}.align-content-lg-end{align-content:flex-end!important}.align-content-lg-center{align-content:center!important}.align-content-lg-between{align-content:space-between!important}.align-content-lg-around{align-content:space-around!important}.align-content-lg-stretch{align-content:stretch!important}.align-self-lg-auto{align-self:auto!important}.align-self-lg-start{align-self:flex-start!important}.align-self-lg-end{align-self:flex-end!important}.align-self-lg-center{align-self:center!important}.align-self-lg-baseline{align-self:baseline!important}.align-self-lg-stretch{align-self:stretch!important}}@media (min-width:1200px){.flex-xl-row{flex-direction:row!important}.flex-xl-column{flex-direction:column!important}.flex-xl-row-reverse{flex-direction:row-reverse!important}.flex-xl-column-reverse{flex-direction:column-reverse!important}.flex-xl-wrap{flex-wrap:wrap!important}.flex-xl-nowrap{flex-wrap:nowrap!important}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-xl-fill{flex:1 1 auto!important}.flex-xl-grow-0{flex-grow:0!important}.flex-xl-grow-1{flex-grow:1!important}.flex-xl-shrink-0{flex-shrink:0!important}.flex-xl-shrink-1{flex-shrink:1!important}.justify-content-xl-start{justify-content:flex-start!important}.justify-content-xl-end{justify-content:flex-end!important}.justify-content-xl-center{justify-content:center!important}.justify-content-xl-between{justify-content:space-between!important}.justify-content-xl-around{justify-content:space-around!important}.align-items-xl-start{align-items:flex-start!important}.align-items-xl-end{align-items:flex-end!important}.align-items-xl-center{align-items:center!important}.align-items-xl-baseline{align-items:baseline!important}.align-items-xl-stretch{align-items:stretch!important}.align-content-xl-start{align-content:flex-start!important}.align-content-xl-end{align-content:flex-end!important}.align-content-xl-center{align-content:center!important}.align-content-xl-between{align-content:space-between!important}.align-content-xl-around{align-content:space-around!important}.align-content-xl-stretch{align-content:stretch!important}.align-self-xl-auto{align-self:auto!important}.align-self-xl-start{align-self:flex-start!important}.align-self-xl-end{align-self:flex-end!important}.align-self-xl-center{align-self:center!important}.align-self-xl-baseline{align-self:baseline!important}.align-self-xl-stretch{align-self:stretch!important}}.float-left{float:left!important}.float-right{float:right!important}.float-none{float:none!important}@media (min-width:576px){.float-sm-left{float:left!important}.float-sm-right{float:right!important}.float-sm-none{float:none!important}}@media (min-width:768px){.float-md-left{float:left!important}.float-md-right{float:right!important}.float-md-none{float:none!important}}@media (min-width:992px){.float-lg-left{float:left!important}.float-lg-right{float:right!important}.float-lg-none{float:none!important}}@media (min-width:1200px){.float-xl-left{float:left!important}.float-xl-right{float:right!important}.float-xl-none{float:none!important}}.position-static{position:static!important}.position-relative{position:relative!important}.position-absolute{position:absolute!important}.position-fixed{position:fixed!important}.position-sticky{position:-webkit-sticky!important;position:sticky!important}.fixed-top{top:0}.fixed-bottom,.fixed-top{position:fixed;right:0;left:0;z-index:1030}.fixed-bottom{bottom:0}@supports ((position:-webkit-sticky) or (position:sticky)){.sticky-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;overflow:visible;clip:auto;white-space:normal}.shadow-sm{box-shadow:0 .125rem .25rem rgba(0,0,0,.075)!important}.shadow{box-shadow:0 .5rem 1rem rgba(0,0,0,.15)!important}.shadow-lg{box-shadow:0 1rem 3rem rgba(0,0,0,.175)!important}.shadow-none{box-shadow:none!important}.w-25{width:25%!important}.w-50{width:50%!important}.w-75{width:75%!important}.w-100{width:100%!important}.w-auto{width:auto!important}.h-25{height:25%!important}.h-50{height:50%!important}.h-75{height:75%!important}.h-100{height:100%!important}.h-auto{height:auto!important}.mw-100{max-width:100%!important}.mh-100{max-height:100%!important}.m-0{margin:0!important}.mt-0,.my-0{margin-top:0!important}.mr-0,.mx-0{margin-right:0!important}.mb-0,.my-0{margin-bottom:0!important}.ml-0,.mx-0{margin-left:0!important}.m-1{margin:.25rem!important}.mt-1,.my-1{margin-top:.25rem!important}.mr-1,.mx-1{margin-right:.25rem!important}.mb-1,.my-1{margin-bottom:.25rem!important}.ml-1,.mx-1{margin-left:.25rem!important}.m-2{margin:.5rem!important}.mt-2,.my-2{margin-top:.5rem!important}.mr-2,.mx-2{margin-right:.5rem!important}.mb-2,.my-2{margin-bottom:.5rem!important}.ml-2,.mx-2{margin-left:.5rem!important}.m-3{margin:1rem!important}.mt-3,.my-3{margin-top:1rem!important}.mr-3,.mx-3{margin-right:1rem!important}.mb-3,.my-3{margin-bottom:1rem!important}.ml-3,.mx-3{margin-left:1rem!important}.m-4{margin:1.5rem!important}.mt-4,.my-4{margin-top:1.5rem!important}.mr-4,.mx-4{margin-right:1.5rem!important}.mb-4,.my-4{margin-bottom:1.5rem!important}.ml-4,.mx-4{margin-left:1.5rem!important}.m-5{margin:3rem!important}.mt-5,.my-5{margin-top:3rem!important}.mr-5,.mx-5{margin-right:3rem!important}.mb-5,.my-5{margin-bottom:3rem!important}.ml-5,.mx-5{margin-left:3rem!important}.p-0{padding:0!important}.pt-0,.py-0{padding-top:0!important}.pr-0,.px-0{padding-right:0!important}.pb-0,.py-0{padding-bottom:0!important}.pl-0,.px-0{padding-left:0!important}.p-1{padding:.25rem!important}.pt-1,.py-1{padding-top:.25rem!important}.pr-1,.px-1{padding-right:.25rem!important}.pb-1,.py-1{padding-bottom:.25rem!important}.pl-1,.px-1{padding-left:.25rem!important}.p-2{padding:.5rem!important}.pt-2,.py-2{padding-top:.5rem!important}.pr-2,.px-2{padding-right:.5rem!important}.pb-2,.py-2{padding-bottom:.5rem!important}.pl-2,.px-2{padding-left:.5rem!important}.p-3{padding:1rem!important}.pt-3,.py-3{padding-top:1rem!important}.pr-3,.px-3{padding-right:1rem!important}.pb-3,.py-3{padding-bottom:1rem!important}.pl-3,.px-3{padding-left:1rem!important}.p-4{padding:1.5rem!important}.pt-4,.py-4{padding-top:1.5rem!important}.pr-4,.px-4{padding-right:1.5rem!important}.pb-4,.py-4{padding-bottom:1.5rem!important}.pl-4,.px-4{padding-left:1.5rem!important}.p-5{padding:3rem!important}.pt-5,.py-5{padding-top:3rem!important}.pr-5,.px-5{padding-right:3rem!important}.pb-5,.py-5{padding-bottom:3rem!important}.pl-5,.px-5{padding-left:3rem!important}.m-auto{margin:auto!important}.mt-auto,.my-auto{margin-top:auto!important}.mr-auto,.mx-auto{margin-right:auto!important}.mb-auto,.my-auto{margin-bottom:auto!important}.ml-auto,.mx-auto{margin-left:auto!important}@media (min-width:576px){.m-sm-0{margin:0!important}.mt-sm-0,.my-sm-0{margin-top:0!important}.mr-sm-0,.mx-sm-0{margin-right:0!important}.mb-sm-0,.my-sm-0{margin-bottom:0!important}.ml-sm-0,.mx-sm-0{margin-left:0!important}.m-sm-1{margin:.25rem!important}.mt-sm-1,.my-sm-1{margin-top:.25rem!important}.mr-sm-1,.mx-sm-1{margin-right:.25rem!important}.mb-sm-1,.my-sm-1{margin-bottom:.25rem!important}.ml-sm-1,.mx-sm-1{margin-left:.25rem!important}.m-sm-2{margin:.5rem!important}.mt-sm-2,.my-sm-2{margin-top:.5rem!important}.mr-sm-2,.mx-sm-2{margin-right:.5rem!important}.mb-sm-2,.my-sm-2{margin-bottom:.5rem!important}.ml-sm-2,.mx-sm-2{margin-left:.5rem!important}.m-sm-3{margin:1rem!important}.mt-sm-3,.my-sm-3{margin-top:1rem!important}.mr-sm-3,.mx-sm-3{margin-right:1rem!important}.mb-sm-3,.my-sm-3{margin-bottom:1rem!important}.ml-sm-3,.mx-sm-3{margin-left:1rem!important}.m-sm-4{margin:1.5rem!important}.mt-sm-4,.my-sm-4{margin-top:1.5rem!important}.mr-sm-4,.mx-sm-4{margin-right:1.5rem!important}.mb-sm-4,.my-sm-4{margin-bottom:1.5rem!important}.ml-sm-4,.mx-sm-4{margin-left:1.5rem!important}.m-sm-5{margin:3rem!important}.mt-sm-5,.my-sm-5{margin-top:3rem!important}.mr-sm-5,.mx-sm-5{margin-right:3rem!important}.mb-sm-5,.my-sm-5{margin-bottom:3rem!important}.ml-sm-5,.mx-sm-5{margin-left:3rem!important}.p-sm-0{padding:0!important}.pt-sm-0,.py-sm-0{padding-top:0!important}.pr-sm-0,.px-sm-0{padding-right:0!important}.pb-sm-0,.py-sm-0{padding-bottom:0!important}.pl-sm-0,.px-sm-0{padding-left:0!important}.p-sm-1{padding:.25rem!important}.pt-sm-1,.py-sm-1{padding-top:.25rem!important}.pr-sm-1,.px-sm-1{padding-right:.25rem!important}.pb-sm-1,.py-sm-1{padding-bottom:.25rem!important}.pl-sm-1,.px-sm-1{padding-left:.25rem!important}.p-sm-2{padding:.5rem!important}.pt-sm-2,.py-sm-2{padding-top:.5rem!important}.pr-sm-2,.px-sm-2{padding-right:.5rem!important}.pb-sm-2,.py-sm-2{padding-bottom:.5rem!important}.pl-sm-2,.px-sm-2{padding-left:.5rem!important}.p-sm-3{padding:1rem!important}.pt-sm-3,.py-sm-3{padding-top:1rem!important}.pr-sm-3,.px-sm-3{padding-right:1rem!important}.pb-sm-3,.py-sm-3{padding-bottom:1rem!important}.pl-sm-3,.px-sm-3{padding-left:1rem!important}.p-sm-4{padding:1.5rem!important}.pt-sm-4,.py-sm-4{padding-top:1.5rem!important}.pr-sm-4,.px-sm-4{padding-right:1.5rem!important}.pb-sm-4,.py-sm-4{padding-bottom:1.5rem!important}.pl-sm-4,.px-sm-4{padding-left:1.5rem!important}.p-sm-5{padding:3rem!important}.pt-sm-5,.py-sm-5{padding-top:3rem!important}.pr-sm-5,.px-sm-5{padding-right:3rem!important}.pb-sm-5,.py-sm-5{padding-bottom:3rem!important}.pl-sm-5,.px-sm-5{padding-left:3rem!important}.m-sm-auto{margin:auto!important}.mt-sm-auto,.my-sm-auto{margin-top:auto!important}.mr-sm-auto,.mx-sm-auto{margin-right:auto!important}.mb-sm-auto,.my-sm-auto{margin-bottom:auto!important}.ml-sm-auto,.mx-sm-auto{margin-left:auto!important}}@media (min-width:768px){.m-md-0{margin:0!important}.mt-md-0,.my-md-0{margin-top:0!important}.mr-md-0,.mx-md-0{margin-right:0!important}.mb-md-0,.my-md-0{margin-bottom:0!important}.ml-md-0,.mx-md-0{margin-left:0!important}.m-md-1{margin:.25rem!important}.mt-md-1,.my-md-1{margin-top:.25rem!important}.mr-md-1,.mx-md-1{margin-right:.25rem!important}.mb-md-1,.my-md-1{margin-bottom:.25rem!important}.ml-md-1,.mx-md-1{margin-left:.25rem!important}.m-md-2{margin:.5rem!important}.mt-md-2,.my-md-2{margin-top:.5rem!important}.mr-md-2,.mx-md-2{margin-right:.5rem!important}.mb-md-2,.my-md-2{margin-bottom:.5rem!important}.ml-md-2,.mx-md-2{margin-left:.5rem!important}.m-md-3{margin:1rem!important}.mt-md-3,.my-md-3{margin-top:1rem!important}.mr-md-3,.mx-md-3{margin-right:1rem!important}.mb-md-3,.my-md-3{margin-bottom:1rem!important}.ml-md-3,.mx-md-3{margin-left:1rem!important}.m-md-4{margin:1.5rem!important}.mt-md-4,.my-md-4{margin-top:1.5rem!important}.mr-md-4,.mx-md-4{margin-right:1.5rem!important}.mb-md-4,.my-md-4{margin-bottom:1.5rem!important}.ml-md-4,.mx-md-4{margin-left:1.5rem!important}.m-md-5{margin:3rem!important}.mt-md-5,.my-md-5{margin-top:3rem!important}.mr-md-5,.mx-md-5{margin-right:3rem!important}.mb-md-5,.my-md-5{margin-bottom:3rem!important}.ml-md-5,.mx-md-5{margin-left:3rem!important}.p-md-0{padding:0!important}.pt-md-0,.py-md-0{padding-top:0!important}.pr-md-0,.px-md-0{padding-right:0!important}.pb-md-0,.py-md-0{padding-bottom:0!important}.pl-md-0,.px-md-0{padding-left:0!important}.p-md-1{padding:.25rem!important}.pt-md-1,.py-md-1{padding-top:.25rem!important}.pr-md-1,.px-md-1{padding-right:.25rem!important}.pb-md-1,.py-md-1{padding-bottom:.25rem!important}.pl-md-1,.px-md-1{padding-left:.25rem!important}.p-md-2{padding:.5rem!important}.pt-md-2,.py-md-2{padding-top:.5rem!important}.pr-md-2,.px-md-2{padding-right:.5rem!important}.pb-md-2,.py-md-2{padding-bottom:.5rem!important}.pl-md-2,.px-md-2{padding-left:.5rem!important}.p-md-3{padding:1rem!important}.pt-md-3,.py-md-3{padding-top:1rem!important}.pr-md-3,.px-md-3{padding-right:1rem!important}.pb-md-3,.py-md-3{padding-bottom:1rem!important}.pl-md-3,.px-md-3{padding-left:1rem!important}.p-md-4{padding:1.5rem!important}.pt-md-4,.py-md-4{padding-top:1.5rem!important}.pr-md-4,.px-md-4{padding-right:1.5rem!important}.pb-md-4,.py-md-4{padding-bottom:1.5rem!important}.pl-md-4,.px-md-4{padding-left:1.5rem!important}.p-md-5{padding:3rem!important}.pt-md-5,.py-md-5{padding-top:3rem!important}.pr-md-5,.px-md-5{padding-right:3rem!important}.pb-md-5,.py-md-5{padding-bottom:3rem!important}.pl-md-5,.px-md-5{padding-left:3rem!important}.m-md-auto{margin:auto!important}.mt-md-auto,.my-md-auto{margin-top:auto!important}.mr-md-auto,.mx-md-auto{margin-right:auto!important}.mb-md-auto,.my-md-auto{margin-bottom:auto!important}.ml-md-auto,.mx-md-auto{margin-left:auto!important}}@media (min-width:992px){.m-lg-0{margin:0!important}.mt-lg-0,.my-lg-0{margin-top:0!important}.mr-lg-0,.mx-lg-0{margin-right:0!important}.mb-lg-0,.my-lg-0{margin-bottom:0!important}.ml-lg-0,.mx-lg-0{margin-left:0!important}.m-lg-1{margin:.25rem!important}.mt-lg-1,.my-lg-1{margin-top:.25rem!important}.mr-lg-1,.mx-lg-1{margin-right:.25rem!important}.mb-lg-1,.my-lg-1{margin-bottom:.25rem!important}.ml-lg-1,.mx-lg-1{margin-left:.25rem!important}.m-lg-2{margin:.5rem!important}.mt-lg-2,.my-lg-2{margin-top:.5rem!important}.mr-lg-2,.mx-lg-2{margin-right:.5rem!important}.mb-lg-2,.my-lg-2{margin-bottom:.5rem!important}.ml-lg-2,.mx-lg-2{margin-left:.5rem!important}.m-lg-3{margin:1rem!important}.mt-lg-3,.my-lg-3{margin-top:1rem!important}.mr-lg-3,.mx-lg-3{margin-right:1rem!important}.mb-lg-3,.my-lg-3{margin-bottom:1rem!important}.ml-lg-3,.mx-lg-3{margin-left:1rem!important}.m-lg-4{margin:1.5rem!important}.mt-lg-4,.my-lg-4{margin-top:1.5rem!important}.mr-lg-4,.mx-lg-4{margin-right:1.5rem!important}.mb-lg-4,.my-lg-4{margin-bottom:1.5rem!important}.ml-lg-4,.mx-lg-4{margin-left:1.5rem!important}.m-lg-5{margin:3rem!important}.mt-lg-5,.my-lg-5{margin-top:3rem!important}.mr-lg-5,.mx-lg-5{margin-right:3rem!important}.mb-lg-5,.my-lg-5{margin-bottom:3rem!important}.ml-lg-5,.mx-lg-5{margin-left:3rem!important}.p-lg-0{padding:0!important}.pt-lg-0,.py-lg-0{padding-top:0!important}.pr-lg-0,.px-lg-0{padding-right:0!important}.pb-lg-0,.py-lg-0{padding-bottom:0!important}.pl-lg-0,.px-lg-0{padding-left:0!important}.p-lg-1{padding:.25rem!important}.pt-lg-1,.py-lg-1{padding-top:.25rem!important}.pr-lg-1,.px-lg-1{padding-right:.25rem!important}.pb-lg-1,.py-lg-1{padding-bottom:.25rem!important}.pl-lg-1,.px-lg-1{padding-left:.25rem!important}.p-lg-2{padding:.5rem!important}.pt-lg-2,.py-lg-2{padding-top:.5rem!important}.pr-lg-2,.px-lg-2{padding-right:.5rem!important}.pb-lg-2,.py-lg-2{padding-bottom:.5rem!important}.pl-lg-2,.px-lg-2{padding-left:.5rem!important}.p-lg-3{padding:1rem!important}.pt-lg-3,.py-lg-3{padding-top:1rem!important}.pr-lg-3,.px-lg-3{padding-right:1rem!important}.pb-lg-3,.py-lg-3{padding-bottom:1rem!important}.pl-lg-3,.px-lg-3{padding-left:1rem!important}.p-lg-4{padding:1.5rem!important}.pt-lg-4,.py-lg-4{padding-top:1.5rem!important}.pr-lg-4,.px-lg-4{padding-right:1.5rem!important}.pb-lg-4,.py-lg-4{padding-bottom:1.5rem!important}.pl-lg-4,.px-lg-4{padding-left:1.5rem!important}.p-lg-5{padding:3rem!important}.pt-lg-5,.py-lg-5{padding-top:3rem!important}.pr-lg-5,.px-lg-5{padding-right:3rem!important}.pb-lg-5,.py-lg-5{padding-bottom:3rem!important}.pl-lg-5,.px-lg-5{padding-left:3rem!important}.m-lg-auto{margin:auto!important}.mt-lg-auto,.my-lg-auto{margin-top:auto!important}.mr-lg-auto,.mx-lg-auto{margin-right:auto!important}.mb-lg-auto,.my-lg-auto{margin-bottom:auto!important}.ml-lg-auto,.mx-lg-auto{margin-left:auto!important}}@media (min-width:1200px){.m-xl-0{margin:0!important}.mt-xl-0,.my-xl-0{margin-top:0!important}.mr-xl-0,.mx-xl-0{margin-right:0!important}.mb-xl-0,.my-xl-0{margin-bottom:0!important}.ml-xl-0,.mx-xl-0{margin-left:0!important}.m-xl-1{margin:.25rem!important}.mt-xl-1,.my-xl-1{margin-top:.25rem!important}.mr-xl-1,.mx-xl-1{margin-right:.25rem!important}.mb-xl-1,.my-xl-1{margin-bottom:.25rem!important}.ml-xl-1,.mx-xl-1{margin-left:.25rem!important}.m-xl-2{margin:.5rem!important}.mt-xl-2,.my-xl-2{margin-top:.5rem!important}.mr-xl-2,.mx-xl-2{margin-right:.5rem!important}.mb-xl-2,.my-xl-2{margin-bottom:.5rem!important}.ml-xl-2,.mx-xl-2{margin-left:.5rem!important}.m-xl-3{margin:1rem!important}.mt-xl-3,.my-xl-3{margin-top:1rem!important}.mr-xl-3,.mx-xl-3{margin-right:1rem!important}.mb-xl-3,.my-xl-3{margin-bottom:1rem!important}.ml-xl-3,.mx-xl-3{margin-left:1rem!important}.m-xl-4{margin:1.5rem!important}.mt-xl-4,.my-xl-4{margin-top:1.5rem!important}.mr-xl-4,.mx-xl-4{margin-right:1.5rem!important}.mb-xl-4,.my-xl-4{margin-bottom:1.5rem!important}.ml-xl-4,.mx-xl-4{margin-left:1.5rem!important}.m-xl-5{margin:3rem!important}.mt-xl-5,.my-xl-5{margin-top:3rem!important}.mr-xl-5,.mx-xl-5{margin-right:3rem!important}.mb-xl-5,.my-xl-5{margin-bottom:3rem!important}.ml-xl-5,.mx-xl-5{margin-left:3rem!important}.p-xl-0{padding:0!important}.pt-xl-0,.py-xl-0{padding-top:0!important}.pr-xl-0,.px-xl-0{padding-right:0!important}.pb-xl-0,.py-xl-0{padding-bottom:0!important}.pl-xl-0,.px-xl-0{padding-left:0!important}.p-xl-1{padding:.25rem!important}.pt-xl-1,.py-xl-1{padding-top:.25rem!important}.pr-xl-1,.px-xl-1{padding-right:.25rem!important}.pb-xl-1,.py-xl-1{padding-bottom:.25rem!important}.pl-xl-1,.px-xl-1{padding-left:.25rem!important}.p-xl-2{padding:.5rem!important}.pt-xl-2,.py-xl-2{padding-top:.5rem!important}.pr-xl-2,.px-xl-2{padding-right:.5rem!important}.pb-xl-2,.py-xl-2{padding-bottom:.5rem!important}.pl-xl-2,.px-xl-2{padding-left:.5rem!important}.p-xl-3{padding:1rem!important}.pt-xl-3,.py-xl-3{padding-top:1rem!important}.pr-xl-3,.px-xl-3{padding-right:1rem!important}.pb-xl-3,.py-xl-3{padding-bottom:1rem!important}.pl-xl-3,.px-xl-3{padding-left:1rem!important}.p-xl-4{padding:1.5rem!important}.pt-xl-4,.py-xl-4{padding-top:1.5rem!important}.pr-xl-4,.px-xl-4{padding-right:1.5rem!important}.pb-xl-4,.py-xl-4{padding-bottom:1.5rem!important}.pl-xl-4,.px-xl-4{padding-left:1.5rem!important}.p-xl-5{padding:3rem!important}.pt-xl-5,.py-xl-5{padding-top:3rem!important}.pr-xl-5,.px-xl-5{padding-right:3rem!important}.pb-xl-5,.py-xl-5{padding-bottom:3rem!important}.pl-xl-5,.px-xl-5{padding-left:3rem!important}.m-xl-auto{margin:auto!important}.mt-xl-auto,.my-xl-auto{margin-top:auto!important}.mr-xl-auto,.mx-xl-auto{margin-right:auto!important}.mb-xl-auto,.my-xl-auto{margin-bottom:auto!important}.ml-xl-auto,.mx-xl-auto{margin-left:auto!important}}.text-monospace{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.text-justify{text-align:justify!important}.text-nowrap{white-space:nowrap!important}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-left{text-align:left!important}.text-right{text-align:right!important}.text-center{text-align:center!important}@media (min-width:576px){.text-sm-left{text-align:left!important}.text-sm-right{text-align:right!important}.text-sm-center{text-align:center!important}}@media (min-width:768px){.text-md-left{text-align:left!important}.text-md-right{text-align:right!important}.text-md-center{text-align:center!important}}@media (min-width:992px){.text-lg-left{text-align:left!important}.text-lg-right{text-align:right!important}.text-lg-center{text-align:center!important}}@media (min-width:1200px){.text-xl-left{text-align:left!important}.text-xl-right{text-align:right!important}.text-xl-center{text-align:center!important}}.text-lowercase{text-transform:lowercase!important}.text-uppercase{text-transform:uppercase!important}.text-capitalize{text-transform:capitalize!important}.font-weight-light{font-weight:300!important}.font-weight-normal{font-weight:400!important}.font-weight-bold{font-weight:700!important}.font-italic{font-style:italic!important}.text-white{color:#fff!important}.text-primary{color:#3490dc!important}a.text-primary:focus,a.text-primary:hover{color:#2176bd!important}.text-secondary{color:#6c757d!important}a.text-secondary:focus,a.text-secondary:hover{color:#545b62!important}.text-success{color:#38c172!important}a.text-success:focus,a.text-success:hover{color:#2d995b!important}.text-info{color:#6cb2eb!important}a.text-info:focus,a.text-info:hover{color:#3f9ae5!important}.text-warning{color:#ffed4a!important}a.text-warning:focus,a.text-warning:hover{color:#ffe817!important}.text-danger{color:#e3342f!important}a.text-danger:focus,a.text-danger:hover{color:#c51f1a!important}.text-light{color:#f8f9fa!important}a.text-light:focus,a.text-light:hover{color:#dae0e5!important}.text-dark{color:#343a40!important}a.text-dark:focus,a.text-dark:hover{color:#1d2124!important}.text-body{color:#212529!important}.text-muted{color:#6c757d!important}.text-black-50{color:rgba(0,0,0,.5)!important}.text-white-50{color:hsla(0,0%,100%,.5)!important}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.visible{visibility:visible!important}.invisible{visibility:hidden!important}@media print{*,:after,:before{text-shadow:none!important;box-shadow:none!important}a:not(.btn){text-decoration:underline}abbr[title]:after{content:" (" attr(title) ")"}pre{white-space:pre-wrap!important}blockquote,pre{border:1px solid #adb5bd;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}@page{size:a3}.container,body{min-width:992px!important}.navbar{display:none}.badge{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered td,.table-bordered th{border:1px solid #dee2e6!important}.table-dark{color:inherit}.table-dark tbody+tbody,.table-dark td,.table-dark th,.table-dark thead th{border-color:#dee2e6}.table .thead-dark th{color:inherit;border-color:#dee2e6}}.navbar-laravel{background-color:#fff;box-shadow:0 2px 4px rgba(0,0,0,.04)}
================================================
FILE: public/index.php
================================================
*/
define('LARAVEL_START', microtime(true));
/*
|--------------------------------------------------------------------------
| Register The Auto Loader
|--------------------------------------------------------------------------
|
| Composer provides a convenient, automatically generated class loader for
| our application. We just need to utilize it! We'll simply require it
| into the script here so that we don't have to worry about manual
| loading any of our classes later on. It feels great to relax.
|
*/
require __DIR__.'/../vendor/autoload.php';
/*
|--------------------------------------------------------------------------
| Turn On The Lights
|--------------------------------------------------------------------------
|
| We need to illuminate PHP development, so let us turn on the lights.
| This bootstraps the framework and gets it ready for use, then it
| will load up this application so that we can run it and send
| the responses back to the browser and delight our users.
|
*/
$app = require_once __DIR__.'/../bootstrap/app.php';
/*
|--------------------------------------------------------------------------
| Run The Application
|--------------------------------------------------------------------------
|
| Once we have the application, we can handle the incoming request
| through the kernel, and send the associated response back to
| the client's browser allowing them to enjoy the creative
| and wonderful application we have prepared for them.
|
*/
$kernel = $app->make(Illuminate\Contracts\Http\Kernel::class);
$response = $kernel->handle(
$request = Illuminate\Http\Request::capture()
);
$response->send();
$kernel->terminate($request, $response);
================================================
FILE: public/js/app.js
================================================
!function(e){var t={};function n(r){if(t[r])return t[r].exports;var i=t[r]={i:r,l:!1,exports:{}};return e[r].call(i.exports,i,i.exports,n),i.l=!0,i.exports}n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var i in e)n.d(r,i,function(t){return e[t]}.bind(null,i));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="/",n(n.s=11)}([function(e,t,n){"use strict";var r=n(5),i=n(19),o=Object.prototype.toString;function a(e){return"[object Array]"===o.call(e)}function s(e){return null!==e&&"object"==typeof e}function u(e){return"[object Function]"===o.call(e)}function c(e,t){if(null!=e)if("object"!=typeof e&&(e=[e]),a(e))for(var n=0,r=e.length;n=200&&e<300}};u.headers={common:{Accept:"application/json, text/plain, */*"}},r.forEach(["delete","get","head"],function(e){u.headers[e]={}}),r.forEach(["post","put","patch"],function(e){u.headers[e]=r.merge(o)}),e.exports=u}).call(this,n(6))},function(e,t,n){"use strict";n.r(t),function(e){for(var n="undefined"!=typeof window&&"undefined"!=typeof document,r=["Edge","Trident","Firefox"],i=0,o=0;o=0){i=1;break}var a=n&&window.Promise?function(e){var t=!1;return function(){t||(t=!0,window.Promise.resolve().then(function(){t=!1,e()}))}}:function(e){var t=!1;return function(){t||(t=!0,setTimeout(function(){t=!1,e()},i))}};function s(e){return e&&"[object Function]"==={}.toString.call(e)}function u(e,t){if(1!==e.nodeType)return[];var n=e.ownerDocument.defaultView.getComputedStyle(e,null);return t?n[t]:n}function c(e){return"HTML"===e.nodeName?e:e.parentNode||e.host}function l(e){if(!e)return document.body;switch(e.nodeName){case"HTML":case"BODY":return e.ownerDocument.body;case"#document":return e.body}var t=u(e),n=t.overflow,r=t.overflowX,i=t.overflowY;return/(auto|scroll|overlay)/.test(n+i+r)?e:l(c(e))}var f=n&&!(!window.MSInputMethodContext||!document.documentMode),p=n&&/MSIE 10/.test(navigator.userAgent);function d(e){return 11===e?f:10===e?p:f||p}function h(e){if(!e)return document.documentElement;for(var t=d(10)?document.body:null,n=e.offsetParent||null;n===t&&e.nextElementSibling;)n=(e=e.nextElementSibling).offsetParent;var r=n&&n.nodeName;return r&&"BODY"!==r&&"HTML"!==r?-1!==["TH","TD","TABLE"].indexOf(n.nodeName)&&"static"===u(n,"position")?h(n):n:e?e.ownerDocument.documentElement:document.documentElement}function v(e){return null!==e.parentNode?v(e.parentNode):e}function g(e,t){if(!(e&&e.nodeType&&t&&t.nodeType))return document.documentElement;var n=e.compareDocumentPosition(t)&Node.DOCUMENT_POSITION_FOLLOWING,r=n?e:t,i=n?t:e,o=document.createRange();o.setStart(r,0),o.setEnd(i,0);var a,s,u=o.commonAncestorContainer;if(e!==u&&t!==u||r.contains(i))return"BODY"===(s=(a=u).nodeName)||"HTML"!==s&&h(a.firstElementChild)!==a?h(u):u;var c=v(e);return c.host?g(c.host,t):g(e,v(t).host)}function m(e){var t="top"===(arguments.length>1&&void 0!==arguments[1]?arguments[1]:"top")?"scrollTop":"scrollLeft",n=e.nodeName;if("BODY"===n||"HTML"===n){var r=e.ownerDocument.documentElement;return(e.ownerDocument.scrollingElement||r)[t]}return e[t]}function y(e,t){var n="x"===t?"Left":"Top",r="Left"===n?"Right":"Bottom";return parseFloat(e["border"+n+"Width"],10)+parseFloat(e["border"+r+"Width"],10)}function _(e,t,n,r){return Math.max(t["offset"+e],t["scroll"+e],n["client"+e],n["offset"+e],n["scroll"+e],d(10)?parseInt(n["offset"+e])+parseInt(r["margin"+("Height"===e?"Top":"Left")])+parseInt(r["margin"+("Height"===e?"Bottom":"Right")]):0)}function b(e){var t=e.body,n=e.documentElement,r=d(10)&&getComputedStyle(n);return{height:_("Height",t,n,r),width:_("Width",t,n,r)}}var w=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")},T=function(){function e(e,t){for(var n=0;n2&&void 0!==arguments[2]&&arguments[2],r=d(10),i="HTML"===t.nodeName,o=A(e),a=A(t),s=l(e),c=u(t),f=parseFloat(c.borderTopWidth,10),p=parseFloat(c.borderLeftWidth,10);n&&i&&(a.top=Math.max(a.top,0),a.left=Math.max(a.left,0));var h=C({top:o.top-a.top-f,left:o.left-a.left-p,width:o.width,height:o.height});if(h.marginTop=0,h.marginLeft=0,!r&&i){var v=parseFloat(c.marginTop,10),g=parseFloat(c.marginLeft,10);h.top-=f-v,h.bottom-=f-v,h.left-=p-g,h.right-=p-g,h.marginTop=v,h.marginLeft=g}return(r&&!n?t.contains(s):t===s&&"BODY"!==s.nodeName)&&(h=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],r=m(t,"top"),i=m(t,"left"),o=n?-1:1;return e.top+=r*o,e.bottom+=r*o,e.left+=i*o,e.right+=i*o,e}(h,t)),h}function O(e){if(!e||!e.parentElement||d())return document.documentElement;for(var t=e.parentElement;t&&"none"===u(t,"transform");)t=t.parentElement;return t||document.documentElement}function D(e,t,n,r){var i=arguments.length>4&&void 0!==arguments[4]&&arguments[4],o={top:0,left:0},a=i?O(e):g(e,t);if("viewport"===r)o=function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=e.ownerDocument.documentElement,r=S(e,n),i=Math.max(n.clientWidth,window.innerWidth||0),o=Math.max(n.clientHeight,window.innerHeight||0),a=t?0:m(n),s=t?0:m(n,"left");return C({top:a-r.top+r.marginTop,left:s-r.left+r.marginLeft,width:i,height:o})}(a,i);else{var s=void 0;"scrollParent"===r?"BODY"===(s=l(c(t))).nodeName&&(s=e.ownerDocument.documentElement):s="window"===r?e.ownerDocument.documentElement:r;var f=S(s,a,i);if("HTML"!==s.nodeName||function e(t){var n=t.nodeName;return"BODY"!==n&&"HTML"!==n&&("fixed"===u(t,"position")||e(c(t)))}(a))o=f;else{var p=b(e.ownerDocument),d=p.height,h=p.width;o.top+=f.top-f.marginTop,o.bottom=d+f.top,o.left+=f.left-f.marginLeft,o.right=h+f.left}}var v="number"==typeof(n=n||0);return o.left+=v?n:n.left||0,o.top+=v?n:n.top||0,o.right-=v?n:n.right||0,o.bottom-=v?n:n.bottom||0,o}function I(e,t,n,r,i){var o=arguments.length>5&&void 0!==arguments[5]?arguments[5]:0;if(-1===e.indexOf("auto"))return e;var a=D(n,r,o,i),s={top:{width:a.width,height:t.top-a.top},right:{width:a.right-t.right,height:a.height},bottom:{width:a.width,height:a.bottom-t.bottom},left:{width:t.left-a.left,height:a.height}},u=Object.keys(s).map(function(e){return x({key:e},s[e],{area:(t=s[e],t.width*t.height)});var t}).sort(function(e,t){return t.area-e.area}),c=u.filter(function(e){var t=e.width,r=e.height;return t>=n.clientWidth&&r>=n.clientHeight}),l=c.length>0?c[0].key:u[0].key,f=e.split("-")[1];return l+(f?"-"+f:"")}function k(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null;return S(n,r?O(t):g(t,n),r)}function N(e){var t=e.ownerDocument.defaultView.getComputedStyle(e),n=parseFloat(t.marginTop||0)+parseFloat(t.marginBottom||0),r=parseFloat(t.marginLeft||0)+parseFloat(t.marginRight||0);return{width:e.offsetWidth+r,height:e.offsetHeight+n}}function L(e){var t={left:"right",right:"left",bottom:"top",top:"bottom"};return e.replace(/left|right|bottom|top/g,function(e){return t[e]})}function j(e,t,n){n=n.split("-")[0];var r=N(e),i={width:r.width,height:r.height},o=-1!==["right","left"].indexOf(n),a=o?"top":"left",s=o?"left":"top",u=o?"height":"width",c=o?"width":"height";return i[a]=t[a]+t[u]/2-r[u]/2,i[s]=n===s?t[s]-r[c]:t[L(s)],i}function P(e,t){return Array.prototype.find?e.find(t):e.filter(t)[0]}function R(e,t,n){return(void 0===n?e:e.slice(0,function(e,t,n){if(Array.prototype.findIndex)return e.findIndex(function(e){return e[t]===n});var r=P(e,function(e){return e[t]===n});return e.indexOf(r)}(e,"name",n))).forEach(function(e){e.function&&console.warn("`modifier.function` is deprecated, use `modifier.fn`!");var n=e.function||e.fn;e.enabled&&s(n)&&(t.offsets.popper=C(t.offsets.popper),t.offsets.reference=C(t.offsets.reference),t=n(t,e))}),t}function $(e,t){return e.some(function(e){var n=e.name;return e.enabled&&n===t})}function H(e){for(var t=[!1,"ms","Webkit","Moz","O"],n=e.charAt(0).toUpperCase()+e.slice(1),r=0;r1&&void 0!==arguments[1]&&arguments[1],n=K.indexOf(e),r=K.slice(n+1).concat(K.slice(0,n));return t?r.reverse():r}var X={FLIP:"flip",CLOCKWISE:"clockwise",COUNTERCLOCKWISE:"counterclockwise"};function Q(e,t,n,r){var i=[0,0],o=-1!==["right","left"].indexOf(r),a=e.split(/(\+|\-)/).map(function(e){return e.trim()}),s=a.indexOf(P(a,function(e){return-1!==e.search(/,|\s/)}));a[s]&&-1===a[s].indexOf(",")&&console.warn("Offsets separated by white space(s) are deprecated, use a comma (,) instead.");var u=/\s*,\s*|\s+/,c=-1!==s?[a.slice(0,s).concat([a[s].split(u)[0]]),[a[s].split(u)[1]].concat(a.slice(s+1))]:[a];return(c=c.map(function(e,r){var i=(1===r?!o:o)?"height":"width",a=!1;return e.reduce(function(e,t){return""===e[e.length-1]&&-1!==["+","-"].indexOf(t)?(e[e.length-1]=t,a=!0,e):a?(e[e.length-1]+=t,a=!1,e):e.concat(t)},[]).map(function(e){return function(e,t,n,r){var i=e.match(/((?:\-|\+)?\d*\.?\d*)(.*)/),o=+i[1],a=i[2];if(!o)return e;if(0===a.indexOf("%")){var s=void 0;switch(a){case"%p":s=n;break;case"%":case"%r":default:s=r}return C(s)[t]/100*o}if("vh"===a||"vw"===a)return("vh"===a?Math.max(document.documentElement.clientHeight,window.innerHeight||0):Math.max(document.documentElement.clientWidth,window.innerWidth||0))/100*o;return o}(e,i,t,n)})})).forEach(function(e,t){e.forEach(function(n,r){q(n)&&(i[t]+=n*("-"===e[r-1]?-1:1))})}),i}var Y={placement:"bottom",positionFixed:!1,eventsEnabled:!0,removeOnDestroy:!1,onCreate:function(){},onUpdate:function(){},modifiers:{shift:{order:100,enabled:!0,fn:function(e){var t=e.placement,n=t.split("-")[0],r=t.split("-")[1];if(r){var i=e.offsets,o=i.reference,a=i.popper,s=-1!==["bottom","top"].indexOf(n),u=s?"left":"top",c=s?"width":"height",l={start:E({},u,o[u]),end:E({},u,o[u]+o[c]-a[c])};e.offsets.popper=x({},a,l[r])}return e}},offset:{order:200,enabled:!0,fn:function(e,t){var n=t.offset,r=e.placement,i=e.offsets,o=i.popper,a=i.reference,s=r.split("-")[0],u=void 0;return u=q(+n)?[+n,0]:Q(n,o,a,s),"left"===s?(o.top+=u[0],o.left-=u[1]):"right"===s?(o.top+=u[0],o.left+=u[1]):"top"===s?(o.left+=u[0],o.top-=u[1]):"bottom"===s&&(o.left+=u[0],o.top+=u[1]),e.popper=o,e},offset:0},preventOverflow:{order:300,enabled:!0,fn:function(e,t){var n=t.boundariesElement||h(e.instance.popper);e.instance.reference===n&&(n=h(n));var r=H("transform"),i=e.instance.popper.style,o=i.top,a=i.left,s=i[r];i.top="",i.left="",i[r]="";var u=D(e.instance.popper,e.instance.reference,t.padding,n,e.positionFixed);i.top=o,i.left=a,i[r]=s,t.boundaries=u;var c=t.priority,l=e.offsets.popper,f={primary:function(e){var n=l[e];return l[e]u[e]&&!t.escapeWithReference&&(r=Math.min(l[n],u[e]-("right"===e?l.width:l.height))),E({},n,r)}};return c.forEach(function(e){var t=-1!==["left","top"].indexOf(e)?"primary":"secondary";l=x({},l,f[t](e))}),e.offsets.popper=l,e},priority:["left","right","top","bottom"],padding:5,boundariesElement:"scrollParent"},keepTogether:{order:400,enabled:!0,fn:function(e){var t=e.offsets,n=t.popper,r=t.reference,i=e.placement.split("-")[0],o=Math.floor,a=-1!==["top","bottom"].indexOf(i),s=a?"right":"bottom",u=a?"left":"top",c=a?"width":"height";return n[s]o(r[s])&&(e.offsets.popper[u]=o(r[s])),e}},arrow:{order:500,enabled:!0,fn:function(e,t){var n;if(!V(e.instance.modifiers,"arrow","keepTogether"))return e;var r=t.element;if("string"==typeof r){if(!(r=e.instance.popper.querySelector(r)))return e}else if(!e.instance.popper.contains(r))return console.warn("WARNING: `arrow.element` must be child of its popper element!"),e;var i=e.placement.split("-")[0],o=e.offsets,a=o.popper,s=o.reference,c=-1!==["left","right"].indexOf(i),l=c?"height":"width",f=c?"Top":"Left",p=f.toLowerCase(),d=c?"left":"top",h=c?"bottom":"right",v=N(r)[l];s[h]-va[h]&&(e.offsets.popper[p]+=s[p]+v-a[h]),e.offsets.popper=C(e.offsets.popper);var g=s[p]+s[l]/2-v/2,m=u(e.instance.popper),y=parseFloat(m["margin"+f],10),_=parseFloat(m["border"+f+"Width"],10),b=g-e.offsets.popper[p]-y-_;return b=Math.max(Math.min(a[l]-v,b),0),e.arrowElement=r,e.offsets.arrow=(E(n={},p,Math.round(b)),E(n,d,""),n),e},element:"[x-arrow]"},flip:{order:600,enabled:!0,fn:function(e,t){if($(e.instance.modifiers,"inner"))return e;if(e.flipped&&e.placement===e.originalPlacement)return e;var n=D(e.instance.popper,e.instance.reference,t.padding,t.boundariesElement,e.positionFixed),r=e.placement.split("-")[0],i=L(r),o=e.placement.split("-")[1]||"",a=[];switch(t.behavior){case X.FLIP:a=[r,i];break;case X.CLOCKWISE:a=G(r);break;case X.COUNTERCLOCKWISE:a=G(r,!0);break;default:a=t.behavior}return a.forEach(function(s,u){if(r!==s||a.length===u+1)return e;r=e.placement.split("-")[0],i=L(r);var c=e.offsets.popper,l=e.offsets.reference,f=Math.floor,p="left"===r&&f(c.right)>f(l.left)||"right"===r&&f(c.left)f(l.top)||"bottom"===r&&f(c.top)f(n.right),v=f(c.top)f(n.bottom),m="left"===r&&d||"right"===r&&h||"top"===r&&v||"bottom"===r&&g,y=-1!==["top","bottom"].indexOf(r),_=!!t.flipVariations&&(y&&"start"===o&&d||y&&"end"===o&&h||!y&&"start"===o&&v||!y&&"end"===o&&g);(p||m||_)&&(e.flipped=!0,(p||m)&&(r=a[u+1]),_&&(o=function(e){return"end"===e?"start":"start"===e?"end":e}(o)),e.placement=r+(o?"-"+o:""),e.offsets.popper=x({},e.offsets.popper,j(e.instance.popper,e.offsets.reference,e.placement)),e=R(e.instance.modifiers,e,"flip"))}),e},behavior:"flip",padding:5,boundariesElement:"viewport"},inner:{order:700,enabled:!1,fn:function(e){var t=e.placement,n=t.split("-")[0],r=e.offsets,i=r.popper,o=r.reference,a=-1!==["left","right"].indexOf(n),s=-1===["top","left"].indexOf(n);return i[a?"left":"top"]=o[n]-(s?i[a?"width":"height"]:0),e.placement=L(t),e.offsets.popper=C(i),e}},hide:{order:800,enabled:!0,fn:function(e){if(!V(e.instance.modifiers,"hide","preventOverflow"))return e;var t=e.offsets.reference,n=P(e.instance.modifiers,function(e){return"preventOverflow"===e.name}).boundaries;if(t.bottomn.right||t.top>n.bottom||t.right2&&void 0!==arguments[2]?arguments[2]:{};w(this,e),this.scheduleUpdate=function(){return requestAnimationFrame(r.update)},this.update=a(this.update.bind(this)),this.options=x({},e.Defaults,i),this.state={isDestroyed:!1,isCreated:!1,scrollParents:[]},this.reference=t&&t.jquery?t[0]:t,this.popper=n&&n.jquery?n[0]:n,this.options.modifiers={},Object.keys(x({},e.Defaults.modifiers,i.modifiers)).forEach(function(t){r.options.modifiers[t]=x({},e.Defaults.modifiers[t]||{},i.modifiers?i.modifiers[t]:{})}),this.modifiers=Object.keys(this.options.modifiers).map(function(e){return x({name:e},r.options.modifiers[e])}).sort(function(e,t){return e.order-t.order}),this.modifiers.forEach(function(e){e.enabled&&s(e.onLoad)&&e.onLoad(r.reference,r.popper,r.options,e,r.state)}),this.update();var o=this.options.eventsEnabled;o&&this.enableEventListeners(),this.state.eventsEnabled=o}return T(e,[{key:"update",value:function(){return function(){if(!this.state.isDestroyed){var e={instance:this,styles:{},arrowStyles:{},attributes:{},flipped:!1,offsets:{}};e.offsets.reference=k(this.state,this.popper,this.reference,this.options.positionFixed),e.placement=I(this.options.placement,e.offsets.reference,this.popper,this.reference,this.options.modifiers.flip.boundariesElement,this.options.modifiers.flip.padding),e.originalPlacement=e.placement,e.positionFixed=this.options.positionFixed,e.offsets.popper=j(this.popper,e.offsets.reference,e.placement),e.offsets.popper.position=this.options.positionFixed?"fixed":"absolute",e=R(this.modifiers,e),this.state.isCreated?this.options.onUpdate(e):(this.state.isCreated=!0,this.options.onCreate(e))}}.call(this)}},{key:"destroy",value:function(){return function(){return this.state.isDestroyed=!0,$(this.modifiers,"applyStyle")&&(this.popper.removeAttribute("x-placement"),this.popper.style.position="",this.popper.style.top="",this.popper.style.left="",this.popper.style.right="",this.popper.style.bottom="",this.popper.style.willChange="",this.popper.style[H("transform")]=""),this.disableEventListeners(),this.options.removeOnDestroy&&this.popper.parentNode.removeChild(this.popper),this}.call(this)}},{key:"enableEventListeners",value:function(){return function(){this.state.eventsEnabled||(this.state=F(this.reference,this.options,this.state,this.scheduleUpdate))}.call(this)}},{key:"disableEventListeners",value:function(){return W.call(this)}}]),e}();J.Utils=("undefined"!=typeof window?window:e).PopperUtils,J.placements=z,J.Defaults=Y,t.default=J}.call(this,n(1))},function(e,t,n){var r;!function(t,n){"use strict";"object"==typeof e.exports?e.exports=t.document?n(t,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return n(e)}:n(t)}("undefined"!=typeof window?window:this,function(n,i){"use strict";var o=[],a=n.document,s=Object.getPrototypeOf,u=o.slice,c=o.concat,l=o.push,f=o.indexOf,p={},d=p.toString,h=p.hasOwnProperty,v=h.toString,g=v.call(Object),m={},y=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType},_=function(e){return null!=e&&e===e.window},b={type:!0,src:!0,noModule:!0};function w(e,t,n){var r,i=(t=t||a).createElement("script");if(i.text=e,n)for(r in b)n[r]&&(i[r]=n[r]);t.head.appendChild(i).parentNode.removeChild(i)}function T(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?p[d.call(e)]||"object":typeof e}var E=function(e,t){return new E.fn.init(e,t)},x=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;function C(e){var t=!!e&&"length"in e&&e.length,n=T(e);return!y(e)&&!_(e)&&("array"===n||0===t||"number"==typeof t&&t>0&&t-1 in e)}E.fn=E.prototype={jquery:"3.3.1",constructor:E,length:0,toArray:function(){return u.call(this)},get:function(e){return null==e?u.call(this):e<0?this[e+this.length]:this[e]},pushStack:function(e){var t=E.merge(this.constructor(),e);return t.prevObject=this,t},each:function(e){return E.each(this,e)},map:function(e){return this.pushStack(E.map(this,function(t,n){return e.call(t,n,t)}))},slice:function(){return this.pushStack(u.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(e<0?t:0);return this.pushStack(n>=0&&n+~]|"+R+")"+R+"*"),U=new RegExp("="+R+"*([^\\]'\"]*?)"+R+"*\\]","g"),V=new RegExp(M),z=new RegExp("^"+$+"$"),K={ID:new RegExp("^#("+$+")"),CLASS:new RegExp("^\\.("+$+")"),TAG:new RegExp("^("+$+"|[*])"),ATTR:new RegExp("^"+H),PSEUDO:new RegExp("^"+M),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+R+"*(even|odd|(([+-]|)(\\d*)n|)"+R+"*(?:([+-]|)"+R+"*(\\d+)|))"+R+"*\\)|)","i"),bool:new RegExp("^(?:"+P+")$","i"),needsContext:new RegExp("^"+R+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+R+"*((?:-\\d)?\\d*)"+R+"*\\)|)(?=[^-]|$)","i")},G=/^(?:input|select|textarea|button)$/i,X=/^h\d$/i,Q=/^[^{]+\{\s*\[native \w/,Y=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,J=/[+~]/,Z=new RegExp("\\\\([\\da-f]{1,6}"+R+"?|("+R+")|.)","ig"),ee=function(e,t,n){var r="0x"+t-65536;return r!=r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)},te=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ne=function(e,t){return t?"\0"===e?"�":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},re=function(){p()},ie=ye(function(e){return!0===e.disabled&&("form"in e||"label"in e)},{dir:"parentNode",next:"legend"});try{N.apply(D=L.call(w.childNodes),w.childNodes),D[w.childNodes.length].nodeType}catch(e){N={apply:D.length?function(e,t){k.apply(e,L.call(t))}:function(e,t){for(var n=e.length,r=0;e[n++]=t[r++];);e.length=n-1}}}function oe(e,t,r,i){var o,s,c,l,f,h,m,y=t&&t.ownerDocument,T=t?t.nodeType:9;if(r=r||[],"string"!=typeof e||!e||1!==T&&9!==T&&11!==T)return r;if(!i&&((t?t.ownerDocument||t:w)!==d&&p(t),t=t||d,v)){if(11!==T&&(f=Y.exec(e)))if(o=f[1]){if(9===T){if(!(c=t.getElementById(o)))return r;if(c.id===o)return r.push(c),r}else if(y&&(c=y.getElementById(o))&&_(t,c)&&c.id===o)return r.push(c),r}else{if(f[2])return N.apply(r,t.getElementsByTagName(e)),r;if((o=f[3])&&n.getElementsByClassName&&t.getElementsByClassName)return N.apply(r,t.getElementsByClassName(o)),r}if(n.qsa&&!A[e+" "]&&(!g||!g.test(e))){if(1!==T)y=t,m=e;else if("object"!==t.nodeName.toLowerCase()){for((l=t.getAttribute("id"))?l=l.replace(te,ne):t.setAttribute("id",l=b),s=(h=a(e)).length;s--;)h[s]="#"+l+" "+me(h[s]);m=h.join(","),y=J.test(e)&&ve(t.parentNode)||t}if(m)try{return N.apply(r,y.querySelectorAll(m)),r}catch(e){}finally{l===b&&t.removeAttribute("id")}}}return u(e.replace(W,"$1"),t,r,i)}function ae(){var e=[];return function t(n,i){return e.push(n+" ")>r.cacheLength&&delete t[e.shift()],t[n+" "]=i}}function se(e){return e[b]=!0,e}function ue(e){var t=d.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function ce(e,t){for(var n=e.split("|"),i=n.length;i--;)r.attrHandle[n[i]]=t}function le(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)for(;n=n.nextSibling;)if(n===t)return-1;return e?1:-1}function fe(e){return function(t){return"input"===t.nodeName.toLowerCase()&&t.type===e}}function pe(e){return function(t){var n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}function de(e){return function(t){return"form"in t?t.parentNode&&!1===t.disabled?"label"in t?"label"in t.parentNode?t.parentNode.disabled===e:t.disabled===e:t.isDisabled===e||t.isDisabled!==!e&&ie(t)===e:t.disabled===e:"label"in t&&t.disabled===e}}function he(e){return se(function(t){return t=+t,se(function(n,r){for(var i,o=e([],n.length,t),a=o.length;a--;)n[i=o[a]]&&(n[i]=!(r[i]=n[i]))})})}function ve(e){return e&&void 0!==e.getElementsByTagName&&e}for(t in n=oe.support={},o=oe.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return!!t&&"HTML"!==t.nodeName},p=oe.setDocument=function(e){var t,i,a=e?e.ownerDocument||e:w;return a!==d&&9===a.nodeType&&a.documentElement?(h=(d=a).documentElement,v=!o(d),w!==d&&(i=d.defaultView)&&i.top!==i&&(i.addEventListener?i.addEventListener("unload",re,!1):i.attachEvent&&i.attachEvent("onunload",re)),n.attributes=ue(function(e){return e.className="i",!e.getAttribute("className")}),n.getElementsByTagName=ue(function(e){return e.appendChild(d.createComment("")),!e.getElementsByTagName("*").length}),n.getElementsByClassName=Q.test(d.getElementsByClassName),n.getById=ue(function(e){return h.appendChild(e).id=b,!d.getElementsByName||!d.getElementsByName(b).length}),n.getById?(r.filter.ID=function(e){var t=e.replace(Z,ee);return function(e){return e.getAttribute("id")===t}},r.find.ID=function(e,t){if(void 0!==t.getElementById&&v){var n=t.getElementById(e);return n?[n]:[]}}):(r.filter.ID=function(e){var t=e.replace(Z,ee);return function(e){var n=void 0!==e.getAttributeNode&&e.getAttributeNode("id");return n&&n.value===t}},r.find.ID=function(e,t){if(void 0!==t.getElementById&&v){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];for(i=t.getElementsByName(e),r=0;o=i[r++];)if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),r.find.TAG=n.getElementsByTagName?function(e,t){return void 0!==t.getElementsByTagName?t.getElementsByTagName(e):n.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){for(;n=o[i++];)1===n.nodeType&&r.push(n);return r}return o},r.find.CLASS=n.getElementsByClassName&&function(e,t){if(void 0!==t.getElementsByClassName&&v)return t.getElementsByClassName(e)},m=[],g=[],(n.qsa=Q.test(d.querySelectorAll))&&(ue(function(e){h.appendChild(e).innerHTML=" ",e.querySelectorAll("[msallowcapture^='']").length&&g.push("[*^$]="+R+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||g.push("\\["+R+"*(?:value|"+P+")"),e.querySelectorAll("[id~="+b+"-]").length||g.push("~="),e.querySelectorAll(":checked").length||g.push(":checked"),e.querySelectorAll("a#"+b+"+*").length||g.push(".#.+[+~]")}),ue(function(e){e.innerHTML=" ";var t=d.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&g.push("name"+R+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&g.push(":enabled",":disabled"),h.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&g.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),g.push(",.*:")})),(n.matchesSelector=Q.test(y=h.matches||h.webkitMatchesSelector||h.mozMatchesSelector||h.oMatchesSelector||h.msMatchesSelector))&&ue(function(e){n.disconnectedMatch=y.call(e,"*"),y.call(e,"[s!='']:x"),m.push("!=",M)}),g=g.length&&new RegExp(g.join("|")),m=m.length&&new RegExp(m.join("|")),t=Q.test(h.compareDocumentPosition),_=t||Q.test(h.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)for(;t=t.parentNode;)if(t===e)return!0;return!1},S=t?function(e,t){if(e===t)return f=!0,0;var r=!e.compareDocumentPosition-!t.compareDocumentPosition;return r||(1&(r=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!n.sortDetached&&t.compareDocumentPosition(e)===r?e===d||e.ownerDocument===w&&_(w,e)?-1:t===d||t.ownerDocument===w&&_(w,t)?1:l?j(l,e)-j(l,t):0:4&r?-1:1)}:function(e,t){if(e===t)return f=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e===d?-1:t===d?1:i?-1:o?1:l?j(l,e)-j(l,t):0;if(i===o)return le(e,t);for(n=e;n=n.parentNode;)a.unshift(n);for(n=t;n=n.parentNode;)s.unshift(n);for(;a[r]===s[r];)r++;return r?le(a[r],s[r]):a[r]===w?-1:s[r]===w?1:0},d):d},oe.matches=function(e,t){return oe(e,null,null,t)},oe.matchesSelector=function(e,t){if((e.ownerDocument||e)!==d&&p(e),t=t.replace(U,"='$1']"),n.matchesSelector&&v&&!A[t+" "]&&(!m||!m.test(t))&&(!g||!g.test(t)))try{var r=y.call(e,t);if(r||n.disconnectedMatch||e.document&&11!==e.document.nodeType)return r}catch(e){}return oe(t,d,null,[e]).length>0},oe.contains=function(e,t){return(e.ownerDocument||e)!==d&&p(e),_(e,t)},oe.attr=function(e,t){(e.ownerDocument||e)!==d&&p(e);var i=r.attrHandle[t.toLowerCase()],o=i&&O.call(r.attrHandle,t.toLowerCase())?i(e,t,!v):void 0;return void 0!==o?o:n.attributes||!v?e.getAttribute(t):(o=e.getAttributeNode(t))&&o.specified?o.value:null},oe.escape=function(e){return(e+"").replace(te,ne)},oe.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},oe.uniqueSort=function(e){var t,r=[],i=0,o=0;if(f=!n.detectDuplicates,l=!n.sortStable&&e.slice(0),e.sort(S),f){for(;t=e[o++];)t===e[o]&&(i=r.push(o));for(;i--;)e.splice(r[i],1)}return l=null,e},i=oe.getText=function(e){var t,n="",r=0,o=e.nodeType;if(o){if(1===o||9===o||11===o){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=i(e)}else if(3===o||4===o)return e.nodeValue}else for(;t=e[r++];)n+=i(t);return n},(r=oe.selectors={cacheLength:50,createPseudo:se,match:K,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(Z,ee),e[3]=(e[3]||e[4]||e[5]||"").replace(Z,ee),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||oe.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&oe.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return K.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&V.test(n)&&(t=a(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(Z,ee).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=x[e+" "];return t||(t=new RegExp("(^|"+R+")"+e+"("+R+"|$)"))&&x(e,function(e){return t.test("string"==typeof e.className&&e.className||void 0!==e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(e,t,n){return function(r){var i=oe.attr(r,e);return null==i?"!="===t:!t||(i+="","="===t?i===n:"!="===t?i!==n:"^="===t?n&&0===i.indexOf(n):"*="===t?n&&i.indexOf(n)>-1:"$="===t?n&&i.slice(-n.length)===n:"~="===t?(" "+i.replace(F," ")+" ").indexOf(n)>-1:"|="===t&&(i===n||i.slice(0,n.length+1)===n+"-"))}},CHILD:function(e,t,n,r,i){var o="nth"!==e.slice(0,3),a="last"!==e.slice(-4),s="of-type"===t;return 1===r&&0===i?function(e){return!!e.parentNode}:function(t,n,u){var c,l,f,p,d,h,v=o!==a?"nextSibling":"previousSibling",g=t.parentNode,m=s&&t.nodeName.toLowerCase(),y=!u&&!s,_=!1;if(g){if(o){for(;v;){for(p=t;p=p[v];)if(s?p.nodeName.toLowerCase()===m:1===p.nodeType)return!1;h=v="only"===e&&!h&&"nextSibling"}return!0}if(h=[a?g.firstChild:g.lastChild],a&&y){for(_=(d=(c=(l=(f=(p=g)[b]||(p[b]={}))[p.uniqueID]||(f[p.uniqueID]={}))[e]||[])[0]===T&&c[1])&&c[2],p=d&&g.childNodes[d];p=++d&&p&&p[v]||(_=d=0)||h.pop();)if(1===p.nodeType&&++_&&p===t){l[e]=[T,d,_];break}}else if(y&&(_=d=(c=(l=(f=(p=t)[b]||(p[b]={}))[p.uniqueID]||(f[p.uniqueID]={}))[e]||[])[0]===T&&c[1]),!1===_)for(;(p=++d&&p&&p[v]||(_=d=0)||h.pop())&&((s?p.nodeName.toLowerCase()!==m:1!==p.nodeType)||!++_||(y&&((l=(f=p[b]||(p[b]={}))[p.uniqueID]||(f[p.uniqueID]={}))[e]=[T,_]),p!==t)););return(_-=i)===r||_%r==0&&_/r>=0}}},PSEUDO:function(e,t){var n,i=r.pseudos[e]||r.setFilters[e.toLowerCase()]||oe.error("unsupported pseudo: "+e);return i[b]?i(t):i.length>1?(n=[e,e,"",t],r.setFilters.hasOwnProperty(e.toLowerCase())?se(function(e,n){for(var r,o=i(e,t),a=o.length;a--;)e[r=j(e,o[a])]=!(n[r]=o[a])}):function(e){return i(e,0,n)}):i}},pseudos:{not:se(function(e){var t=[],n=[],r=s(e.replace(W,"$1"));return r[b]?se(function(e,t,n,i){for(var o,a=r(e,null,i,[]),s=e.length;s--;)(o=a[s])&&(e[s]=!(t[s]=o))}):function(e,i,o){return t[0]=e,r(t,null,o,n),t[0]=null,!n.pop()}}),has:se(function(e){return function(t){return oe(e,t).length>0}}),contains:se(function(e){return e=e.replace(Z,ee),function(t){return(t.textContent||t.innerText||i(t)).indexOf(e)>-1}}),lang:se(function(e){return z.test(e||"")||oe.error("unsupported lang: "+e),e=e.replace(Z,ee).toLowerCase(),function(t){var n;do{if(n=v?t.lang:t.getAttribute("xml:lang")||t.getAttribute("lang"))return(n=n.toLowerCase())===e||0===n.indexOf(e+"-")}while((t=t.parentNode)&&1===t.nodeType);return!1}}),target:function(t){var n=e.location&&e.location.hash;return n&&n.slice(1)===t.id},root:function(e){return e===h},focus:function(e){return e===d.activeElement&&(!d.hasFocus||d.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:de(!1),disabled:de(!0),checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,!0===e.selected},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!r.pseudos.empty(e)},header:function(e){return X.test(e.nodeName)},input:function(e){return G.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:he(function(){return[0]}),last:he(function(e,t){return[t-1]}),eq:he(function(e,t,n){return[n<0?n+t:n]}),even:he(function(e,t){for(var n=0;n=0;)e.push(r);return e}),gt:he(function(e,t,n){for(var r=n<0?n+t:n;++r1?function(t,n,r){for(var i=e.length;i--;)if(!e[i](t,n,r))return!1;return!0}:e[0]}function be(e,t,n,r,i){for(var o,a=[],s=0,u=e.length,c=null!=t;s-1&&(o[c]=!(a[c]=f))}}else m=be(m===a?m.splice(h,m.length):m),i?i(null,a,m,u):N.apply(a,m)})}function Te(e){for(var t,n,i,o=e.length,a=r.relative[e[0].type],s=a||r.relative[" "],u=a?1:0,l=ye(function(e){return e===t},s,!0),f=ye(function(e){return j(t,e)>-1},s,!0),p=[function(e,n,r){var i=!a&&(r||n!==c)||((t=n).nodeType?l(e,n,r):f(e,n,r));return t=null,i}];u1&&_e(p),u>1&&me(e.slice(0,u-1).concat({value:" "===e[u-2].type?"*":""})).replace(W,"$1"),n,u0,i=e.length>0,o=function(o,a,s,u,l){var f,h,g,m=0,y="0",_=o&&[],b=[],w=c,E=o||i&&r.find.TAG("*",l),x=T+=null==w?1:Math.random()||.1,C=E.length;for(l&&(c=a===d||a||l);y!==C&&null!=(f=E[y]);y++){if(i&&f){for(h=0,a||f.ownerDocument===d||(p(f),s=!v);g=e[h++];)if(g(f,a||d,s)){u.push(f);break}l&&(T=x)}n&&((f=!g&&f)&&m--,o&&_.push(f))}if(m+=y,n&&y!==m){for(h=0;g=t[h++];)g(_,b,a,s);if(o){if(m>0)for(;y--;)_[y]||b[y]||(b[y]=I.call(u));b=be(b)}N.apply(u,b),l&&!o&&b.length>0&&m+t.length>1&&oe.uniqueSort(u)}return l&&(T=x,c=w),_};return n?se(o):o}(o,i))).selector=e}return s},u=oe.select=function(e,t,n,i){var o,u,c,l,f,p="function"==typeof e&&e,d=!i&&a(e=p.selector||e);if(n=n||[],1===d.length){if((u=d[0]=d[0].slice(0)).length>2&&"ID"===(c=u[0]).type&&9===t.nodeType&&v&&r.relative[u[1].type]){if(!(t=(r.find.ID(c.matches[0].replace(Z,ee),t)||[])[0]))return n;p&&(t=t.parentNode),e=e.slice(u.shift().value.length)}for(o=K.needsContext.test(e)?0:u.length;o--&&(c=u[o],!r.relative[l=c.type]);)if((f=r.find[l])&&(i=f(c.matches[0].replace(Z,ee),J.test(u[0].type)&&ve(t.parentNode)||t))){if(u.splice(o,1),!(e=i.length&&me(u)))return N.apply(n,i),n;break}}return(p||s(e,d))(i,t,!v,n,!t||J.test(e)&&ve(t.parentNode)||t),n},n.sortStable=b.split("").sort(S).join("")===b,n.detectDuplicates=!!f,p(),n.sortDetached=ue(function(e){return 1&e.compareDocumentPosition(d.createElement("fieldset"))}),ue(function(e){return e.innerHTML=" ","#"===e.firstChild.getAttribute("href")})||ce("type|href|height|width",function(e,t,n){if(!n)return e.getAttribute(t,"type"===t.toLowerCase()?1:2)}),n.attributes&&ue(function(e){return e.innerHTML=" ",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||ce("value",function(e,t,n){if(!n&&"input"===e.nodeName.toLowerCase())return e.defaultValue}),ue(function(e){return null==e.getAttribute("disabled")})||ce(P,function(e,t,n){var r;if(!n)return!0===e[t]?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null}),oe}(n);E.find=A,E.expr=A.selectors,E.expr[":"]=E.expr.pseudos,E.uniqueSort=E.unique=A.uniqueSort,E.text=A.getText,E.isXMLDoc=A.isXML,E.contains=A.contains,E.escapeSelector=A.escape;var S=function(e,t,n){for(var r=[],i=void 0!==n;(e=e[t])&&9!==e.nodeType;)if(1===e.nodeType){if(i&&E(e).is(n))break;r.push(e)}return r},O=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},D=E.expr.match.needsContext;function I(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()}var k=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function N(e,t,n){return y(t)?E.grep(e,function(e,r){return!!t.call(e,r,e)!==n}):t.nodeType?E.grep(e,function(e){return e===t!==n}):"string"!=typeof t?E.grep(e,function(e){return f.call(t,e)>-1!==n}):E.filter(t,e,n)}E.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?E.find.matchesSelector(r,e)?[r]:[]:E.find.matches(e,E.grep(t,function(e){return 1===e.nodeType}))},E.fn.extend({find:function(e){var t,n,r=this.length,i=this;if("string"!=typeof e)return this.pushStack(E(e).filter(function(){for(t=0;t1?E.uniqueSort(n):n},filter:function(e){return this.pushStack(N(this,e||[],!1))},not:function(e){return this.pushStack(N(this,e||[],!0))},is:function(e){return!!N(this,"string"==typeof e&&D.test(e)?E(e):e||[],!1).length}});var L,j=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;(E.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||L,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&e.length>=3?[null,e,null]:j.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof E?t[0]:t,E.merge(this,E.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:a,!0)),k.test(r[1])&&E.isPlainObject(t))for(r in t)y(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=a.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):y(e)?void 0!==n.ready?n.ready(e):e(E):E.makeArray(e,this)}).prototype=E.fn,L=E(a);var P=/^(?:parents|prev(?:Until|All))/,R={children:!0,contents:!0,next:!0,prev:!0};function $(e,t){for(;(e=e[t])&&1!==e.nodeType;);return e}E.fn.extend({has:function(e){var t=E(e,this),n=t.length;return this.filter(function(){for(var e=0;e-1:1===n.nodeType&&E.find.matchesSelector(n,e))){o.push(n);break}return this.pushStack(o.length>1?E.uniqueSort(o):o)},index:function(e){return e?"string"==typeof e?f.call(E(e),this[0]):f.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(E.uniqueSort(E.merge(this.get(),E(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),E.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return S(e,"parentNode")},parentsUntil:function(e,t,n){return S(e,"parentNode",n)},next:function(e){return $(e,"nextSibling")},prev:function(e){return $(e,"previousSibling")},nextAll:function(e){return S(e,"nextSibling")},prevAll:function(e){return S(e,"previousSibling")},nextUntil:function(e,t,n){return S(e,"nextSibling",n)},prevUntil:function(e,t,n){return S(e,"previousSibling",n)},siblings:function(e){return O((e.parentNode||{}).firstChild,e)},children:function(e){return O(e.firstChild)},contents:function(e){return I(e,"iframe")?e.contentDocument:(I(e,"template")&&(e=e.content||e),E.merge([],e.childNodes))}},function(e,t){E.fn[e]=function(n,r){var i=E.map(this,t,n);return"Until"!==e.slice(-5)&&(r=n),r&&"string"==typeof r&&(i=E.filter(r,i)),this.length>1&&(R[e]||E.uniqueSort(i),P.test(e)&&i.reverse()),this.pushStack(i)}});var H=/[^\x20\t\r\n\f]+/g;function M(e){return e}function F(e){throw e}function W(e,t,n,r){var i;try{e&&y(i=e.promise)?i.call(e).done(t).fail(n):e&&y(i=e.then)?i.call(e,t,n):t.apply(void 0,[e].slice(r))}catch(e){n.apply(void 0,[e])}}E.Callbacks=function(e){e="string"==typeof e?function(e){var t={};return E.each(e.match(H)||[],function(e,n){t[n]=!0}),t}(e):E.extend({},e);var t,n,r,i,o=[],a=[],s=-1,u=function(){for(i=i||e.once,r=t=!0;a.length;s=-1)for(n=a.shift();++s