2025-09-01 16:17:11 +08:00
; ( function ( root , factory ) {
'use strict'
if ( typeof define === 'function' && define . amd ) {
define ( [ ] , factory )
}
Cesium [ 'viewerCesiumNavigationMixin' ] = factory ( )
} ) (
typeof window !== 'undefined'
? window
: typeof self !== 'undefined'
? self
: this ,
function ( ) {
var requirejs , require , define
; ( function ( undef ) {
var main ,
req ,
makeMap ,
handlers ,
defined = { } ,
waiting = { } ,
config = { } ,
defining = { } ,
hasOwn = Object . prototype . hasOwnProperty ,
aps = [ ] . slice ,
jsSuffixRegExp = /\.js$/
function hasProp ( obj , prop ) {
return hasOwn . call ( obj , prop )
}
function normalize ( name , baseName ) {
var nameParts ,
nameSegment ,
mapValue ,
foundMap ,
lastIndex ,
foundI ,
foundStarMap ,
starI ,
i ,
j ,
part ,
normalizedBaseParts ,
baseParts = baseName && baseName . split ( '/' ) ,
map = config . map ,
starMap = ( map && map [ '*' ] ) || { }
if ( name ) {
name = name . split ( '/' )
lastIndex = name . length - 1
if ( config . nodeIdCompat && jsSuffixRegExp . test ( name [ lastIndex ] ) ) {
name [ lastIndex ] = name [ lastIndex ] . replace ( jsSuffixRegExp , '' )
}
if ( name [ 0 ] . charAt ( 0 ) === '.' && baseParts ) {
normalizedBaseParts = baseParts . slice ( 0 , baseParts . length - 1 )
name = normalizedBaseParts . concat ( name )
}
for ( i = 0 ; i < name . length ; i ++ ) {
part = name [ i ]
if ( part === '.' ) {
name . splice ( i , 1 )
i -= 1
} else if ( part === '..' ) {
if (
i === 0 ||
( i === 1 && name [ 2 ] === '..' ) ||
name [ i - 1 ] === '..'
) {
continue
} else if ( i > 0 ) {
name . splice ( i - 1 , 2 )
i -= 2
}
}
}
name = name . join ( '/' )
}
if ( ( baseParts || starMap ) && map ) {
nameParts = name . split ( '/' )
for ( i = nameParts . length ; i > 0 ; i -= 1 ) {
nameSegment = nameParts . slice ( 0 , i ) . join ( '/' )
if ( baseParts ) {
for ( j = baseParts . length ; j > 0 ; j -= 1 ) {
mapValue = map [ baseParts . slice ( 0 , j ) . join ( '/' ) ]
if ( mapValue ) {
mapValue = mapValue [ nameSegment ]
if ( mapValue ) {
foundMap = mapValue
foundI = i
break
}
}
}
}
if ( foundMap ) {
break
}
if ( ! foundStarMap && starMap && starMap [ nameSegment ] ) {
foundStarMap = starMap [ nameSegment ]
starI = i
}
}
if ( ! foundMap && foundStarMap ) {
foundMap = foundStarMap
foundI = starI
}
if ( foundMap ) {
nameParts . splice ( 0 , foundI , foundMap )
name = nameParts . join ( '/' )
}
}
return name
}
function makeRequire ( relName , forceSync ) {
return function ( ) {
var args = aps . call ( arguments , 0 )
if ( typeof args [ 0 ] !== 'string' && args . length === 1 ) {
args . push ( null )
}
return req . apply ( undef , args . concat ( [ relName , forceSync ] ) )
}
}
function makeNormalize ( relName ) {
return function ( name ) {
return normalize ( name , relName )
}
}
function makeLoad ( depName ) {
return function ( value ) {
defined [ depName ] = value
}
}
function callDep ( name ) {
if ( hasProp ( waiting , name ) ) {
var args = waiting [ name ]
delete waiting [ name ]
defining [ name ] = true
main . apply ( undef , args )
}
if ( ! hasProp ( defined , name ) && ! hasProp ( defining , name ) ) {
throw new Error ( 'No ' + name )
}
return defined [ name ]
}
function splitPrefix ( name ) {
var prefix ,
index = name ? name . indexOf ( '!' ) : - 1
if ( index > - 1 ) {
prefix = name . substring ( 0 , index )
name = name . substring ( index + 1 , name . length )
}
return [ prefix , name ]
}
makeMap = function ( name , relName ) {
var plugin ,
parts = splitPrefix ( name ) ,
prefix = parts [ 0 ]
name = parts [ 1 ]
if ( prefix ) {
prefix = normalize ( prefix , relName )
plugin = callDep ( prefix )
}
if ( prefix ) {
if ( plugin && plugin . normalize ) {
name = plugin . normalize ( name , makeNormalize ( relName ) )
} else {
name = normalize ( name , relName )
}
} else {
name = normalize ( name , relName )
parts = splitPrefix ( name )
prefix = parts [ 0 ]
name = parts [ 1 ]
if ( prefix ) {
plugin = callDep ( prefix )
}
}
return {
f : prefix ? prefix + '!' + name : name ,
n : name ,
pr : prefix ,
p : plugin
}
}
function makeConfig ( name ) {
return function ( ) {
return ( config && config . config && config . config [ name ] ) || { }
}
}
handlers = {
require : function ( name ) {
return makeRequire ( name )
} ,
exports : function ( name ) {
var e = defined [ name ]
if ( typeof e !== 'undefined' ) {
return e
} else {
return ( defined [ name ] = { } )
}
} ,
module : function ( name ) {
return {
id : name ,
uri : '' ,
exports : defined [ name ] ,
config : makeConfig ( name )
}
}
}
main = function ( name , deps , callback , relName ) {
var cjsModule ,
depName ,
ret ,
map ,
i ,
args = [ ] ,
callbackType = typeof callback ,
usingExports
relName = relName || name
if ( callbackType === 'undefined' || callbackType === 'function' ) {
deps =
! deps . length && callback . length
? [ 'require' , 'exports' , 'module' ]
: deps
for ( i = 0 ; i < deps . length ; i += 1 ) {
map = makeMap ( deps [ i ] , relName )
depName = map . f
if ( depName === 'require' ) {
args [ i ] = handlers . require ( name )
} else if ( depName === 'exports' ) {
args [ i ] = handlers . exports ( name )
usingExports = true
} else if ( depName === 'module' ) {
cjsModule = args [ i ] = handlers . module ( name )
} else if (
hasProp ( defined , depName ) ||
hasProp ( waiting , depName ) ||
hasProp ( defining , depName )
) {
args [ i ] = callDep ( depName )
} else if ( map . p ) {
map . p . load (
map . n ,
makeRequire ( relName , true ) ,
makeLoad ( depName ) ,
{ }
)
args [ i ] = defined [ depName ]
} else {
throw new Error ( name + ' missing ' + depName )
}
}
ret = callback ? callback . apply ( defined [ name ] , args ) : undefined
if ( name ) {
if (
cjsModule &&
cjsModule . exports !== undef &&
cjsModule . exports !== defined [ name ]
) {
defined [ name ] = cjsModule . exports
} else if ( ret !== undef || ! usingExports ) {
defined [ name ] = ret
}
}
} else if ( name ) {
defined [ name ] = callback
}
}
requirejs = require = req = function (
deps ,
callback ,
relName ,
forceSync ,
alt
) {
if ( typeof deps === 'string' ) {
if ( handlers [ deps ] ) {
return handlers [ deps ] ( callback )
}
return callDep ( makeMap ( deps , callback ) . f )
} else if ( ! deps . splice ) {
config = deps
if ( config . deps ) {
req ( config . deps , config . callback )
}
if ( ! callback ) {
return
}
if ( callback . splice ) {
deps = callback
callback = relName
relName = null
} else {
deps = undef
}
}
callback = callback || function ( ) { }
if ( typeof relName === 'function' ) {
relName = forceSync
forceSync = alt
}
if ( forceSync ) {
main ( undef , deps , callback , relName )
} else {
setTimeout ( function ( ) {
main ( undef , deps , callback , relName )
} , 4 )
}
return req
}
req . config = function ( cfg ) {
return req ( cfg )
}
requirejs . _defined = defined
define = function ( name , deps , callback ) {
if ( typeof name !== 'string' ) {
throw new Error (
'See almond README: incorrect module build, no module name'
)
}
if ( ! deps . splice ) {
callback = deps
deps = [ ]
}
if ( ! hasProp ( defined , name ) && ! hasProp ( waiting , name ) ) {
waiting [ name ] = [ name , deps , callback ]
}
}
define . amd = { jQuery : true }
} ) ( )
define ( 'almond' , function ( ) { } )
; ( function ( ) {
; ( function ( n ) {
var x = this || ( 0 , eval ) ( 'this' ) ,
u = x . document ,
M = x . navigator ,
v = x . jQuery ,
F = x . JSON
; ( function ( n ) {
'function' === typeof define && define . amd
? define ( 'knockout' , [ 'exports' , 'require' ] , n )
: 'object' === typeof exports && 'object' === typeof module
? n ( module . exports || exports )
: n ( ( x . ko = { } ) )
} ) ( function ( N , O ) {
function J ( a , c ) {
return null === a || typeof a in T ? a === c : ! 1
}
function U ( b , c ) {
var d
return function ( ) {
d ||
( d = a . a . setTimeout ( function ( ) {
d = n
b ( )
} , c ) )
}
}
function V ( b , c ) {
var d
return function ( ) {
clearTimeout ( d )
d = a . a . setTimeout ( b , c )
}
}
function W ( a , c ) {
c && c !== I
? 'beforeChange' === c
? this . Kb ( a )
: this . Ha ( a , c )
: this . Lb ( a )
}
function X ( a , c ) {
null !== c && c . k && c . k ( )
}
function Y ( a , c ) {
var d = this . Hc ,
e = d [ s ]
e . R ||
( this . lb && this . Ma [ c ]
? ( d . Pb ( c , a , this . Ma [ c ] ) , ( this . Ma [ c ] = null ) , -- this . lb )
: e . r [ c ] || d . Pb ( c , a , e . s ? { ia : a } : d . uc ( a ) ) )
}
function K ( b , c , d , e ) {
a . d [ b ] = {
init : function ( b , g , k , l , m ) {
var h , r
a . m (
function ( ) {
var q = a . a . c ( g ( ) ) ,
p = ! d !== ! q ,
A = ! r
if ( A || c || p !== h )
A && a . va . Aa ( ) && ( r = a . a . ua ( a . f . childNodes ( b ) , ! 0 ) ) ,
p
? ( A || a . f . da ( b , a . a . ua ( r ) ) ,
a . eb ( e ? e ( m , q ) : m , b ) )
: a . f . xa ( b ) ,
( h = p )
} ,
null ,
{ i : b }
)
return { controlsDescendantBindings : ! 0 }
}
}
a . h . ta [ b ] = ! 1
a . f . Z [ b ] = ! 0
}
var a = 'undefined' !== typeof N ? N : { }
a . b = function ( b , c ) {
for ( var d = b . split ( '.' ) , e = a , f = 0 ; f < d . length - 1 ; f ++ )
e = e [ d [ f ] ]
e [ d [ d . length - 1 ] ] = c
}
a . G = function ( a , c , d ) {
a [ c ] = d
}
a . version = '3.4.0'
a . b ( 'version' , a . version )
a . options = { deferUpdates : ! 1 , useOnlyNativeEvents : ! 1 }
a . a = ( function ( ) {
function b ( a , b ) {
for ( var c in a ) a . hasOwnProperty ( c ) && b ( c , a [ c ] )
}
function c ( a , b ) {
if ( b ) for ( var c in b ) b . hasOwnProperty ( c ) && ( a [ c ] = b [ c ] )
return a
}
function d ( a , b ) {
a . _ _proto _ _ = b
return a
}
function e ( b , c , d , e ) {
var h = b [ c ] . match ( r ) || [ ]
a . a . q ( d . match ( r ) , function ( b ) {
a . a . pa ( h , b , e )
} )
b [ c ] = h . join ( ' ' )
}
var f = { _ _proto _ _ : [ ] } instanceof Array ,
g = 'function' === typeof Symbol ,
k = { } ,
l = { }
k [
M && /Firefox\/2/i . test ( M . userAgent )
? 'KeyboardEvent'
: 'UIEvents'
] = [ 'keyup' , 'keydown' , 'keypress' ]
k . MouseEvents = 'click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave' . split (
' '
)
b ( k , function ( a , b ) {
if ( b . length )
for ( var c = 0 , d = b . length ; c < d ; c ++ ) l [ b [ c ] ] = a
} )
var m = { propertychange : ! 0 } ,
h =
u &&
( function ( ) {
for (
var a = 3 ,
b = u . createElement ( 'div' ) ,
c = b . getElementsByTagName ( 'i' ) ;
( b . innerHTML =
'<!--[if gt IE ' + ++ a + ']><i></i><![endif]-->' ) ,
c [ 0 ] ;
) ;
return 4 < a ? a : n
} ) ( ) ,
r = /\S+/g
return {
cc : [ 'authenticity_token' , /^__RequestVerificationToken(_.*)?$/ ] ,
q : function ( a , b ) {
for ( var c = 0 , d = a . length ; c < d ; c ++ ) b ( a [ c ] , c )
} ,
o : function ( a , b ) {
if ( 'function' == typeof Array . prototype . indexOf )
return Array . prototype . indexOf . call ( a , b )
for ( var c = 0 , d = a . length ; c < d ; c ++ )
if ( a [ c ] === b ) return c
return - 1
} ,
Sb : function ( a , b , c ) {
for ( var d = 0 , e = a . length ; d < e ; d ++ )
if ( b . call ( c , a [ d ] , d ) ) return a [ d ]
return null
} ,
La : function ( b , c ) {
var d = a . a . o ( b , c )
0 < d ? b . splice ( d , 1 ) : 0 === d && b . shift ( )
} ,
Tb : function ( b ) {
b = b || [ ]
for ( var c = [ ] , d = 0 , e = b . length ; d < e ; d ++ )
0 > a . a . o ( c , b [ d ] ) && c . push ( b [ d ] )
return c
} ,
fb : function ( a , b ) {
a = a || [ ]
for ( var c = [ ] , d = 0 , e = a . length ; d < e ; d ++ )
c . push ( b ( a [ d ] , d ) )
return c
} ,
Ka : function ( a , b ) {
a = a || [ ]
for ( var c = [ ] , d = 0 , e = a . length ; d < e ; d ++ )
b ( a [ d ] , d ) && c . push ( a [ d ] )
return c
} ,
ra : function ( a , b ) {
if ( b instanceof Array ) a . push . apply ( a , b )
else for ( var c = 0 , d = b . length ; c < d ; c ++ ) a . push ( b [ c ] )
return a
} ,
pa : function ( b , c , d ) {
var e = a . a . o ( a . a . zb ( b ) , c )
0 > e ? d && b . push ( c ) : d || b . splice ( e , 1 )
} ,
ka : f ,
extend : c ,
Xa : d ,
Ya : f ? d : c ,
D : b ,
Ca : function ( a , b ) {
if ( ! a ) return a
var c = { } ,
d
for ( d in a ) a . hasOwnProperty ( d ) && ( c [ d ] = b ( a [ d ] , d , a ) )
return c
} ,
ob : function ( b ) {
for ( ; b . firstChild ; ) a . removeNode ( b . firstChild )
} ,
jc : function ( b ) {
b = a . a . V ( b )
for (
var c = ( ( b [ 0 ] && b [ 0 ] . ownerDocument ) || u ) . createElement (
'div'
) ,
d = 0 ,
e = b . length ;
d < e ;
d ++
)
c . appendChild ( a . $ ( b [ d ] ) )
return c
} ,
ua : function ( b , c ) {
for ( var d = 0 , e = b . length , h = [ ] ; d < e ; d ++ ) {
var m = b [ d ] . cloneNode ( ! 0 )
h . push ( c ? a . $ ( m ) : m )
}
return h
} ,
da : function ( b , c ) {
a . a . ob ( b )
if ( c )
for ( var d = 0 , e = c . length ; d < e ; d ++ ) b . appendChild ( c [ d ] )
} ,
qc : function ( b , c ) {
var d = b . nodeType ? [ b ] : b
if ( 0 < d . length ) {
for (
var e = d [ 0 ] , h = e . parentNode , m = 0 , l = c . length ;
m < l ;
m ++
)
h . insertBefore ( c [ m ] , e )
m = 0
for ( l = d . length ; m < l ; m ++ ) a . removeNode ( d [ m ] )
}
} ,
za : function ( a , b ) {
if ( a . length ) {
for (
b = ( 8 === b . nodeType && b . parentNode ) || b ;
a . length && a [ 0 ] . parentNode !== b ;
)
a . splice ( 0 , 1 )
for ( ; 1 < a . length && a [ a . length - 1 ] . parentNode !== b ; )
a . length --
if ( 1 < a . length ) {
var c = a [ 0 ] ,
d = a [ a . length - 1 ]
for ( a . length = 0 ; c !== d ; ) a . push ( c ) , ( c = c . nextSibling )
a . push ( d )
}
}
return a
} ,
sc : function ( a , b ) {
7 > h ? a . setAttribute ( 'selected' , b ) : ( a . selected = b )
} ,
$a : function ( a ) {
return null === a || a === n
? ''
: a . trim
? a . trim ( )
: a . toString ( ) . replace ( /^[\s\xa0]+|[\s\xa0]+$/g , '' )
} ,
nd : function ( a , b ) {
a = a || ''
return b . length > a . length ? ! 1 : a . substring ( 0 , b . length ) === b
} ,
Mc : function ( a , b ) {
if ( a === b ) return ! 0
if ( 11 === a . nodeType ) return ! 1
if ( b . contains )
return b . contains ( 3 === a . nodeType ? a . parentNode : a )
if ( b . compareDocumentPosition )
return 16 == ( b . compareDocumentPosition ( a ) & 16 )
for ( ; a && a != b ; ) a = a . parentNode
return ! ! a
} ,
nb : function ( b ) {
return a . a . Mc ( b , b . ownerDocument . documentElement )
} ,
Qb : function ( b ) {
return ! ! a . a . Sb ( b , a . a . nb )
} ,
A : function ( a ) {
return a && a . tagName && a . tagName . toLowerCase ( )
} ,
Wb : function ( b ) {
return a . onError
? function ( ) {
try {
return b . apply ( this , arguments )
} catch ( c ) {
throw ( a . onError && a . onError ( c ) , c )
}
}
: b
} ,
setTimeout : function ( b , c ) {
return setTimeout ( a . a . Wb ( b ) , c )
} ,
$b : function ( b ) {
setTimeout ( function ( ) {
a . onError && a . onError ( b )
throw b
} , 0 )
} ,
p : function ( b , c , d ) {
var e = a . a . Wb ( d )
d = h && m [ c ]
if ( a . options . useOnlyNativeEvents || d || ! v )
if ( d || 'function' != typeof b . addEventListener )
if ( 'undefined' != typeof b . attachEvent ) {
var l = function ( a ) {
e . call ( b , a )
} ,
f = 'on' + c
b . attachEvent ( f , l )
a . a . F . oa ( b , function ( ) {
b . detachEvent ( f , l )
} )
} else
throw Error (
"Browser doesn't support addEventListener or attachEvent"
)
else b . addEventListener ( c , e , ! 1 )
else v ( b ) . bind ( c , e )
} ,
Da : function ( b , c ) {
if ( ! b || ! b . nodeType )
throw Error (
'element must be a DOM node when calling triggerEvent'
)
var d
'input' === a . a . A ( b ) && b . type && 'click' == c . toLowerCase ( )
? ( ( d = b . type ) , ( d = 'checkbox' == d || 'radio' == d ) )
: ( d = ! 1 )
if ( a . options . useOnlyNativeEvents || ! v || d )
if ( 'function' == typeof u . createEvent )
if ( 'function' == typeof b . dispatchEvent )
( d = u . createEvent ( l [ c ] || 'HTMLEvents' ) ) ,
d . initEvent (
c ,
! 0 ,
! 0 ,
x ,
0 ,
0 ,
0 ,
0 ,
0 ,
! 1 ,
! 1 ,
! 1 ,
! 1 ,
0 ,
b
) ,
b . dispatchEvent ( d )
else
throw Error (
"The supplied element doesn't support dispatchEvent"
)
else if ( d && b . click ) b . click ( )
else if ( 'undefined' != typeof b . fireEvent )
b . fireEvent ( 'on' + c )
else throw Error ( "Browser doesn't support triggering events" )
else v ( b ) . trigger ( c )
} ,
c : function ( b ) {
return a . H ( b ) ? b ( ) : b
} ,
zb : function ( b ) {
return a . H ( b ) ? b . t ( ) : b
} ,
bb : function ( b , c , d ) {
var h
c &&
( 'object' === typeof b . classList
? ( ( h = b . classList [ d ? 'add' : 'remove' ] ) ,
a . a . q ( c . match ( r ) , function ( a ) {
h . call ( b . classList , a )
} ) )
: 'string' === typeof b . className . baseVal
? e ( b . className , 'baseVal' , c , d )
: e ( b , 'className' , c , d ) )
} ,
Za : function ( b , c ) {
var d = a . a . c ( c )
if ( null === d || d === n ) d = ''
var e = a . f . firstChild ( b )
! e || 3 != e . nodeType || a . f . nextSibling ( e )
? a . f . da ( b , [ b . ownerDocument . createTextNode ( d ) ] )
: ( e . data = d )
a . a . Rc ( b )
} ,
rc : function ( a , b ) {
a . name = b
if ( 7 >= h )
try {
a . mergeAttributes (
u . createElement ( "<input name='" + a . name + "'/>" ) ,
! 1
)
} catch ( c ) { }
} ,
Rc : function ( a ) {
9 <= h &&
( ( a = 1 == a . nodeType ? a : a . parentNode ) ,
a . style && ( a . style . zoom = a . style . zoom ) )
} ,
Nc : function ( a ) {
if ( h ) {
var b = a . style . width
a . style . width = 0
a . style . width = b
}
} ,
hd : function ( b , c ) {
b = a . a . c ( b )
c = a . a . c ( c )
for ( var d = [ ] , e = b ; e <= c ; e ++ ) d . push ( e )
return d
} ,
V : function ( a ) {
for ( var b = [ ] , c = 0 , d = a . length ; c < d ; c ++ ) b . push ( a [ c ] )
return b
} ,
Yb : function ( a ) {
return g ? Symbol ( a ) : a
} ,
rd : 6 === h ,
sd : 7 === h ,
C : h ,
ec : function ( b , c ) {
for (
var d = a . a
. V ( b . getElementsByTagName ( 'input' ) )
. concat ( a . a . V ( b . getElementsByTagName ( 'textarea' ) ) ) ,
e =
'string' == typeof c
? function ( a ) {
return a . name === c
}
: function ( a ) {
return c . test ( a . name )
} ,
h = [ ] ,
m = d . length - 1 ;
0 <= m ;
m --
)
e ( d [ m ] ) && h . push ( d [ m ] )
return h
} ,
ed : function ( b ) {
return 'string' == typeof b && ( b = a . a . $a ( b ) )
? F && F . parse
? F . parse ( b )
: new Function ( 'return ' + b ) ( )
: null
} ,
Eb : function ( b , c , d ) {
if ( ! F || ! F . stringify )
throw Error (
"Cannot find JSON.stringify(). Some browsers (e.g., IE < 8) don't support it natively, but you can overcome this by adding a script reference to json2.js, downloadable from http://www.json.org/json2.js"
)
return F . stringify ( a . a . c ( b ) , c , d )
} ,
fd : function ( c , d , e ) {
e = e || { }
var h = e . params || { } ,
m = e . includeFields || this . cc ,
l = c
if ( 'object' == typeof c && 'form' === a . a . A ( c ) )
for ( var l = c . action , f = m . length - 1 ; 0 <= f ; f -- )
for ( var g = a . a . ec ( c , m [ f ] ) , k = g . length - 1 ; 0 <= k ; k -- )
h [ g [ k ] . name ] = g [ k ] . value
d = a . a . c ( d )
var r = u . createElement ( 'form' )
r . style . display = 'none'
r . action = l
r . method = 'post'
for ( var n in d )
( c = u . createElement ( 'input' ) ) ,
( c . type = 'hidden' ) ,
( c . name = n ) ,
( c . value = a . a . Eb ( a . a . c ( d [ n ] ) ) ) ,
r . appendChild ( c )
b ( h , function ( a , b ) {
var c = u . createElement ( 'input' )
c . type = 'hidden'
c . name = a
c . value = b
r . appendChild ( c )
} )
u . body . appendChild ( r )
e . submitter ? e . submitter ( r ) : r . submit ( )
setTimeout ( function ( ) {
r . parentNode . removeChild ( r )
} , 0 )
}
}
} ) ( )
a . b ( 'utils' , a . a )
a . b ( 'utils.arrayForEach' , a . a . q )
a . b ( 'utils.arrayFirst' , a . a . Sb )
a . b ( 'utils.arrayFilter' , a . a . Ka )
a . b ( 'utils.arrayGetDistinctValues' , a . a . Tb )
a . b ( 'utils.arrayIndexOf' , a . a . o )
a . b ( 'utils.arrayMap' , a . a . fb )
a . b ( 'utils.arrayPushAll' , a . a . ra )
a . b ( 'utils.arrayRemoveItem' , a . a . La )
a . b ( 'utils.extend' , a . a . extend )
a . b ( 'utils.fieldsIncludedWithJsonPost' , a . a . cc )
a . b ( 'utils.getFormFields' , a . a . ec )
a . b ( 'utils.peekObservable' , a . a . zb )
a . b ( 'utils.postJson' , a . a . fd )
a . b ( 'utils.parseJson' , a . a . ed )
a . b ( 'utils.registerEventHandler' , a . a . p )
a . b ( 'utils.stringifyJson' , a . a . Eb )
a . b ( 'utils.range' , a . a . hd )
a . b ( 'utils.toggleDomNodeCssClass' , a . a . bb )
a . b ( 'utils.triggerEvent' , a . a . Da )
a . b ( 'utils.unwrapObservable' , a . a . c )
a . b ( 'utils.objectForEach' , a . a . D )
a . b ( 'utils.addOrRemoveItem' , a . a . pa )
a . b ( 'utils.setTextContent' , a . a . Za )
a . b ( 'unwrap' , a . a . c )
Function . prototype . bind ||
( Function . prototype . bind = function ( a ) {
var c = this
if ( 1 === arguments . length )
return function ( ) {
return c . apply ( a , arguments )
}
var d = Array . prototype . slice . call ( arguments , 1 )
return function ( ) {
var e = d . slice ( 0 )
e . push . apply ( e , arguments )
return c . apply ( a , e )
}
} )
a . a . e = new ( function ( ) {
function a ( b , g ) {
var k = b [ d ]
if ( ! k || 'null' === k || ! e [ k ] ) {
if ( ! g ) return n
k = b [ d ] = 'ko' + c ++
e [ k ] = { }
}
return e [ k ]
}
var c = 0 ,
d = '__ko__' + new Date ( ) . getTime ( ) ,
e = { }
return {
get : function ( c , d ) {
var e = a ( c , ! 1 )
return e === n ? n : e [ d ]
} ,
set : function ( c , d , e ) {
if ( e !== n || a ( c , ! 1 ) !== n ) a ( c , ! 0 ) [ d ] = e
} ,
clear : function ( a ) {
var b = a [ d ]
return b ? ( delete e [ b ] , ( a [ d ] = null ) , ! 0 ) : ! 1
} ,
I : function ( ) {
return c ++ + d
}
}
} ) ( )
a . b ( 'utils.domData' , a . a . e )
a . b ( 'utils.domData.clear' , a . a . e . clear )
a . a . F = new ( function ( ) {
function b ( b , c ) {
var e = a . a . e . get ( b , d )
e === n && c && ( ( e = [ ] ) , a . a . e . set ( b , d , e ) )
return e
}
function c ( d ) {
var e = b ( d , ! 1 )
if ( e ) for ( var e = e . slice ( 0 ) , l = 0 ; l < e . length ; l ++ ) e [ l ] ( d )
a . a . e . clear ( d )
a . a . F . cleanExternalData ( d )
if ( f [ d . nodeType ] )
for ( e = d . firstChild ; ( d = e ) ; )
( e = d . nextSibling ) , 8 === d . nodeType && c ( d )
}
var d = a . a . e . I ( ) ,
e = { 1 : ! 0 , 8 : ! 0 , 9 : ! 0 } ,
f = { 1 : ! 0 , 9 : ! 0 }
return {
oa : function ( a , c ) {
if ( 'function' != typeof c )
throw Error ( 'Callback must be a function' )
b ( a , ! 0 ) . push ( c )
} ,
pc : function ( c , e ) {
var l = b ( c , ! 1 )
l && ( a . a . La ( l , e ) , 0 == l . length && a . a . e . set ( c , d , n ) )
} ,
$ : function ( b ) {
if ( e [ b . nodeType ] && ( c ( b ) , f [ b . nodeType ] ) ) {
var d = [ ]
a . a . ra ( d , b . getElementsByTagName ( '*' ) )
for ( var l = 0 , m = d . length ; l < m ; l ++ ) c ( d [ l ] )
}
return b
} ,
removeNode : function ( b ) {
a . $ ( b )
b . parentNode && b . parentNode . removeChild ( b )
} ,
cleanExternalData : function ( a ) {
v && 'function' == typeof v . cleanData && v . cleanData ( [ a ] )
}
}
} ) ( )
a . $ = a . a . F . $
a . removeNode = a . a . F . removeNode
a . b ( 'cleanNode' , a . $ )
a . b ( 'removeNode' , a . removeNode )
a . b ( 'utils.domNodeDisposal' , a . a . F )
a . b ( 'utils.domNodeDisposal.addDisposeCallback' , a . a . F . oa )
a . b ( 'utils.domNodeDisposal.removeDisposeCallback' , a . a . F . pc )
; ( function ( ) {
var b = [ 0 , '' , '' ] ,
c = [ 1 , '<table>' , '</table>' ] ,
d = [ 3 , '<table><tbody><tr>' , '</tr></tbody></table>' ] ,
e = [ 1 , "<select multiple='multiple'>" , '</select>' ] ,
f = {
thead : c ,
tbody : c ,
tfoot : c ,
tr : [ 2 , '<table><tbody>' , '</tbody></table>' ] ,
td : d ,
th : d ,
option : e ,
optgroup : e
} ,
g = 8 >= a . a . C
a . a . ma = function ( c , d ) {
var e
if ( v )
if ( v . parseHTML ) e = v . parseHTML ( c , d ) || [ ]
else {
if ( ( e = v . clean ( [ c ] , d ) ) && e [ 0 ] ) {
for (
var h = e [ 0 ] ;
h . parentNode && 11 !== h . parentNode . nodeType ;
)
h = h . parentNode
h . parentNode && h . parentNode . removeChild ( h )
}
}
else {
; ( e = d ) || ( e = u )
var h = e . parentWindow || e . defaultView || x ,
r = a . a . $a ( c ) . toLowerCase ( ) ,
q = e . createElement ( 'div' ) ,
p
p = ( ( r = r . match ( /^<([a-z]+)[ >]/ ) ) && f [ r [ 1 ] ] ) || b
r = p [ 0 ]
p = 'ignored<div>' + p [ 1 ] + c + p [ 2 ] + '</div>'
'function' == typeof h . innerShiv
? q . appendChild ( h . innerShiv ( p ) )
: ( g && e . appendChild ( q ) ,
( q . innerHTML = p ) ,
g && q . parentNode . removeChild ( q ) )
for ( ; r -- ; ) q = q . lastChild
e = a . a . V ( q . lastChild . childNodes )
}
return e
}
a . a . Cb = function ( b , c ) {
a . a . ob ( b )
c = a . a . c ( c )
if ( null !== c && c !== n )
if ( ( 'string' != typeof c && ( c = c . toString ( ) ) , v ) )
v ( b ) . html ( c )
else
for (
var d = a . a . ma ( c , b . ownerDocument ) , e = 0 ;
e < d . length ;
e ++
)
b . appendChild ( d [ e ] )
}
} ) ( )
a . b ( 'utils.parseHtmlFragment' , a . a . ma )
a . b ( 'utils.setHtml' , a . a . Cb )
a . M = ( function ( ) {
function b ( c , e ) {
if ( c )
if ( 8 == c . nodeType ) {
var f = a . M . lc ( c . nodeValue )
null != f && e . push ( { Lc : c , cd : f } )
} else if ( 1 == c . nodeType )
for ( var f = 0 , g = c . childNodes , k = g . length ; f < k ; f ++ )
b ( g [ f ] , e )
}
var c = { }
return {
wb : function ( a ) {
if ( 'function' != typeof a )
throw Error (
'You can only pass a function to ko.memoization.memoize()'
)
var b =
( ( 4294967296 * ( 1 + Math . random ( ) ) ) | 0 )
. toString ( 16 )
. substring ( 1 ) +
( ( 4294967296 * ( 1 + Math . random ( ) ) ) | 0 )
. toString ( 16 )
. substring ( 1 )
c [ b ] = a
return '<!--[ko_memo:' + b + ']-->'
} ,
xc : function ( a , b ) {
var f = c [ a ]
if ( f === n )
throw Error (
"Couldn't find any memo with ID " +
a +
". Perhaps it's already been unmemoized."
)
try {
return f . apply ( null , b || [ ] ) , ! 0
} finally {
delete c [ a ]
}
} ,
yc : function ( c , e ) {
var f = [ ]
b ( c , f )
for ( var g = 0 , k = f . length ; g < k ; g ++ ) {
var l = f [ g ] . Lc ,
m = [ l ]
e && a . a . ra ( m , e )
a . M . xc ( f [ g ] . cd , m )
l . nodeValue = ''
l . parentNode && l . parentNode . removeChild ( l )
}
} ,
lc : function ( a ) {
return ( a = a . match ( /^\[ko_memo\:(.*?)\]$/ ) ) ? a [ 1 ] : null
}
}
} ) ( )
a . b ( 'memoization' , a . M )
a . b ( 'memoization.memoize' , a . M . wb )
a . b ( 'memoization.unmemoize' , a . M . xc )
a . b ( 'memoization.parseMemoText' , a . M . lc )
a . b ( 'memoization.unmemoizeDomNodeAndDescendants' , a . M . yc )
a . Y = ( function ( ) {
function b ( ) {
if ( e )
for ( var b = e , c = 0 , m ; g < e ; )
if ( ( m = d [ g ++ ] ) ) {
if ( g > b ) {
if ( 5e3 <= ++ c ) {
g = e
a . a . $b (
Error (
"'Too much recursion' after processing " +
c +
' task groups.'
)
)
break
}
b = e
}
try {
m ( )
} catch ( h ) {
a . a . $b ( h )
}
}
}
function c ( ) {
b ( )
g = e = d . length = 0
}
var d = [ ] ,
e = 0 ,
f = 1 ,
g = 0
return {
scheduler : x . MutationObserver
? ( function ( a ) {
var b = u . createElement ( 'div' )
new MutationObserver ( a ) . observe ( b , { attributes : ! 0 } )
return function ( ) {
b . classList . toggle ( 'foo' )
}
} ) ( c )
: u && 'onreadystatechange' in u . createElement ( 'script' )
? function ( a ) {
var b = u . createElement ( 'script' )
b . onreadystatechange = function ( ) {
b . onreadystatechange = null
u . documentElement . removeChild ( b )
b = null
a ( )
}
u . documentElement . appendChild ( b )
}
: function ( a ) {
setTimeout ( a , 0 )
} ,
Wa : function ( b ) {
e || a . Y . scheduler ( c )
d [ e ++ ] = b
return f ++
} ,
cancel : function ( a ) {
a -= f - e
a >= g && a < e && ( d [ a ] = null )
} ,
resetForTesting : function ( ) {
var a = e - g
g = e = d . length = 0
return a
} ,
md : b
}
} ) ( )
a . b ( 'tasks' , a . Y )
a . b ( 'tasks.schedule' , a . Y . Wa )
a . b ( 'tasks.runEarly' , a . Y . md )
a . ya = {
throttle : function ( b , c ) {
b . throttleEvaluation = c
var d = null
return a . B ( {
read : b ,
write : function ( e ) {
clearTimeout ( d )
d = a . a . setTimeout ( function ( ) {
b ( e )
} , c )
}
} )
} ,
rateLimit : function ( a , c ) {
var d , e , f
'number' == typeof c ? ( d = c ) : ( ( d = c . timeout ) , ( e = c . method ) )
a . cb = ! 1
f = 'notifyWhenChangesStop' == e ? V : U
a . Ta ( function ( a ) {
return f ( a , d )
} )
} ,
deferred : function ( b , c ) {
if ( ! 0 !== c )
throw Error (
"The 'deferred' extender only accepts the value 'true', because it is not supported to turn deferral off once enabled."
)
b . cb ||
( ( b . cb = ! 0 ) ,
b . Ta ( function ( c ) {
var e
return function ( ) {
a . Y . cancel ( e )
e = a . Y . Wa ( c )
b . notifySubscribers ( n , 'dirty' )
}
} ) )
} ,
notify : function ( a , c ) {
a . equalityComparer = 'always' == c ? null : J
}
}
var T = { undefined : 1 , boolean : 1 , number : 1 , string : 1 }
a . b ( 'extenders' , a . ya )
a . vc = function ( b , c , d ) {
this . ia = b
this . gb = c
this . Kc = d
this . R = ! 1
a . G ( this , 'dispose' , this . k )
}
a . vc . prototype . k = function ( ) {
this . R = ! 0
this . Kc ( )
}
a . J = function ( ) {
a . a . Ya ( this , D )
D . rb ( this )
}
var I = 'change' ,
D = {
rb : function ( a ) {
a . K = { }
a . Nb = 1
} ,
X : function ( b , c , d ) {
var e = this
d = d || I
var f = new a . vc ( e , c ? b . bind ( c ) : b , function ( ) {
a . a . La ( e . K [ d ] , f )
e . Ia && e . Ia ( d )
} )
e . sa && e . sa ( d )
e . K [ d ] || ( e . K [ d ] = [ ] )
e . K [ d ] . push ( f )
return f
} ,
notifySubscribers : function ( b , c ) {
c = c || I
c === I && this . zc ( )
if ( this . Pa ( c ) )
try {
a . l . Ub ( )
for ( var d = this . K [ c ] . slice ( 0 ) , e = 0 , f ; ( f = d [ e ] ) ; ++ e )
f . R || f . gb ( b )
} finally {
a . l . end ( )
}
} ,
Na : function ( ) {
return this . Nb
} ,
Uc : function ( a ) {
return this . Na ( ) !== a
} ,
zc : function ( ) {
++ this . Nb
} ,
Ta : function ( b ) {
var c = this ,
d = a . H ( c ) ,
e ,
f ,
g
c . Ha ||
( ( c . Ha = c . notifySubscribers ) , ( c . notifySubscribers = W ) )
var k = b ( function ( ) {
c . Mb = ! 1
d && g === c && ( g = c ( ) )
e = ! 1
c . tb ( f , g ) && c . Ha ( ( f = g ) )
} )
c . Lb = function ( a ) {
c . Mb = e = ! 0
g = a
k ( )
}
c . Kb = function ( a ) {
e || ( ( f = a ) , c . Ha ( a , 'beforeChange' ) )
}
} ,
Pa : function ( a ) {
return this . K [ a ] && this . K [ a ] . length
} ,
Sc : function ( b ) {
if ( b ) return ( this . K [ b ] && this . K [ b ] . length ) || 0
var c = 0
a . a . D ( this . K , function ( a , b ) {
'dirty' !== a && ( c += b . length )
} )
return c
} ,
tb : function ( a , c ) {
return ! this . equalityComparer || ! this . equalityComparer ( a , c )
} ,
extend : function ( b ) {
var c = this
b &&
a . a . D ( b , function ( b , e ) {
var f = a . ya [ b ]
'function' == typeof f && ( c = f ( c , e ) || c )
} )
return c
}
}
a . G ( D , 'subscribe' , D . X )
a . G ( D , 'extend' , D . extend )
a . G ( D , 'getSubscriptionsCount' , D . Sc )
a . a . ka && a . a . Xa ( D , Function . prototype )
a . J . fn = D
a . hc = function ( a ) {
return (
null != a &&
'function' == typeof a . X &&
'function' == typeof a . notifySubscribers
)
}
a . b ( 'subscribable' , a . J )
a . b ( 'isSubscribable' , a . hc )
a . va = a . l = ( function ( ) {
function b ( a ) {
d . push ( e )
e = a
}
function c ( ) {
e = d . pop ( )
}
var d = [ ] ,
e ,
f = 0
return {
Ub : b ,
end : c ,
oc : function ( b ) {
if ( e ) {
if ( ! a . hc ( b ) )
throw Error (
'Only subscribable things can act as dependencies'
)
e . gb . call ( e . Gc , b , b . Cc || ( b . Cc = ++ f ) )
}
} ,
w : function ( a , d , e ) {
try {
return b ( ) , a . apply ( d , e || [ ] )
} finally {
c ( )
}
} ,
Aa : function ( ) {
if ( e ) return e . m . Aa ( )
} ,
Sa : function ( ) {
if ( e ) return e . Sa
}
}
} ) ( )
a . b ( 'computedContext' , a . va )
a . b ( 'computedContext.getDependenciesCount' , a . va . Aa )
a . b ( 'computedContext.isInitial' , a . va . Sa )
a . b ( 'ignoreDependencies' , ( a . qd = a . l . w ) )
var E = a . a . Yb ( '_latestValue' )
a . N = function ( b ) {
function c ( ) {
if ( 0 < arguments . length )
return (
c . tb ( c [ E ] , arguments [ 0 ] ) &&
( c . ga ( ) , ( c [ E ] = arguments [ 0 ] ) , c . fa ( ) ) ,
this
)
a . l . oc ( c )
return c [ E ]
}
c [ E ] = b
a . a . ka || a . a . extend ( c , a . J . fn )
a . J . fn . rb ( c )
a . a . Ya ( c , B )
a . options . deferUpdates && a . ya . deferred ( c , ! 0 )
return c
}
var B = {
equalityComparer : J ,
t : function ( ) {
return this [ E ]
} ,
fa : function ( ) {
this . notifySubscribers ( this [ E ] )
} ,
ga : function ( ) {
this . notifySubscribers ( this [ E ] , 'beforeChange' )
}
}
a . a . ka && a . a . Xa ( B , a . J . fn )
var H = ( a . N . gd = '__ko_proto__' )
B [ H ] = a . N
a . Oa = function ( b , c ) {
return null === b || b === n || b [ H ] === n
? ! 1
: b [ H ] === c
? ! 0
: a . Oa ( b [ H ] , c )
}
a . H = function ( b ) {
return a . Oa ( b , a . N )
}
a . Ba = function ( b ) {
return ( 'function' == typeof b && b [ H ] === a . N ) ||
( 'function' == typeof b && b [ H ] === a . B && b . Vc )
? ! 0
: ! 1
}
a . b ( 'observable' , a . N )
a . b ( 'isObservable' , a . H )
a . b ( 'isWriteableObservable' , a . Ba )
a . b ( 'isWritableObservable' , a . Ba )
a . b ( 'observable.fn' , B )
a . G ( B , 'peek' , B . t )
a . G ( B , 'valueHasMutated' , B . fa )
a . G ( B , 'valueWillMutate' , B . ga )
a . la = function ( b ) {
b = b || [ ]
if ( 'object' != typeof b || ! ( 'length' in b ) )
throw Error (
'The argument passed when initializing an observable array must be an array, or null, or undefined.'
)
b = a . N ( b )
a . a . Ya ( b , a . la . fn )
return b . extend ( { trackArrayChanges : ! 0 } )
}
a . la . fn = {
remove : function ( b ) {
for (
var c = this . t ( ) ,
d = [ ] ,
e =
'function' != typeof b || a . H ( b )
? function ( a ) {
return a === b
}
: b ,
f = 0 ;
f < c . length ;
f ++
) {
var g = c [ f ]
e ( g ) &&
( 0 === d . length && this . ga ( ) , d . push ( g ) , c . splice ( f , 1 ) , f -- )
}
d . length && this . fa ( )
return d
} ,
removeAll : function ( b ) {
if ( b === n ) {
var c = this . t ( ) ,
d = c . slice ( 0 )
this . ga ( )
c . splice ( 0 , c . length )
this . fa ( )
return d
}
return b
? this . remove ( function ( c ) {
return 0 <= a . a . o ( b , c )
} )
: [ ]
} ,
destroy : function ( b ) {
var c = this . t ( ) ,
d =
'function' != typeof b || a . H ( b )
? function ( a ) {
return a === b
}
: b
this . ga ( )
for ( var e = c . length - 1 ; 0 <= e ; e -- )
d ( c [ e ] ) && ( c [ e ] . _destroy = ! 0 )
this . fa ( )
} ,
destroyAll : function ( b ) {
return b === n
? this . destroy ( function ( ) {
return ! 0
} )
: b
? this . destroy ( function ( c ) {
return 0 <= a . a . o ( b , c )
} )
: [ ]
} ,
indexOf : function ( b ) {
var c = this ( )
return a . a . o ( c , b )
} ,
replace : function ( a , c ) {
var d = this . indexOf ( a )
0 <= d && ( this . ga ( ) , ( this . t ( ) [ d ] = c ) , this . fa ( ) )
}
}
a . a . ka && a . a . Xa ( a . la . fn , a . N . fn )
a . a . q (
'pop push reverse shift sort splice unshift' . split ( ' ' ) ,
function ( b ) {
a . la . fn [ b ] = function ( ) {
var a = this . t ( )
this . ga ( )
this . Vb ( a , b , arguments )
var d = a [ b ] . apply ( a , arguments )
this . fa ( )
return d === a ? this : d
}
}
)
a . a . q ( [ 'slice' ] , function ( b ) {
a . la . fn [ b ] = function ( ) {
var a = this ( )
return a [ b ] . apply ( a , arguments )
}
} )
a . b ( 'observableArray' , a . la )
a . ya . trackArrayChanges = function ( b , c ) {
function d ( ) {
if ( ! e ) {
e = ! 0
var c = b . notifySubscribers
b . notifySubscribers = function ( a , b ) {
; ( b && b !== I ) || ++ k
return c . apply ( this , arguments )
}
var d = [ ] . concat ( b . t ( ) || [ ] )
f = null
g = b . X ( function ( c ) {
c = [ ] . concat ( c || [ ] )
if ( b . Pa ( 'arrayChange' ) ) {
var e
if ( ! f || 1 < k ) f = a . a . ib ( d , c , b . hb )
e = f
}
d = c
f = null
k = 0
e && e . length && b . notifySubscribers ( e , 'arrayChange' )
} )
}
}
b . hb = { }
c && 'object' == typeof c && a . a . extend ( b . hb , c )
b . hb . sparse = ! 0
if ( ! b . Vb ) {
var e = ! 1 ,
f = null ,
g ,
k = 0 ,
l = b . sa ,
m = b . Ia
b . sa = function ( a ) {
l && l . call ( b , a )
'arrayChange' === a && d ( )
}
b . Ia = function ( a ) {
m && m . call ( b , a )
'arrayChange' !== a || b . Pa ( 'arrayChange' ) || ( g . k ( ) , ( e = ! 1 ) )
}
b . Vb = function ( b , c , d ) {
function m ( a , b , c ) {
return ( l [ l . length ] = { status : a , value : b , index : c } )
}
if ( e && ! k ) {
var l = [ ] ,
g = b . length ,
t = d . length ,
G = 0
switch ( c ) {
case 'push' :
G = g
case 'unshift' :
for ( c = 0 ; c < t ; c ++ ) m ( 'added' , d [ c ] , G + c )
break
case 'pop' :
G = g - 1
case 'shift' :
g && m ( 'deleted' , b [ G ] , G )
break
case 'splice' :
c = Math . min ( Math . max ( 0 , 0 > d [ 0 ] ? g + d [ 0 ] : d [ 0 ] ) , g )
for (
var g = 1 === t ? g : Math . min ( c + ( d [ 1 ] || 0 ) , g ) ,
t = c + t - 2 ,
G = Math . max ( g , t ) ,
P = [ ] ,
n = [ ] ,
Q = 2 ;
c < G ;
++ c , ++ Q
)
c < g && n . push ( m ( 'deleted' , b [ c ] , c ) ) ,
c < t && P . push ( m ( 'added' , d [ Q ] , c ) )
a . a . dc ( n , P )
break
default :
return
}
f = l
}
}
}
}
var s = a . a . Yb ( '_state' )
a . m = a . B = function ( b , c , d ) {
function e ( ) {
if ( 0 < arguments . length ) {
if ( 'function' === typeof f ) f . apply ( g . pb , arguments )
else
throw Error (
"Cannot write a value to a ko.computed unless you specify a 'write' option. If you wish to read the current value, don't pass any parameters."
)
return this
}
a . l . oc ( e )
; ( g . S || ( g . s && e . Qa ( ) ) ) && e . aa ( )
return g . T
}
'object' === typeof b ? ( d = b ) : ( ( d = d || { } ) , b && ( d . read = b ) )
if ( 'function' != typeof d . read )
throw Error (
'Pass a function that returns the value of the ko.computed'
)
var f = d . write ,
g = {
T : n ,
S : ! 0 ,
Ra : ! 1 ,
Fb : ! 1 ,
R : ! 1 ,
Va : ! 1 ,
s : ! 1 ,
jd : d . read ,
pb : c || d . owner ,
i : d . disposeWhenNodeIsRemoved || d . i || null ,
wa : d . disposeWhen || d . wa ,
mb : null ,
r : { } ,
L : 0 ,
bc : null
}
e [ s ] = g
e . Vc = 'function' === typeof f
a . a . ka || a . a . extend ( e , a . J . fn )
a . J . fn . rb ( e )
a . a . Ya ( e , z )
d . pure
? ( ( g . Va = ! 0 ) , ( g . s = ! 0 ) , a . a . extend ( e , $ ) )
: d . deferEvaluation && a . a . extend ( e , aa )
a . options . deferUpdates && a . ya . deferred ( e , ! 0 )
g . i && ( ( g . Fb = ! 0 ) , g . i . nodeType || ( g . i = null ) )
g . s || d . deferEvaluation || e . aa ( )
g . i &&
e . ba ( ) &&
a . a . F . oa (
g . i ,
( g . mb = function ( ) {
e . k ( )
} )
)
return e
}
var z = {
equalityComparer : J ,
Aa : function ( ) {
return this [ s ] . L
} ,
Pb : function ( a , c , d ) {
if ( this [ s ] . Va && c === this )
throw Error (
"A 'pure' computed must not be called recursively"
)
this [ s ] . r [ a ] = d
d . Ga = this [ s ] . L ++
d . na = c . Na ( )
} ,
Qa : function ( ) {
var a ,
c ,
d = this [ s ] . r
for ( a in d )
if ( d . hasOwnProperty ( a ) && ( ( c = d [ a ] ) , c . ia . Uc ( c . na ) ) )
return ! 0
} ,
bd : function ( ) {
this . Fa && ! this [ s ] . Ra && this . Fa ( )
} ,
ba : function ( ) {
return this [ s ] . S || 0 < this [ s ] . L
} ,
ld : function ( ) {
this . Mb || this . ac ( )
} ,
uc : function ( a ) {
if ( a . cb && ! this [ s ] . i ) {
var c = a . X ( this . bd , this , 'dirty' ) ,
d = a . X ( this . ld , this )
return {
ia : a ,
k : function ( ) {
c . k ( )
d . k ( )
}
}
}
return a . X ( this . ac , this )
} ,
ac : function ( ) {
var b = this ,
c = b . throttleEvaluation
c && 0 <= c
? ( clearTimeout ( this [ s ] . bc ) ,
( this [ s ] . bc = a . a . setTimeout ( function ( ) {
b . aa ( ! 0 )
} , c ) ) )
: b . Fa
? b . Fa ( )
: b . aa ( ! 0 )
} ,
aa : function ( b ) {
var c = this [ s ] ,
d = c . wa
if ( ! c . Ra && ! c . R ) {
if ( ( c . i && ! a . a . nb ( c . i ) ) || ( d && d ( ) ) ) {
if ( ! c . Fb ) {
this . k ( )
return
}
} else c . Fb = ! 1
c . Ra = ! 0
try {
this . Qc ( b )
} finally {
c . Ra = ! 1
}
c . L || this . k ( )
}
} ,
Qc : function ( b ) {
var c = this [ s ] ,
d = c . Va ? n : ! c . L ,
e = { Hc : this , Ma : c . r , lb : c . L }
a . l . Ub ( { Gc : e , gb : Y , m : this , Sa : d } )
c . r = { }
c . L = 0
e = this . Pc ( c , e )
this . tb ( c . T , e ) &&
( c . s || this . notifySubscribers ( c . T , 'beforeChange' ) ,
( c . T = e ) ,
c . s ? this . zc ( ) : b && this . notifySubscribers ( c . T ) )
d && this . notifySubscribers ( c . T , 'awake' )
} ,
Pc : function ( b , c ) {
try {
var d = b . jd
return b . pb ? d . call ( b . pb ) : d ( )
} finally {
a . l . end ( ) , c . lb && ! b . s && a . a . D ( c . Ma , X ) , ( b . S = ! 1 )
}
} ,
t : function ( ) {
var a = this [ s ]
; ( ( a . S && ! a . L ) || ( a . s && this . Qa ( ) ) ) && this . aa ( )
return a . T
} ,
Ta : function ( b ) {
a . J . fn . Ta . call ( this , b )
this . Fa = function ( ) {
this . Kb ( this [ s ] . T )
this [ s ] . S = ! 0
this . Lb ( this )
}
} ,
k : function ( ) {
var b = this [ s ]
! b . s &&
b . r &&
a . a . D ( b . r , function ( a , b ) {
b . k && b . k ( )
} )
b . i && b . mb && a . a . F . pc ( b . i , b . mb )
b . r = null
b . L = 0
b . R = ! 0
b . S = ! 1
b . s = ! 1
b . i = null
}
} ,
$ = {
sa : function ( b ) {
var c = this ,
d = c [ s ]
if ( ! d . R && d . s && 'change' == b ) {
d . s = ! 1
if ( d . S || c . Qa ( ) ) ( d . r = null ) , ( d . L = 0 ) , ( d . S = ! 0 ) , c . aa ( )
else {
var e = [ ]
a . a . D ( d . r , function ( a , b ) {
e [ b . Ga ] = a
} )
a . a . q ( e , function ( a , b ) {
var e = d . r [ a ] ,
l = c . uc ( e . ia )
l . Ga = b
l . na = e . na
d . r [ a ] = l
} )
}
d . R || c . notifySubscribers ( d . T , 'awake' )
}
} ,
Ia : function ( b ) {
var c = this [ s ]
c . R ||
'change' != b ||
this . Pa ( 'change' ) ||
( a . a . D ( c . r , function ( a , b ) {
b . k && ( ( c . r [ a ] = { ia : b . ia , Ga : b . Ga , na : b . na } ) , b . k ( ) )
} ) ,
( c . s = ! 0 ) ,
this . notifySubscribers ( n , 'asleep' ) )
} ,
Na : function ( ) {
var b = this [ s ]
b . s && ( b . S || this . Qa ( ) ) && this . aa ( )
return a . J . fn . Na . call ( this )
}
} ,
aa = {
sa : function ( a ) {
; ( 'change' != a && 'beforeChange' != a ) || this . t ( )
}
}
a . a . ka && a . a . Xa ( z , a . J . fn )
var R = a . N . gd
a . m [ R ] = a . N
z [ R ] = a . m
a . Xc = function ( b ) {
return a . Oa ( b , a . m )
}
a . Yc = function ( b ) {
return a . Oa ( b , a . m ) && b [ s ] && b [ s ] . Va
}
a . b ( 'computed' , a . m )
a . b ( 'dependentObservable' , a . m )
a . b ( 'isComputed' , a . Xc )
a . b ( 'isPureComputed' , a . Yc )
a . b ( 'computed.fn' , z )
a . G ( z , 'peek' , z . t )
a . G ( z , 'dispose' , z . k )
a . G ( z , 'isActive' , z . ba )
a . G ( z , 'getDependenciesCount' , z . Aa )
a . nc = function ( b , c ) {
if ( 'function' === typeof b ) return a . m ( b , c , { pure : ! 0 } )
b = a . a . extend ( { } , b )
b . pure = ! 0
return a . m ( b , c )
}
a . b ( 'pureComputed' , a . nc )
; ( function ( ) {
function b ( a , f , g ) {
g = g || new d ( )
a = f ( a )
if (
'object' != typeof a ||
null === a ||
a === n ||
a instanceof RegExp ||
a instanceof Date ||
a instanceof String ||
a instanceof Number ||
a instanceof Boolean
)
return a
var k = a instanceof Array ? [ ] : { }
g . save ( a , k )
c ( a , function ( c ) {
var d = f ( a [ c ] )
switch ( typeof d ) {
case 'boolean' :
case 'number' :
case 'string' :
case 'function' :
k [ c ] = d
break
case 'object' :
case 'undefined' :
var h = g . get ( d )
k [ c ] = h !== n ? h : b ( d , f , g )
}
} )
return k
}
function c ( a , b ) {
if ( a instanceof Array ) {
for ( var c = 0 ; c < a . length ; c ++ ) b ( c )
'function' == typeof a . toJSON && b ( 'toJSON' )
} else for ( c in a ) b ( c )
}
function d ( ) {
this . keys = [ ]
this . Ib = [ ]
}
a . wc = function ( c ) {
if ( 0 == arguments . length )
throw Error (
'When calling ko.toJS, pass the object you want to convert.'
)
return b ( c , function ( b ) {
for ( var c = 0 ; a . H ( b ) && 10 > c ; c ++ ) b = b ( )
return b
} )
}
a . toJSON = function ( b , c , d ) {
b = a . wc ( b )
return a . a . Eb ( b , c , d )
}
d . prototype = {
save : function ( b , c ) {
var d = a . a . o ( this . keys , b )
0 <= d ? ( this . Ib [ d ] = c ) : ( this . keys . push ( b ) , this . Ib . push ( c ) )
} ,
get : function ( b ) {
b = a . a . o ( this . keys , b )
return 0 <= b ? this . Ib [ b ] : n
}
}
} ) ( )
a . b ( 'toJS' , a . wc )
a . b ( 'toJSON' , a . toJSON )
; ( function ( ) {
a . j = {
u : function ( b ) {
switch ( a . a . A ( b ) ) {
case 'option' :
return ! 0 === b . _ _ko _ _hasDomDataOptionValue _ _
? a . a . e . get ( b , a . d . options . xb )
: 7 >= a . a . C
? b . getAttributeNode ( 'value' ) &&
b . getAttributeNode ( 'value' ) . specified
? b . value
: b . text
: b . value
case 'select' :
return 0 <= b . selectedIndex
? a . j . u ( b . options [ b . selectedIndex ] )
: n
default :
return b . value
}
} ,
ha : function ( b , c , d ) {
switch ( a . a . A ( b ) ) {
case 'option' :
switch ( typeof c ) {
case 'string' :
a . a . e . set ( b , a . d . options . xb , n )
'__ko__hasDomDataOptionValue__' in b &&
delete b . _ _ko _ _hasDomDataOptionValue _ _
b . value = c
break
default :
a . a . e . set ( b , a . d . options . xb , c ) ,
( b . _ _ko _ _hasDomDataOptionValue _ _ = ! 0 ) ,
( b . value = 'number' === typeof c ? c : '' )
}
break
case 'select' :
if ( '' === c || null === c ) c = n
for ( var e = - 1 , f = 0 , g = b . options . length , k ; f < g ; ++ f )
if (
( ( k = a . j . u ( b . options [ f ] ) ) ,
k == c || ( '' == k && c === n ) )
) {
e = f
break
}
if ( d || 0 <= e || ( c === n && 1 < b . size ) )
b . selectedIndex = e
break
default :
if ( null === c || c === n ) c = ''
b . value = c
}
}
}
} ) ( )
a . b ( 'selectExtensions' , a . j )
a . b ( 'selectExtensions.readValue' , a . j . u )
a . b ( 'selectExtensions.writeValue' , a . j . ha )
a . h = ( function ( ) {
function b ( b ) {
b = a . a . $a ( b )
123 === b . charCodeAt ( 0 ) && ( b = b . slice ( 1 , - 1 ) )
var c = [ ] ,
d = b . match ( e ) ,
r ,
k = [ ] ,
p = 0
if ( d ) {
d . push ( ',' )
for ( var A = 0 , y ; ( y = d [ A ] ) ; ++ A ) {
var t = y . charCodeAt ( 0 )
if ( 44 === t ) {
if ( 0 >= p ) {
c . push (
r && k . length
? { key : r , value : k . join ( '' ) }
: { unknown : r || k . join ( '' ) }
)
r = p = 0
k = [ ]
continue
}
} else if ( 58 === t ) {
if ( ! p && ! r && 1 === k . length ) {
r = k . pop ( )
continue
}
} else
47 === t && A && 1 < y . length
? ( t = d [ A - 1 ] . match ( f ) ) &&
! g [ t [ 0 ] ] &&
( ( b = b . substr ( b . indexOf ( y ) + 1 ) ) ,
( d = b . match ( e ) ) ,
d . push ( ',' ) ,
( A = - 1 ) ,
( y = '/' ) )
: 40 === t || 123 === t || 91 === t
? ++ p
: 41 === t || 125 === t || 93 === t
? -- p
: r ||
k . length ||
( 34 !== t && 39 !== t ) ||
( y = y . slice ( 1 , - 1 ) )
k . push ( y )
}
}
return c
}
var c = [ 'true' , 'false' , 'null' , 'undefined' ] ,
d = /^(?:[$_a-z][$\w]*|(.+)(\.\s*[$_a-z][$\w]*|\[.+\]))$/i ,
e = RegExp (
'"(?:[^"\\\\]|\\\\.)*"|\'(?:[^\'\\\\]|\\\\.)*\'|/(?:[^/\\\\]|\\\\.)*/w*|[^\\s:,/][^,"\'{}()/:[\\]]*[^\\s,"\'{}()/:[\\]]|[^\\s]' ,
'g'
) ,
f = /[\])"'A-Za-z0-9_$]+$/ ,
g = { in : 1 , return : 1 , typeof : 1 } ,
k = { }
return {
ta : [ ] ,
ea : k ,
yb : b ,
Ua : function ( e , m ) {
function h ( b , e ) {
var m
if ( ! A ) {
var l = a . getBindingHandler ( b )
if ( l && l . preprocess && ! ( e = l . preprocess ( e , b , h ) ) )
return
if ( ( l = k [ b ] ) )
( m = e ) ,
0 <= a . a . o ( c , m )
? ( m = ! 1 )
: ( ( l = m . match ( d ) ) ,
( m =
null === l
? ! 1
: l [ 1 ]
? 'Object(' + l [ 1 ] + ')' + l [ 2 ]
: m ) ) ,
( l = m )
l && g . push ( "'" + b + "':function(_z){" + m + '=_z}' )
}
p && ( e = 'function(){return ' + e + ' }' )
f . push ( "'" + b + "':" + e )
}
m = m || { }
var f = [ ] ,
g = [ ] ,
p = m . valueAccessors ,
A = m . bindingParams ,
y = 'string' === typeof e ? b ( e ) : e
a . a . q ( y , function ( a ) {
h ( a . key || a . unknown , a . value )
} )
g . length && h ( '_ko_property_writers' , '{' + g . join ( ',' ) + ' }' )
return f . join ( ',' )
} ,
ad : function ( a , b ) {
for ( var c = 0 ; c < a . length ; c ++ ) if ( a [ c ] . key == b ) return ! 0
return ! 1
} ,
Ea : function ( b , c , d , e , f ) {
if ( b && a . H ( b ) ) ! a . Ba ( b ) || ( f && b . t ( ) === e ) || b ( e )
else if ( ( b = c . get ( '_ko_property_writers' ) ) && b [ d ] ) b [ d ] ( e )
}
}
} ) ( )
a . b ( 'expressionRewriting' , a . h )
a . b ( 'expressionRewriting.bindingRewriteValidators' , a . h . ta )
a . b ( 'expressionRewriting.parseObjectLiteral' , a . h . yb )
a . b ( 'expressionRewriting.preProcessBindings' , a . h . Ua )
a . b ( 'expressionRewriting._twoWayBindings' , a . h . ea )
a . b ( 'jsonExpressionRewriting' , a . h )
a . b ( 'jsonExpressionRewriting.insertPropertyAccessorsIntoJson' , a . h . Ua )
; ( function ( ) {
function b ( a ) {
return 8 == a . nodeType && g . test ( f ? a . text : a . nodeValue )
}
function c ( a ) {
return 8 == a . nodeType && k . test ( f ? a . text : a . nodeValue )
}
function d ( a , d ) {
for ( var e = a , f = 1 , l = [ ] ; ( e = e . nextSibling ) ; ) {
if ( c ( e ) && ( f -- , 0 === f ) ) return l
l . push ( e )
b ( e ) && f ++
}
if ( ! d )
throw Error (
'Cannot find closing comment tag to match: ' + a . nodeValue
)
return null
}
function e ( a , b ) {
var c = d ( a , b )
return c
? 0 < c . length
? c [ c . length - 1 ] . nextSibling
: a . nextSibling
: null
}
var f = u && '<!--test-->' === u . createComment ( 'test' ) . text ,
g = f
? /^\x3c!--\s*ko(?:\s+([\s\S]+))?\s*--\x3e$/
: /^\s*ko(?:\s+([\s\S]+))?\s*$/ ,
k = f ? /^\x3c!--\s*\/ko\s*--\x3e$/ : /^\s*\/ko\s*$/ ,
l = { ul : ! 0 , ol : ! 0 }
a . f = {
Z : { } ,
childNodes : function ( a ) {
return b ( a ) ? d ( a ) : a . childNodes
} ,
xa : function ( c ) {
if ( b ( c ) ) {
c = a . f . childNodes ( c )
for ( var d = 0 , e = c . length ; d < e ; d ++ ) a . removeNode ( c [ d ] )
} else a . a . ob ( c )
} ,
da : function ( c , d ) {
if ( b ( c ) ) {
a . f . xa ( c )
for ( var e = c . nextSibling , f = 0 , l = d . length ; f < l ; f ++ )
e . parentNode . insertBefore ( d [ f ] , e )
} else a . a . da ( c , d )
} ,
mc : function ( a , c ) {
b ( a )
? a . parentNode . insertBefore ( c , a . nextSibling )
: a . firstChild
? a . insertBefore ( c , a . firstChild )
: a . appendChild ( c )
} ,
gc : function ( c , d , e ) {
e
? b ( c )
? c . parentNode . insertBefore ( d , e . nextSibling )
: e . nextSibling
? c . insertBefore ( d , e . nextSibling )
: c . appendChild ( d )
: a . f . mc ( c , d )
} ,
firstChild : function ( a ) {
return b ( a )
? ! a . nextSibling || c ( a . nextSibling )
? null
: a . nextSibling
: a . firstChild
} ,
nextSibling : function ( a ) {
b ( a ) && ( a = e ( a ) )
return a . nextSibling && c ( a . nextSibling ) ? null : a . nextSibling
} ,
Tc : b ,
pd : function ( a ) {
return ( a = ( f ? a . text : a . nodeValue ) . match ( g ) ) ? a [ 1 ] : null
} ,
kc : function ( d ) {
if ( l [ a . a . A ( d ) ] ) {
var h = d . firstChild
if ( h ) {
do
if ( 1 === h . nodeType ) {
var f
f = h . firstChild
var g = null
if ( f ) {
do
if ( g ) g . push ( f )
else if ( b ( f ) ) {
var k = e ( f , ! 0 )
k ? ( f = k ) : ( g = [ f ] )
} else c ( f ) && ( g = [ f ] )
while ( ( f = f . nextSibling ) )
}
if ( ( f = g ) )
for ( g = h . nextSibling , k = 0 ; k < f . length ; k ++ )
g ? d . insertBefore ( f [ k ] , g ) : d . appendChild ( f [ k ] )
}
while ( ( h = h . nextSibling ) )
}
}
}
}
} ) ( )
a . b ( 'virtualElements' , a . f )
a . b ( 'virtualElements.allowedBindings' , a . f . Z )
a . b ( 'virtualElements.emptyNode' , a . f . xa )
a . b ( 'virtualElements.insertAfter' , a . f . gc )
a . b ( 'virtualElements.prepend' , a . f . mc )
a . b ( 'virtualElements.setDomNodeChildren' , a . f . da )
; ( function ( ) {
a . Q = function ( ) {
this . Fc = { }
}
a . a . extend ( a . Q . prototype , {
nodeHasBindings : function ( b ) {
switch ( b . nodeType ) {
case 1 :
return (
null != b . getAttribute ( 'data-bind' ) ||
a . g . getComponentNameForNode ( b )
)
case 8 :
return a . f . Tc ( b )
default :
return ! 1
}
} ,
getBindings : function ( b , c ) {
var d = this . getBindingsString ( b , c ) ,
d = d ? this . parseBindingsString ( d , c , b ) : null
return a . g . Ob ( d , b , c , ! 1 )
} ,
getBindingAccessors : function ( b , c ) {
var d = this . getBindingsString ( b , c ) ,
d = d
? this . parseBindingsString ( d , c , b , { valueAccessors : ! 0 } )
: null
return a . g . Ob ( d , b , c , ! 0 )
} ,
getBindingsString : function ( b ) {
switch ( b . nodeType ) {
case 1 :
return b . getAttribute ( 'data-bind' )
case 8 :
return a . f . pd ( b )
default :
return null
}
} ,
parseBindingsString : function ( b , c , d , e ) {
try {
var f = this . Fc ,
g = b + ( ( e && e . valueAccessors ) || '' ) ,
k
if ( ! ( k = f [ g ] ) ) {
var l ,
m =
'with($context){with($data||{}){return{' +
a . h . Ua ( b , e ) +
'}}}'
l = new Function ( '$context' , '$element' , m )
k = f [ g ] = l
}
return k ( c , d )
} catch ( h ) {
throw ( ( h . message =
'Unable to parse bindings.\nBindings value: ' +
b +
'\nMessage: ' +
h . message ) ,
h )
}
}
} )
a . Q . instance = new a . Q ( )
} ) ( )
a . b ( 'bindingProvider' , a . Q )
; ( function ( ) {
function b ( a ) {
return function ( ) {
return a
}
}
function c ( a ) {
return a ( )
}
function d ( b ) {
return a . a . Ca ( a . l . w ( b ) , function ( a , c ) {
return function ( ) {
return b ( ) [ c ]
}
} )
}
function e ( c , e , h ) {
return 'function' === typeof c
? d ( c . bind ( null , e , h ) )
: a . a . Ca ( c , b )
}
function f ( a , b ) {
return d ( this . getBindings . bind ( this , a , b ) )
}
function g ( b , c , d ) {
var e ,
h = a . f . firstChild ( c ) ,
f = a . Q . instance ,
m = f . preprocessNode
if ( m ) {
for ( ; ( e = h ) ; ) ( h = a . f . nextSibling ( e ) ) , m . call ( f , e )
h = a . f . firstChild ( c )
}
for ( ; ( e = h ) ; ) ( h = a . f . nextSibling ( e ) ) , k ( b , e , d )
}
function k ( b , c , d ) {
var e = ! 0 ,
h = 1 === c . nodeType
h && a . f . kc ( c )
if ( ( h && d ) || a . Q . instance . nodeHasBindings ( c ) )
e = m ( c , null , b , d ) . shouldBindDescendants
e && ! r [ a . a . A ( c ) ] && g ( b , c , ! h )
}
function l ( b ) {
var c = [ ] ,
d = { } ,
e = [ ]
a . a . D ( b , function Z ( h ) {
if ( ! d [ h ] ) {
var f = a . getBindingHandler ( h )
f &&
( f . after &&
( e . push ( h ) ,
a . a . q ( f . after , function ( c ) {
if ( b [ c ] ) {
if ( - 1 !== a . a . o ( e , c ) )
throw Error (
'Cannot combine the following bindings, because they have a cyclic dependency: ' +
e . join ( ', ' )
)
Z ( c )
}
} ) ,
e . length -- ) ,
c . push ( { key : h , fc : f } ) )
d [ h ] = ! 0
}
} )
return c
}
function m ( b , d , e , h ) {
var m = a . a . e . get ( b , q )
if ( ! d ) {
if ( m )
throw Error (
'You cannot apply bindings multiple times to the same element.'
)
a . a . e . set ( b , q , ! 0 )
}
! m && h && a . tc ( b , e )
var g
if ( d && 'function' !== typeof d ) g = d
else {
var k = a . Q . instance ,
r = k . getBindingAccessors || f ,
p = a . B (
function ( ) {
; ( g = d ? d ( e , b ) : r . call ( k , b , e ) ) && e . P && e . P ( )
return g
} ,
null ,
{ i : b }
)
; ( g && p . ba ( ) ) || ( p = null )
}
var u
if ( g ) {
var v = p
? function ( a ) {
return function ( ) {
return c ( p ( ) [ a ] )
}
}
: function ( a ) {
return g [ a ]
} ,
s = function ( ) {
return a . a . Ca ( p ? p ( ) : g , c )
}
s . get = function ( a ) {
return g [ a ] && c ( v ( a ) )
}
s . has = function ( a ) {
return a in g
}
h = l ( g )
a . a . q ( h , function ( c ) {
var d = c . fc . init ,
h = c . fc . update ,
f = c . key
if ( 8 === b . nodeType && ! a . f . Z [ f ] )
throw Error (
"The binding '" +
f +
"' cannot be used with virtual elements"
)
try {
'function' == typeof d &&
a . l . w ( function ( ) {
var a = d ( b , v ( f ) , s , e . $data , e )
if ( a && a . controlsDescendantBindings ) {
if ( u !== n )
throw Error (
'Multiple bindings (' +
u +
' and ' +
f +
') are trying to control descendant bindings of the same element. You cannot use these bindings together on the same element.'
)
u = f
}
} ) ,
'function' == typeof h &&
a . B (
function ( ) {
h ( b , v ( f ) , s , e . $data , e )
} ,
null ,
{ i : b }
)
} catch ( m ) {
throw ( ( m . message =
'Unable to process binding "' +
f +
': ' +
g [ f ] +
'"\nMessage: ' +
m . message ) ,
m )
}
} )
}
return { shouldBindDescendants : u === n }
}
function h ( b ) {
return b && b instanceof a . U ? b : new a . U ( b )
}
a . d = { }
var r = { script : ! 0 , textarea : ! 0 , template : ! 0 }
a . getBindingHandler = function ( b ) {
return a . d [ b ]
}
a . U = function ( b , c , d , e ) {
var h = this ,
f = 'function' == typeof b && ! a . H ( b ) ,
m ,
g = a . B (
function ( ) {
var m = f ? b ( ) : b ,
l = a . a . c ( m )
c
? ( c . P && c . P ( ) , a . a . extend ( h , c ) , g && ( h . P = g ) )
: ( ( h . $parents = [ ] ) , ( h . $root = l ) , ( h . ko = a ) )
h . $rawData = m
h . $data = l
d && ( h [ d ] = l )
e && e ( h , c , l )
return h . $data
} ,
null ,
{
wa : function ( ) {
return m && ! a . a . Qb ( m )
} ,
i : ! 0
}
)
g . ba ( ) &&
( ( h . P = g ) ,
( g . equalityComparer = null ) ,
( m = [ ] ) ,
( g . Ac = function ( b ) {
m . push ( b )
a . a . F . oa ( b , function ( b ) {
a . a . La ( m , b )
m . length || ( g . k ( ) , ( h . P = g = n ) )
} )
} ) )
}
a . U . prototype . createChildContext = function ( b , c , d ) {
return new a . U ( b , this , c , function ( a , b ) {
a . $parentContext = b
a . $parent = b . $data
a . $parents = ( b . $parents || [ ] ) . slice ( 0 )
a . $parents . unshift ( a . $parent )
d && d ( a )
} )
}
a . U . prototype . extend = function ( b ) {
return new a . U ( this . P || this . $data , this , null , function ( c , d ) {
c . $rawData = d . $rawData
a . a . extend ( c , 'function' == typeof b ? b ( ) : b )
} )
}
var q = a . a . e . I ( ) ,
p = a . a . e . I ( )
a . tc = function ( b , c ) {
if ( 2 == arguments . length ) a . a . e . set ( b , p , c ) , c . P && c . P . Ac ( b )
else return a . a . e . get ( b , p )
}
a . Ja = function ( b , c , d ) {
1 === b . nodeType && a . f . kc ( b )
return m ( b , c , h ( d ) , ! 0 )
}
a . Dc = function ( b , c , d ) {
d = h ( d )
return a . Ja ( b , e ( c , d , b ) , d )
}
a . eb = function ( a , b ) {
; ( 1 !== b . nodeType && 8 !== b . nodeType ) || g ( h ( a ) , b , ! 0 )
}
a . Rb = function ( a , b ) {
! v && x . jQuery && ( v = x . jQuery )
if ( b && 1 !== b . nodeType && 8 !== b . nodeType )
throw Error (
'ko.applyBindings: first parameter should be your view model; second parameter should be a DOM node'
)
b = b || x . document . body
k ( h ( a ) , b , ! 0 )
}
a . kb = function ( b ) {
switch ( b . nodeType ) {
case 1 :
case 8 :
var c = a . tc ( b )
if ( c ) return c
if ( b . parentNode ) return a . kb ( b . parentNode )
}
return n
}
a . Jc = function ( b ) {
return ( b = a . kb ( b ) ) ? b . $data : n
}
a . b ( 'bindingHandlers' , a . d )
a . b ( 'applyBindings' , a . Rb )
a . b ( 'applyBindingsToDescendants' , a . eb )
a . b ( 'applyBindingAccessorsToNode' , a . Ja )
a . b ( 'applyBindingsToNode' , a . Dc )
a . b ( 'contextFor' , a . kb )
a . b ( 'dataFor' , a . Jc )
} ) ( )
; ( function ( b ) {
function c ( c , e ) {
var m = f . hasOwnProperty ( c ) ? f [ c ] : b ,
h
m
? m . X ( e )
: ( ( m = f [ c ] = new a . J ( ) ) ,
m . X ( e ) ,
d ( c , function ( b , d ) {
var e = ! ( ! d || ! d . synchronous )
g [ c ] = { definition : b , Zc : e }
delete f [ c ]
h || e
? m . notifySubscribers ( b )
: a . Y . Wa ( function ( ) {
m . notifySubscribers ( b )
} )
} ) ,
( h = ! 0 ) )
}
function d ( a , b ) {
e ( 'getConfig' , [ a ] , function ( c ) {
c
? e ( 'loadComponent' , [ a , c ] , function ( a ) {
b ( a , c )
} )
: b ( null , null )
} )
}
function e ( c , d , f , h ) {
h || ( h = a . g . loaders . slice ( 0 ) )
var g = h . shift ( )
if ( g ) {
var q = g [ c ]
if ( q ) {
var p = ! 1
if (
q . apply (
g ,
d . concat ( function ( a ) {
p ? f ( null ) : null !== a ? f ( a ) : e ( c , d , f , h )
} )
) !== b &&
( ( p = ! 0 ) , ! g . suppressLoaderExceptions )
)
throw Error (
'Component loaders must supply values by invoking the callback, not by returning values synchronously.'
)
} else e ( c , d , f , h )
} else f ( null )
}
var f = { } ,
g = { }
a . g = {
get : function ( d , e ) {
var f = g . hasOwnProperty ( d ) ? g [ d ] : b
f
? f . Zc
? a . l . w ( function ( ) {
e ( f . definition )
} )
: a . Y . Wa ( function ( ) {
e ( f . definition )
} )
: c ( d , e )
} ,
Xb : function ( a ) {
delete g [ a ]
} ,
Jb : e
}
a . g . loaders = [ ]
a . b ( 'components' , a . g )
a . b ( 'components.get' , a . g . get )
a . b ( 'components.clearCachedDefinition' , a . g . Xb )
} ) ( )
; ( function ( ) {
function b ( b , c , d , e ) {
function g ( ) {
0 === -- y && e ( k )
}
var k = { } ,
y = 2 ,
t = d . template
d = d . viewModel
t
? f ( c , t , function ( c ) {
a . g . Jb ( 'loadTemplate' , [ b , c ] , function ( a ) {
k . template = a
g ( )
} )
} )
: g ( )
d
? f ( c , d , function ( c ) {
a . g . Jb ( 'loadViewModel' , [ b , c ] , function ( a ) {
k [ l ] = a
g ( )
} )
} )
: g ( )
}
function c ( a , b , d ) {
if ( 'function' === typeof b )
d ( function ( a ) {
return new b ( a )
} )
else if ( 'function' === typeof b [ l ] ) d ( b [ l ] )
else if ( 'instance' in b ) {
var e = b . instance
d ( function ( ) {
return e
} )
} else
'viewModel' in b
? c ( a , b . viewModel , d )
: a ( 'Unknown viewModel value: ' + b )
}
function d ( b ) {
switch ( a . a . A ( b ) ) {
case 'script' :
return a . a . ma ( b . text )
case 'textarea' :
return a . a . ma ( b . value )
case 'template' :
if ( e ( b . content ) ) return a . a . ua ( b . content . childNodes )
}
return a . a . ua ( b . childNodes )
}
function e ( a ) {
return x . DocumentFragment
? a instanceof DocumentFragment
: a && 11 === a . nodeType
}
function f ( a , b , c ) {
'string' === typeof b . require
? O || x . require
? ( O || x . require ) ( [ b . require ] , c )
: a ( 'Uses require, but no AMD loader is present' )
: c ( b )
}
function g ( a ) {
return function ( b ) {
throw Error ( "Component '" + a + "': " + b )
}
}
var k = { }
a . g . register = function ( b , c ) {
if ( ! c ) throw Error ( 'Invalid configuration for ' + b )
if ( a . g . ub ( b ) )
throw Error ( 'Component ' + b + ' is already registered' )
k [ b ] = c
}
a . g . ub = function ( a ) {
return k . hasOwnProperty ( a )
}
a . g . od = function ( b ) {
delete k [ b ]
a . g . Xb ( b )
}
a . g . Zb = {
getConfig : function ( a , b ) {
b ( k . hasOwnProperty ( a ) ? k [ a ] : null )
} ,
loadComponent : function ( a , c , d ) {
var e = g ( a )
f ( e , c , function ( c ) {
b ( a , e , c , d )
} )
} ,
loadTemplate : function ( b , c , f ) {
b = g ( b )
if ( 'string' === typeof c ) f ( a . a . ma ( c ) )
else if ( c instanceof Array ) f ( c )
else if ( e ( c ) ) f ( a . a . V ( c . childNodes ) )
else if ( c . element )
if (
( ( c = c . element ) ,
x . HTMLElement
? c instanceof HTMLElement
: c && c . tagName && 1 === c . nodeType )
)
f ( d ( c ) )
else if ( 'string' === typeof c ) {
var l = u . getElementById ( c )
l ? f ( d ( l ) ) : b ( 'Cannot find element with ID ' + c )
} else b ( 'Unknown element type: ' + c )
else b ( 'Unknown template value: ' + c )
} ,
loadViewModel : function ( a , b , d ) {
c ( g ( a ) , b , d )
}
}
var l = 'createViewModel'
a . b ( 'components.register' , a . g . register )
a . b ( 'components.isRegistered' , a . g . ub )
a . b ( 'components.unregister' , a . g . od )
a . b ( 'components.defaultLoader' , a . g . Zb )
a . g . loaders . push ( a . g . Zb )
a . g . Bc = k
} ) ( )
; ( function ( ) {
function b ( b , e ) {
var f = b . getAttribute ( 'params' )
if ( f ) {
var f = c . parseBindingsString ( f , e , b , {
valueAccessors : ! 0 ,
bindingParams : ! 0
} ) ,
f = a . a . Ca ( f , function ( c ) {
return a . m ( c , null , { i : b } )
} ) ,
g = a . a . Ca ( f , function ( c ) {
var e = c . t ( )
return c . ba ( )
? a . m ( {
read : function ( ) {
return a . a . c ( c ( ) )
} ,
write :
a . Ba ( e ) &&
function ( a ) {
c ( ) ( a )
} ,
i : b
} )
: e
} )
g . hasOwnProperty ( '$raw' ) || ( g . $raw = f )
return g
}
return { $raw : { } }
}
a . g . getComponentNameForNode = function ( b ) {
var c = a . a . A ( b )
if (
a . g . ub ( c ) &&
( - 1 != c . indexOf ( '-' ) ||
'[object HTMLUnknownElement]' == '' + b ||
( 8 >= a . a . C && b . tagName === c ) )
)
return c
}
a . g . Ob = function ( c , e , f , g ) {
if ( 1 === e . nodeType ) {
var k = a . g . getComponentNameForNode ( e )
if ( k ) {
c = c || { }
if ( c . component )
throw Error (
'Cannot use the "component" binding on a custom element matching a component'
)
var l = { name : k , params : b ( e , f ) }
c . component = g
? function ( ) {
return l
}
: l
}
}
return c
}
var c = new a . Q ( )
9 > a . a . C &&
( ( a . g . register = ( function ( a ) {
return function ( b ) {
u . createElement ( b )
return a . apply ( this , arguments )
}
} ) ( a . g . register ) ) ,
( u . createDocumentFragment = ( function ( b ) {
return function ( ) {
var c = b ( ) ,
f = a . g . Bc ,
g
for ( g in f ) f . hasOwnProperty ( g ) && c . createElement ( g )
return c
}
} ) ( u . createDocumentFragment ) ) )
} ) ( )
; ( function ( b ) {
function c ( b , c , d ) {
c = c . template
if ( ! c ) throw Error ( "Component '" + b + "' has no template" )
b = a . a . ua ( c )
a . f . da ( d , b )
}
function d ( a , b , c , d ) {
var e = a . createViewModel
return e ? e . call ( a , d , { element : b , templateNodes : c } ) : d
}
var e = 0
a . d . component = {
init : function ( f , g , k , l , m ) {
function h ( ) {
var a = r && r . dispose
'function' === typeof a && a . call ( r )
q = r = null
}
var r ,
q ,
p = a . a . V ( a . f . childNodes ( f ) )
a . a . F . oa ( f , h )
a . m (
function ( ) {
var l = a . a . c ( g ( ) ) ,
k ,
t
'string' === typeof l
? ( k = l )
: ( ( k = a . a . c ( l . name ) ) , ( t = a . a . c ( l . params ) ) )
if ( ! k ) throw Error ( 'No component name specified' )
var n = ( q = ++ e )
a . g . get ( k , function ( e ) {
if ( q === n ) {
h ( )
if ( ! e ) throw Error ( "Unknown component '" + k + "'" )
c ( k , e , f )
var g = d ( e , f , p , t )
e = m . createChildContext ( g , b , function ( a ) {
a . $component = g
a . $componentTemplateNodes = p
} )
r = g
a . eb ( e , f )
}
} )
} ,
null ,
{ i : f }
)
return { controlsDescendantBindings : ! 0 }
}
}
a . f . Z . component = ! 0
} ) ( )
var S = { class : 'className' , for : 'htmlFor' }
a . d . attr = {
update : function ( b , c ) {
var d = a . a . c ( c ( ) ) || { }
a . a . D ( d , function ( c , d ) {
d = a . a . c ( d )
var g = ! 1 === d || null === d || d === n
g && b . removeAttribute ( c )
8 >= a . a . C && c in S
? ( ( c = S [ c ] ) , g ? b . removeAttribute ( c ) : ( b [ c ] = d ) )
: g || b . setAttribute ( c , d . toString ( ) )
'name' === c && a . a . rc ( b , g ? '' : d . toString ( ) )
} )
}
}
; ( function ( ) {
a . d . checked = {
after : [ 'value' , 'attr' ] ,
init : function ( b , c , d ) {
function e ( ) {
var e = b . checked ,
f = p ? g ( ) : e
if ( ! a . va . Sa ( ) && ( ! l || e ) ) {
var m = a . l . w ( c )
if ( h ) {
var k = r ? m . t ( ) : m
q !== f
? ( e && ( a . a . pa ( k , f , ! 0 ) , a . a . pa ( k , q , ! 1 ) ) , ( q = f ) )
: a . a . pa ( k , f , e )
r && a . Ba ( m ) && m ( k )
} else a . h . Ea ( m , d , 'checked' , f , ! 0 )
}
}
function f ( ) {
var d = a . a . c ( c ( ) )
b . checked = h ? 0 <= a . a . o ( d , g ( ) ) : k ? d : g ( ) === d
}
var g = a . nc ( function ( ) {
return d . has ( 'checkedValue' )
? a . a . c ( d . get ( 'checkedValue' ) )
: d . has ( 'value' )
? a . a . c ( d . get ( 'value' ) )
: b . value
} ) ,
k = 'checkbox' == b . type ,
l = 'radio' == b . type
if ( k || l ) {
var m = c ( ) ,
h = k && a . a . c ( m ) instanceof Array ,
r = ! ( h && m . push && m . splice ) ,
q = h ? g ( ) : n ,
p = l || h
l &&
! b . name &&
a . d . uniqueName . init ( b , function ( ) {
return ! 0
} )
a . m ( e , null , { i : b } )
a . a . p ( b , 'click' , e )
a . m ( f , null , { i : b } )
m = n
}
}
}
a . h . ea . checked = ! 0
a . d . checkedValue = {
update : function ( b , c ) {
b . value = a . a . c ( c ( ) )
}
}
} ) ( )
a . d . css = {
update : function ( b , c ) {
var d = a . a . c ( c ( ) )
null !== d && 'object' == typeof d
? a . a . D ( d , function ( c , d ) {
d = a . a . c ( d )
a . a . bb ( b , c , d )
} )
: ( ( d = a . a . $a ( String ( d || '' ) ) ) ,
a . a . bb ( b , b . _ _ko _ _cssValue , ! 1 ) ,
( b . _ _ko _ _cssValue = d ) ,
a . a . bb ( b , d , ! 0 ) )
}
}
a . d . enable = {
update : function ( b , c ) {
var d = a . a . c ( c ( ) )
d && b . disabled
? b . removeAttribute ( 'disabled' )
: d || b . disabled || ( b . disabled = ! 0 )
}
}
a . d . disable = {
update : function ( b , c ) {
a . d . enable . update ( b , function ( ) {
return ! a . a . c ( c ( ) )
} )
}
}
a . d . event = {
init : function ( b , c , d , e , f ) {
var g = c ( ) || { }
a . a . D ( g , function ( g ) {
'string' == typeof g &&
a . a . p ( b , g , function ( b ) {
var m ,
h = c ( ) [ g ]
if ( h ) {
try {
var r = a . a . V ( arguments )
e = f . $data
r . unshift ( e )
m = h . apply ( e , r )
} finally {
! 0 !== m &&
( b . preventDefault
? b . preventDefault ( )
: ( b . returnValue = ! 1 ) )
}
! 1 === d . get ( g + 'Bubble' ) &&
( ( b . cancelBubble = ! 0 ) ,
b . stopPropagation && b . stopPropagation ( ) )
}
} )
} )
}
}
a . d . foreach = {
ic : function ( b ) {
return function ( ) {
var c = b ( ) ,
d = a . a . zb ( c )
if ( ! d || 'number' == typeof d . length )
return { foreach : c , templateEngine : a . W . sb }
a . a . c ( c )
return {
foreach : d . data ,
as : d . as ,
includeDestroyed : d . includeDestroyed ,
afterAdd : d . afterAdd ,
beforeRemove : d . beforeRemove ,
afterRender : d . afterRender ,
beforeMove : d . beforeMove ,
afterMove : d . afterMove ,
templateEngine : a . W . sb
}
}
} ,
init : function ( b , c ) {
return a . d . template . init ( b , a . d . foreach . ic ( c ) )
} ,
update : function ( b , c , d , e , f ) {
return a . d . template . update ( b , a . d . foreach . ic ( c ) , d , e , f )
}
}
a . h . ta . foreach = ! 1
a . f . Z . foreach = ! 0
a . d . hasfocus = {
init : function ( b , c , d ) {
function e ( e ) {
b . _ _ko _hasfocusUpdating = ! 0
var f = b . ownerDocument
if ( 'activeElement' in f ) {
var g
try {
g = f . activeElement
} catch ( h ) {
g = f . body
}
e = g === b
}
f = c ( )
a . h . Ea ( f , d , 'hasfocus' , e , ! 0 )
b . _ _ko _hasfocusLastValue = e
b . _ _ko _hasfocusUpdating = ! 1
}
var f = e . bind ( null , ! 0 ) ,
g = e . bind ( null , ! 1 )
a . a . p ( b , 'focus' , f )
a . a . p ( b , 'focusin' , f )
a . a . p ( b , 'blur' , g )
a . a . p ( b , 'focusout' , g )
} ,
update : function ( b , c ) {
var d = ! ! a . a . c ( c ( ) )
b . _ _ko _hasfocusUpdating ||
b . _ _ko _hasfocusLastValue === d ||
( d ? b . focus ( ) : b . blur ( ) ,
! d && b . _ _ko _hasfocusLastValue && b . ownerDocument . body . focus ( ) ,
a . l . w ( a . a . Da , null , [ b , d ? 'focusin' : 'focusout' ] ) )
}
}
a . h . ea . hasfocus = ! 0
a . d . hasFocus = a . d . hasfocus
a . h . ea . hasFocus = ! 0
a . d . html = {
init : function ( ) {
return { controlsDescendantBindings : ! 0 }
} ,
update : function ( b , c ) {
a . a . Cb ( b , c ( ) )
}
}
K ( 'if' )
K ( 'ifnot' , ! 1 , ! 0 )
K ( 'with' , ! 0 , ! 1 , function ( a , c ) {
return a . createChildContext ( c )
} )
var L = { }
a . d . options = {
init : function ( b ) {
if ( 'select' !== a . a . A ( b ) )
throw Error ( 'options binding applies only to SELECT elements' )
for ( ; 0 < b . length ; ) b . remove ( 0 )
return { controlsDescendantBindings : ! 0 }
} ,
update : function ( b , c , d ) {
function e ( ) {
return a . a . Ka ( b . options , function ( a ) {
return a . selected
} )
}
function f ( a , b , c ) {
var d = typeof b
return 'function' == d ? b ( a ) : 'string' == d ? a [ b ] : c
}
function g ( c , e ) {
if ( A && h ) a . j . ha ( b , a . a . c ( d . get ( 'value' ) ) , ! 0 )
else if ( p . length ) {
var f = 0 <= a . a . o ( p , a . j . u ( e [ 0 ] ) )
a . a . sc ( e [ 0 ] , f )
A && ! f && a . l . w ( a . a . Da , null , [ b , 'change' ] )
}
}
var k = b . multiple ,
l = 0 != b . length && k ? b . scrollTop : null ,
m = a . a . c ( c ( ) ) ,
h = d . get ( 'valueAllowUnset' ) && d . has ( 'value' ) ,
r = d . get ( 'optionsIncludeDestroyed' )
c = { }
var q ,
p = [ ]
h ||
( k
? ( p = a . a . fb ( e ( ) , a . j . u ) )
: 0 <= b . selectedIndex &&
p . push ( a . j . u ( b . options [ b . selectedIndex ] ) ) )
m &&
( 'undefined' == typeof m . length && ( m = [ m ] ) ,
( q = a . a . Ka ( m , function ( b ) {
return r || b === n || null === b || ! a . a . c ( b . _destroy )
} ) ) ,
d . has ( 'optionsCaption' ) &&
( ( m = a . a . c ( d . get ( 'optionsCaption' ) ) ) ,
null !== m && m !== n && q . unshift ( L ) ) )
var A = ! 1
c . beforeRemove = function ( a ) {
b . removeChild ( a )
}
m = g
d . has ( 'optionsAfterRender' ) &&
'function' == typeof d . get ( 'optionsAfterRender' ) &&
( m = function ( b , c ) {
g ( 0 , c )
a . l . w ( d . get ( 'optionsAfterRender' ) , null , [
c [ 0 ] ,
b !== L ? b : n
] )
} )
a . a . Bb (
b ,
q ,
function ( c , e , g ) {
g . length &&
( ( p = ! h && g [ 0 ] . selected ? [ a . j . u ( g [ 0 ] ) ] : [ ] ) , ( A = ! 0 ) )
e = b . ownerDocument . createElement ( 'option' )
c === L
? ( a . a . Za ( e , d . get ( 'optionsCaption' ) ) , a . j . ha ( e , n ) )
: ( ( g = f ( c , d . get ( 'optionsValue' ) , c ) ) ,
a . j . ha ( e , a . a . c ( g ) ) ,
( c = f ( c , d . get ( 'optionsText' ) , g ) ) ,
a . a . Za ( e , c ) )
return [ e ]
} ,
c ,
m
)
a . l . w ( function ( ) {
h
? a . j . ha ( b , a . a . c ( d . get ( 'value' ) ) , ! 0 )
: ( k
? p . length && e ( ) . length < p . length
: p . length && 0 <= b . selectedIndex
? a . j . u ( b . options [ b . selectedIndex ] ) !== p [ 0 ]
: p . length || 0 <= b . selectedIndex ) && a . a . Da ( b , 'change' )
} )
a . a . Nc ( b )
l && 20 < Math . abs ( l - b . scrollTop ) && ( b . scrollTop = l )
}
}
a . d . options . xb = a . a . e . I ( )
a . d . selectedOptions = {
after : [ 'options' , 'foreach' ] ,
init : function ( b , c , d ) {
a . a . p ( b , 'change' , function ( ) {
var e = c ( ) ,
f = [ ]
a . a . q ( b . getElementsByTagName ( 'option' ) , function ( b ) {
b . selected && f . push ( a . j . u ( b ) )
} )
a . h . Ea ( e , d , 'selectedOptions' , f )
} )
} ,
update : function ( b , c ) {
if ( 'select' != a . a . A ( b ) )
throw Error ( 'values binding applies only to SELECT elements' )
var d = a . a . c ( c ( ) ) ,
e = b . scrollTop
d &&
'number' == typeof d . length &&
a . a . q ( b . getElementsByTagName ( 'option' ) , function ( b ) {
var c = 0 <= a . a . o ( d , a . j . u ( b ) )
b . selected != c && a . a . sc ( b , c )
} )
b . scrollTop = e
}
}
a . h . ea . selectedOptions = ! 0
a . d . style = {
update : function ( b , c ) {
var d = a . a . c ( c ( ) || { } )
a . a . D ( d , function ( c , d ) {
d = a . a . c ( d )
if ( null === d || d === n || ! 1 === d ) d = ''
b . style [ c ] = d
} )
}
}
a . d . submit = {
init : function ( b , c , d , e , f ) {
if ( 'function' != typeof c ( ) )
throw Error ( 'The value for a submit binding must be a function' )
a . a . p ( b , 'submit' , function ( a ) {
var d ,
e = c ( )
try {
d = e . call ( f . $data , b )
} finally {
! 0 !== d &&
( a . preventDefault
? a . preventDefault ( )
: ( a . returnValue = ! 1 ) )
}
} )
}
}
a . d . text = {
init : function ( ) {
return { controlsDescendantBindings : ! 0 }
} ,
update : function ( b , c ) {
a . a . Za ( b , c ( ) )
}
}
a . f . Z . text = ! 0
; ( function ( ) {
if ( x && x . navigator )
var b = function ( a ) {
if ( a ) return parseFloat ( a [ 1 ] )
} ,
c = x . opera && x . opera . version && parseInt ( x . opera . version ( ) ) ,
d = x . navigator . userAgent ,
e = b ( d . match ( /^(?:(?!chrome).)*version\/([^ ]*) safari/i ) ) ,
f = b ( d . match ( /Firefox\/([^ ]*)/ ) )
if ( 10 > a . a . C )
var g = a . a . e . I ( ) ,
k = a . a . e . I ( ) ,
l = function ( b ) {
var c = this . activeElement
; ( c = c && a . a . e . get ( c , k ) ) && c ( b )
} ,
m = function ( b , c ) {
var d = b . ownerDocument
a . a . e . get ( d , g ) ||
( a . a . e . set ( d , g , ! 0 ) , a . a . p ( d , 'selectionchange' , l ) )
a . a . e . set ( b , k , c )
}
a . d . textInput = {
init : function ( b , d , g ) {
function l ( c , d ) {
a . a . p ( b , c , d )
}
function k ( ) {
var c = a . a . c ( d ( ) )
if ( null === c || c === n ) c = ''
v !== n && c === v
? a . a . setTimeout ( k , 4 )
: b . value !== c && ( ( u = c ) , ( b . value = c ) )
}
function y ( ) {
s || ( ( v = b . value ) , ( s = a . a . setTimeout ( t , 4 ) ) )
}
function t ( ) {
clearTimeout ( s )
v = s = n
var c = b . value
u !== c && ( ( u = c ) , a . h . Ea ( d ( ) , g , 'textInput' , c ) )
}
var u = b . value ,
s ,
v ,
x = 9 == a . a . C ? y : t
10 > a . a . C
? ( l ( 'propertychange' , function ( a ) {
'value' === a . propertyName && x ( a )
} ) ,
8 == a . a . C && ( l ( 'keyup' , t ) , l ( 'keydown' , t ) ) ,
8 <= a . a . C && ( m ( b , x ) , l ( 'dragend' , y ) ) )
: ( l ( 'input' , t ) ,
5 > e && 'textarea' === a . a . A ( b )
? ( l ( 'keydown' , y ) , l ( 'paste' , y ) , l ( 'cut' , y ) )
: 11 > c
? l ( 'keydown' , y )
: 4 > f &&
( l ( 'DOMAutoComplete' , t ) ,
l ( 'dragdrop' , t ) ,
l ( 'drop' , t ) ) )
l ( 'change' , t )
a . m ( k , null , { i : b } )
}
}
a . h . ea . textInput = ! 0
a . d . textinput = {
preprocess : function ( a , b , c ) {
c ( 'textInput' , a )
}
}
} ) ( )
a . d . uniqueName = {
init : function ( b , c ) {
if ( c ( ) ) {
var d = 'ko_unique_' + ++ a . d . uniqueName . Ic
a . a . rc ( b , d )
}
}
}
a . d . uniqueName . Ic = 0
a . d . value = {
after : [ 'options' , 'foreach' ] ,
init : function ( b , c , d ) {
if (
'input' != b . tagName . toLowerCase ( ) ||
( 'checkbox' != b . type && 'radio' != b . type )
) {
var e = [ 'change' ] ,
f = d . get ( 'valueUpdate' ) ,
g = ! 1 ,
k = null
f &&
( 'string' == typeof f && ( f = [ f ] ) ,
a . a . ra ( e , f ) ,
( e = a . a . Tb ( e ) ) )
var l = function ( ) {
k = null
g = ! 1
var e = c ( ) ,
f = a . j . u ( b )
a . h . Ea ( e , d , 'value' , f )
}
! a . a . C ||
'input' != b . tagName . toLowerCase ( ) ||
'text' != b . type ||
'off' == b . autocomplete ||
( b . form && 'off' == b . form . autocomplete ) ||
- 1 != a . a . o ( e , 'propertychange' ) ||
( a . a . p ( b , 'propertychange' , function ( ) {
g = ! 0
} ) ,
a . a . p ( b , 'focus' , function ( ) {
g = ! 1
} ) ,
a . a . p ( b , 'blur' , function ( ) {
g && l ( )
} ) )
a . a . q ( e , function ( c ) {
var d = l
a . a . nd ( c , 'after' ) &&
( ( d = function ( ) {
k = a . j . u ( b )
a . a . setTimeout ( l , 0 )
} ) ,
( c = c . substring ( 5 ) ) )
a . a . p ( b , c , d )
} )
var m = function ( ) {
var e = a . a . c ( c ( ) ) ,
f = a . j . u ( b )
if ( null !== k && e === k ) a . a . setTimeout ( m , 0 )
else if ( e !== f )
if ( 'select' === a . a . A ( b ) ) {
var g = d . get ( 'valueAllowUnset' ) ,
f = function ( ) {
a . j . ha ( b , e , g )
}
f ( )
g || e === a . j . u ( b )
? a . a . setTimeout ( f , 0 )
: a . l . w ( a . a . Da , null , [ b , 'change' ] )
} else a . j . ha ( b , e )
}
a . m ( m , null , { i : b } )
} else a . Ja ( b , { checkedValue : c } )
} ,
update : function ( ) { }
}
a . h . ea . value = ! 0
a . d . visible = {
update : function ( b , c ) {
var d = a . a . c ( c ( ) ) ,
e = 'none' != b . style . display
d && ! e
? ( b . style . display = '' )
: ! d && e && ( b . style . display = 'none' )
}
}
; ( function ( b ) {
a . d [ b ] = {
init : function ( c , d , e , f , g ) {
return a . d . event . init . call (
this ,
c ,
function ( ) {
var a = { }
a [ b ] = d ( )
return a
} ,
e ,
f ,
g
)
}
}
} ) ( 'click' )
a . O = function ( ) { }
a . O . prototype . renderTemplateSource = function ( ) {
throw Error ( 'Override renderTemplateSource' )
}
a . O . prototype . createJavaScriptEvaluatorBlock = function ( ) {
throw Error ( 'Override createJavaScriptEvaluatorBlock' )
}
a . O . prototype . makeTemplateSource = function ( b , c ) {
if ( 'string' == typeof b ) {
c = c || u
var d = c . getElementById ( b )
if ( ! d ) throw Error ( 'Cannot find template with ID ' + b )
return new a . v . n ( d )
}
if ( 1 == b . nodeType || 8 == b . nodeType ) return new a . v . qa ( b )
throw Error ( 'Unknown template type: ' + b )
}
a . O . prototype . renderTemplate = function ( a , c , d , e ) {
a = this . makeTemplateSource ( a , e )
return this . renderTemplateSource ( a , c , d , e )
}
a . O . prototype . isTemplateRewritten = function ( a , c ) {
return ! 1 === this . allowTemplateRewriting
? ! 0
: this . makeTemplateSource ( a , c ) . data ( 'isRewritten' )
}
a . O . prototype . rewriteTemplate = function ( a , c , d ) {
a = this . makeTemplateSource ( a , d )
c = c ( a . text ( ) )
a . text ( c )
a . data ( 'isRewritten' , ! 0 )
}
a . b ( 'templateEngine' , a . O )
a . Gb = ( function ( ) {
function b ( b , c , d , k ) {
b = a . h . yb ( b )
for ( var l = a . h . ta , m = 0 ; m < b . length ; m ++ ) {
var h = b [ m ] . key
if ( l . hasOwnProperty ( h ) ) {
var r = l [ h ]
if ( 'function' === typeof r ) {
if ( ( h = r ( b [ m ] . value ) ) ) throw Error ( h )
} else if ( ! r )
throw Error (
"This template engine does not support the '" +
h +
"' binding within its templates"
)
}
}
d =
'ko.__tr_ambtns(function($context,$element){return(function(){return{ ' +
a . h . Ua ( b , { valueAccessors : ! 0 } ) +
" } })()},'" +
d . toLowerCase ( ) +
"')"
return k . createJavaScriptEvaluatorBlock ( d ) + c
}
var c = /(<([a-z]+\d*)(?:\s+(?!data-bind\s*=\s*)[a-z0-9\-]+(?:=(?:\"[^\"]*\"|\'[^\']*\'|[^>]*))?)*\s+)data-bind\s*=\s*(["'])([\s\S]*?)\3/gi ,
d = /\x3c!--\s*ko\b\s*([\s\S]*?)\s*--\x3e/g
return {
Oc : function ( b , c , d ) {
c . isTemplateRewritten ( b , d ) ||
c . rewriteTemplate (
b ,
function ( b ) {
return a . Gb . dd ( b , c )
} ,
d
)
} ,
dd : function ( a , f ) {
return a
. replace ( c , function ( a , c , d , e , h ) {
return b ( h , c , d , f )
} )
. replace ( d , function ( a , c ) {
return b ( c , '<!-- ko -->' , '#comment' , f )
} )
} ,
Ec : function ( b , c ) {
return a . M . wb ( function ( d , k ) {
var l = d . nextSibling
l && l . nodeName . toLowerCase ( ) === c && a . Ja ( l , b , k )
} )
}
}
} ) ( )
a . b ( '__tr_ambtns' , a . Gb . Ec )
; ( function ( ) {
a . v = { }
a . v . n = function ( b ) {
if ( ( this . n = b ) ) {
var c = a . a . A ( b )
this . ab =
'script' === c
? 1
: 'textarea' === c
? 2
: 'template' == c && b . content && 11 === b . content . nodeType
? 3
: 4
}
}
a . v . n . prototype . text = function ( ) {
var b =
1 === this . ab ? 'text' : 2 === this . ab ? 'value' : 'innerHTML'
if ( 0 == arguments . length ) return this . n [ b ]
var c = arguments [ 0 ]
'innerHTML' === b ? a . a . Cb ( this . n , c ) : ( this . n [ b ] = c )
}
var b = a . a . e . I ( ) + '_'
a . v . n . prototype . data = function ( c ) {
if ( 1 === arguments . length ) return a . a . e . get ( this . n , b + c )
a . a . e . set ( this . n , b + c , arguments [ 1 ] )
}
var c = a . a . e . I ( )
a . v . n . prototype . nodes = function ( ) {
var b = this . n
if ( 0 == arguments . length )
return (
( a . a . e . get ( b , c ) || { } ) . jb ||
( 3 === this . ab ? b . content : 4 === this . ab ? b : n )
)
a . a . e . set ( b , c , { jb : arguments [ 0 ] } )
}
a . v . qa = function ( a ) {
this . n = a
}
a . v . qa . prototype = new a . v . n ( )
a . v . qa . prototype . text = function ( ) {
if ( 0 == arguments . length ) {
var b = a . a . e . get ( this . n , c ) || { }
b . Hb === n && b . jb && ( b . Hb = b . jb . innerHTML )
return b . Hb
}
a . a . e . set ( this . n , c , { Hb : arguments [ 0 ] } )
}
a . b ( 'templateSources' , a . v )
a . b ( 'templateSources.domElement' , a . v . n )
a . b ( 'templateSources.anonymousTemplate' , a . v . qa )
} ) ( )
; ( function ( ) {
function b ( b , c , d ) {
var e
for ( c = a . f . nextSibling ( c ) ; b && ( e = b ) !== c ; )
( b = a . f . nextSibling ( e ) ) , d ( e , b )
}
function c ( c , d ) {
if ( c . length ) {
var e = c [ 0 ] ,
f = c [ c . length - 1 ] ,
g = e . parentNode ,
k = a . Q . instance ,
n = k . preprocessNode
if ( n ) {
b ( e , f , function ( a , b ) {
var c = a . previousSibling ,
d = n . call ( k , a )
d &&
( a === e && ( e = d [ 0 ] || b ) ,
a === f && ( f = d [ d . length - 1 ] || c ) )
} )
c . length = 0
if ( ! e ) return
e === f ? c . push ( e ) : ( c . push ( e , f ) , a . a . za ( c , g ) )
}
b ( e , f , function ( b ) {
; ( 1 !== b . nodeType && 8 !== b . nodeType ) || a . Rb ( d , b )
} )
b ( e , f , function ( b ) {
; ( 1 !== b . nodeType && 8 !== b . nodeType ) || a . M . yc ( b , [ d ] )
} )
a . a . za ( c , g )
}
}
function d ( a ) {
return a . nodeType ? a : 0 < a . length ? a [ 0 ] : null
}
function e ( b , e , f , k , q ) {
q = q || { }
var p = ( ( b && d ( b ) ) || f || { } ) . ownerDocument ,
n = q . templateEngine || g
a . Gb . Oc ( f , n , p )
f = n . renderTemplate ( f , k , q , p )
if (
'number' != typeof f . length ||
( 0 < f . length && 'number' != typeof f [ 0 ] . nodeType )
)
throw Error ( 'Template engine must return an array of DOM nodes' )
p = ! 1
switch ( e ) {
case 'replaceChildren' :
a . f . da ( b , f )
p = ! 0
break
case 'replaceNode' :
a . a . qc ( b , f )
p = ! 0
break
case 'ignoreTargetNode' :
break
default :
throw Error ( 'Unknown renderMode: ' + e )
}
p &&
( c ( f , k ) ,
q . afterRender && a . l . w ( q . afterRender , null , [ f , k . $data ] ) )
return f
}
function f ( b , c , d ) {
return a . H ( b ) ? b ( ) : 'function' === typeof b ? b ( c , d ) : b
}
var g
a . Db = function ( b ) {
if ( b != n && ! ( b instanceof a . O ) )
throw Error (
'templateEngine must inherit from ko.templateEngine'
)
g = b
}
a . Ab = function ( b , c , h , k , q ) {
h = h || { }
if ( ( h . templateEngine || g ) == n )
throw Error (
'Set a template engine before calling renderTemplate'
)
q = q || 'replaceChildren'
if ( k ) {
var p = d ( k )
return a . B (
function ( ) {
var g = c && c instanceof a . U ? c : new a . U ( a . a . c ( c ) ) ,
n = f ( b , g . $data , g ) ,
g = e ( k , q , n , g , h )
'replaceNode' == q && ( ( k = g ) , ( p = d ( k ) ) )
} ,
null ,
{
wa : function ( ) {
return ! p || ! a . a . nb ( p )
} ,
i : p && 'replaceNode' == q ? p . parentNode : p
}
)
}
return a . M . wb ( function ( d ) {
a . Ab ( b , c , h , d , 'replaceNode' )
} )
}
a . kd = function ( b , d , g , k , q ) {
function p ( a , b ) {
c ( b , s )
g . afterRender && g . afterRender ( b , a )
s = null
}
function u ( a , c ) {
s = q . createChildContext ( a , g . as , function ( a ) {
a . $index = c
} )
var d = f ( b , a , s )
return e ( null , 'ignoreTargetNode' , d , s , g )
}
var s
return a . B (
function ( ) {
var b = a . a . c ( d ) || [ ]
'undefined' == typeof b . length && ( b = [ b ] )
b = a . a . Ka ( b , function ( b ) {
return (
g . includeDestroyed ||
b === n ||
null === b ||
! a . a . c ( b . _destroy )
)
} )
a . l . w ( a . a . Bb , null , [ k , b , u , g , p ] )
} ,
null ,
{ i : k }
)
}
var k = a . a . e . I ( )
a . d . template = {
init : function ( b , c ) {
var d = a . a . c ( c ( ) )
if ( 'string' == typeof d || d . name ) a . f . xa ( b )
else {
if ( 'nodes' in d ) {
if ( ( ( d = d . nodes || [ ] ) , a . H ( d ) ) )
throw Error (
'The "nodes" option must be a plain, non-observable array.'
)
} else d = a . f . childNodes ( b )
d = a . a . jc ( d )
new a . v . qa ( b ) . nodes ( d )
}
return { controlsDescendantBindings : ! 0 }
} ,
update : function ( b , c , d , e , f ) {
var g = c ( ) ,
s
c = a . a . c ( g )
d = ! 0
e = null
'string' == typeof c
? ( c = { } )
: ( ( g = c . name ) ,
'if' in c && ( d = a . a . c ( c [ 'if' ] ) ) ,
d && 'ifnot' in c && ( d = ! a . a . c ( c . ifnot ) ) ,
( s = a . a . c ( c . data ) ) )
'foreach' in c
? ( e = a . kd ( g || b , ( d && c . foreach ) || [ ] , c , b , f ) )
: d
? ( ( f = 'data' in c ? f . createChildContext ( s , c . as ) : f ) ,
( e = a . Ab ( g || b , f , c , b ) ) )
: a . f . xa ( b )
f = e
; ( s = a . a . e . get ( b , k ) ) && 'function' == typeof s . k && s . k ( )
a . a . e . set ( b , k , f && f . ba ( ) ? f : n )
}
}
a . h . ta . template = function ( b ) {
b = a . h . yb ( b )
return ( 1 == b . length && b [ 0 ] . unknown ) || a . h . ad ( b , 'name' )
? null
: 'This template engine does not support anonymous templates nested within its templates'
}
a . f . Z . template = ! 0
} ) ( )
a . b ( 'setTemplateEngine' , a . Db )
a . b ( 'renderTemplate' , a . Ab )
a . a . dc = function ( a , c , d ) {
if ( a . length && c . length ) {
var e , f , g , k , l
for ( e = f = 0 ; ( ! d || e < d ) && ( k = a [ f ] ) ; ++ f ) {
for ( g = 0 ; ( l = c [ g ] ) ; ++ g )
if ( k . value === l . value ) {
k . moved = l . index
l . moved = k . index
c . splice ( g , 1 )
e = g = 0
break
}
e += g
}
}
}
a . a . ib = ( function ( ) {
function b ( b , d , e , f , g ) {
var k = Math . min ,
l = Math . max ,
m = [ ] ,
h ,
n = b . length ,
q ,
p = d . length ,
s = p - n || 1 ,
u = n + p + 1 ,
t ,
v ,
x
for ( h = 0 ; h <= n ; h ++ )
for (
v = t , m . push ( ( t = [ ] ) ) , x = k ( p , h + s ) , q = l ( 0 , h - 1 ) ;
q <= x ;
q ++
)
t [ q ] = q
? h
? b [ h - 1 ] === d [ q - 1 ]
? v [ q - 1 ]
: k ( v [ q ] || u , t [ q - 1 ] || u ) + 1
: q + 1
: h + 1
k = [ ]
l = [ ]
s = [ ]
h = n
for ( q = p ; h || q ; )
( p = m [ h ] [ q ] - 1 ) ,
q && p === m [ h ] [ q - 1 ]
? l . push (
( k [ k . length ] = {
status : e ,
value : d [ -- q ] ,
index : q
} )
)
: h && p === m [ h - 1 ] [ q ]
? s . push (
( k [ k . length ] = {
status : f ,
value : b [ -- h ] ,
index : h
} )
)
: ( -- q ,
-- h ,
g . sparse || k . push ( { status : 'retained' , value : d [ q ] } ) )
a . a . dc ( s , l , ! g . dontLimitMoves && 10 * n )
return k . reverse ( )
}
return function ( a , d , e ) {
e = 'boolean' === typeof e ? { dontLimitMoves : e } : e || { }
a = a || [ ]
d = d || [ ]
return a . length < d . length
? b ( a , d , 'added' , 'deleted' , e )
: b ( d , a , 'deleted' , 'added' , e )
}
} ) ( )
a . b ( 'utils.compareArrays' , a . a . ib )
; ( function ( ) {
function b ( b , c , d , k , l ) {
var m = [ ] ,
h = a . B (
function ( ) {
var h = c ( d , l , a . a . za ( m , b ) ) || [ ]
0 < m . length &&
( a . a . qc ( m , h ) , k && a . l . w ( k , null , [ d , h , l ] ) )
m . length = 0
a . a . ra ( m , h )
} ,
null ,
{
i : b ,
wa : function ( ) {
return ! a . a . Qb ( m )
}
}
)
return { ca : m , B : h . ba ( ) ? h : n }
}
var c = a . a . e . I ( ) ,
d = a . a . e . I ( )
a . a . Bb = function ( e , f , g , k , l ) {
function m ( b , c ) {
w = q [ c ]
v !== c && ( D [ b ] = w )
w . qb ( v ++ )
a . a . za ( w . ca , e )
u . push ( w )
z . push ( w )
}
function h ( b , c ) {
if ( b )
for ( var d = 0 , e = c . length ; d < e ; d ++ )
c [ d ] &&
a . a . q ( c [ d ] . ca , function ( a ) {
b ( a , d , c [ d ] . ja )
} )
}
f = f || [ ]
k = k || { }
var r = a . a . e . get ( e , c ) === n ,
q = a . a . e . get ( e , c ) || [ ] ,
p = a . a . fb ( q , function ( a ) {
return a . ja
} ) ,
s = a . a . ib ( p , f , k . dontLimitMoves ) ,
u = [ ] ,
t = 0 ,
v = 0 ,
x = [ ] ,
z = [ ]
f = [ ]
for ( var D = [ ] , p = [ ] , w , C = 0 , B , E ; ( B = s [ C ] ) ; C ++ )
switch ( ( ( E = B . moved ) , B . status ) ) {
case 'deleted' :
E === n &&
( ( w = q [ t ] ) ,
w . B && ( w . B . k ( ) , ( w . B = n ) ) ,
a . a . za ( w . ca , e ) . length &&
( k . beforeRemove &&
( u . push ( w ) ,
z . push ( w ) ,
w . ja === d ? ( w = null ) : ( f [ C ] = w ) ) ,
w && x . push . apply ( x , w . ca ) ) )
t ++
break
case 'retained' :
m ( C , t ++ )
break
case 'added' :
E !== n
? m ( C , E )
: ( ( w = { ja : B . value , qb : a . N ( v ++ ) } ) ,
u . push ( w ) ,
z . push ( w ) ,
r || ( p [ C ] = w ) )
}
a . a . e . set ( e , c , u )
h ( k . beforeMove , D )
a . a . q ( x , k . beforeRemove ? a . $ : a . removeNode )
for ( var C = 0 , r = a . f . firstChild ( e ) , F ; ( w = z [ C ] ) ; C ++ ) {
w . ca || a . a . extend ( w , b ( e , g , w . ja , l , w . qb ) )
for ( t = 0 ; ( s = w . ca [ t ] ) ; r = s . nextSibling , F = s , t ++ )
s !== r && a . f . gc ( e , s , F )
! w . Wc && l && ( l ( w . ja , w . ca , w . qb ) , ( w . Wc = ! 0 ) )
}
h ( k . beforeRemove , f )
for ( C = 0 ; C < f . length ; ++ C ) f [ C ] && ( f [ C ] . ja = d )
h ( k . afterMove , D )
h ( k . afterAdd , p )
}
} ) ( )
a . b ( 'utils.setDomNodeChildrenFromArrayMapping' , a . a . Bb )
a . W = function ( ) {
this . allowTemplateRewriting = ! 1
}
a . W . prototype = new a . O ( )
a . W . prototype . renderTemplateSource = function ( b , c , d , e ) {
if ( ( c = ( 9 > a . a . C ? 0 : b . nodes ) ? b . nodes ( ) : null ) )
return a . a . V ( c . cloneNode ( ! 0 ) . childNodes )
b = b . text ( )
return a . a . ma ( b , e )
}
a . W . sb = new a . W ( )
a . Db ( a . W . sb )
a . b ( 'nativeTemplateEngine' , a . W )
; ( function ( ) {
a . vb = function ( ) {
var a = ( this . $c = ( function ( ) {
if ( ! v || ! v . tmpl ) return 0
try {
if ( 0 <= v . tmpl . tag . tmpl . open . toString ( ) . indexOf ( '__' ) )
return 2
} catch ( a ) { }
return 1
} ) ( ) )
this . renderTemplateSource = function ( b , e , f , g ) {
g = g || u
f = f || { }
if ( 2 > a )
throw Error (
'Your version of jQuery.tmpl is too old. Please upgrade to jQuery.tmpl 1.0.0pre or later.'
)
var k = b . data ( 'precompiled' )
k ||
( ( k = b . text ( ) || '' ) ,
( k = v . template (
null ,
'{{ko_with $item.koBindingContext}}' + k + '{{/ko_with}}'
) ) ,
b . data ( 'precompiled' , k ) )
b = [ e . $data ]
e = v . extend ( { koBindingContext : e } , f . templateOptions )
e = v . tmpl ( k , b , e )
e . appendTo ( g . createElement ( 'div' ) )
v . fragments = { }
return e
}
this . createJavaScriptEvaluatorBlock = function ( a ) {
return '{{ko_code ((function() { return ' + a + ' })()) }}'
}
this . addTemplate = function ( a , b ) {
u . write (
"<script type='text/html' id='" + a + "'>" + b + '</script>'
)
}
0 < a &&
( ( v . tmpl . tag . ko _code = { open : "__.push($1 || '');" } ) ,
( v . tmpl . tag . ko _with = {
open : 'with($1) {' ,
close : '} '
} ) )
}
a . vb . prototype = new a . O ( )
var b = new a . vb ( )
0 < b . $c && a . Db ( b )
a . b ( 'jqueryTmplTemplateEngine' , a . vb )
} ) ( )
} )
} ) ( )
} ) ( )
! ( function ( a , b ) {
'use strict'
function c ( a , b ) {
if ( ! a || 'object' != typeof a )
throw new Error (
'When calling ko.track, you must pass an object as the first parameter.'
)
var c
return (
i ( b )
? ( ( b . deep = b . deep || ! 1 ) ,
( b . fields = b . fields || Object . getOwnPropertyNames ( a ) ) ,
( b . lazy = b . lazy || ! 1 ) ,
h ( a , b . fields , b ) )
: ( ( c = b || Object . getOwnPropertyNames ( a ) ) , h ( a , c , { } ) ) ,
a
)
}
function d ( a ) {
return a . name
? a . name
: ( a
. toString ( )
. trim ( )
. match ( A ) || [ ] ) [ 1 ]
}
function e ( a ) {
return a && 'object' == typeof a && 'Object' === d ( a . constructor )
}
function f ( a , c , d ) {
var e = w . isObservable ( a ) ,
f = ! e && Array . isArray ( a ) ,
g = e ? a : f ? w . observableArray ( a ) : w . observable ( a )
return (
( d [ c ] = function ( ) {
return g
} ) ,
( f || ( e && 'push' in g ) ) && m ( w , g ) ,
{
configurable : ! 0 ,
enumerable : ! 0 ,
get : g ,
set : w . isWriteableObservable ( g ) ? g : b
}
)
}
function g ( a , b , c ) {
function d ( a , b ) {
return e
? b
? e ( a )
: e
: Array . isArray ( a )
? ( ( e = w . observableArray ( a ) ) , m ( w , e ) , e )
: ( e = w . observable ( a ) )
}
if ( w . isObservable ( a ) ) return f ( a , b , c )
var e
return (
( c [ b ] = function ( ) {
return d ( a )
} ) ,
{
configurable : ! 0 ,
enumerable : ! 0 ,
get : function ( ) {
return d ( a ) ( )
} ,
set : function ( a ) {
d ( a , ! 0 )
}
}
)
}
function h ( a , b , c ) {
if ( b . length ) {
var d = j ( a , ! 0 ) ,
i = { }
b . forEach ( function ( b ) {
if (
! ( b in d ) &&
Object . getOwnPropertyDescriptor ( a , b ) . configurable !== ! 1
) {
var j = a [ b ]
; ( i [ b ] = ( c . lazy ? g : f ) ( j , b , d ) ) ,
c . deep && e ( j ) && h ( j , Object . keys ( j ) , c )
}
} ) ,
Object . defineProperties ( a , i )
}
}
function i ( a ) {
return ! ! a && 'object' == typeof a && a . constructor === Object
}
function j ( a , b ) {
x || ( x = z ( ) )
var c = x . get ( a )
return ! c && b && ( ( c = { } ) , x . set ( a , c ) ) , c
}
function k ( a , b ) {
if ( x )
if ( 1 === arguments . length ) x [ 'delete' ] ( a )
else {
var c = j ( a , ! 1 )
c &&
b . forEach ( function ( a ) {
delete c [ a ]
} )
}
}
function l ( a , b , d ) {
var e = this ,
f = { owner : a , deferEvaluation : ! 0 }
if ( 'function' == typeof d ) f . read = d
else {
if ( 'value' in d )
throw new Error (
'For ko.defineProperty, you must not specify a "value" for the property. You must provide a "get" function.'
)
if ( 'function' != typeof d . get )
throw new Error (
'For ko.defineProperty, the third parameter must be either an evaluator function, or an options object containing a function called "get".'
)
; ( f . read = d . get ) , ( f . write = d . set )
}
return ( a [ b ] = e . computed ( f ) ) , c . call ( e , a , [ b ] ) , a
}
function m ( a , b ) {
var c = null
a . computed ( function ( ) {
c && ( c . dispose ( ) , ( c = null ) )
var d = b ( )
d instanceof Array && ( c = n ( a , b , d ) )
} )
}
function n ( a , b , c ) {
var d = o ( a , c )
return d . subscribe ( b )
}
function o ( a , b ) {
y || ( y = z ( ) )
var c = y . get ( b )
if ( ! c ) {
; ( c = new a . subscribable ( ) ) , y . set ( b , c )
var d = { }
p ( b , c , d ) , q ( a , b , c , d )
}
return c
}
function p ( a , b , c ) {
; [
'pop' ,
'push' ,
'reverse' ,
'shift' ,
'sort' ,
'splice' ,
'unshift'
] . forEach ( function ( d ) {
var e = a [ d ]
a [ d ] = function ( ) {
var a = e . apply ( this , arguments )
return c . pause !== ! 0 && b . notifySubscribers ( this ) , a
}
} )
}
function q ( a , b , c , d ) {
; [ 'remove' , 'removeAll' , 'destroy' , 'destroyAll' , 'replace' ] . forEach (
function ( e ) {
Object . defineProperty ( b , e , {
enumerable : ! 1 ,
value : function ( ) {
var f
d . pause = ! 0
try {
f = a . observableArray . fn [ e ] . apply (
a . observableArray ( b ) ,
arguments
)
} finally {
d . pause = ! 1
}
return c . notifySubscribers ( b ) , f
}
} )
}
)
}
function r ( a , b ) {
if ( ! a || 'object' != typeof a ) return null
var c = j ( a , ! 1 )
return c && b in c ? c [ b ] ( ) : null
}
function s ( a , b ) {
if ( ! a || 'object' != typeof a ) return ! 1
var c = j ( a , ! 1 )
return ! ! c && b in c
}
function t ( a , b ) {
var c = r ( a , b )
c && c . valueHasMutated ( )
}
function u ( a ) {
; ( a . track = c ) ,
( a . untrack = k ) ,
( a . getObservable = r ) ,
( a . valueHasMutated = t ) ,
( a . defineProperty = l ) ,
( a . es5 = {
getAllObservablesForObject : j ,
notifyWhenPresentOrFutureArrayValuesMutate : m ,
isTracked : s
} )
}
function v ( ) {
if ( 'object' == typeof exports && 'object' == typeof module ) {
w = require ( 'knockout' )
var b = require ( '../lib/weakmap' )
u ( w ) ,
( z = function ( ) {
return new b ( )
} ) ,
( module . exports = w )
} else
'function' == typeof define && define . amd
? define ( 'KnockoutES5' , [ 'knockout' ] , function ( b ) {
return (
( w = b ) ,
u ( b ) ,
( z = function ( ) {
return new a . WeakMap ( )
} ) ,
b
)
} )
: 'ko' in a &&
( ( w = a . ko ) ,
u ( a . ko ) ,
( z = function ( ) {
return new a . WeakMap ( )
} ) )
}
var w ,
x ,
y ,
z ,
A = /^function\s*([^\s(]+)/
v ( )
} ) ( this ) ,
void ( function ( a , b , c ) {
function d ( a , b , c ) {
return (
'function' == typeof b && ( ( c = b ) , ( b = e ( c ) . replace ( /_$/ , '' ) ) ) ,
j ( a , b , {
configurable : ! 0 ,
writable : ! 0 ,
value : c
} )
)
}
function e ( a ) {
return 'function' != typeof a
? ''
: '_name' in a
? a . _name
: 'name' in a
? a . name
: k . call ( a ) . match ( n ) [ 1 ]
}
function f ( a , b ) {
return ( b . _name = a ) , b
}
function g ( a ) {
function b ( b , e ) {
return (
e || 2 === arguments . length
? d . set ( b , e )
: ( ( e = d . get ( b ) ) , e === c && ( ( e = a ( b ) ) , d . set ( b , e ) ) ) ,
e
)
}
var d = new p ( )
return a || ( a = q ) , b
}
var h = Object . getOwnPropertyNames ,
i =
'object' == typeof window ? Object . getOwnPropertyNames ( window ) : [ ] ,
j = Object . defineProperty ,
k = Function . prototype . toString ,
l = Object . create ,
m = Object . prototype . hasOwnProperty ,
n = /^\n?function\s?(\w*)?_?\(/ ,
o = ( function ( ) {
function a ( ) {
var a = g ( ) ,
c = { }
this . unlock = function ( d ) {
var e = n ( d )
if ( m . call ( e , a ) ) return e [ a ] ( c )
var f = l ( null , b )
return (
j ( e , a , {
value : function ( a ) {
return a === c ? f : void 0
}
} ) ,
f
)
}
}
var b = { value : { writable : ! 0 , value : c } } ,
e = l ( null ) ,
g = function ( ) {
var a = Math . random ( )
. toString ( 36 )
. slice ( 2 )
return a in e ? g ( ) : ( e [ a ] = a )
} ,
k = g ( ) ,
n = function ( a ) {
if ( m . call ( a , k ) ) return a [ k ]
if ( ! Object . isExtensible ( a ) )
throw new TypeError ( 'Object must be extensible' )
var b = l ( null )
return j ( a , k , { value : b } ) , b
}
return (
d (
Object ,
f ( 'getOwnPropertyNames' , function ( a ) {
var b ,
c = Object ( a )
if (
c !== Window . prototype &&
'toString' in c &&
'[object Window]' === c . toString ( )
)
try {
b = h ( a )
} catch ( d ) {
b = i
}
else b = h ( a )
return m . call ( a , k ) && b . splice ( b . indexOf ( k ) , 1 ) , b
} )
) ,
d (
a . prototype ,
f ( 'get' , function ( a ) {
return this . unlock ( a ) . value
} )
) ,
d (
a . prototype ,
f ( 'set' , function ( a , b ) {
this . unlock ( a ) . value = b
} )
) ,
a
)
} ) ( ) ,
p = ( function ( g ) {
function h ( b ) {
return this === a || null == this || this === h . prototype
? new h ( b )
: ( p ( this , new o ( ) ) , void r ( this , b ) )
}
function i ( a ) {
n ( a )
var d = q ( this ) . get ( a )
return d === b ? c : d
}
function j ( a , d ) {
n ( a ) , q ( this ) . set ( a , d === c ? b : d )
}
function k ( a ) {
return n ( a ) , q ( this ) . get ( a ) !== c
}
function l ( a ) {
n ( a )
var b = q ( this ) ,
d = b . get ( a ) !== c
return b . set ( a , c ) , d
}
function m ( ) {
return q ( this ) , '[object WeakMap]'
}
var n = function ( a ) {
if (
null == a ||
( 'object' != typeof a && 'function' != typeof a )
)
throw new TypeError ( 'Invalid WeakMap key' )
} ,
p = function ( a , b ) {
var c = g . unlock ( a )
if ( c . value ) throw new TypeError ( 'Object is already a WeakMap' )
c . value = b
} ,
q = function ( a ) {
var b = g . unlock ( a ) . value
if ( ! b ) throw new TypeError ( 'WeakMap is not generic' )
return b
} ,
r = function ( a , b ) {
null !== b &&
'object' == typeof b &&
'function' == typeof b . forEach &&
b . forEach ( function ( c , d ) {
c instanceof Array &&
2 === c . length &&
j . call ( a , b [ d ] [ 0 ] , b [ d ] [ 1 ] )
} )
}
; ( i . _name = 'get' ) ,
( j . _name = 'set' ) ,
( k . _name = 'has' ) ,
( m . _name = 'toString' )
var s = ( '' + Object ) . split ( 'Object' ) ,
t = f ( 'toString' , function ( ) {
return s [ 0 ] + e ( this ) + s [ 1 ]
} )
d ( t , t )
var u =
{ _ _proto _ _ : [ ] } instanceof Array
? function ( a ) {
a . _ _proto _ _ = t
}
: function ( a ) {
d ( a , t )
}
return (
u ( h ) ,
[ m , i , j , k , l ] . forEach ( function ( a ) {
d ( h . prototype , a ) , u ( a )
} ) ,
h
)
} ) ( new o ( ) ) ,
q = Object . create
? function ( ) {
return Object . create ( null )
}
: function ( ) {
return { }
}
'undefined' != typeof module
? ( module . exports = p )
: 'undefined' != typeof exports
? ( exports . WeakMap = p )
: 'WeakMap' in a || ( a . WeakMap = p ) ,
( p . createStorage = g ) ,
a . WeakMap && ( a . WeakMap . createStorage = g )
} ) (
( function ( ) {
return this
} ) ( )
)
! ( function ( e ) {
if ( 'object' == typeof exports && 'undefined' != typeof module )
module . exports = e ( )
else if ( 'function' == typeof define && define . amd )
define ( 'markdown-it-sanitizer' , [ ] , e )
else {
var t
; ( t =
'undefined' != typeof window
? window
: 'undefined' != typeof global
? global
: 'undefined' != typeof self
? self
: this ) ,
( t . markdownitSanitizer = e ( ) )
}
} ) ( function ( ) {
return ( function e ( t , n , r ) {
function o ( l , f ) {
if ( ! n [ l ] ) {
if ( ! t [ l ] ) {
var a = 'function' == typeof require && require
if ( ! f && a ) return a ( l , ! 0 )
if ( i ) return i ( l , ! 0 )
var s = new Error ( "Cannot find module '" + l + "'" )
throw ( ( s . code = 'MODULE_NOT_FOUND' ) , s )
}
var u = ( n [ l ] = { exports : { } } )
t [ l ] [ 0 ] . call (
u . exports ,
function ( e ) {
var n = t [ l ] [ 1 ] [ e ]
return o ( n ? n : e )
} ,
u ,
u . exports ,
e ,
t ,
n ,
r
)
}
return n [ l ] . exports
}
for (
var i = 'function' == typeof require && require , l = 0 ;
l < r . length ;
l ++
)
o ( r [ l ] )
return o
} ) (
{
1 : [
function ( e , t , n ) {
'use strict'
t . exports = function ( e , t ) {
function n ( e ) {
var t = l . match ( e )
return t &&
1 === t . length &&
0 === t [ 0 ] . index &&
t [ 0 ] . lastIndex === e . length
? t [ 0 ] . url
: null
}
function r ( e ) {
var t = '<a\\shref="([^"<>]*)"(?:\\stitle="([^"<>]*)")?>' ,
r = RegExp ( t , 'i' ) ,
o = '<img\\s([^<>]*src="[^"<>]*"[^<>]*)\\s?\\/?>' ,
i = RegExp ( o , 'i' )
return ( e = e . replace ( /<[^<>]*>?/gi , function ( e ) {
var t , o , l , a , u
if ( /(^<->|^<-\s|^<3\s)/ . test ( e ) ) return e
if ( ( t = e . match ( i ) ) ) {
var m = t [ 1 ]
if (
( ( o = n ( m . match ( /src="([^"<>]*)"/i ) [ 1 ] ) ) ,
( l = m . match ( /alt="([^"<>]*)"/i ) ) ,
( l = l && 'undefined' != typeof l [ 1 ] ? l [ 1 ] : '' ) ,
( a = m . match ( /title="([^"<>]*)"/i ) ) ,
( a = a && 'undefined' != typeof a [ 1 ] ? a [ 1 ] : '' ) ,
o && /^https?:\/\//i . test ( o ) )
)
return '' !== c
? '<img src="' +
o +
'" alt="' +
l +
'" title="' +
a +
'" class="' +
c +
'">'
: '<img src="' +
o +
'" alt="' +
l +
'" title="' +
a +
'">'
}
return (
( u = d . indexOf ( 'a' ) ) ,
( t = e . match ( r ) ) ,
t &&
( ( a = 'undefined' != typeof t [ 2 ] ? t [ 2 ] : '' ) ,
( o = n ( t [ 1 ] ) ) ,
o && /^(?:https?:\/\/|ftp:\/\/|mailto:|xmpp:)/i . test ( o ) )
? ( ( p = ! 0 ) ,
( h [ u ] += 1 ) ,
'<a href="' +
o +
'" title="' +
a +
'" target="_blank">' )
: ( t = /<\/a>/i . test ( e ) )
? ( ( p = ! 0 ) ,
( h [ u ] -= 1 ) ,
h [ u ] < 0 && ( g [ u ] = ! 0 ) ,
'</a>' )
: ( t = e . match ( /<(br|hr)\s?\/?>/i ) )
? '<' + t [ 1 ] . toLowerCase ( ) + '>'
: ( ( t = e . match (
/<(\/?)(b|blockquote|code|em|h[1-6]|li|ol(?: start="\d+")?|p|pre|s|sub|sup|strong|ul)>/i
) ) ,
t && ! /<\/ol start="\d+"/i . test ( e )
? ( ( p = ! 0 ) ,
( u = d . indexOf ( t [ 2 ] . toLowerCase ( ) . split ( ' ' ) [ 0 ] ) ) ,
'/' === t [ 1 ] ? ( h [ u ] -= 1 ) : ( h [ u ] += 1 ) ,
h [ u ] < 0 && ( g [ u ] = ! 0 ) ,
'<' + t [ 1 ] + t [ 2 ] . toLowerCase ( ) + '>' )
: s === ! 0
? ''
: f ( e ) )
)
} ) )
}
function o ( e ) {
var t , n , o
for ( a = 0 ; a < d . length ; a ++ ) h [ a ] = 0
for ( a = 0 ; a < d . length ; a ++ ) g [ a ] = ! 1
for ( p = ! 1 , n = 0 ; n < e . tokens . length ; n ++ )
if (
( 'html_block' === e . tokens [ n ] . type &&
( e . tokens [ n ] . content = r ( e . tokens [ n ] . content ) ) ,
'inline' === e . tokens [ n ] . type )
)
for ( o = e . tokens [ n ] . children , t = 0 ; t < o . length ; t ++ )
'html_inline' === o [ t ] . type &&
( o [ t ] . content = r ( o [ t ] . content ) )
}
function i ( e ) {
function t ( e , t ) {
var n , r
return (
( n =
'a' === t
? RegExp (
'<a href="[^"<>]*" title="[^"<>]*" target="_blank">' ,
'g'
)
: 'ol' === t
? /<ol(?: start="\d+")?>/g
: RegExp ( '<' + t + '>' , 'g' ) ) ,
( r = RegExp ( '</' + t + '>' , 'g' ) ) ,
u === ! 0
? ( ( e = e . replace ( n , '' ) ) , ( e = e . replace ( r , '' ) ) )
: ( ( e = e . replace ( n , function ( e ) {
return f ( e )
} ) ) ,
( e = e . replace ( r , function ( e ) {
return f ( e )
} ) ) ) ,
e
)
}
function n ( e ) {
var n
for ( n = 0 ; n < d . length ; n ++ )
g [ n ] === ! 0 && ( e = t ( e , d [ n ] ) )
return e
}
if ( p !== ! 1 ) {
var r , o
for ( a = 0 ; a < d . length ; a ++ ) 0 !== h [ a ] && ( g [ a ] = ! 0 )
for ( r = 0 ; r < e . tokens . length ; r ++ )
if ( 'html_block' !== e . tokens [ r ] . type ) {
if ( 'inline' === e . tokens [ r ] . type )
for (
o = e . tokens [ r ] . children , a = 0 ;
a < o . length ;
a ++
)
'html_inline' === o [ a ] . type &&
( o [ a ] . content = n ( o [ a ] . content ) )
} else e . tokens [ r ] . content = n ( e . tokens [ r ] . content )
}
}
var l = e . linkify ,
f = e . utils . escapeHtml
t = t ? t : { }
var a ,
s =
'undefined' != typeof t . removeUnknown
? t . removeUnknown
: ! 1 ,
u =
'undefined' != typeof t . removeUnbalanced
? t . removeUnbalanced
: ! 1 ,
c = 'undefined' != typeof t . imageClass ? t . imageClass : '' ,
p = ! 1 ,
d = [
'a' ,
'b' ,
'blockquote' ,
'code' ,
'em' ,
'h1' ,
'h2' ,
'h3' ,
'h4' ,
'h5' ,
'h6' ,
'li' ,
'ol' ,
'p' ,
'pre' ,
's' ,
'sub' ,
'sup' ,
'strong' ,
'ul'
] ,
h = new Array ( d . length ) ,
g = new Array ( d . length )
for ( a = 0 ; a < d . length ; a ++ ) h [ a ] = 0
for ( a = 0 ; a < d . length ; a ++ ) g [ a ] = ! 1
e . core . ruler . after ( 'linkify' , 'sanitize_inline' , o ) ,
e . core . ruler . after ( 'sanitize_inline' , 'sanitize_balance' , i )
}
} ,
{ }
]
} ,
{ } ,
[ 1 ]
) ( 1 )
} )
! ( function ( e ) {
if ( 'object' == typeof exports && 'undefined' != typeof module )
module . exports = e ( )
else if ( 'function' == typeof define && define . amd )
define ( 'markdown-it' , [ ] , e )
else {
var r
; ( r =
'undefined' != typeof window
? window
: 'undefined' != typeof global
? global
: 'undefined' != typeof self
? self
: this ) ,
( r . markdownit = e ( ) )
}
} ) ( function ( ) {
var e
return ( function r ( e , t , n ) {
function s ( i , a ) {
if ( ! t [ i ] ) {
if ( ! e [ i ] ) {
var c = 'function' == typeof require && require
if ( ! a && c ) return c ( i , ! 0 )
if ( o ) return o ( i , ! 0 )
var l = new Error ( "Cannot find module '" + i + "'" )
throw ( ( l . code = 'MODULE_NOT_FOUND' ) , l )
}
var u = ( t [ i ] = { exports : { } } )
e [ i ] [ 0 ] . call (
u . exports ,
function ( r ) {
var t = e [ i ] [ 1 ] [ r ]
return s ( t ? t : r )
} ,
u ,
u . exports ,
r ,
e ,
t ,
n
)
}
return t [ i ] . exports
}
for (
var o = 'function' == typeof require && require , i = 0 ;
i < n . length ;
i ++
)
s ( n [ i ] )
return s
} ) (
{
1 : [
function ( e , r , t ) {
'use strict'
r . exports = e ( 'entities/maps/entities.json' )
} ,
{ 'entities/maps/entities.json' : 53 }
] ,
2 : [
function ( e , r , t ) {
'use strict'
r . exports = [
'address' ,
'article' ,
'aside' ,
'base' ,
'basefont' ,
'blockquote' ,
'body' ,
'caption' ,
'center' ,
'col' ,
'colgroup' ,
'dd' ,
'details' ,
'dialog' ,
'dir' ,
'div' ,
'dl' ,
'dt' ,
'fieldset' ,
'figcaption' ,
'figure' ,
'footer' ,
'form' ,
'frame' ,
'frameset' ,
'h1' ,
'head' ,
'header' ,
'hr' ,
'html' ,
'iframe' ,
'legend' ,
'li' ,
'link' ,
'main' ,
'menu' ,
'menuitem' ,
'meta' ,
'nav' ,
'noframes' ,
'ol' ,
'optgroup' ,
'option' ,
'p' ,
'param' ,
'pre' ,
'section' ,
'source' ,
'title' ,
'summary' ,
'table' ,
'tbody' ,
'td' ,
'tfoot' ,
'th' ,
'thead' ,
'title' ,
'tr' ,
'track' ,
'ul'
]
} ,
{ }
] ,
3 : [
function ( e , r , t ) {
'use strict'
var n = '[a-zA-Z_:][a-zA-Z0-9:._-]*' ,
s = '[^"\'=<>`\\x00-\\x20]+' ,
o = "'[^']*'" ,
i = '"[^"]*"' ,
a = '(?:' + s + '|' + o + '|' + i + ')' ,
c = '(?:\\s+' + n + '(?:\\s*=\\s*' + a + ')?)' ,
l = '<[A-Za-z][A-Za-z0-9\\-]*' + c + '*\\s*\\/?>' ,
u = '<\\/[A-Za-z][A-Za-z0-9\\-]*\\s*>' ,
p = '<!---->|<!--(?:-?[^>-])(?:-?[^-])*-->' ,
h = '<[?].*?[?]>' ,
f = '<![A-Z]+\\s+[^>]*>' ,
d = '<!\\[CDATA\\[[\\s\\S]*?\\]\\]>' ,
m = new RegExp (
'^(?:' +
l +
'|' +
u +
'|' +
p +
'|' +
h +
'|' +
f +
'|' +
d +
')'
) ,
_ = new RegExp ( '^(?:' + l + '|' + u + ')' )
; ( r . exports . HTML _TAG _RE = m ) ,
( r . exports . HTML _OPEN _CLOSE _TAG _RE = _ )
} ,
{ }
] ,
4 : [
function ( e , r , t ) {
'use strict'
function n ( e ) {
return Object . prototype . toString . call ( e )
}
function s ( e ) {
return '[object String]' === n ( e )
}
function o ( e , r ) {
return x . call ( e , r )
}
function i ( e ) {
var r = Array . prototype . slice . call ( arguments , 1 )
return (
r . forEach ( function ( r ) {
if ( r ) {
if ( 'object' != typeof r )
throw new TypeError ( r + 'must be object' )
Object . keys ( r ) . forEach ( function ( t ) {
e [ t ] = r [ t ]
} )
}
} ) ,
e
)
}
function a ( e , r , t ) {
return [ ] . concat ( e . slice ( 0 , r ) , t , e . slice ( r + 1 ) )
}
function c ( e ) {
return (
! ( e >= 55296 && e <= 57343 ) &&
! ( e >= 64976 && e <= 65007 ) &&
65535 !== ( 65535 & e ) &&
65534 !== ( 65535 & e ) &&
! ( e >= 0 && e <= 8 ) &&
11 !== e &&
! ( e >= 14 && e <= 31 ) &&
! ( e >= 127 && e <= 159 ) &&
! ( e > 1114111 )
)
}
function l ( e ) {
if ( e > 65535 ) {
e -= 65536
var r = 55296 + ( e >> 10 ) ,
t = 56320 + ( 1023 & e )
return String . fromCharCode ( r , t )
}
return String . fromCharCode ( e )
}
function u ( e , r ) {
var t = 0
return o ( D , r )
? D [ r ]
: 35 === r . charCodeAt ( 0 ) &&
w . test ( r ) &&
( ( t =
'x' === r [ 1 ] . toLowerCase ( )
? parseInt ( r . slice ( 2 ) , 16 )
: parseInt ( r . slice ( 1 ) , 10 ) ) ,
c ( t ) )
? l ( t )
: e
}
function p ( e ) {
return e . indexOf ( '\\' ) < 0 ? e : e . replace ( y , '$1' )
}
function h ( e ) {
return e . indexOf ( '\\' ) < 0 && e . indexOf ( '&' ) < 0
? e
: e . replace ( A , function ( e , r , t ) {
return r ? r : u ( e , t )
} )
}
function f ( e ) {
return S [ e ]
}
function d ( e ) {
return q . test ( e ) ? e . replace ( E , f ) : e
}
function m ( e ) {
return e . replace ( F , '\\$&' )
}
function _ ( e ) {
switch ( e ) {
case 9 :
case 32 :
return ! 0
}
return ! 1
}
function g ( e ) {
if ( e >= 8192 && e <= 8202 ) return ! 0
switch ( e ) {
case 9 :
case 10 :
case 11 :
case 12 :
case 13 :
case 32 :
case 160 :
case 5760 :
case 8239 :
case 8287 :
case 12288 :
return ! 0
}
return ! 1
}
function k ( e ) {
return z . test ( e )
}
function b ( e ) {
switch ( e ) {
case 33 :
case 34 :
case 35 :
case 36 :
case 37 :
case 38 :
case 39 :
case 40 :
case 41 :
case 42 :
case 43 :
case 44 :
case 45 :
case 46 :
case 47 :
case 58 :
case 59 :
case 60 :
case 61 :
case 62 :
case 63 :
case 64 :
case 91 :
case 92 :
case 93 :
case 94 :
case 95 :
case 96 :
case 123 :
case 124 :
case 125 :
case 126 :
return ! 0
default :
return ! 1
}
}
function v ( e ) {
return e
. trim ( )
. replace ( /\s+/g , ' ' )
. toUpperCase ( )
}
var x = Object . prototype . hasOwnProperty ,
y = /\\([!"#$%&'()*+,\-.\/:;<=>?@[\\\]^_`{|}~])/g ,
C = /&([a-z#][a-z0-9]{1,31});/gi ,
A = new RegExp ( y . source + '|' + C . source , 'gi' ) ,
w = /^#((?:x[a-f0-9]{1,8}|[0-9]{1,8}))/i ,
D = e ( './entities' ) ,
q = /[&<>"]/ ,
E = /[&<>"]/g ,
S = { '&' : '&' , '<' : '<' , '>' : '>' , '"' : '"' } ,
F = /[.?*+^$[\]\\(){}|-]/g ,
z = e ( 'uc.micro/categories/P/regex' )
; ( t . lib = { } ) ,
( t . lib . mdurl = e ( 'mdurl' ) ) ,
( t . lib . ucmicro = e ( 'uc.micro' ) ) ,
( t . assign = i ) ,
( t . isString = s ) ,
( t . has = o ) ,
( t . unescapeMd = p ) ,
( t . unescapeAll = h ) ,
( t . isValidEntityCode = c ) ,
( t . fromCodePoint = l ) ,
( t . escapeHtml = d ) ,
( t . arrayReplaceAt = a ) ,
( t . isSpace = _ ) ,
( t . isWhiteSpace = g ) ,
( t . isMdAsciiPunct = b ) ,
( t . isPunctChar = k ) ,
( t . escapeRE = m ) ,
( t . normalizeReference = v )
} ,
{
'./entities' : 1 ,
mdurl : 59 ,
'uc.micro' : 65 ,
'uc.micro/categories/P/regex' : 63
}
] ,
5 : [
function ( e , r , t ) {
'use strict'
; ( t . parseLinkLabel = e ( './parse_link_label' ) ) ,
( t . parseLinkDestination = e ( './parse_link_destination' ) ) ,
( t . parseLinkTitle = e ( './parse_link_title' ) )
} ,
{
'./parse_link_destination' : 6 ,
'./parse_link_label' : 7 ,
'./parse_link_title' : 8
}
] ,
6 : [
function ( e , r , t ) {
'use strict'
var n = e ( '../common/utils' ) . isSpace ,
s = e ( '../common/utils' ) . unescapeAll
r . exports = function ( e , r , t ) {
var o ,
i ,
a = 0 ,
c = r ,
l = { ok : ! 1 , pos : 0 , lines : 0 , str : '' }
if ( 60 === e . charCodeAt ( r ) ) {
for ( r ++ ; r < t ; ) {
if ( ( ( o = e . charCodeAt ( r ) ) , 10 === o || n ( o ) ) ) return l
if ( 62 === o )
return (
( l . pos = r + 1 ) ,
( l . str = s ( e . slice ( c + 1 , r ) ) ) ,
( l . ok = ! 0 ) ,
l
)
92 === o && r + 1 < t ? ( r += 2 ) : r ++
}
return l
}
for (
i = 0 ;
r < t &&
( ( o = e . charCodeAt ( r ) ) , 32 !== o ) &&
! ( o < 32 || 127 === o ) ;
)
if ( 92 === o && r + 1 < t ) r += 2
else {
if ( 40 === o && ( i ++ , i > 1 ) ) break
if ( 41 === o && ( i -- , i < 0 ) ) break
r ++
}
return c === r
? l
: ( ( l . str = s ( e . slice ( c , r ) ) ) ,
( l . lines = a ) ,
( l . pos = r ) ,
( l . ok = ! 0 ) ,
l )
}
} ,
{ '../common/utils' : 4 }
] ,
7 : [
function ( e , r , t ) {
'use strict'
r . exports = function ( e , r , t ) {
var n ,
s ,
o ,
i ,
a = - 1 ,
c = e . posMax ,
l = e . pos
for ( e . pos = r + 1 , n = 1 ; e . pos < c ; ) {
if (
( ( o = e . src . charCodeAt ( e . pos ) ) , 93 === o && ( n -- , 0 === n ) )
) {
s = ! 0
break
}
if ( ( ( i = e . pos ) , e . md . inline . skipToken ( e ) , 91 === o ) )
if ( i === e . pos - 1 ) n ++
else if ( t ) return ( e . pos = l ) , - 1
}
return s && ( a = e . pos ) , ( e . pos = l ) , a
}
} ,
{ }
] ,
8 : [
function ( e , r , t ) {
'use strict'
var n = e ( '../common/utils' ) . unescapeAll
r . exports = function ( e , r , t ) {
var s ,
o ,
i = 0 ,
a = r ,
c = { ok : ! 1 , pos : 0 , lines : 0 , str : '' }
if ( r >= t ) return c
if ( ( ( o = e . charCodeAt ( r ) ) , 34 !== o && 39 !== o && 40 !== o ) )
return c
for ( r ++ , 40 === o && ( o = 41 ) ; r < t ; ) {
if ( ( ( s = e . charCodeAt ( r ) ) , s === o ) )
return (
( c . pos = r + 1 ) ,
( c . lines = i ) ,
( c . str = n ( e . slice ( a + 1 , r ) ) ) ,
( c . ok = ! 0 ) ,
c
)
10 === s
? i ++
: 92 === s &&
r + 1 < t &&
( r ++ , 10 === e . charCodeAt ( r ) && i ++ ) ,
r ++
}
return c
}
} ,
{ '../common/utils' : 4 }
] ,
9 : [
function ( e , r , t ) {
'use strict'
function n ( e ) {
var r = e . trim ( ) . toLowerCase ( )
return ! g . test ( r ) || ! ! k . test ( r )
}
function s ( e ) {
var r = d . parse ( e , ! 0 )
if ( r . hostname && ( ! r . protocol || b . indexOf ( r . protocol ) >= 0 ) )
try {
r . hostname = m . toASCII ( r . hostname )
} catch ( t ) { }
return d . encode ( d . format ( r ) )
}
function o ( e ) {
var r = d . parse ( e , ! 0 )
if ( r . hostname && ( ! r . protocol || b . indexOf ( r . protocol ) >= 0 ) )
try {
r . hostname = m . toUnicode ( r . hostname )
} catch ( t ) { }
return d . decode ( d . format ( r ) )
}
function i ( e , r ) {
return this instanceof i
? ( r || a . isString ( e ) || ( ( r = e || { } ) , ( e = 'default' ) ) ,
( this . inline = new h ( ) ) ,
( this . block = new p ( ) ) ,
( this . core = new u ( ) ) ,
( this . renderer = new l ( ) ) ,
( this . linkify = new f ( ) ) ,
( this . validateLink = n ) ,
( this . normalizeLink = s ) ,
( this . normalizeLinkText = o ) ,
( this . utils = a ) ,
( this . helpers = c ) ,
( this . options = { } ) ,
this . configure ( e ) ,
void ( r && this . set ( r ) ) )
: new i ( e , r )
}
var a = e ( './common/utils' ) ,
c = e ( './helpers' ) ,
l = e ( './renderer' ) ,
u = e ( './parser_core' ) ,
p = e ( './parser_block' ) ,
h = e ( './parser_inline' ) ,
f = e ( 'linkify-it' ) ,
d = e ( 'mdurl' ) ,
m = e ( 'punycode' ) ,
_ = {
default : e ( './presets/default' ) ,
zero : e ( './presets/zero' ) ,
commonmark : e ( './presets/commonmark' )
} ,
g = /^(vbscript|javascript|file|data):/ ,
k = /^data:image\/(gif|png|jpeg|webp);/ ,
b = [ 'http:' , 'https:' , 'mailto:' ]
; ( i . prototype . set = function ( e ) {
return a . assign ( this . options , e ) , this
} ) ,
( i . prototype . configure = function ( e ) {
var r ,
t = this
if ( a . isString ( e ) && ( ( r = e ) , ( e = _ [ r ] ) , ! e ) )
throw new Error (
'Wrong `markdown-it` preset "' + r + '", check name'
)
if ( ! e )
throw new Error (
"Wrong `markdown-it` preset, can't be empty"
)
return (
e . options && t . set ( e . options ) ,
e . components &&
Object . keys ( e . components ) . forEach ( function ( r ) {
e . components [ r ] . rules &&
t [ r ] . ruler . enableOnly ( e . components [ r ] . rules ) ,
e . components [ r ] . rules2 &&
t [ r ] . ruler2 . enableOnly ( e . components [ r ] . rules2 )
} ) ,
this
)
} ) ,
( i . prototype . enable = function ( e , r ) {
var t = [ ]
Array . isArray ( e ) || ( e = [ e ] ) ,
[ 'core' , 'block' , 'inline' ] . forEach ( function ( r ) {
t = t . concat ( this [ r ] . ruler . enable ( e , ! 0 ) )
} , this ) ,
( t = t . concat ( this . inline . ruler2 . enable ( e , ! 0 ) ) )
var n = e . filter ( function ( e ) {
return t . indexOf ( e ) < 0
} )
if ( n . length && ! r )
throw new Error (
'MarkdownIt. Failed to enable unknown rule(s): ' + n
)
return this
} ) ,
( i . prototype . disable = function ( e , r ) {
var t = [ ]
Array . isArray ( e ) || ( e = [ e ] ) ,
[ 'core' , 'block' , 'inline' ] . forEach ( function ( r ) {
t = t . concat ( this [ r ] . ruler . disable ( e , ! 0 ) )
} , this ) ,
( t = t . concat ( this . inline . ruler2 . disable ( e , ! 0 ) ) )
var n = e . filter ( function ( e ) {
return t . indexOf ( e ) < 0
} )
if ( n . length && ! r )
throw new Error (
'MarkdownIt. Failed to disable unknown rule(s): ' + n
)
return this
} ) ,
( i . prototype . use = function ( e ) {
var r = [ this ] . concat (
Array . prototype . slice . call ( arguments , 1 )
)
return e . apply ( e , r ) , this
} ) ,
( i . prototype . parse = function ( e , r ) {
var t = new this . core . State ( e , this , r )
return this . core . process ( t ) , t . tokens
} ) ,
( i . prototype . render = function ( e , r ) {
return (
( r = r || { } ) ,
this . renderer . render ( this . parse ( e , r ) , this . options , r )
)
} ) ,
( i . prototype . parseInline = function ( e , r ) {
var t = new this . core . State ( e , this , r )
return ( t . inlineMode = ! 0 ) , this . core . process ( t ) , t . tokens
} ) ,
( i . prototype . renderInline = function ( e , r ) {
return (
( r = r || { } ) ,
this . renderer . render (
this . parseInline ( e , r ) ,
this . options ,
r
)
)
} ) ,
( r . exports = i )
} ,
{
'./common/utils' : 4 ,
'./helpers' : 5 ,
'./parser_block' : 10 ,
'./parser_core' : 11 ,
'./parser_inline' : 12 ,
'./presets/commonmark' : 13 ,
'./presets/default' : 14 ,
'./presets/zero' : 15 ,
'./renderer' : 16 ,
'linkify-it' : 54 ,
mdurl : 59 ,
punycode : 52
}
] ,
10 : [
function ( e , r , t ) {
'use strict'
function n ( ) {
this . ruler = new s ( )
for ( var e = 0 ; e < o . length ; e ++ )
this . ruler . push ( o [ e ] [ 0 ] , o [ e ] [ 1 ] , {
alt : ( o [ e ] [ 2 ] || [ ] ) . slice ( )
} )
}
var s = e ( './ruler' ) ,
o = [
[
'table' ,
e ( './rules_block/table' ) ,
[ 'paragraph' , 'reference' ]
] ,
[ 'code' , e ( './rules_block/code' ) ] ,
[
'fence' ,
e ( './rules_block/fence' ) ,
[ 'paragraph' , 'reference' , 'blockquote' , 'list' ]
] ,
[
'blockquote' ,
e ( './rules_block/blockquote' ) ,
[ 'paragraph' , 'reference' , 'list' ]
] ,
[
'hr' ,
e ( './rules_block/hr' ) ,
[ 'paragraph' , 'reference' , 'blockquote' , 'list' ]
] ,
[
'list' ,
e ( './rules_block/list' ) ,
[ 'paragraph' , 'reference' , 'blockquote' ]
] ,
[ 'reference' , e ( './rules_block/reference' ) ] ,
[
'heading' ,
e ( './rules_block/heading' ) ,
[ 'paragraph' , 'reference' , 'blockquote' ]
] ,
[ 'lheading' , e ( './rules_block/lheading' ) ] ,
[
'html_block' ,
e ( './rules_block/html_block' ) ,
[ 'paragraph' , 'reference' , 'blockquote' ]
] ,
[ 'paragraph' , e ( './rules_block/paragraph' ) ]
]
; ( n . prototype . tokenize = function ( e , r , t ) {
for (
var n ,
s ,
o = this . ruler . getRules ( '' ) ,
i = o . length ,
a = r ,
c = ! 1 ,
l = e . md . options . maxNesting ;
a < t &&
( ( e . line = a = e . skipEmptyLines ( a ) ) , ! ( a >= t ) ) &&
! ( e . sCount [ a ] < e . blkIndent ) ;
) {
if ( e . level >= l ) {
e . line = t
break
}
for ( s = 0 ; s < i && ! ( n = o [ s ] ( e , a , t , ! 1 ) ) ; s ++ ) ;
if (
( ( e . tight = ! c ) ,
e . isEmpty ( e . line - 1 ) && ( c = ! 0 ) ,
( a = e . line ) ,
a < t && e . isEmpty ( a ) )
) {
if (
( ( c = ! 0 ) ,
a ++ ,
a < t && 'list' === e . parentType && e . isEmpty ( a ) )
)
break
e . line = a
}
}
} ) ,
( n . prototype . parse = function ( e , r , t , n ) {
var s
e &&
( ( s = new this . State ( e , r , t , n ) ) ,
this . tokenize ( s , s . line , s . lineMax ) )
} ) ,
( n . prototype . State = e ( './rules_block/state_block' ) ) ,
( r . exports = n )
} ,
{
'./ruler' : 17 ,
'./rules_block/blockquote' : 18 ,
'./rules_block/code' : 19 ,
'./rules_block/fence' : 20 ,
'./rules_block/heading' : 21 ,
'./rules_block/hr' : 22 ,
'./rules_block/html_block' : 23 ,
'./rules_block/lheading' : 24 ,
'./rules_block/list' : 25 ,
'./rules_block/paragraph' : 26 ,
'./rules_block/reference' : 27 ,
'./rules_block/state_block' : 28 ,
'./rules_block/table' : 29
}
] ,
11 : [
function ( e , r , t ) {
'use strict'
function n ( ) {
this . ruler = new s ( )
for ( var e = 0 ; e < o . length ; e ++ )
this . ruler . push ( o [ e ] [ 0 ] , o [ e ] [ 1 ] )
}
var s = e ( './ruler' ) ,
o = [
[ 'normalize' , e ( './rules_core/normalize' ) ] ,
[ 'block' , e ( './rules_core/block' ) ] ,
[ 'inline' , e ( './rules_core/inline' ) ] ,
[ 'linkify' , e ( './rules_core/linkify' ) ] ,
[ 'replacements' , e ( './rules_core/replacements' ) ] ,
[ 'smartquotes' , e ( './rules_core/smartquotes' ) ]
]
; ( n . prototype . process = function ( e ) {
var r , t , n
for (
n = this . ruler . getRules ( '' ) , r = 0 , t = n . length ;
r < t ;
r ++
)
n [ r ] ( e )
} ) ,
( n . prototype . State = e ( './rules_core/state_core' ) ) ,
( r . exports = n )
} ,
{
'./ruler' : 17 ,
'./rules_core/block' : 30 ,
'./rules_core/inline' : 31 ,
'./rules_core/linkify' : 32 ,
'./rules_core/normalize' : 33 ,
'./rules_core/replacements' : 34 ,
'./rules_core/smartquotes' : 35 ,
'./rules_core/state_core' : 36
}
] ,
12 : [
function ( e , r , t ) {
'use strict'
function n ( ) {
var e
for ( this . ruler = new s ( ) , e = 0 ; e < o . length ; e ++ )
this . ruler . push ( o [ e ] [ 0 ] , o [ e ] [ 1 ] )
for ( this . ruler2 = new s ( ) , e = 0 ; e < i . length ; e ++ )
this . ruler2 . push ( i [ e ] [ 0 ] , i [ e ] [ 1 ] )
}
var s = e ( './ruler' ) ,
o = [
[ 'text' , e ( './rules_inline/text' ) ] ,
[ 'newline' , e ( './rules_inline/newline' ) ] ,
[ 'escape' , e ( './rules_inline/escape' ) ] ,
[ 'backticks' , e ( './rules_inline/backticks' ) ] ,
[ 'strikethrough' , e ( './rules_inline/strikethrough' ) . tokenize ] ,
[ 'emphasis' , e ( './rules_inline/emphasis' ) . tokenize ] ,
[ 'link' , e ( './rules_inline/link' ) ] ,
[ 'image' , e ( './rules_inline/image' ) ] ,
[ 'autolink' , e ( './rules_inline/autolink' ) ] ,
[ 'html_inline' , e ( './rules_inline/html_inline' ) ] ,
[ 'entity' , e ( './rules_inline/entity' ) ]
] ,
i = [
[ 'balance_pairs' , e ( './rules_inline/balance_pairs' ) ] ,
[
'strikethrough' ,
e ( './rules_inline/strikethrough' ) . postProcess
] ,
[ 'emphasis' , e ( './rules_inline/emphasis' ) . postProcess ] ,
[ 'text_collapse' , e ( './rules_inline/text_collapse' ) ]
]
; ( n . prototype . skipToken = function ( e ) {
var r ,
t ,
n = e . pos ,
s = this . ruler . getRules ( '' ) ,
o = s . length ,
i = e . md . options . maxNesting ,
a = e . cache
if ( 'undefined' != typeof a [ n ] ) return void ( e . pos = a [ n ] )
if ( e . level < i )
for (
t = 0 ;
t < o && ( e . level ++ , ( r = s [ t ] ( e , ! 0 ) ) , e . level -- , ! r ) ;
t ++
) ;
else e . pos = e . posMax
r || e . pos ++ , ( a [ n ] = e . pos )
} ) ,
( n . prototype . tokenize = function ( e ) {
for (
var r ,
t ,
n = this . ruler . getRules ( '' ) ,
s = n . length ,
o = e . posMax ,
i = e . md . options . maxNesting ;
e . pos < o ;
) {
if ( e . level < i )
for ( t = 0 ; t < s && ! ( r = n [ t ] ( e , ! 1 ) ) ; t ++ ) ;
if ( r ) {
if ( e . pos >= o ) break
} else e . pending += e . src [ e . pos ++ ]
}
e . pending && e . pushPending ( )
} ) ,
( n . prototype . parse = function ( e , r , t , n ) {
var s ,
o ,
i ,
a = new this . State ( e , r , t , n )
for (
this . tokenize ( a ) ,
o = this . ruler2 . getRules ( '' ) ,
i = o . length ,
s = 0 ;
s < i ;
s ++
)
o [ s ] ( a )
} ) ,
( n . prototype . State = e ( './rules_inline/state_inline' ) ) ,
( r . exports = n )
} ,
{
'./ruler' : 17 ,
'./rules_inline/autolink' : 37 ,
'./rules_inline/backticks' : 38 ,
'./rules_inline/balance_pairs' : 39 ,
'./rules_inline/emphasis' : 40 ,
'./rules_inline/entity' : 41 ,
'./rules_inline/escape' : 42 ,
'./rules_inline/html_inline' : 43 ,
'./rules_inline/image' : 44 ,
'./rules_inline/link' : 45 ,
'./rules_inline/newline' : 46 ,
'./rules_inline/state_inline' : 47 ,
'./rules_inline/strikethrough' : 48 ,
'./rules_inline/text' : 49 ,
'./rules_inline/text_collapse' : 50
}
] ,
13 : [
function ( e , r , t ) {
'use strict'
r . exports = {
options : {
html : ! 0 ,
xhtmlOut : ! 0 ,
breaks : ! 1 ,
langPrefix : 'language-' ,
linkify : ! 1 ,
typographer : ! 1 ,
quotes : '“”‘’' ,
highlight : null ,
maxNesting : 20
} ,
components : {
core : { rules : [ 'normalize' , 'block' , 'inline' ] } ,
block : {
rules : [
'blockquote' ,
'code' ,
'fence' ,
'heading' ,
'hr' ,
'html_block' ,
'lheading' ,
'list' ,
'reference' ,
'paragraph'
]
} ,
inline : {
rules : [
'autolink' ,
'backticks' ,
'emphasis' ,
'entity' ,
'escape' ,
'html_inline' ,
'image' ,
'link' ,
'newline' ,
'text'
] ,
rules2 : [ 'balance_pairs' , 'emphasis' , 'text_collapse' ]
}
}
}
} ,
{ }
] ,
14 : [
function ( e , r , t ) {
'use strict'
r . exports = {
options : {
html : ! 1 ,
xhtmlOut : ! 1 ,
breaks : ! 1 ,
langPrefix : 'language-' ,
linkify : ! 1 ,
typographer : ! 1 ,
quotes : '“”‘’' ,
highlight : null ,
maxNesting : 100
} ,
components : { core : { } , block : { } , inline : { } }
}
} ,
{ }
] ,
15 : [
function ( e , r , t ) {
'use strict'
r . exports = {
options : {
html : ! 1 ,
xhtmlOut : ! 1 ,
breaks : ! 1 ,
langPrefix : 'language-' ,
linkify : ! 1 ,
typographer : ! 1 ,
quotes : '“”‘’' ,
highlight : null ,
maxNesting : 20
} ,
components : {
core : { rules : [ 'normalize' , 'block' , 'inline' ] } ,
block : { rules : [ 'paragraph' ] } ,
inline : {
rules : [ 'text' ] ,
rules2 : [ 'balance_pairs' , 'text_collapse' ]
}
}
}
} ,
{ }
] ,
16 : [
function ( e , r , t ) {
'use strict'
function n ( ) {
this . rules = s ( { } , a )
}
var s = e ( './common/utils' ) . assign ,
o = e ( './common/utils' ) . unescapeAll ,
i = e ( './common/utils' ) . escapeHtml ,
a = { }
; ( a . code _inline = function ( e , r , t , n , s ) {
var o = e [ r ] ,
a = s . renderAttrs ( o )
return (
'<code' +
( a ? ' ' + a : '' ) +
'>' +
i ( e [ r ] . content ) +
'</code>'
)
} ) ,
( a . code _block = function ( e , r , t , n , s ) {
var o = e [ r ] ,
a = s . renderAttrs ( o )
return (
'<pre' +
( a ? ' ' + a : '' ) +
'><code>' +
i ( e [ r ] . content ) +
'</code></pre>\n'
)
} ) ,
( a . fence = function ( e , r , t , n , s ) {
var a ,
c ,
l ,
u ,
p = e [ r ] ,
h = p . info ? o ( p . info ) . trim ( ) : '' ,
f = ''
return (
h && ( f = h . split ( /\s+/g ) [ 0 ] ) ,
( a = t . highlight
? t . highlight ( p . content , f ) || i ( p . content )
: i ( p . content ) ) ,
0 === a . indexOf ( '<pre' )
? a + '\n'
: h
? ( ( c = p . attrIndex ( 'class' ) ) ,
( l = p . attrs ? p . attrs . slice ( ) : [ ] ) ,
c < 0
? l . push ( [ 'class' , t . langPrefix + f ] )
: ( l [ c ] += ' ' + t . langPrefix + f ) ,
( u = { attrs : l } ) ,
'<pre><code' +
s . renderAttrs ( u ) +
'>' +
a +
'</code></pre>\n' )
: '<pre><code' +
s . renderAttrs ( p ) +
'>' +
a +
'</code></pre>\n'
)
} ) ,
( a . image = function ( e , r , t , n , s ) {
var o = e [ r ]
return (
( o . attrs [ o . attrIndex ( 'alt' ) ] [ 1 ] = s . renderInlineAsText (
o . children ,
t ,
n
) ) ,
s . renderToken ( e , r , t )
)
} ) ,
( a . hardbreak = function ( e , r , t ) {
return t . xhtmlOut ? '<br />\n' : '<br>\n'
} ) ,
( a . softbreak = function ( e , r , t ) {
return t . breaks ? ( t . xhtmlOut ? '<br />\n' : '<br>\n' ) : '\n'
} ) ,
( a . text = function ( e , r ) {
return i ( e [ r ] . content )
} ) ,
( a . html _block = function ( e , r ) {
return e [ r ] . content
} ) ,
( a . html _inline = function ( e , r ) {
return e [ r ] . content
} ) ,
( n . prototype . renderAttrs = function ( e ) {
var r , t , n
if ( ! e . attrs ) return ''
for ( n = '' , r = 0 , t = e . attrs . length ; r < t ; r ++ )
n += ' ' + i ( e . attrs [ r ] [ 0 ] ) + '="' + i ( e . attrs [ r ] [ 1 ] ) + '"'
return n
} ) ,
( n . prototype . renderToken = function ( e , r , t ) {
var n ,
s = '' ,
o = ! 1 ,
i = e [ r ]
return i . hidden
? ''
: ( i . block &&
i . nesting !== - 1 &&
r &&
e [ r - 1 ] . hidden &&
( s += '\n' ) ,
( s += ( i . nesting === - 1 ? '</' : '<' ) + i . tag ) ,
( s += this . renderAttrs ( i ) ) ,
0 === i . nesting && t . xhtmlOut && ( s += ' /' ) ,
i . block &&
( ( o = ! 0 ) ,
1 === i . nesting &&
r + 1 < e . length &&
( ( n = e [ r + 1 ] ) ,
'inline' === n . type || n . hidden
? ( o = ! 1 )
: n . nesting === - 1 && n . tag === i . tag && ( o = ! 1 ) ) ) ,
( s += o ? '>\n' : '>' ) )
} ) ,
( n . prototype . renderInline = function ( e , r , t ) {
for (
var n , s = '' , o = this . rules , i = 0 , a = e . length ;
i < a ;
i ++
)
( n = e [ i ] . type ) ,
( s +=
'undefined' != typeof o [ n ]
? o [ n ] ( e , i , r , t , this )
: this . renderToken ( e , i , r ) )
return s
} ) ,
( n . prototype . renderInlineAsText = function ( e , r , t ) {
for ( var n = '' , s = 0 , o = e . length ; s < o ; s ++ )
'text' === e [ s ] . type
? ( n += e [ s ] . content )
: 'image' === e [ s ] . type &&
( n += this . renderInlineAsText ( e [ s ] . children , r , t ) )
return n
} ) ,
( n . prototype . render = function ( e , r , t ) {
var n ,
s ,
o ,
i = '' ,
a = this . rules
for ( n = 0 , s = e . length ; n < s ; n ++ )
( o = e [ n ] . type ) ,
( i +=
'inline' === o
? this . renderInline ( e [ n ] . children , r , t )
: 'undefined' != typeof a [ o ]
? a [ e [ n ] . type ] ( e , n , r , t , this )
: this . renderToken ( e , n , r , t ) )
return i
} ) ,
( r . exports = n )
} ,
{ './common/utils' : 4 }
] ,
17 : [
function ( e , r , t ) {
'use strict'
function n ( ) {
; ( this . _ _rules _ _ = [ ] ) , ( this . _ _cache _ _ = null )
}
; ( n . prototype . _ _find _ _ = function ( e ) {
for ( var r = 0 ; r < this . _ _rules _ _ . length ; r ++ )
if ( this . _ _rules _ _ [ r ] . name === e ) return r
return - 1
} ) ,
( n . prototype . _ _compile _ _ = function ( ) {
var e = this ,
r = [ '' ]
e . _ _rules _ _ . forEach ( function ( e ) {
e . enabled &&
e . alt . forEach ( function ( e ) {
r . indexOf ( e ) < 0 && r . push ( e )
} )
} ) ,
( e . _ _cache _ _ = { } ) ,
r . forEach ( function ( r ) {
; ( e . _ _cache _ _ [ r ] = [ ] ) ,
e . _ _rules _ _ . forEach ( function ( t ) {
t . enabled &&
( ( r && t . alt . indexOf ( r ) < 0 ) ||
e . _ _cache _ _ [ r ] . push ( t . fn ) )
} )
} )
} ) ,
( n . prototype . at = function ( e , r , t ) {
var n = this . _ _find _ _ ( e ) ,
s = t || { }
if ( n === - 1 ) throw new Error ( 'Parser rule not found: ' + e )
; ( this . _ _rules _ _ [ n ] . fn = r ) ,
( this . _ _rules _ _ [ n ] . alt = s . alt || [ ] ) ,
( this . _ _cache _ _ = null )
} ) ,
( n . prototype . before = function ( e , r , t , n ) {
var s = this . _ _find _ _ ( e ) ,
o = n || { }
if ( s === - 1 ) throw new Error ( 'Parser rule not found: ' + e )
this . _ _rules _ _ . splice ( s , 0 , {
name : r ,
enabled : ! 0 ,
fn : t ,
alt : o . alt || [ ]
} ) ,
( this . _ _cache _ _ = null )
} ) ,
( n . prototype . after = function ( e , r , t , n ) {
var s = this . _ _find _ _ ( e ) ,
o = n || { }
if ( s === - 1 ) throw new Error ( 'Parser rule not found: ' + e )
this . _ _rules _ _ . splice ( s + 1 , 0 , {
name : r ,
enabled : ! 0 ,
fn : t ,
alt : o . alt || [ ]
} ) ,
( this . _ _cache _ _ = null )
} ) ,
( n . prototype . push = function ( e , r , t ) {
var n = t || { }
this . _ _rules _ _ . push ( {
name : e ,
enabled : ! 0 ,
fn : r ,
alt : n . alt || [ ]
} ) ,
( this . _ _cache _ _ = null )
} ) ,
( n . prototype . enable = function ( e , r ) {
Array . isArray ( e ) || ( e = [ e ] )
var t = [ ]
return (
e . forEach ( function ( e ) {
var n = this . _ _find _ _ ( e )
if ( n < 0 ) {
if ( r ) return
throw new Error ( 'Rules manager: invalid rule name ' + e )
}
; ( this . _ _rules _ _ [ n ] . enabled = ! 0 ) , t . push ( e )
} , this ) ,
( this . _ _cache _ _ = null ) ,
t
)
} ) ,
( n . prototype . enableOnly = function ( e , r ) {
Array . isArray ( e ) || ( e = [ e ] ) ,
this . _ _rules _ _ . forEach ( function ( e ) {
e . enabled = ! 1
} ) ,
this . enable ( e , r )
} ) ,
( n . prototype . disable = function ( e , r ) {
Array . isArray ( e ) || ( e = [ e ] )
var t = [ ]
return (
e . forEach ( function ( e ) {
var n = this . _ _find _ _ ( e )
if ( n < 0 ) {
if ( r ) return
throw new Error ( 'Rules manager: invalid rule name ' + e )
}
; ( this . _ _rules _ _ [ n ] . enabled = ! 1 ) , t . push ( e )
} , this ) ,
( this . _ _cache _ _ = null ) ,
t
)
} ) ,
( n . prototype . getRules = function ( e ) {
return (
null === this . _ _cache _ _ && this . _ _compile _ _ ( ) ,
this . _ _cache _ _ [ e ] || [ ]
)
} ) ,
( r . exports = n )
} ,
{ }
] ,
18 : [
function ( e , r , t ) {
'use strict'
var n = e ( '../common/utils' ) . isSpace
r . exports = function ( e , r , t , s ) {
var o ,
i ,
a ,
c ,
l ,
u ,
p ,
h ,
f ,
d ,
m ,
_ ,
g ,
k ,
b ,
v ,
x = e . bMarks [ r ] + e . tShift [ r ] ,
y = e . eMarks [ r ]
if ( 62 !== e . src . charCodeAt ( x ++ ) ) return ! 1
if ( s ) return ! 0
for (
32 === e . src . charCodeAt ( x ) && x ++ ,
u = e . blkIndent ,
e . blkIndent = 0 ,
f = d = e . sCount [ r ] + x - ( e . bMarks [ r ] + e . tShift [ r ] ) ,
l = [ e . bMarks [ r ] ] ,
e . bMarks [ r ] = x ;
x < y && ( ( m = e . src . charCodeAt ( x ) ) , n ( m ) ) ;
)
9 === m ? ( d += 4 - ( d % 4 ) ) : d ++ , x ++
for (
i = x >= y ,
c = [ e . sCount [ r ] ] ,
e . sCount [ r ] = d - f ,
a = [ e . tShift [ r ] ] ,
e . tShift [ r ] = x - e . bMarks [ r ] ,
_ = e . md . block . ruler . getRules ( 'blockquote' ) ,
o = r + 1 ;
o < t &&
! ( e . sCount [ o ] < u ) &&
( ( x = e . bMarks [ o ] + e . tShift [ o ] ) ,
( y = e . eMarks [ o ] ) ,
! ( x >= y ) ) ;
o ++
)
if ( 62 !== e . src . charCodeAt ( x ++ ) ) {
if ( i ) break
for ( v = ! 1 , k = 0 , b = _ . length ; k < b ; k ++ )
if ( _ [ k ] ( e , o , t , ! 0 ) ) {
v = ! 0
break
}
if ( v ) break
l . push ( e . bMarks [ o ] ) ,
a . push ( e . tShift [ o ] ) ,
c . push ( e . sCount [ o ] ) ,
( e . sCount [ o ] = - 1 )
} else {
for (
32 === e . src . charCodeAt ( x ) && x ++ ,
f = d = e . sCount [ o ] + x - ( e . bMarks [ o ] + e . tShift [ o ] ) ,
l . push ( e . bMarks [ o ] ) ,
e . bMarks [ o ] = x ;
x < y && ( ( m = e . src . charCodeAt ( x ) ) , n ( m ) ) ;
)
9 === m ? ( d += 4 - ( d % 4 ) ) : d ++ , x ++
; ( i = x >= y ) ,
c . push ( e . sCount [ o ] ) ,
( e . sCount [ o ] = d - f ) ,
a . push ( e . tShift [ o ] ) ,
( e . tShift [ o ] = x - e . bMarks [ o ] )
}
for (
p = e . parentType ,
e . parentType = 'blockquote' ,
g = e . push ( 'blockquote_open' , 'blockquote' , 1 ) ,
g . markup = '>' ,
g . map = h = [ r , 0 ] ,
e . md . block . tokenize ( e , r , o ) ,
g = e . push ( 'blockquote_close' , 'blockquote' , - 1 ) ,
g . markup = '>' ,
e . parentType = p ,
h [ 1 ] = e . line ,
k = 0 ;
k < a . length ;
k ++
)
( e . bMarks [ k + r ] = l [ k ] ) ,
( e . tShift [ k + r ] = a [ k ] ) ,
( e . sCount [ k + r ] = c [ k ] )
return ( e . blkIndent = u ) , ! 0
}
} ,
{ '../common/utils' : 4 }
] ,
19 : [
function ( e , r , t ) {
'use strict'
r . exports = function ( e , r , t ) {
var n ,
s ,
o ,
i = 0
if ( e . sCount [ r ] - e . blkIndent < 4 ) return ! 1
for ( s = n = r + 1 ; n < t ; )
if ( e . isEmpty ( n ) ) {
if ( ( i ++ , i >= 2 && 'list' === e . parentType ) ) break
n ++
} else {
if ( ( ( i = 0 ) , ! ( e . sCount [ n ] - e . blkIndent >= 4 ) ) ) break
n ++ , ( s = n )
}
return (
( e . line = s ) ,
( o = e . push ( 'code_block' , 'code' , 0 ) ) ,
( o . content = e . getLines ( r , s , 4 + e . blkIndent , ! 0 ) ) ,
( o . map = [ r , e . line ] ) ,
! 0
)
}
} ,
{ }
] ,
20 : [
function ( e , r , t ) {
'use strict'
r . exports = function ( e , r , t , n ) {
var s ,
o ,
i ,
a ,
c ,
l ,
u ,
p = ! 1 ,
h = e . bMarks [ r ] + e . tShift [ r ] ,
f = e . eMarks [ r ]
if ( h + 3 > f ) return ! 1
if ( ( ( s = e . src . charCodeAt ( h ) ) , 126 !== s && 96 !== s ) )
return ! 1
if ( ( ( c = h ) , ( h = e . skipChars ( h , s ) ) , ( o = h - c ) , o < 3 ) )
return ! 1
if (
( ( u = e . src . slice ( c , h ) ) ,
( i = e . src . slice ( h , f ) ) ,
i . indexOf ( '`' ) >= 0 )
)
return ! 1
if ( n ) return ! 0
for (
a = r ;
( a ++ , ! ( a >= t ) ) &&
( ( h = c = e . bMarks [ a ] + e . tShift [ a ] ) ,
( f = e . eMarks [ a ] ) ,
! ( h < f && e . sCount [ a ] < e . blkIndent ) ) ;
)
if (
e . src . charCodeAt ( h ) === s &&
! (
e . sCount [ a ] - e . blkIndent >= 4 ||
( ( h = e . skipChars ( h , s ) ) ,
h - c < o || ( ( h = e . skipSpaces ( h ) ) , h < f ) )
)
) {
p = ! 0
break
}
return (
( o = e . sCount [ r ] ) ,
( e . line = a + ( p ? 1 : 0 ) ) ,
( l = e . push ( 'fence' , 'code' , 0 ) ) ,
( l . info = i ) ,
( l . content = e . getLines ( r + 1 , a , o , ! 0 ) ) ,
( l . markup = u ) ,
( l . map = [ r , e . line ] ) ,
! 0
)
}
} ,
{ }
] ,
21 : [
function ( e , r , t ) {
'use strict'
var n = e ( '../common/utils' ) . isSpace
r . exports = function ( e , r , t , s ) {
var o ,
i ,
a ,
c ,
l = e . bMarks [ r ] + e . tShift [ r ] ,
u = e . eMarks [ r ]
if ( ( ( o = e . src . charCodeAt ( l ) ) , 35 !== o || l >= u ) ) return ! 1
for (
i = 1 , o = e . src . charCodeAt ( ++ l ) ;
35 === o && l < u && i <= 6 ;
)
i ++ , ( o = e . src . charCodeAt ( ++ l ) )
return (
! ( i > 6 || ( l < u && 32 !== o ) ) &&
( ! ! s ||
( ( u = e . skipSpacesBack ( u , l ) ) ,
( a = e . skipCharsBack ( u , 35 , l ) ) ,
a > l && n ( e . src . charCodeAt ( a - 1 ) ) && ( u = a ) ,
( e . line = r + 1 ) ,
( c = e . push ( 'heading_open' , 'h' + String ( i ) , 1 ) ) ,
( c . markup = '########' . slice ( 0 , i ) ) ,
( c . map = [ r , e . line ] ) ,
( c = e . push ( 'inline' , '' , 0 ) ) ,
( c . content = e . src . slice ( l , u ) . trim ( ) ) ,
( c . map = [ r , e . line ] ) ,
( c . children = [ ] ) ,
( c = e . push ( 'heading_close' , 'h' + String ( i ) , - 1 ) ) ,
( c . markup = '########' . slice ( 0 , i ) ) ,
! 0 ) )
)
}
} ,
{ '../common/utils' : 4 }
] ,
22 : [
function ( e , r , t ) {
'use strict'
var n = e ( '../common/utils' ) . isSpace
r . exports = function ( e , r , t , s ) {
var o ,
i ,
a ,
c ,
l = e . bMarks [ r ] + e . tShift [ r ] ,
u = e . eMarks [ r ]
if (
( ( o = e . src . charCodeAt ( l ++ ) ) ,
42 !== o && 45 !== o && 95 !== o )
)
return ! 1
for ( i = 1 ; l < u ; ) {
if ( ( ( a = e . src . charCodeAt ( l ++ ) ) , a !== o && ! n ( a ) ) ) return ! 1
a === o && i ++
}
return (
! ( i < 3 ) &&
( ! ! s ||
( ( e . line = r + 1 ) ,
( c = e . push ( 'hr' , 'hr' , 0 ) ) ,
( c . map = [ r , e . line ] ) ,
( c . markup = Array ( i + 1 ) . join ( String . fromCharCode ( o ) ) ) ,
! 0 ) )
)
}
} ,
{ '../common/utils' : 4 }
] ,
23 : [
function ( e , r , t ) {
'use strict'
var n = e ( '../common/html_blocks' ) ,
s = e ( '../common/html_re' ) . HTML _OPEN _CLOSE _TAG _RE ,
o = [
[
/^<(script|pre|style)(?=(\s|>|$))/i ,
/<\/(script|pre|style)>/i ,
! 0
] ,
[ /^<!--/ , /-->/ , ! 0 ] ,
[ /^<\?/ , /\?>/ , ! 0 ] ,
[ /^<![A-Z]/ , />/ , ! 0 ] ,
[ /^<!\[CDATA\[/ , /\]\]>/ , ! 0 ] ,
[
new RegExp ( '^</?(' + n . join ( '|' ) + ')(?=(\\s|/?>|$))' , 'i' ) ,
/^$/ ,
! 0
] ,
[ new RegExp ( s . source + '\\s*$' ) , /^$/ , ! 1 ]
]
r . exports = function ( e , r , t , n ) {
var s ,
i ,
a ,
c ,
l = e . bMarks [ r ] + e . tShift [ r ] ,
u = e . eMarks [ r ]
if ( ! e . md . options . html ) return ! 1
if ( 60 !== e . src . charCodeAt ( l ) ) return ! 1
for (
c = e . src . slice ( l , u ) , s = 0 ;
s < o . length && ! o [ s ] [ 0 ] . test ( c ) ;
s ++
) ;
if ( s === o . length ) return ! 1
if ( n ) return o [ s ] [ 2 ]
if ( ( ( i = r + 1 ) , ! o [ s ] [ 1 ] . test ( c ) ) )
for ( ; i < t && ! ( e . sCount [ i ] < e . blkIndent ) ; i ++ )
if (
( ( l = e . bMarks [ i ] + e . tShift [ i ] ) ,
( u = e . eMarks [ i ] ) ,
( c = e . src . slice ( l , u ) ) ,
o [ s ] [ 1 ] . test ( c ) )
) {
0 !== c . length && i ++
break
}
return (
( e . line = i ) ,
( a = e . push ( 'html_block' , '' , 0 ) ) ,
( a . map = [ r , i ] ) ,
( a . content = e . getLines ( r , i , e . blkIndent , ! 0 ) ) ,
! 0
)
}
} ,
{ '../common/html_blocks' : 2 , '../common/html_re' : 3 }
] ,
24 : [
function ( e , r , t ) {
'use strict'
r . exports = function ( e , r , t ) {
for (
var n ,
s ,
o ,
i ,
a ,
c ,
l ,
u ,
p ,
h = r + 1 ,
f = e . md . block . ruler . getRules ( 'paragraph' ) ;
h < t && ! e . isEmpty ( h ) ;
h ++
)
if ( ! ( e . sCount [ h ] - e . blkIndent > 3 ) ) {
if (
e . sCount [ h ] >= e . blkIndent &&
( ( c = e . bMarks [ h ] + e . tShift [ h ] ) ,
( l = e . eMarks [ h ] ) ,
c < l &&
( ( p = e . src . charCodeAt ( c ) ) ,
( 45 === p || 61 === p ) &&
( ( c = e . skipChars ( c , p ) ) ,
( c = e . skipSpaces ( c ) ) ,
c >= l ) ) )
) {
u = 61 === p ? 1 : 2
break
}
if ( ! ( e . sCount [ h ] < 0 ) ) {
for ( s = ! 1 , o = 0 , i = f . length ; o < i ; o ++ )
if ( f [ o ] ( e , h , t , ! 0 ) ) {
s = ! 0
break
}
if ( s ) break
}
}
return (
! ! u &&
( ( n = e . getLines ( r , h , e . blkIndent , ! 1 ) . trim ( ) ) ,
( e . line = h + 1 ) ,
( a = e . push ( 'heading_open' , 'h' + String ( u ) , 1 ) ) ,
( a . markup = String . fromCharCode ( p ) ) ,
( a . map = [ r , e . line ] ) ,
( a = e . push ( 'inline' , '' , 0 ) ) ,
( a . content = n ) ,
( a . map = [ r , e . line - 1 ] ) ,
( a . children = [ ] ) ,
( a = e . push ( 'heading_close' , 'h' + String ( u ) , - 1 ) ) ,
( a . markup = String . fromCharCode ( p ) ) ,
! 0 )
)
}
} ,
{ }
] ,
25 : [
function ( e , r , t ) {
'use strict'
function n ( e , r ) {
var t , n , s , o
return (
( n = e . bMarks [ r ] + e . tShift [ r ] ) ,
( s = e . eMarks [ r ] ) ,
( t = e . src . charCodeAt ( n ++ ) ) ,
42 !== t && 45 !== t && 43 !== t
? - 1
: n < s && ( ( o = e . src . charCodeAt ( n ) ) , ! i ( o ) )
? - 1
: n
)
}
function s ( e , r ) {
var t ,
n = e . bMarks [ r ] + e . tShift [ r ] ,
s = n ,
o = e . eMarks [ r ]
if ( s + 1 >= o ) return - 1
if ( ( ( t = e . src . charCodeAt ( s ++ ) ) , t < 48 || t > 57 ) ) return - 1
for ( ; ; ) {
if ( s >= o ) return - 1
t = e . src . charCodeAt ( s ++ )
{
if ( ! ( t >= 48 && t <= 57 ) ) {
if ( 41 === t || 46 === t ) break
return - 1
}
if ( s - n >= 10 ) return - 1
}
}
return s < o && ( ( t = e . src . charCodeAt ( s ) ) , ! i ( t ) ) ? - 1 : s
}
function o ( e , r ) {
var t ,
n ,
s = e . level + 2
for ( t = r + 2 , n = e . tokens . length - 2 ; t < n ; t ++ )
e . tokens [ t ] . level === s &&
'paragraph_open' === e . tokens [ t ] . type &&
( ( e . tokens [ t + 2 ] . hidden = ! 0 ) ,
( e . tokens [ t ] . hidden = ! 0 ) ,
( t += 2 ) )
}
var i = e ( '../common/utils' ) . isSpace
r . exports = function ( e , r , t , a ) {
var c ,
l ,
u ,
p ,
h ,
f ,
d ,
m ,
_ ,
g ,
k ,
b ,
v ,
x ,
y ,
C ,
A ,
w ,
D ,
q ,
E ,
S ,
F ,
z ,
L ,
T ,
R ,
M ,
I = ! 0
if ( ( k = s ( e , r ) ) >= 0 ) w = ! 0
else {
if ( ! ( ( k = n ( e , r ) ) >= 0 ) ) return ! 1
w = ! 1
}
if ( ( ( A = e . src . charCodeAt ( k - 1 ) ) , a ) ) return ! 0
for (
q = e . tokens . length ,
w
? ( ( g = e . bMarks [ r ] + e . tShift [ r ] ) ,
( C = Number ( e . src . substr ( g , k - g - 1 ) ) ) ,
( L = e . push ( 'ordered_list_open' , 'ol' , 1 ) ) ,
1 !== C && ( L . attrs = [ [ 'start' , C ] ] ) )
: ( L = e . push ( 'bullet_list_open' , 'ul' , 1 ) ) ,
L . map = S = [ r , 0 ] ,
L . markup = String . fromCharCode ( A ) ,
c = r ,
E = ! 1 ,
z = e . md . block . ruler . getRules ( 'list' ) ;
c < t ;
) {
for (
v = k ,
x = e . eMarks [ c ] ,
l = u = e . sCount [ c ] + k - ( e . bMarks [ r ] + e . tShift [ r ] ) ;
v < x && ( ( b = e . src . charCodeAt ( v ) ) , i ( b ) ) ;
)
9 === b ? ( u += 4 - ( u % 4 ) ) : u ++ , v ++
if (
( ( D = v ) ,
( y = D >= x ? 1 : u - l ) ,
y > 4 && ( y = 1 ) ,
( p = l + y ) ,
( L = e . push ( 'list_item_open' , 'li' , 1 ) ) ,
( L . markup = String . fromCharCode ( A ) ) ,
( L . map = F = [ r , 0 ] ) ,
( f = e . blkIndent ) ,
( m = e . tight ) ,
( h = e . tShift [ r ] ) ,
( d = e . sCount [ r ] ) ,
( _ = e . parentType ) ,
( e . blkIndent = p ) ,
( e . tight = ! 0 ) ,
( e . parentType = 'list' ) ,
( e . tShift [ r ] = D - e . bMarks [ r ] ) ,
( e . sCount [ r ] = u ) ,
D >= x && e . isEmpty ( r + 1 )
? ( e . line = Math . min ( e . line + 2 , t ) )
: e . md . block . tokenize ( e , r , t , ! 0 ) ,
( e . tight && ! E ) || ( I = ! 1 ) ,
( E = e . line - r > 1 && e . isEmpty ( e . line - 1 ) ) ,
( e . blkIndent = f ) ,
( e . tShift [ r ] = h ) ,
( e . sCount [ r ] = d ) ,
( e . tight = m ) ,
( e . parentType = _ ) ,
( L = e . push ( 'list_item_close' , 'li' , - 1 ) ) ,
( L . markup = String . fromCharCode ( A ) ) ,
( c = r = e . line ) ,
( F [ 1 ] = c ) ,
( D = e . bMarks [ r ] ) ,
c >= t )
)
break
if ( e . isEmpty ( c ) ) break
if ( e . sCount [ c ] < e . blkIndent ) break
for ( M = ! 1 , T = 0 , R = z . length ; T < R ; T ++ )
if ( z [ T ] ( e , c , t , ! 0 ) ) {
M = ! 0
break
}
if ( M ) break
if ( w ) {
if ( ( ( k = s ( e , c ) ) , k < 0 ) ) break
} else if ( ( ( k = n ( e , c ) ) , k < 0 ) ) break
if ( A !== e . src . charCodeAt ( k - 1 ) ) break
}
return (
( L = w
? e . push ( 'ordered_list_close' , 'ol' , - 1 )
: e . push ( 'bullet_list_close' , 'ul' , - 1 ) ) ,
( L . markup = String . fromCharCode ( A ) ) ,
( S [ 1 ] = c ) ,
( e . line = c ) ,
I && o ( e , q ) ,
! 0
)
}
} ,
{ '../common/utils' : 4 }
] ,
26 : [
function ( e , r , t ) {
'use strict'
r . exports = function ( e , r ) {
for (
var t ,
n ,
s ,
o ,
i ,
a = r + 1 ,
c = e . md . block . ruler . getRules ( 'paragraph' ) ,
l = e . lineMax ;
a < l && ! e . isEmpty ( a ) ;
a ++
)
if ( ! ( e . sCount [ a ] - e . blkIndent > 3 || e . sCount [ a ] < 0 ) ) {
for ( n = ! 1 , s = 0 , o = c . length ; s < o ; s ++ )
if ( c [ s ] ( e , a , l , ! 0 ) ) {
n = ! 0
break
}
if ( n ) break
}
return (
( t = e . getLines ( r , a , e . blkIndent , ! 1 ) . trim ( ) ) ,
( e . line = a ) ,
( i = e . push ( 'paragraph_open' , 'p' , 1 ) ) ,
( i . map = [ r , e . line ] ) ,
( i = e . push ( 'inline' , '' , 0 ) ) ,
( i . content = t ) ,
( i . map = [ r , e . line ] ) ,
( i . children = [ ] ) ,
( i = e . push ( 'paragraph_close' , 'p' , - 1 ) ) ,
! 0
)
}
} ,
{ }
] ,
27 : [
function ( e , r , t ) {
'use strict'
var n = e ( '../helpers/parse_link_destination' ) ,
s = e ( '../helpers/parse_link_title' ) ,
o = e ( '../common/utils' ) . normalizeReference ,
i = e ( '../common/utils' ) . isSpace
r . exports = function ( e , r , t , a ) {
var c ,
l ,
u ,
p ,
h ,
f ,
d ,
m ,
_ ,
g ,
k ,
b ,
v ,
x ,
y ,
C = 0 ,
A = e . bMarks [ r ] + e . tShift [ r ] ,
w = e . eMarks [ r ] ,
D = r + 1
if ( 91 !== e . src . charCodeAt ( A ) ) return ! 1
for ( ; ++ A < w ; )
if (
93 === e . src . charCodeAt ( A ) &&
92 !== e . src . charCodeAt ( A - 1 )
) {
if ( A + 1 === w ) return ! 1
if ( 58 !== e . src . charCodeAt ( A + 1 ) ) return ! 1
break
}
for (
p = e . lineMax , x = e . md . block . ruler . getRules ( 'reference' ) ;
D < p && ! e . isEmpty ( D ) ;
D ++
)
if ( ! ( e . sCount [ D ] - e . blkIndent > 3 || e . sCount [ D ] < 0 ) ) {
for ( v = ! 1 , f = 0 , d = x . length ; f < d ; f ++ )
if ( x [ f ] ( e , D , p , ! 0 ) ) {
v = ! 0
break
}
if ( v ) break
}
for (
b = e . getLines ( r , D , e . blkIndent , ! 1 ) . trim ( ) ,
w = b . length ,
A = 1 ;
A < w ;
A ++
) {
if ( ( ( c = b . charCodeAt ( A ) ) , 91 === c ) ) return ! 1
if ( 93 === c ) {
_ = A
break
}
10 === c
? C ++
: 92 === c && ( A ++ , A < w && 10 === b . charCodeAt ( A ) && C ++ )
}
if ( _ < 0 || 58 !== b . charCodeAt ( _ + 1 ) ) return ! 1
for ( A = _ + 2 ; A < w ; A ++ )
if ( ( ( c = b . charCodeAt ( A ) ) , 10 === c ) ) C ++
else if ( ! i ( c ) ) break
if ( ( ( g = n ( b , A , w ) ) , ! g . ok ) ) return ! 1
if ( ( ( h = e . md . normalizeLink ( g . str ) ) , ! e . md . validateLink ( h ) ) )
return ! 1
for ( A = g . pos , C += g . lines , l = A , u = C , k = A ; A < w ; A ++ )
if ( ( ( c = b . charCodeAt ( A ) ) , 10 === c ) ) C ++
else if ( ! i ( c ) ) break
for (
g = s ( b , A , w ) ,
A < w && k !== A && g . ok
? ( ( y = g . str ) , ( A = g . pos ) , ( C += g . lines ) )
: ( ( y = '' ) , ( A = l ) , ( C = u ) ) ;
A < w && ( ( c = b . charCodeAt ( A ) ) , i ( c ) ) ;
)
A ++
if ( A < w && 10 !== b . charCodeAt ( A ) && y )
for (
y = '' , A = l , C = u ;
A < w && ( ( c = b . charCodeAt ( A ) ) , i ( c ) ) ;
)
A ++
return (
! ( A < w && 10 !== b . charCodeAt ( A ) ) &&
! ! ( m = o ( b . slice ( 1 , _ ) ) ) &&
( ! ! a ||
( 'undefined' == typeof e . env . references &&
( e . env . references = { } ) ,
'undefined' == typeof e . env . references [ m ] &&
( e . env . references [ m ] = {
title : y ,
href : h
} ) ,
( e . line = r + C + 1 ) ,
! 0 ) )
)
}
} ,
{
'../common/utils' : 4 ,
'../helpers/parse_link_destination' : 6 ,
'../helpers/parse_link_title' : 8
}
] ,
28 : [
function ( e , r , t ) {
'use strict'
function n ( e , r , t , n ) {
var s , i , a , c , l , u , p , h
for (
this . src = e ,
this . md = r ,
this . env = t ,
this . tokens = n ,
this . bMarks = [ ] ,
this . eMarks = [ ] ,
this . tShift = [ ] ,
this . sCount = [ ] ,
this . blkIndent = 0 ,
this . line = 0 ,
this . lineMax = 0 ,
this . tight = ! 1 ,
this . parentType = 'root' ,
this . ddIndent = - 1 ,
this . level = 0 ,
this . result = '' ,
i = this . src ,
h = ! 1 ,
a = c = u = p = 0 ,
l = i . length ;
c < l ;
c ++
) {
if ( ( ( s = i . charCodeAt ( c ) ) , ! h ) ) {
if ( o ( s ) ) {
u ++ , 9 === s ? ( p += 4 - ( p % 4 ) ) : p ++
continue
}
h = ! 0
}
; ( 10 !== s && c !== l - 1 ) ||
( 10 !== s && c ++ ,
this . bMarks . push ( a ) ,
this . eMarks . push ( c ) ,
this . tShift . push ( u ) ,
this . sCount . push ( p ) ,
( h = ! 1 ) ,
( u = 0 ) ,
( p = 0 ) ,
( a = c + 1 ) )
}
this . bMarks . push ( i . length ) ,
this . eMarks . push ( i . length ) ,
this . tShift . push ( 0 ) ,
this . sCount . push ( 0 ) ,
( this . lineMax = this . bMarks . length - 1 )
}
var s = e ( '../token' ) ,
o = e ( '../common/utils' ) . isSpace
; ( n . prototype . push = function ( e , r , t ) {
var n = new s ( e , r , t )
return (
( n . block = ! 0 ) ,
t < 0 && this . level -- ,
( n . level = this . level ) ,
t > 0 && this . level ++ ,
this . tokens . push ( n ) ,
n
)
} ) ,
( n . prototype . isEmpty = function ( e ) {
return this . bMarks [ e ] + this . tShift [ e ] >= this . eMarks [ e ]
} ) ,
( n . prototype . skipEmptyLines = function ( e ) {
for (
var r = this . lineMax ;
e < r &&
! ( this . bMarks [ e ] + this . tShift [ e ] < this . eMarks [ e ] ) ;
e ++
) ;
return e
} ) ,
( n . prototype . skipSpaces = function ( e ) {
for (
var r , t = this . src . length ;
e < t && ( ( r = this . src . charCodeAt ( e ) ) , o ( r ) ) ;
e ++
) ;
return e
} ) ,
( n . prototype . skipSpacesBack = function ( e , r ) {
if ( e <= r ) return e
for ( ; e > r ; ) if ( ! o ( this . src . charCodeAt ( -- e ) ) ) return e + 1
return e
} ) ,
( n . prototype . skipChars = function ( e , r ) {
for (
var t = this . src . length ;
e < t && this . src . charCodeAt ( e ) === r ;
e ++
) ;
return e
} ) ,
( n . prototype . skipCharsBack = function ( e , r , t ) {
if ( e <= t ) return e
for ( ; e > t ; )
if ( r !== this . src . charCodeAt ( -- e ) ) return e + 1
return e
} ) ,
( n . prototype . getLines = function ( e , r , t , n ) {
var s ,
i ,
a ,
c ,
l ,
u ,
p ,
h = e
if ( e >= r ) return ''
for ( u = new Array ( r - e ) , s = 0 ; h < r ; h ++ , s ++ ) {
for (
i = 0 ,
p = c = this . bMarks [ h ] ,
l =
h + 1 < r || n ? this . eMarks [ h ] + 1 : this . eMarks [ h ] ;
c < l && i < t ;
) {
if ( ( ( a = this . src . charCodeAt ( c ) ) , o ( a ) ) )
9 === a ? ( i += 4 - ( i % 4 ) ) : i ++
else {
if ( ! ( c - p < this . tShift [ h ] ) ) break
i ++
}
c ++
}
u [ s ] = this . src . slice ( c , l )
}
return u . join ( '' )
} ) ,
( n . prototype . Token = s ) ,
( r . exports = n )
} ,
{ '../common/utils' : 4 , '../token' : 51 }
] ,
29 : [
function ( e , r , t ) {
'use strict'
function n ( e , r ) {
var t = e . bMarks [ r ] + e . blkIndent ,
n = e . eMarks [ r ]
return e . src . substr ( t , n - t )
}
function s ( e ) {
var r ,
t = [ ] ,
n = 0 ,
s = e . length ,
o = 0 ,
i = 0 ,
a = ! 1 ,
c = 0
for ( r = e . charCodeAt ( n ) ; n < s ; )
96 === r && o % 2 === 0
? ( ( a = ! a ) , ( c = n ) )
: 124 !== r || o % 2 !== 0 || a
? 92 === r
? o ++
: ( o = 0 )
: ( t . push ( e . substring ( i , n ) ) , ( i = n + 1 ) ) ,
n ++ ,
n === s && a && ( ( a = ! 1 ) , ( n = c + 1 ) ) ,
( r = e . charCodeAt ( n ) )
return t . push ( e . substring ( i ) ) , t
}
r . exports = function ( e , r , t , o ) {
var i , a , c , l , u , p , h , f , d , m , _ , g
if ( r + 2 > t ) return ! 1
if ( ( ( u = r + 1 ) , e . sCount [ u ] < e . blkIndent ) ) return ! 1
if ( ( ( c = e . bMarks [ u ] + e . tShift [ u ] ) , c >= e . eMarks [ u ] ) )
return ! 1
if (
( ( i = e . src . charCodeAt ( c ) ) , 124 !== i && 45 !== i && 58 !== i )
)
return ! 1
if ( ( ( a = n ( e , r + 1 ) ) , ! /^[-:| ]+$/ . test ( a ) ) ) return ! 1
for ( p = a . split ( '|' ) , d = [ ] , l = 0 ; l < p . length ; l ++ ) {
if ( ( ( m = p [ l ] . trim ( ) ) , ! m ) ) {
if ( 0 === l || l === p . length - 1 ) continue
return ! 1
}
if ( ! /^:?-+:?$/ . test ( m ) ) return ! 1
58 === m . charCodeAt ( m . length - 1 )
? d . push ( 58 === m . charCodeAt ( 0 ) ? 'center' : 'right' )
: 58 === m . charCodeAt ( 0 )
? d . push ( 'left' )
: d . push ( '' )
}
if ( ( ( a = n ( e , r ) . trim ( ) ) , a . indexOf ( '|' ) === - 1 ) ) return ! 1
if (
( ( p = s ( a . replace ( /^\||\|$/g , '' ) ) ) ,
( h = p . length ) ,
h > d . length )
)
return ! 1
if ( o ) return ! 0
for (
f = e . push ( 'table_open' , 'table' , 1 ) ,
f . map = _ = [ r , 0 ] ,
f = e . push ( 'thead_open' , 'thead' , 1 ) ,
f . map = [ r , r + 1 ] ,
f = e . push ( 'tr_open' , 'tr' , 1 ) ,
f . map = [ r , r + 1 ] ,
l = 0 ;
l < p . length ;
l ++
)
( f = e . push ( 'th_open' , 'th' , 1 ) ) ,
( f . map = [ r , r + 1 ] ) ,
d [ l ] && ( f . attrs = [ [ 'style' , 'text-align:' + d [ l ] ] ] ) ,
( f = e . push ( 'inline' , '' , 0 ) ) ,
( f . content = p [ l ] . trim ( ) ) ,
( f . map = [ r , r + 1 ] ) ,
( f . children = [ ] ) ,
( f = e . push ( 'th_close' , 'th' , - 1 ) )
for (
f = e . push ( 'tr_close' , 'tr' , - 1 ) ,
f = e . push ( 'thead_close' , 'thead' , - 1 ) ,
f = e . push ( 'tbody_open' , 'tbody' , 1 ) ,
f . map = g = [ r + 2 , 0 ] ,
u = r + 2 ;
u < t &&
! ( e . sCount [ u ] < e . blkIndent ) &&
( ( a = n ( e , u ) ) , a . indexOf ( '|' ) !== - 1 ) ;
u ++
) {
for (
p = s ( a . replace ( /^\||\|\s*$/g , '' ) ) ,
f = e . push ( 'tr_open' , 'tr' , 1 ) ,
l = 0 ;
l < h ;
l ++
)
( f = e . push ( 'td_open' , 'td' , 1 ) ) ,
d [ l ] && ( f . attrs = [ [ 'style' , 'text-align:' + d [ l ] ] ] ) ,
( f = e . push ( 'inline' , '' , 0 ) ) ,
( f . content = p [ l ] ? p [ l ] . trim ( ) : '' ) ,
( f . children = [ ] ) ,
( f = e . push ( 'td_close' , 'td' , - 1 ) )
f = e . push ( 'tr_close' , 'tr' , - 1 )
}
return (
( f = e . push ( 'tbody_close' , 'tbody' , - 1 ) ) ,
( f = e . push ( 'table_close' , 'table' , - 1 ) ) ,
( _ [ 1 ] = g [ 1 ] = u ) ,
( e . line = u ) ,
! 0
)
}
} ,
{ }
] ,
30 : [
function ( e , r , t ) {
'use strict'
r . exports = function ( e ) {
var r
e . inlineMode
? ( ( r = new e . Token ( 'inline' , '' , 0 ) ) ,
( r . content = e . src ) ,
( r . map = [ 0 , 1 ] ) ,
( r . children = [ ] ) ,
e . tokens . push ( r ) )
: e . md . block . parse ( e . src , e . md , e . env , e . tokens )
}
} ,
{ }
] ,
31 : [
function ( e , r , t ) {
'use strict'
r . exports = function ( e ) {
var r ,
t ,
n ,
s = e . tokens
for ( t = 0 , n = s . length ; t < n ; t ++ )
( r = s [ t ] ) ,
'inline' === r . type &&
e . md . inline . parse ( r . content , e . md , e . env , r . children )
}
} ,
{ }
] ,
32 : [
function ( e , r , t ) {
'use strict'
function n ( e ) {
return /^<a[>\s]/i . test ( e )
}
function s ( e ) {
return /^<\/a\s*>/i . test ( e )
}
var o = e ( '../common/utils' ) . arrayReplaceAt
r . exports = function ( e ) {
var r ,
t ,
i ,
a ,
c ,
l ,
u ,
p ,
h ,
f ,
d ,
m ,
_ ,
g ,
k ,
b ,
v ,
x = e . tokens
if ( e . md . options . linkify )
for ( t = 0 , i = x . length ; t < i ; t ++ )
if (
'inline' === x [ t ] . type &&
e . md . linkify . pretest ( x [ t ] . content )
)
for (
a = x [ t ] . children , _ = 0 , r = a . length - 1 ;
r >= 0 ;
r --
)
if ( ( ( l = a [ r ] ) , 'link_close' !== l . type ) ) {
if (
( 'html_inline' === l . type &&
( n ( l . content ) && _ > 0 && _ -- ,
s ( l . content ) && _ ++ ) ,
! ( _ > 0 ) &&
'text' === l . type &&
e . md . linkify . test ( l . content ) )
) {
for (
h = l . content ,
v = e . md . linkify . match ( h ) ,
u = [ ] ,
m = l . level ,
d = 0 ,
p = 0 ;
p < v . length ;
p ++
)
( g = v [ p ] . url ) ,
( k = e . md . normalizeLink ( g ) ) ,
e . md . validateLink ( k ) &&
( ( b = v [ p ] . text ) ,
( b = v [ p ] . schema
? 'mailto:' !== v [ p ] . schema ||
/^mailto:/i . test ( b )
? e . md . normalizeLinkText ( b )
: e . md
. normalizeLinkText ( 'mailto:' + b )
. replace ( /^mailto:/ , '' )
: e . md
. normalizeLinkText ( 'http://' + b )
. replace ( /^http:\/\// , '' ) ) ,
( f = v [ p ] . index ) ,
f > d &&
( ( c = new e . Token ( 'text' , '' , 0 ) ) ,
( c . content = h . slice ( d , f ) ) ,
( c . level = m ) ,
u . push ( c ) ) ,
( c = new e . Token ( 'link_open' , 'a' , 1 ) ) ,
( c . attrs = [ [ 'href' , k ] ] ) ,
( c . level = m ++ ) ,
( c . markup = 'linkify' ) ,
( c . info = 'auto' ) ,
u . push ( c ) ,
( c = new e . Token ( 'text' , '' , 0 ) ) ,
( c . content = b ) ,
( c . level = m ) ,
u . push ( c ) ,
( c = new e . Token ( 'link_close' , 'a' , - 1 ) ) ,
( c . level = -- m ) ,
( c . markup = 'linkify' ) ,
( c . info = 'auto' ) ,
u . push ( c ) ,
( d = v [ p ] . lastIndex ) )
d < h . length &&
( ( c = new e . Token ( 'text' , '' , 0 ) ) ,
( c . content = h . slice ( d ) ) ,
( c . level = m ) ,
u . push ( c ) ) ,
( x [ t ] . children = a = o ( a , r , u ) )
}
} else
for (
r -- ;
a [ r ] . level !== l . level && 'link_open' !== a [ r ] . type ;
)
r --
}
} ,
{ '../common/utils' : 4 }
] ,
33 : [
function ( e , r , t ) {
'use strict'
var n = /\r[\n\u0085]?|[\u2424\u2028\u0085]/g ,
s = /\u0000/g
r . exports = function ( e ) {
var r
; ( r = e . src . replace ( n , '\n' ) ) ,
( r = r . replace ( s , '<27> ' ) ) ,
( e . src = r )
}
} ,
{ }
] ,
34 : [
function ( e , r , t ) {
'use strict'
function n ( e , r ) {
return l [ r . toLowerCase ( ) ]
}
function s ( e ) {
var r , t
for ( r = e . length - 1 ; r >= 0 ; r -- )
( t = e [ r ] ) ,
'text' === t . type && ( t . content = t . content . replace ( c , n ) )
}
function o ( e ) {
var r , t
for ( r = e . length - 1 ; r >= 0 ; r -- )
( t = e [ r ] ) ,
'text' === t . type &&
i . test ( t . content ) &&
( t . content = t . content
. replace ( /\+-/g , '±' )
. replace ( /\.{2,}/g , '…' )
. replace ( /([?!])\u2026/g , '$1..' )
. replace ( /([?!]){4,}/g , '$1$1$1' )
. replace ( /,{2,}/g , ',' )
. replace ( /(^|[^-])---([^-]|$)/gm , '$1—$2' )
. replace ( /(^|\s)--(\s|$)/gm , '$1– $2' )
. replace ( /(^|[^-\s])--([^-\s]|$)/gm , '$1– $2' ) )
}
var i = /\+-|\.\.|\?\?\?\?|!!!!|,,|--/ ,
a = /\((c|tm|r|p)\)/i ,
c = /\((c|tm|r|p)\)/gi ,
l = { c : '©' , r : '®' , p : '§' , tm : '™' }
r . exports = function ( e ) {
var r
if ( e . md . options . typographer )
for ( r = e . tokens . length - 1 ; r >= 0 ; r -- )
'inline' === e . tokens [ r ] . type &&
( a . test ( e . tokens [ r ] . content ) && s ( e . tokens [ r ] . children ) ,
i . test ( e . tokens [ r ] . content ) && o ( e . tokens [ r ] . children ) )
}
} ,
{ }
] ,
35 : [
function ( e , r , t ) {
'use strict'
function n ( e , r , t ) {
return e . substr ( 0 , r ) + t + e . substr ( r + 1 )
}
function s ( e , r ) {
var t ,
s ,
c ,
p ,
h ,
f ,
d ,
m ,
_ ,
g ,
k ,
b ,
v ,
x ,
y ,
C ,
A ,
w ,
D ,
q ,
E
for ( D = [ ] , t = 0 ; t < e . length ; t ++ ) {
for (
s = e [ t ] , d = e [ t ] . level , A = D . length - 1 ;
A >= 0 && ! ( D [ A ] . level <= d ) ;
A --
) ;
if ( ( ( D . length = A + 1 ) , 'text' === s . type ) ) {
; ( c = s . content ) , ( h = 0 ) , ( f = c . length )
e : for ( ; h < f && ( ( l . lastIndex = h ) , ( p = l . exec ( c ) ) ) ; ) {
if (
( ( y = C = ! 0 ) ,
( h = p . index + 1 ) ,
( w = "'" === p [ 0 ] ) ,
( _ = 32 ) ,
p . index - 1 >= 0 )
)
_ = c . charCodeAt ( p . index - 1 )
else
for ( A = t - 1 ; A >= 0 ; A -- )
if ( 'text' === e [ A ] . type ) {
_ = e [ A ] . content . charCodeAt ( e [ A ] . content . length - 1 )
break
}
if ( ( ( g = 32 ) , h < f ) ) g = c . charCodeAt ( h )
else
for ( A = t + 1 ; A < e . length ; A ++ )
if ( 'text' === e [ A ] . type ) {
g = e [ A ] . content . charCodeAt ( 0 )
break
}
if (
( ( k = a ( _ ) || i ( String . fromCharCode ( _ ) ) ) ,
( b = a ( g ) || i ( String . fromCharCode ( g ) ) ) ,
( v = o ( _ ) ) ,
( x = o ( g ) ) ,
x ? ( y = ! 1 ) : b && ( v || k || ( y = ! 1 ) ) ,
v ? ( C = ! 1 ) : k && ( x || b || ( C = ! 1 ) ) ,
34 === g &&
'"' === p [ 0 ] &&
_ >= 48 &&
_ <= 57 &&
( C = y = ! 1 ) ,
y && C && ( ( y = ! 1 ) , ( C = b ) ) ,
y || C )
) {
if ( C )
for (
A = D . length - 1 ;
A >= 0 && ( ( m = D [ A ] ) , ! ( D [ A ] . level < d ) ) ;
A --
)
if ( m . single === w && D [ A ] . level === d ) {
; ( m = D [ A ] ) ,
w
? ( ( q = r . md . options . quotes [ 2 ] ) ,
( E = r . md . options . quotes [ 3 ] ) )
: ( ( q = r . md . options . quotes [ 0 ] ) ,
( E = r . md . options . quotes [ 1 ] ) ) ,
( s . content = n ( s . content , p . index , E ) ) ,
( e [ m . token ] . content = n (
e [ m . token ] . content ,
m . pos ,
q
) ) ,
( h += E . length - 1 ) ,
m . token === t && ( h += q . length - 1 ) ,
( c = s . content ) ,
( f = c . length ) ,
( D . length = A )
continue e
}
y
? D . push ( {
token : t ,
pos : p . index ,
single : w ,
level : d
} )
: C && w && ( s . content = n ( s . content , p . index , u ) )
} else w && ( s . content = n ( s . content , p . index , u ) )
}
}
}
}
var o = e ( '../common/utils' ) . isWhiteSpace ,
i = e ( '../common/utils' ) . isPunctChar ,
a = e ( '../common/utils' ) . isMdAsciiPunct ,
c = /['"]/ ,
l = /['"]/g ,
u = '’ '
r . exports = function ( e ) {
var r
if ( e . md . options . typographer )
for ( r = e . tokens . length - 1 ; r >= 0 ; r -- )
'inline' === e . tokens [ r ] . type &&
c . test ( e . tokens [ r ] . content ) &&
s ( e . tokens [ r ] . children , e )
}
} ,
{ '../common/utils' : 4 }
] ,
36 : [
function ( e , r , t ) {
'use strict'
function n ( e , r , t ) {
; ( this . src = e ) ,
( this . env = t ) ,
( this . tokens = [ ] ) ,
( this . inlineMode = ! 1 ) ,
( this . md = r )
}
var s = e ( '../token' )
; ( n . prototype . Token = s ) , ( r . exports = n )
} ,
{ '../token' : 51 }
] ,
37 : [
function ( e , r , t ) {
'use strict'
var n = /^<([a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*)>/ ,
s = /^<([a-zA-Z][a-zA-Z0-9+.\-]{1,31}):([^<>\x00-\x20]*)>/
r . exports = function ( e , r ) {
var t ,
o ,
i ,
a ,
c ,
l ,
u = e . pos
return (
60 === e . src . charCodeAt ( u ) &&
( ( t = e . src . slice ( u ) ) ,
! ( t . indexOf ( '>' ) < 0 ) &&
( s . test ( t )
? ( ( o = t . match ( s ) ) ,
( a = o [ 0 ] . slice ( 1 , - 1 ) ) ,
( c = e . md . normalizeLink ( a ) ) ,
! ! e . md . validateLink ( c ) &&
( r ||
( ( l = e . push ( 'link_open' , 'a' , 1 ) ) ,
( l . attrs = [ [ 'href' , c ] ] ) ,
( l . markup = 'autolink' ) ,
( l . info = 'auto' ) ,
( l = e . push ( 'text' , '' , 0 ) ) ,
( l . content = e . md . normalizeLinkText ( a ) ) ,
( l = e . push ( 'link_close' , 'a' , - 1 ) ) ,
( l . markup = 'autolink' ) ,
( l . info = 'auto' ) ) ,
( e . pos += o [ 0 ] . length ) ,
! 0 ) )
: ! ! n . test ( t ) &&
( ( i = t . match ( n ) ) ,
( a = i [ 0 ] . slice ( 1 , - 1 ) ) ,
( c = e . md . normalizeLink ( 'mailto:' + a ) ) ,
! ! e . md . validateLink ( c ) &&
( r ||
( ( l = e . push ( 'link_open' , 'a' , 1 ) ) ,
( l . attrs = [ [ 'href' , c ] ] ) ,
( l . markup = 'autolink' ) ,
( l . info = 'auto' ) ,
( l = e . push ( 'text' , '' , 0 ) ) ,
( l . content = e . md . normalizeLinkText ( a ) ) ,
( l = e . push ( 'link_close' , 'a' , - 1 ) ) ,
( l . markup = 'autolink' ) ,
( l . info = 'auto' ) ) ,
( e . pos += i [ 0 ] . length ) ,
! 0 ) ) ) )
)
}
} ,
{ }
] ,
38 : [
function ( e , r , t ) {
'use strict'
r . exports = function ( e , r ) {
var t ,
n ,
s ,
o ,
i ,
a ,
c = e . pos ,
l = e . src . charCodeAt ( c )
if ( 96 !== l ) return ! 1
for (
t = c , c ++ , n = e . posMax ;
c < n && 96 === e . src . charCodeAt ( c ) ;
)
c ++
for (
s = e . src . slice ( t , c ) , o = i = c ;
( o = e . src . indexOf ( '`' , i ) ) !== - 1 ;
) {
for ( i = o + 1 ; i < n && 96 === e . src . charCodeAt ( i ) ; ) i ++
if ( i - o === s . length )
return (
r ||
( ( a = e . push ( 'code_inline' , 'code' , 0 ) ) ,
( a . markup = s ) ,
( a . content = e . src
. slice ( c , o )
. replace ( /[ \n]+/g , ' ' )
. trim ( ) ) ) ,
( e . pos = i ) ,
! 0
)
}
return r || ( e . pending += s ) , ( e . pos += s . length ) , ! 0
}
} ,
{ }
] ,
39 : [
function ( e , r , t ) {
'use strict'
r . exports = function ( e ) {
var r ,
t ,
n ,
s ,
o = e . delimiters ,
i = e . delimiters . length
for ( r = 0 ; r < i ; r ++ )
if ( ( ( n = o [ r ] ) , n . close ) )
for ( t = r - n . jump - 1 ; t >= 0 ; ) {
if (
( ( s = o [ t ] ) ,
s . open &&
s . marker === n . marker &&
s . end < 0 &&
s . level === n . level )
) {
; ( n . jump = r - t ) ,
( n . open = ! 1 ) ,
( s . end = r ) ,
( s . jump = 0 )
break
}
t -= s . jump + 1
}
}
} ,
{ }
] ,
40 : [
function ( e , r , t ) {
'use strict'
; ( r . exports . tokenize = function ( e , r ) {
var t ,
n ,
s ,
o = e . pos ,
i = e . src . charCodeAt ( o )
if ( r ) return ! 1
if ( 95 !== i && 42 !== i ) return ! 1
for (
n = e . scanDelims ( e . pos , 42 === i ) , t = 0 ;
t < n . length ;
t ++
)
( s = e . push ( 'text' , '' , 0 ) ) ,
( s . content = String . fromCharCode ( i ) ) ,
e . delimiters . push ( {
marker : i ,
jump : t ,
token : e . tokens . length - 1 ,
level : e . level ,
end : - 1 ,
open : n . can _open ,
close : n . can _close
} )
return ( e . pos += n . length ) , ! 0
} ) ,
( r . exports . postProcess = function ( e ) {
var r ,
t ,
n ,
s ,
o ,
i ,
a = e . delimiters ,
c = e . delimiters . length
for ( r = 0 ; r < c ; r ++ )
( t = a [ r ] ) ,
( 95 !== t . marker && 42 !== t . marker ) ||
( t . end !== - 1 &&
( ( n = a [ t . end ] ) ,
( i =
r + 1 < c &&
a [ r + 1 ] . end === t . end - 1 &&
a [ r + 1 ] . token === t . token + 1 &&
a [ t . end - 1 ] . token === n . token - 1 &&
a [ r + 1 ] . marker === t . marker ) ,
( o = String . fromCharCode ( t . marker ) ) ,
( s = e . tokens [ t . token ] ) ,
( s . type = i ? 'strong_open' : 'em_open' ) ,
( s . tag = i ? 'strong' : 'em' ) ,
( s . nesting = 1 ) ,
( s . markup = i ? o + o : o ) ,
( s . content = '' ) ,
( s = e . tokens [ n . token ] ) ,
( s . type = i ? 'strong_close' : 'em_close' ) ,
( s . tag = i ? 'strong' : 'em' ) ,
( s . nesting = - 1 ) ,
( s . markup = i ? o + o : o ) ,
( s . content = '' ) ,
i &&
( ( e . tokens [ a [ r + 1 ] . token ] . content = '' ) ,
( e . tokens [ a [ t . end - 1 ] . token ] . content = '' ) ,
r ++ ) ) )
} )
} ,
{ }
] ,
41 : [
function ( e , r , t ) {
'use strict'
var n = e ( '../common/entities' ) ,
s = e ( '../common/utils' ) . has ,
o = e ( '../common/utils' ) . isValidEntityCode ,
i = e ( '../common/utils' ) . fromCodePoint ,
a = /^&#((?:x[a-f0-9]{1,8}|[0-9]{1,8}));/i ,
c = /^&([a-z][a-z0-9]{1,31});/i
r . exports = function ( e , r ) {
var t ,
l ,
u ,
p = e . pos ,
h = e . posMax
if ( 38 !== e . src . charCodeAt ( p ) ) return ! 1
if ( p + 1 < h )
if ( ( ( t = e . src . charCodeAt ( p + 1 ) ) , 35 === t ) ) {
if ( ( u = e . src . slice ( p ) . match ( a ) ) )
return (
r ||
( ( l =
'x' === u [ 1 ] [ 0 ] . toLowerCase ( )
? parseInt ( u [ 1 ] . slice ( 1 ) , 16 )
: parseInt ( u [ 1 ] , 10 ) ) ,
( e . pending += i ( o ( l ) ? l : 65533 ) ) ) ,
( e . pos += u [ 0 ] . length ) ,
! 0
)
} else if ( ( ( u = e . src . slice ( p ) . match ( c ) ) , u && s ( n , u [ 1 ] ) ) )
return (
r || ( e . pending += n [ u [ 1 ] ] ) , ( e . pos += u [ 0 ] . length ) , ! 0
)
return r || ( e . pending += '&' ) , e . pos ++ , ! 0
}
} ,
{ '../common/entities' : 1 , '../common/utils' : 4 }
] ,
42 : [
function ( e , r , t ) {
'use strict'
for (
var n = e ( '../common/utils' ) . isSpace , s = [ ] , o = 0 ;
o < 256 ;
o ++
)
s . push ( 0 )
'\\!"#$%&\'()*+,./:;<=>?@[]^_`{|}~-'
. split ( '' )
. forEach ( function ( e ) {
s [ e . charCodeAt ( 0 ) ] = 1
} ) ,
( r . exports = function ( e , r ) {
var t ,
o = e . pos ,
i = e . posMax
if ( 92 !== e . src . charCodeAt ( o ) ) return ! 1
if ( ( o ++ , o < i ) ) {
if ( ( ( t = e . src . charCodeAt ( o ) ) , t < 256 && 0 !== s [ t ] ) )
return r || ( e . pending += e . src [ o ] ) , ( e . pos += 2 ) , ! 0
if ( 10 === t ) {
for (
r || e . push ( 'hardbreak' , 'br' , 0 ) , o ++ ;
o < i && ( ( t = e . src . charCodeAt ( o ) ) , n ( t ) ) ;
)
o ++
return ( e . pos = o ) , ! 0
}
}
return r || ( e . pending += '\\' ) , e . pos ++ , ! 0
} )
} ,
{ '../common/utils' : 4 }
] ,
43 : [
function ( e , r , t ) {
'use strict'
function n ( e ) {
var r = 32 | e
return r >= 97 && r <= 122
}
var s = e ( '../common/html_re' ) . HTML _TAG _RE
r . exports = function ( e , r ) {
var t ,
o ,
i ,
a ,
c = e . pos
return (
! ! e . md . options . html &&
( ( i = e . posMax ) ,
! ( 60 !== e . src . charCodeAt ( c ) || c + 2 >= i ) &&
( ( t = e . src . charCodeAt ( c + 1 ) ) ,
! ( 33 !== t && 63 !== t && 47 !== t && ! n ( t ) ) &&
! ! ( o = e . src . slice ( c ) . match ( s ) ) &&
( r ||
( ( a = e . push ( 'html_inline' , '' , 0 ) ) ,
( a . content = e . src . slice ( c , c + o [ 0 ] . length ) ) ) ,
( e . pos += o [ 0 ] . length ) ,
! 0 ) ) )
)
}
} ,
{ '../common/html_re' : 3 }
] ,
44 : [
function ( e , r , t ) {
'use strict'
var n = e ( '../helpers/parse_link_label' ) ,
s = e ( '../helpers/parse_link_destination' ) ,
o = e ( '../helpers/parse_link_title' ) ,
i = e ( '../common/utils' ) . normalizeReference ,
a = e ( '../common/utils' ) . isSpace
r . exports = function ( e , r ) {
var t ,
c ,
l ,
u ,
p ,
h ,
f ,
d ,
m ,
_ ,
g ,
k ,
b ,
v = '' ,
x = e . pos ,
y = e . posMax
if ( 33 !== e . src . charCodeAt ( e . pos ) ) return ! 1
if ( 91 !== e . src . charCodeAt ( e . pos + 1 ) ) return ! 1
if ( ( ( h = e . pos + 2 ) , ( p = n ( e , e . pos + 1 , ! 1 ) ) , p < 0 ) )
return ! 1
if ( ( ( f = p + 1 ) , f < y && 40 === e . src . charCodeAt ( f ) ) ) {
for (
f ++ ;
f < y && ( ( c = e . src . charCodeAt ( f ) ) , a ( c ) || 10 === c ) ;
f ++
) ;
if ( f >= y ) return ! 1
for (
b = f ,
m = s ( e . src , f , e . posMax ) ,
m . ok &&
( ( v = e . md . normalizeLink ( m . str ) ) ,
e . md . validateLink ( v ) ? ( f = m . pos ) : ( v = '' ) ) ,
b = f ;
f < y && ( ( c = e . src . charCodeAt ( f ) ) , a ( c ) || 10 === c ) ;
f ++
) ;
if ( ( ( m = o ( e . src , f , e . posMax ) ) , f < y && b !== f && m . ok ) )
for (
_ = m . str , f = m . pos ;
f < y && ( ( c = e . src . charCodeAt ( f ) ) , a ( c ) || 10 === c ) ;
f ++
) ;
else _ = ''
if ( f >= y || 41 !== e . src . charCodeAt ( f ) )
return ( e . pos = x ) , ! 1
f ++
} else {
if ( 'undefined' == typeof e . env . references ) return ! 1
if (
( f < y && 91 === e . src . charCodeAt ( f )
? ( ( b = f + 1 ) ,
( f = n ( e , f ) ) ,
f >= 0 ? ( u = e . src . slice ( b , f ++ ) ) : ( f = p + 1 ) )
: ( f = p + 1 ) ,
u || ( u = e . src . slice ( h , p ) ) ,
( d = e . env . references [ i ( u ) ] ) ,
! d )
)
return ( e . pos = x ) , ! 1
; ( v = d . href ) , ( _ = d . title )
}
return (
r ||
( ( l = e . src . slice ( h , p ) ) ,
e . md . inline . parse ( l , e . md , e . env , ( k = [ ] ) ) ,
( g = e . push ( 'image' , 'img' , 0 ) ) ,
( g . attrs = t = [
[ 'src' , v ] ,
[ 'alt' , '' ]
] ) ,
( g . children = k ) ,
( g . content = l ) ,
_ && t . push ( [ 'title' , _ ] ) ) ,
( e . pos = f ) ,
( e . posMax = y ) ,
! 0
)
}
} ,
{
'../common/utils' : 4 ,
'../helpers/parse_link_destination' : 6 ,
'../helpers/parse_link_label' : 7 ,
'../helpers/parse_link_title' : 8
}
] ,
45 : [
function ( e , r , t ) {
'use strict'
var n = e ( '../helpers/parse_link_label' ) ,
s = e ( '../helpers/parse_link_destination' ) ,
o = e ( '../helpers/parse_link_title' ) ,
i = e ( '../common/utils' ) . normalizeReference ,
a = e ( '../common/utils' ) . isSpace
r . exports = function ( e , r ) {
var t ,
c ,
l ,
u ,
p ,
h ,
f ,
d ,
m ,
_ ,
g = '' ,
k = e . pos ,
b = e . posMax ,
v = e . pos
if ( 91 !== e . src . charCodeAt ( e . pos ) ) return ! 1
if ( ( ( p = e . pos + 1 ) , ( u = n ( e , e . pos , ! 0 ) ) , u < 0 ) ) return ! 1
if ( ( ( h = u + 1 ) , h < b && 40 === e . src . charCodeAt ( h ) ) ) {
for (
h ++ ;
h < b && ( ( c = e . src . charCodeAt ( h ) ) , a ( c ) || 10 === c ) ;
h ++
) ;
if ( h >= b ) return ! 1
for (
v = h ,
f = s ( e . src , h , e . posMax ) ,
f . ok &&
( ( g = e . md . normalizeLink ( f . str ) ) ,
e . md . validateLink ( g ) ? ( h = f . pos ) : ( g = '' ) ) ,
v = h ;
h < b && ( ( c = e . src . charCodeAt ( h ) ) , a ( c ) || 10 === c ) ;
h ++
) ;
if ( ( ( f = o ( e . src , h , e . posMax ) ) , h < b && v !== h && f . ok ) )
for (
m = f . str , h = f . pos ;
h < b && ( ( c = e . src . charCodeAt ( h ) ) , a ( c ) || 10 === c ) ;
h ++
) ;
else m = ''
if ( h >= b || 41 !== e . src . charCodeAt ( h ) )
return ( e . pos = k ) , ! 1
h ++
} else {
if ( 'undefined' == typeof e . env . references ) return ! 1
if (
( h < b && 91 === e . src . charCodeAt ( h )
? ( ( v = h + 1 ) ,
( h = n ( e , h ) ) ,
h >= 0 ? ( l = e . src . slice ( v , h ++ ) ) : ( h = u + 1 ) )
: ( h = u + 1 ) ,
l || ( l = e . src . slice ( p , u ) ) ,
( d = e . env . references [ i ( l ) ] ) ,
! d )
)
return ( e . pos = k ) , ! 1
; ( g = d . href ) , ( m = d . title )
}
return (
r ||
( ( e . pos = p ) ,
( e . posMax = u ) ,
( _ = e . push ( 'link_open' , 'a' , 1 ) ) ,
( _ . attrs = t = [ [ 'href' , g ] ] ) ,
m && t . push ( [ 'title' , m ] ) ,
e . md . inline . tokenize ( e ) ,
( _ = e . push ( 'link_close' , 'a' , - 1 ) ) ) ,
( e . pos = h ) ,
( e . posMax = b ) ,
! 0
)
}
} ,
{
'../common/utils' : 4 ,
'../helpers/parse_link_destination' : 6 ,
'../helpers/parse_link_label' : 7 ,
'../helpers/parse_link_title' : 8
}
] ,
46 : [
function ( e , r , t ) {
'use strict'
r . exports = function ( e , r ) {
var t ,
n ,
s = e . pos
if ( 10 !== e . src . charCodeAt ( s ) ) return ! 1
for (
t = e . pending . length - 1 ,
n = e . posMax ,
r ||
( t >= 0 && 32 === e . pending . charCodeAt ( t )
? t >= 1 && 32 === e . pending . charCodeAt ( t - 1 )
? ( ( e . pending = e . pending . replace ( / +$/ , '' ) ) ,
e . push ( 'hardbreak' , 'br' , 0 ) )
: ( ( e . pending = e . pending . slice ( 0 , - 1 ) ) ,
e . push ( 'softbreak' , 'br' , 0 ) )
: e . push ( 'softbreak' , 'br' , 0 ) ) ,
s ++ ;
s < n && 32 === e . src . charCodeAt ( s ) ;
)
s ++
return ( e . pos = s ) , ! 0
}
} ,
{ }
] ,
47 : [
function ( e , r , t ) {
'use strict'
function n ( e , r , t , n ) {
; ( this . src = e ) ,
( this . env = t ) ,
( this . md = r ) ,
( this . tokens = n ) ,
( this . pos = 0 ) ,
( this . posMax = this . src . length ) ,
( this . level = 0 ) ,
( this . pending = '' ) ,
( this . pendingLevel = 0 ) ,
( this . cache = { } ) ,
( this . delimiters = [ ] )
}
var s = e ( '../token' ) ,
o = e ( '../common/utils' ) . isWhiteSpace ,
i = e ( '../common/utils' ) . isPunctChar ,
a = e ( '../common/utils' ) . isMdAsciiPunct
; ( n . prototype . pushPending = function ( ) {
var e = new s ( 'text' , '' , 0 )
return (
( e . content = this . pending ) ,
( e . level = this . pendingLevel ) ,
this . tokens . push ( e ) ,
( this . pending = '' ) ,
e
)
} ) ,
( n . prototype . push = function ( e , r , t ) {
this . pending && this . pushPending ( )
var n = new s ( e , r , t )
return (
t < 0 && this . level -- ,
( n . level = this . level ) ,
t > 0 && this . level ++ ,
( this . pendingLevel = this . level ) ,
this . tokens . push ( n ) ,
n
)
} ) ,
( n . prototype . scanDelims = function ( e , r ) {
var t ,
n ,
s ,
c ,
l ,
u ,
p ,
h ,
f ,
d = e ,
m = ! 0 ,
_ = ! 0 ,
g = this . posMax ,
k = this . src . charCodeAt ( e )
for (
t = e > 0 ? this . src . charCodeAt ( e - 1 ) : 32 ;
d < g && this . src . charCodeAt ( d ) === k ;
)
d ++
return (
( s = d - e ) ,
( n = d < g ? this . src . charCodeAt ( d ) : 32 ) ,
( p = a ( t ) || i ( String . fromCharCode ( t ) ) ) ,
( f = a ( n ) || i ( String . fromCharCode ( n ) ) ) ,
( u = o ( t ) ) ,
( h = o ( n ) ) ,
h ? ( m = ! 1 ) : f && ( u || p || ( m = ! 1 ) ) ,
u ? ( _ = ! 1 ) : p && ( h || f || ( _ = ! 1 ) ) ,
r
? ( ( c = m ) , ( l = _ ) )
: ( ( c = m && ( ! _ || p ) ) , ( l = _ && ( ! m || f ) ) ) ,
{
can _open : c ,
can _close : l ,
length : s
}
)
} ) ,
( n . prototype . Token = s ) ,
( r . exports = n )
} ,
{ '../common/utils' : 4 , '../token' : 51 }
] ,
48 : [
function ( e , r , t ) {
'use strict'
; ( r . exports . tokenize = function ( e , r ) {
var t ,
n ,
s ,
o ,
i ,
a = e . pos ,
c = e . src . charCodeAt ( a )
if ( r ) return ! 1
if ( 126 !== c ) return ! 1
if (
( ( n = e . scanDelims ( e . pos , ! 0 ) ) ,
( o = n . length ) ,
( i = String . fromCharCode ( c ) ) ,
o < 2 )
)
return ! 1
for (
o % 2 && ( ( s = e . push ( 'text' , '' , 0 ) ) , ( s . content = i ) , o -- ) ,
t = 0 ;
t < o ;
t += 2
)
( s = e . push ( 'text' , '' , 0 ) ) ,
( s . content = i + i ) ,
e . delimiters . push ( {
marker : c ,
jump : t ,
token : e . tokens . length - 1 ,
level : e . level ,
end : - 1 ,
open : n . can _open ,
close : n . can _close
} )
return ( e . pos += n . length ) , ! 0
} ) ,
( r . exports . postProcess = function ( e ) {
var r ,
t ,
n ,
s ,
o ,
i = [ ] ,
a = e . delimiters ,
c = e . delimiters . length
for ( r = 0 ; r < c ; r ++ )
( n = a [ r ] ) ,
126 === n . marker &&
n . end !== - 1 &&
( ( s = a [ n . end ] ) ,
( o = e . tokens [ n . token ] ) ,
( o . type = 's_open' ) ,
( o . tag = 's' ) ,
( o . nesting = 1 ) ,
( o . markup = '~~' ) ,
( o . content = '' ) ,
( o = e . tokens [ s . token ] ) ,
( o . type = 's_close' ) ,
( o . tag = 's' ) ,
( o . nesting = - 1 ) ,
( o . markup = '~~' ) ,
( o . content = '' ) ,
'text' === e . tokens [ s . token - 1 ] . type &&
'~' === e . tokens [ s . token - 1 ] . content &&
i . push ( s . token - 1 ) )
for ( ; i . length ; ) {
for (
r = i . pop ( ) , t = r + 1 ;
t < e . tokens . length && 's_close' === e . tokens [ t ] . type ;
)
t ++
t -- ,
r !== t &&
( ( o = e . tokens [ t ] ) ,
( e . tokens [ t ] = e . tokens [ r ] ) ,
( e . tokens [ r ] = o ) )
}
} )
} ,
{ }
] ,
49 : [
function ( e , r , t ) {
'use strict'
function n ( e ) {
switch ( e ) {
case 10 :
case 33 :
case 35 :
case 36 :
case 37 :
case 38 :
case 42 :
case 43 :
case 45 :
case 58 :
case 60 :
case 61 :
case 62 :
case 64 :
case 91 :
case 92 :
case 93 :
case 94 :
case 95 :
case 96 :
case 123 :
case 125 :
case 126 :
return ! 0
default :
return ! 1
}
}
r . exports = function ( e , r ) {
for ( var t = e . pos ; t < e . posMax && ! n ( e . src . charCodeAt ( t ) ) ; )
t ++
return (
t !== e . pos &&
( r || ( e . pending += e . src . slice ( e . pos , t ) ) , ( e . pos = t ) , ! 0 )
)
}
} ,
{ }
] ,
50 : [
function ( e , r , t ) {
'use strict'
r . exports = function ( e ) {
var r ,
t ,
n = 0 ,
s = e . tokens ,
o = e . tokens . length
for ( r = t = 0 ; r < o ; r ++ )
( n += s [ r ] . nesting ) ,
( s [ r ] . level = n ) ,
'text' === s [ r ] . type &&
r + 1 < o &&
'text' === s [ r + 1 ] . type
? ( s [ r + 1 ] . content = s [ r ] . content + s [ r + 1 ] . content )
: ( r !== t && ( s [ t ] = s [ r ] ) , t ++ )
r !== t && ( s . length = t )
}
} ,
{ }
] ,
51 : [
function ( e , r , t ) {
'use strict'
function n ( e , r , t ) {
; ( this . type = e ) ,
( this . tag = r ) ,
( this . attrs = null ) ,
( this . map = null ) ,
( this . nesting = t ) ,
( this . level = 0 ) ,
( this . children = null ) ,
( this . content = '' ) ,
( this . markup = '' ) ,
( this . info = '' ) ,
( this . meta = null ) ,
( this . block = ! 1 ) ,
( this . hidden = ! 1 )
}
; ( n . prototype . attrIndex = function ( e ) {
var r , t , n
if ( ! this . attrs ) return - 1
for ( r = this . attrs , t = 0 , n = r . length ; t < n ; t ++ )
if ( r [ t ] [ 0 ] === e ) return t
return - 1
} ) ,
( n . prototype . attrPush = function ( e ) {
this . attrs ? this . attrs . push ( e ) : ( this . attrs = [ e ] )
} ) ,
( n . prototype . attrSet = function ( e , r ) {
var t = this . attrIndex ( e ) ,
n = [ e , r ]
t < 0 ? this . attrPush ( n ) : ( this . attrs [ t ] = n )
} ) ,
( n . prototype . attrGet = function ( e ) {
var r = this . attrIndex ( e ) ,
t = null
return r >= 0 && ( t = this . attrs [ r ] [ 1 ] ) , t
} ) ,
( n . prototype . attrJoin = function ( e , r ) {
var t = this . attrIndex ( e )
t < 0
? this . attrPush ( [ e , r ] )
: ( this . attrs [ t ] [ 1 ] = this . attrs [ t ] [ 1 ] + ' ' + r )
} ) ,
( r . exports = n )
} ,
{ }
] ,
52 : [
function ( r , t , n ) {
; ( function ( r ) {
! ( function ( s ) {
function o ( e ) {
throw new RangeError ( R [ e ] )
}
function i ( e , r ) {
for ( var t = e . length , n = [ ] ; t -- ; ) n [ t ] = r ( e [ t ] )
return n
}
function a ( e , r ) {
var t = e . split ( '@' ) ,
n = ''
t . length > 1 && ( ( n = t [ 0 ] + '@' ) , ( e = t [ 1 ] ) ) ,
( e = e . replace ( T , '.' ) )
var s = e . split ( '.' ) ,
o = i ( s , r ) . join ( '.' )
return n + o
}
function c ( e ) {
for ( var r , t , n = [ ] , s = 0 , o = e . length ; s < o ; )
( r = e . charCodeAt ( s ++ ) ) ,
r >= 55296 && r <= 56319 && s < o
? ( ( t = e . charCodeAt ( s ++ ) ) ,
56320 == ( 64512 & t )
? n . push ( ( ( 1023 & r ) << 10 ) + ( 1023 & t ) + 65536 )
: ( n . push ( r ) , s -- ) )
: n . push ( r )
return n
}
function l ( e ) {
return i ( e , function ( e ) {
var r = ''
return (
e > 65535 &&
( ( e -= 65536 ) ,
( r += B ( ( ( e >>> 10 ) & 1023 ) | 55296 ) ) ,
( e = 56320 | ( 1023 & e ) ) ) ,
( r += B ( e ) )
)
} ) . join ( '' )
}
function u ( e ) {
return e - 48 < 10
? e - 22
: e - 65 < 26
? e - 65
: e - 97 < 26
? e - 97
: C
}
function p ( e , r ) {
return e + 22 + 75 * ( e < 26 ) - ( ( 0 != r ) << 5 )
}
function h ( e , r , t ) {
var n = 0
for (
e = t ? I ( e / q ) : e >> 1 , e += I ( e / r ) ;
e > ( M * w ) >> 1 ;
n += C
)
e = I ( e / M )
return I ( n + ( ( M + 1 ) * e ) / ( e + D ) )
}
function f ( e ) {
var r ,
t ,
n ,
s ,
i ,
a ,
c ,
p ,
f ,
d ,
m = [ ] ,
_ = e . length ,
g = 0 ,
k = S ,
b = E
for (
t = e . lastIndexOf ( F ) , t < 0 && ( t = 0 ) , n = 0 ;
n < t ;
++ n
)
e . charCodeAt ( n ) >= 128 && o ( 'not-basic' ) ,
m . push ( e . charCodeAt ( n ) )
for ( s = t > 0 ? t + 1 : 0 ; s < _ ; ) {
for (
i = g , a = 1 , c = C ;
s >= _ && o ( 'invalid-input' ) ,
( p = u ( e . charCodeAt ( s ++ ) ) ) ,
( p >= C || p > I ( ( y - g ) / a ) ) && o ( 'overflow' ) ,
( g += p * a ) ,
( f = c <= b ? A : c >= b + w ? w : c - b ) ,
! ( p < f ) ;
c += C
)
( d = C - f ) , a > I ( y / d ) && o ( 'overflow' ) , ( a *= d )
; ( r = m . length + 1 ) ,
( b = h ( g - i , r , 0 == i ) ) ,
I ( g / r ) > y - k && o ( 'overflow' ) ,
( k += I ( g / r ) ) ,
( g %= r ) ,
m . splice ( g ++ , 0 , k )
}
return l ( m )
}
function d ( e ) {
var r ,
t ,
n ,
s ,
i ,
a ,
l ,
u ,
f ,
d ,
m ,
_ ,
g ,
k ,
b ,
v = [ ]
for (
e = c ( e ) , _ = e . length , r = S , t = 0 , i = E , a = 0 ;
a < _ ;
++ a
)
( m = e [ a ] ) , m < 128 && v . push ( B ( m ) )
for ( n = s = v . length , s && v . push ( F ) ; n < _ ; ) {
for ( l = y , a = 0 ; a < _ ; ++ a )
( m = e [ a ] ) , m >= r && m < l && ( l = m )
for (
g = n + 1 ,
l - r > I ( ( y - t ) / g ) && o ( 'overflow' ) ,
t += ( l - r ) * g ,
r = l ,
a = 0 ;
a < _ ;
++ a
)
if (
( ( m = e [ a ] ) ,
m < r && ++ t > y && o ( 'overflow' ) ,
m == r )
) {
for (
u = t , f = C ;
( d = f <= i ? A : f >= i + w ? w : f - i ) , ! ( u < d ) ;
f += C
)
( b = u - d ) ,
( k = C - d ) ,
v . push ( B ( p ( d + ( b % k ) , 0 ) ) ) ,
( u = I ( b / k ) )
v . push ( B ( p ( u , 0 ) ) ) ,
( i = h ( t , g , n == s ) ) ,
( t = 0 ) ,
++ n
}
++ t , ++ r
}
return v . join ( '' )
}
function m ( e ) {
return a ( e , function ( e ) {
return z . test ( e ) ? f ( e . slice ( 4 ) . toLowerCase ( ) ) : e
} )
}
function _ ( e ) {
return a ( e , function ( e ) {
return L . test ( e ) ? 'xn--' + d ( e ) : e
} )
}
var g = 'object' == typeof n && n && ! n . nodeType && n ,
k = 'object' == typeof t && t && ! t . nodeType && t ,
b = 'object' == typeof r && r
; ( b . global !== b && b . window !== b && b . self !== b ) || ( s = b )
var v ,
x ,
y = 2147483647 ,
C = 36 ,
A = 1 ,
w = 26 ,
D = 38 ,
q = 700 ,
E = 72 ,
S = 128 ,
F = '-' ,
z = /^xn--/ ,
L = /[^\x20-\x7E]/ ,
T = /[\x2E\u3002\uFF0E\uFF61]/g ,
R = {
overflow :
'Overflow: input needs wider integers to process' ,
'not-basic' :
'Illegal input >= 0x80 (not a basic code point)' ,
'invalid-input' : 'Invalid input'
} ,
M = C - A ,
I = Math . floor ,
B = String . fromCharCode
if (
( ( v = {
version : '1.4.1' ,
ucs2 : { decode : c , encode : l } ,
decode : f ,
encode : d ,
toASCII : _ ,
toUnicode : m
} ) ,
'function' == typeof e && 'object' == typeof e . amd && e . amd )
)
e ( 'punycode' , function ( ) {
return v
} )
else if ( g && k )
if ( t . exports == g ) k . exports = v
else for ( x in v ) v . hasOwnProperty ( x ) && ( g [ x ] = v [ x ] )
else s . punycode = v
} ) ( this )
} . call (
this ,
'undefined' != typeof global
? global
: 'undefined' != typeof self
? self
: 'undefined' != typeof window
? window
: { }
) )
} ,
{ }
] ,
53 : [
function ( e , r , t ) {
r . exports = {
Aacute : 'Á' ,
aacute : 'á' ,
Abreve : 'Ă' ,
abreve : 'ă' ,
ac : '∾' ,
acd : '∿' ,
acE : '∾̳' ,
Acirc : 'Â' ,
acirc : 'â' ,
acute : '´ ' ,
Acy : 'А ' ,
acy : 'а ' ,
AElig : 'Æ' ,
aelig : 'æ' ,
af : ' ' ,
Afr : '𝔄 ' ,
afr : '𝔞 ' ,
Agrave : 'À' ,
agrave : 'à' ,
alefsym : 'ℵ' ,
aleph : 'ℵ' ,
Alpha : 'Α ' ,
alpha : 'α ' ,
Amacr : 'Ā' ,
amacr : 'ā' ,
amalg : '⨿' ,
amp : '&' ,
AMP : '&' ,
andand : '⩕' ,
And : '⩓' ,
and : '∧' ,
andd : '⩜' ,
andslope : '⩘' ,
andv : '⩚' ,
ang : '∠' ,
ange : '⦤' ,
angle : '∠' ,
angmsdaa : '⦨' ,
angmsdab : '⦩' ,
angmsdac : '⦪' ,
angmsdad : '⦫' ,
angmsdae : '⦬' ,
angmsdaf : '⦭' ,
angmsdag : '⦮' ,
angmsdah : '⦯' ,
angmsd : '∡' ,
angrt : '∟' ,
angrtvb : '⊾' ,
angrtvbd : '⦝' ,
angsph : '∢' ,
angst : 'Å' ,
angzarr : '⍼' ,
Aogon : 'Ą' ,
aogon : 'ą' ,
Aopf : '𝔸 ' ,
aopf : '𝕒 ' ,
apacir : '⩯' ,
ap : '≈' ,
apE : '⩰' ,
ape : '≊' ,
apid : '≋' ,
apos : "'" ,
ApplyFunction : ' ' ,
approx : '≈' ,
approxeq : '≊' ,
Aring : 'Å' ,
aring : 'å' ,
Ascr : '𝒜 ' ,
ascr : '𝒶 ' ,
Assign : '≔' ,
ast : '*' ,
asymp : '≈' ,
asympeq : '≍' ,
Atilde : 'Ã' ,
atilde : 'ã' ,
Auml : 'Ä' ,
auml : 'ä' ,
awconint : '∳' ,
awint : '⨑' ,
backcong : '≌' ,
backepsilon : '϶' ,
backprime : '‵ ' ,
backsim : '∽' ,
backsimeq : '⋍' ,
Backslash : '∖ ' ,
Barv : '⫧' ,
barvee : '⊽' ,
barwed : '⌅' ,
Barwed : '⌆' ,
barwedge : '⌅' ,
bbrk : '⎵' ,
bbrktbrk : '⎶' ,
bcong : '≌' ,
Bcy : 'Б' ,
bcy : 'б ' ,
bdquo : '„' ,
becaus : '∵' ,
because : '∵' ,
Because : '∵' ,
bemptyv : '⦰' ,
bepsi : '϶' ,
bernou : 'ℬ ' ,
Bernoullis : 'ℬ ' ,
Beta : 'Β ' ,
beta : 'β' ,
beth : 'ℶ' ,
between : '≬' ,
Bfr : '𝔅 ' ,
bfr : '𝔟 ' ,
bigcap : '⋂' ,
bigcirc : '◯' ,
bigcup : '⋃ ' ,
bigodot : '⨀' ,
bigoplus : '⨁' ,
bigotimes : '⨂' ,
bigsqcup : '⨆' ,
bigstar : '★' ,
bigtriangledown : '▽' ,
bigtriangleup : '△' ,
biguplus : '⨄' ,
bigvee : '⋁ ' ,
bigwedge : '⋀' ,
bkarow : '⤍' ,
blacklozenge : '⧫' ,
blacksquare : '▪' ,
blacktriangle : '▴' ,
blacktriangledown : '▾' ,
blacktriangleleft : '◂' ,
blacktriangleright : '▸' ,
blank : '␣' ,
blk12 : '▒' ,
blk14 : '░' ,
blk34 : '▓' ,
block : '█' ,
bne : '=⃥' ,
bnequiv : '≡⃥' ,
bNot : '⫭' ,
bnot : '⌐' ,
Bopf : '𝔹 ' ,
bopf : '𝕓 ' ,
bot : '⊥' ,
bottom : '⊥' ,
bowtie : '⋈' ,
boxbox : '⧉' ,
boxdl : '┐' ,
boxdL : '╕' ,
boxDl : '╖' ,
boxDL : '╗' ,
boxdr : '┌' ,
boxdR : '╒' ,
boxDr : '╓' ,
boxDR : '╔' ,
boxh : '─' ,
boxH : '═' ,
boxhd : '┬' ,
boxHd : '╤' ,
boxhD : '╥' ,
boxHD : '╦' ,
boxhu : '┴' ,
boxHu : '╧' ,
boxhU : '╨' ,
boxHU : '╩' ,
boxminus : '⊟' ,
boxplus : '⊞' ,
boxtimes : '⊠' ,
boxul : '┘' ,
boxuL : '╛' ,
boxUl : '╜' ,
boxUL : '╝' ,
boxur : '└' ,
boxuR : '╘' ,
boxUr : '╙' ,
boxUR : '╚' ,
boxv : '│' ,
boxV : '║' ,
boxvh : '┼' ,
boxvH : '╪' ,
boxVh : '╫' ,
boxVH : '╬' ,
boxvl : '┤' ,
boxvL : '╡' ,
boxVl : '╢' ,
boxVL : '╣' ,
boxvr : '├' ,
boxvR : '╞' ,
boxVr : '╟' ,
boxVR : '╠' ,
bprime : '‵ ' ,
breve : '˘' ,
Breve : '˘' ,
brvbar : '¦' ,
bscr : '𝒷 ' ,
Bscr : 'ℬ ' ,
bsemi : '⁏' ,
bsim : '∽' ,
bsime : '⋍' ,
bsolb : '⧅' ,
bsol : '\\' ,
bsolhsub : '⟈' ,
bull : '•' ,
bullet : '•' ,
bump : '≎' ,
bumpE : '⪮' ,
bumpe : '≏' ,
Bumpeq : '≎' ,
bumpeq : '≏' ,
Cacute : 'Ć' ,
cacute : 'ć' ,
capand : '⩄' ,
capbrcup : '⩉' ,
capcap : '⩋' ,
cap : '∩' ,
Cap : '⋒' ,
capcup : '⩇' ,
capdot : '⩀' ,
CapitalDifferentialD : 'ⅅ ' ,
caps : '∩︀' ,
caret : '⁁ ' ,
caron : 'ˇ' ,
Cayleys : 'ℭ ' ,
ccaps : '⩍' ,
Ccaron : 'Č' ,
ccaron : 'č' ,
Ccedil : 'Ç' ,
ccedil : 'ç' ,
Ccirc : 'Ĉ' ,
ccirc : 'ĉ' ,
Cconint : '∰' ,
ccups : '⩌' ,
ccupssm : '⩐' ,
Cdot : 'Ċ' ,
cdot : 'ċ' ,
cedil : '¸ ' ,
Cedilla : '¸ ' ,
cemptyv : '⦲' ,
cent : '¢' ,
centerdot : '·' ,
CenterDot : '·' ,
cfr : '𝔠 ' ,
Cfr : 'ℭ ' ,
CHcy : 'Ч' ,
chcy : 'ч' ,
check : '✓' ,
checkmark : '✓' ,
Chi : 'Χ ' ,
chi : 'χ' ,
circ : 'ˆ ' ,
circeq : '≗' ,
circlearrowleft : '↺' ,
circlearrowright : '↻' ,
circledast : '⊛' ,
circledcirc : '⊚' ,
circleddash : '⊝' ,
CircleDot : '⊙' ,
circledR : '®' ,
circledS : 'Ⓢ' ,
CircleMinus : '⊖' ,
CirclePlus : '⊕' ,
CircleTimes : '⊗' ,
cir : '○' ,
cirE : '⧃' ,
cire : '≗' ,
cirfnint : '⨐' ,
cirmid : '⫯' ,
cirscir : '⧂' ,
ClockwiseContourIntegral : '∲' ,
CloseCurlyDoubleQuote : '”' ,
CloseCurlyQuote : '’ ' ,
clubs : '♣' ,
clubsuit : '♣' ,
colon : ':' ,
Colon : '∷' ,
Colone : '⩴' ,
colone : '≔' ,
coloneq : '≔' ,
comma : ',' ,
commat : '@' ,
comp : '∁' ,
compfn : '∘' ,
complement : '∁' ,
complexes : 'ℂ ' ,
cong : '≅' ,
congdot : '⩭' ,
Congruent : '≡' ,
conint : '∮' ,
Conint : '∯' ,
ContourIntegral : '∮' ,
copf : '𝕔 ' ,
Copf : 'ℂ ' ,
coprod : '∐' ,
Coproduct : '∐' ,
copy : '©' ,
COPY : '©' ,
copysr : '℗' ,
CounterClockwiseContourIntegral : '∳' ,
crarr : '↵' ,
cross : '✗' ,
Cross : '⨯ ' ,
Cscr : '𝒞 ' ,
cscr : '𝒸 ' ,
csub : '⫏' ,
csube : '⫑' ,
csup : '⫐' ,
csupe : '⫒' ,
ctdot : '⋯' ,
cudarrl : '⤸' ,
cudarrr : '⤵' ,
cuepr : '⋞' ,
cuesc : '⋟' ,
cularr : '↶' ,
cularrp : '⤽' ,
cupbrcap : '⩈' ,
cupcap : '⩆' ,
CupCap : '≍' ,
cup : '∪ ' ,
Cup : '⋓' ,
cupcup : '⩊' ,
cupdot : '⊍' ,
cupor : '⩅' ,
cups : '∪ ︀ ' ,
curarr : '↷' ,
curarrm : '⤼' ,
curlyeqprec : '⋞' ,
curlyeqsucc : '⋟' ,
curlyvee : '⋎' ,
curlywedge : '⋏' ,
curren : '¤' ,
curvearrowleft : '↶' ,
curvearrowright : '↷' ,
cuvee : '⋎' ,
cuwed : '⋏' ,
cwconint : '∲' ,
cwint : '∱' ,
cylcty : '⌭' ,
dagger : '†' ,
Dagger : '‡' ,
daleth : 'ℸ' ,
darr : '↓' ,
Darr : '↡' ,
dArr : '⇓' ,
dash : '‐ ' ,
Dashv : '⫤' ,
dashv : '⊣' ,
dbkarow : '⤏' ,
dblac : '˝' ,
Dcaron : 'Ď' ,
dcaron : 'ď' ,
Dcy : 'Д' ,
dcy : 'д' ,
ddagger : '‡' ,
ddarr : '⇊' ,
DD : 'ⅅ ' ,
dd : 'ⅆ ' ,
DDotrahd : '⤑' ,
ddotseq : '⩷' ,
deg : '°' ,
Del : '∇' ,
Delta : 'Δ' ,
delta : 'δ' ,
demptyv : '⦱' ,
dfisht : '⥿' ,
Dfr : '𝔇 ' ,
dfr : '𝔡 ' ,
dHar : '⥥' ,
dharl : '⇃' ,
dharr : '⇂' ,
DiacriticalAcute : '´ ' ,
DiacriticalDot : '˙' ,
DiacriticalDoubleAcute : '˝' ,
DiacriticalGrave : '`' ,
DiacriticalTilde : '˜ ' ,
diam : '⋄' ,
diamond : '⋄' ,
Diamond : '⋄' ,
diamondsuit : '♦' ,
diams : '♦' ,
die : '¨' ,
DifferentialD : 'ⅆ ' ,
digamma : 'ϝ' ,
disin : '⋲' ,
div : '÷' ,
divide : '÷' ,
divideontimes : '⋇' ,
divonx : '⋇' ,
DJcy : 'Ђ' ,
djcy : 'ђ' ,
dlcorn : '⌞' ,
dlcrop : '⌍' ,
dollar : '$' ,
Dopf : '𝔻 ' ,
dopf : '𝕕 ' ,
Dot : '¨' ,
dot : '˙' ,
DotDot : '⃜' ,
doteq : '≐' ,
doteqdot : '≑' ,
DotEqual : '≐' ,
dotminus : '∸' ,
dotplus : '∔' ,
dotsquare : '⊡' ,
doublebarwedge : '⌆' ,
DoubleContourIntegral : '∯' ,
DoubleDot : '¨' ,
DoubleDownArrow : '⇓' ,
DoubleLeftArrow : '⇐' ,
DoubleLeftRightArrow : '⇔' ,
DoubleLeftTee : '⫤' ,
DoubleLongLeftArrow : '⟸' ,
DoubleLongLeftRightArrow : '⟺' ,
DoubleLongRightArrow : '⟹' ,
DoubleRightArrow : '⇒' ,
DoubleRightTee : '⊨' ,
DoubleUpArrow : '⇑' ,
DoubleUpDownArrow : '⇕' ,
DoubleVerticalBar : '∥' ,
DownArrowBar : '⤓' ,
downarrow : '↓' ,
DownArrow : '↓' ,
Downarrow : '⇓' ,
DownArrowUpArrow : '⇵' ,
DownBreve : '̑' ,
downdownarrows : '⇊' ,
downharpoonleft : '⇃' ,
downharpoonright : '⇂' ,
DownLeftRightVector : '⥐' ,
DownLeftTeeVector : '⥞' ,
DownLeftVectorBar : '⥖' ,
DownLeftVector : '↽' ,
DownRightTeeVector : '⥟' ,
DownRightVectorBar : '⥗' ,
DownRightVector : '⇁' ,
DownTeeArrow : '↧' ,
DownTee : '⊤ ' ,
drbkarow : '⤐' ,
drcorn : '⌟' ,
drcrop : '⌌' ,
Dscr : '𝒟 ' ,
dscr : '𝒹 ' ,
DScy : 'Ѕ ' ,
dscy : 'ѕ ' ,
dsol : '⧶' ,
Dstrok : 'Đ' ,
dstrok : 'đ' ,
dtdot : '⋱' ,
dtri : '▿' ,
dtrif : '▾' ,
duarr : '⇵' ,
duhar : '⥯' ,
dwangle : '⦦' ,
DZcy : 'Џ' ,
dzcy : 'џ' ,
dzigrarr : '⟿' ,
Eacute : 'É' ,
eacute : 'é' ,
easter : '⩮' ,
Ecaron : 'Ě' ,
ecaron : 'ě' ,
Ecirc : 'Ê' ,
ecirc : 'ê' ,
ecir : '≖' ,
ecolon : '≕' ,
Ecy : 'Э' ,
ecy : 'э' ,
eDDot : '⩷' ,
Edot : 'Ė' ,
edot : 'ė' ,
eDot : '≑' ,
ee : 'ⅇ ' ,
efDot : '≒' ,
Efr : '𝔈 ' ,
efr : '𝔢 ' ,
eg : '⪚' ,
Egrave : 'È' ,
egrave : 'è' ,
egs : '⪖' ,
egsdot : '⪘' ,
el : '⪙' ,
Element : '∈' ,
elinters : '⏧' ,
ell : 'ℓ ' ,
els : '⪕' ,
elsdot : '⪗' ,
Emacr : 'Ē' ,
emacr : 'ē' ,
empty : '∅' ,
emptyset : '∅' ,
EmptySmallSquare : '◻' ,
emptyv : '∅' ,
EmptyVerySmallSquare : '▫' ,
emsp13 : ' ' ,
emsp14 : ' ' ,
emsp : ' ' ,
ENG : 'Ŋ' ,
eng : 'ŋ' ,
ensp : ' ' ,
Eogon : 'Ę' ,
eogon : 'ę' ,
Eopf : '𝔼 ' ,
eopf : '𝕖 ' ,
epar : '⋕' ,
eparsl : '⧣' ,
eplus : '⩱' ,
epsi : 'ε' ,
Epsilon : 'Ε ' ,
epsilon : 'ε' ,
epsiv : 'ϵ' ,
eqcirc : '≖' ,
eqcolon : '≕' ,
eqsim : '≂' ,
eqslantgtr : '⪖' ,
eqslantless : '⪕' ,
Equal : '⩵' ,
equals : '=' ,
EqualTilde : '≂' ,
equest : '≟' ,
Equilibrium : '⇌' ,
equiv : '≡' ,
equivDD : '⩸' ,
eqvparsl : '⧥' ,
erarr : '⥱' ,
erDot : '≓' ,
escr : 'ℯ ' ,
Escr : 'ℰ ' ,
esdot : '≐' ,
Esim : '⩳' ,
esim : '≂' ,
Eta : 'Η ' ,
eta : 'η' ,
ETH : 'Ð' ,
eth : 'ð' ,
Euml : 'Ë' ,
euml : 'ë' ,
euro : '€' ,
excl : '!' ,
exist : '∃' ,
Exists : '∃' ,
expectation : 'ℰ ' ,
exponentiale : 'ⅇ ' ,
ExponentialE : 'ⅇ ' ,
fallingdotseq : '≒' ,
Fcy : 'Ф' ,
fcy : 'ф' ,
female : '♀' ,
ffilig : 'ffi' ,
fflig : 'ff' ,
ffllig : 'ffl' ,
Ffr : '𝔉 ' ,
ffr : '𝔣 ' ,
filig : 'fi' ,
FilledSmallSquare : '◼' ,
FilledVerySmallSquare : '▪' ,
fjlig : 'fj' ,
flat : '♭' ,
fllig : 'fl' ,
fltns : '▱' ,
fnof : 'ƒ' ,
Fopf : '𝔽 ' ,
fopf : '𝕗 ' ,
forall : '∀' ,
ForAll : '∀' ,
fork : '⋔' ,
forkv : '⫙' ,
Fouriertrf : 'ℱ ' ,
fpartint : '⨍' ,
frac12 : '½' ,
frac13 : '⅓' ,
frac14 : '¼' ,
frac15 : '⅕' ,
frac16 : '⅙' ,
frac18 : '⅛' ,
frac23 : '⅔' ,
frac25 : '⅖' ,
frac34 : '¾' ,
frac35 : '⅗' ,
frac38 : '⅜' ,
frac45 : '⅘' ,
frac56 : '⅚' ,
frac58 : '⅝' ,
frac78 : '⅞' ,
frasl : '⁄ ' ,
frown : '⌢' ,
fscr : '𝒻 ' ,
Fscr : 'ℱ ' ,
gacute : 'ǵ' ,
Gamma : 'Γ' ,
gamma : 'γ ' ,
Gammad : 'Ϝ ' ,
gammad : 'ϝ' ,
gap : '⪆' ,
Gbreve : 'Ğ' ,
gbreve : 'ğ' ,
Gcedil : 'Ģ' ,
Gcirc : 'Ĝ' ,
gcirc : 'ĝ' ,
Gcy : 'Г' ,
gcy : 'г ' ,
Gdot : 'Ġ' ,
gdot : 'ġ' ,
ge : '≥' ,
gE : '≧' ,
gEl : '⪌' ,
gel : '⋛' ,
geq : '≥' ,
geqq : '≧' ,
geqslant : '⩾' ,
gescc : '⪩' ,
ges : '⩾' ,
gesdot : '⪀' ,
gesdoto : '⪂' ,
gesdotol : '⪄' ,
gesl : '⋛︀' ,
gesles : '⪔' ,
Gfr : '𝔊 ' ,
gfr : '𝔤 ' ,
gg : '≫' ,
Gg : '⋙' ,
ggg : '⋙' ,
gimel : 'ℷ' ,
GJcy : 'Ѓ' ,
gjcy : 'ѓ' ,
gla : '⪥' ,
gl : '≷' ,
glE : '⪒' ,
glj : '⪤' ,
gnap : '⪊' ,
gnapprox : '⪊' ,
gne : '⪈' ,
gnE : '≩' ,
gneq : '⪈' ,
gneqq : '≩' ,
gnsim : '⋧' ,
Gopf : '𝔾 ' ,
gopf : '𝕘 ' ,
grave : '`' ,
GreaterEqual : '≥' ,
GreaterEqualLess : '⋛' ,
GreaterFullEqual : '≧' ,
GreaterGreater : '⪢' ,
GreaterLess : '≷' ,
GreaterSlantEqual : '⩾' ,
GreaterTilde : '≳' ,
Gscr : '𝒢 ' ,
gscr : 'ℊ ' ,
gsim : '≳' ,
gsime : '⪎' ,
gsiml : '⪐' ,
gtcc : '⪧' ,
gtcir : '⩺' ,
gt : '>' ,
GT : '>' ,
Gt : '≫' ,
gtdot : '⋗' ,
gtlPar : '⦕' ,
gtquest : '⩼' ,
gtrapprox : '⪆' ,
gtrarr : '⥸' ,
gtrdot : '⋗' ,
gtreqless : '⋛' ,
gtreqqless : '⪌' ,
gtrless : '≷' ,
gtrsim : '≳' ,
gvertneqq : '≩︀' ,
gvnE : '≩︀' ,
Hacek : 'ˇ' ,
hairsp : ' ' ,
half : '½' ,
hamilt : 'ℋ ' ,
HARDcy : 'Ъ' ,
hardcy : 'ъ' ,
harrcir : '⥈' ,
harr : '↔' ,
hArr : '⇔' ,
harrw : '↭' ,
Hat : '^' ,
hbar : 'ℏ' ,
Hcirc : 'Ĥ' ,
hcirc : 'ĥ' ,
hearts : '♥' ,
heartsuit : '♥' ,
hellip : '…' ,
hercon : '⊹' ,
hfr : '𝔥 ' ,
Hfr : 'ℌ ' ,
HilbertSpace : 'ℋ ' ,
hksearow : '⤥' ,
hkswarow : '⤦' ,
hoarr : '⇿' ,
homtht : '∻' ,
hookleftarrow : '↩' ,
hookrightarrow : '↪' ,
hopf : '𝕙 ' ,
Hopf : 'ℍ ' ,
horbar : '―' ,
HorizontalLine : '─' ,
hscr : '𝒽 ' ,
Hscr : 'ℋ ' ,
hslash : 'ℏ' ,
Hstrok : 'Ħ' ,
hstrok : 'ħ' ,
HumpDownHump : '≎' ,
HumpEqual : '≏' ,
hybull : '⁃ ' ,
hyphen : '‐ ' ,
Iacute : 'Í' ,
iacute : 'í' ,
ic : ' ' ,
Icirc : 'Î' ,
icirc : 'î' ,
Icy : 'И' ,
icy : 'и' ,
Idot : 'İ' ,
IEcy : 'Е ' ,
iecy : 'е ' ,
iexcl : '¡' ,
iff : '⇔' ,
ifr : '𝔦 ' ,
Ifr : 'ℑ ' ,
Igrave : 'Ì' ,
igrave : 'ì' ,
ii : 'ⅈ ' ,
iiiint : '⨌' ,
iiint : '∭' ,
iinfin : '⧜' ,
iiota : '℩' ,
IJlig : 'IJ' ,
ijlig : 'ij' ,
Imacr : 'Ī' ,
imacr : 'ī' ,
image : 'ℑ ' ,
ImaginaryI : 'ⅈ ' ,
imagline : 'ℐ ' ,
imagpart : 'ℑ ' ,
imath : 'ı ' ,
Im : 'ℑ ' ,
imof : '⊷' ,
imped : 'Ƶ' ,
Implies : '⇒' ,
incare : '℅' ,
in : '∈' ,
infin : '∞' ,
infintie : '⧝' ,
inodot : 'ı ' ,
intcal : '⊺' ,
int : '∫' ,
Int : '∬' ,
integers : 'ℤ ' ,
Integral : '∫' ,
intercal : '⊺' ,
Intersection : '⋂' ,
intlarhk : '⨗' ,
intprod : '⨼' ,
InvisibleComma : ' ' ,
InvisibleTimes : ' ' ,
IOcy : 'Ё' ,
iocy : 'ё' ,
Iogon : 'Į' ,
iogon : 'į' ,
Iopf : '𝕀 ' ,
iopf : '𝕚 ' ,
Iota : 'Ι ' ,
iota : 'ι ' ,
iprod : '⨼' ,
iquest : '¿' ,
iscr : '𝒾 ' ,
Iscr : 'ℐ ' ,
isin : '∈' ,
isindot : '⋵' ,
isinE : '⋹' ,
isins : '⋴' ,
isinsv : '⋳' ,
isinv : '∈' ,
it : ' ' ,
Itilde : 'Ĩ' ,
itilde : 'ĩ' ,
Iukcy : 'І ' ,
iukcy : 'і ' ,
Iuml : 'Ï' ,
iuml : 'ï' ,
Jcirc : 'Ĵ' ,
jcirc : 'ĵ' ,
Jcy : 'Й' ,
jcy : 'й' ,
Jfr : '𝔍 ' ,
jfr : '𝔧 ' ,
jmath : 'ȷ' ,
Jopf : '𝕁 ' ,
jopf : '𝕛 ' ,
Jscr : '𝒥 ' ,
jscr : '𝒿 ' ,
Jsercy : 'Ј ' ,
jsercy : 'ј ' ,
Jukcy : 'Є' ,
jukcy : 'є' ,
Kappa : 'Κ ' ,
kappa : 'κ' ,
kappav : 'ϰ' ,
Kcedil : 'Ķ' ,
kcedil : 'ķ' ,
Kcy : 'К ' ,
kcy : 'к' ,
Kfr : '𝔎 ' ,
kfr : '𝔨 ' ,
kgreen : 'ĸ' ,
KHcy : 'Х ' ,
khcy : 'х ' ,
KJcy : 'Ќ' ,
kjcy : 'ќ' ,
Kopf : '𝕂 ' ,
kopf : '𝕜 ' ,
Kscr : '𝒦 ' ,
kscr : '𝓀 ' ,
lAarr : '⇚' ,
Lacute : 'Ĺ' ,
lacute : 'ĺ' ,
laemptyv : '⦴' ,
lagran : 'ℒ ' ,
Lambda : 'Λ' ,
lambda : 'λ' ,
lang : '⟨' ,
Lang : '⟪' ,
langd : '⦑' ,
langle : '⟨' ,
lap : '⪅' ,
Laplacetrf : 'ℒ ' ,
laquo : '«' ,
larrb : '⇤' ,
larrbfs : '⤟' ,
larr : '←' ,
Larr : '↞' ,
lArr : '⇐' ,
larrfs : '⤝' ,
larrhk : '↩' ,
larrlp : '↫' ,
larrpl : '⤹' ,
larrsim : '⥳' ,
larrtl : '↢' ,
latail : '⤙' ,
lAtail : '⤛' ,
lat : '⪫' ,
late : '⪭' ,
lates : '⪭︀' ,
lbarr : '⤌' ,
lBarr : '⤎' ,
lbbrk : '❲ ' ,
lbrace : '{' ,
lbrack : '[' ,
lbrke : '⦋' ,
lbrksld : '⦏' ,
lbrkslu : '⦍' ,
Lcaron : 'Ľ' ,
lcaron : 'ľ' ,
Lcedil : 'Ļ' ,
lcedil : 'ļ' ,
lceil : '⌈' ,
lcub : '{' ,
Lcy : 'Л' ,
lcy : 'л' ,
ldca : '⤶' ,
ldquo : '“' ,
ldquor : '„' ,
ldrdhar : '⥧' ,
ldrushar : '⥋' ,
ldsh : '↲' ,
le : '≤' ,
lE : '≦' ,
LeftAngleBracket : '⟨' ,
LeftArrowBar : '⇤' ,
leftarrow : '←' ,
LeftArrow : '←' ,
Leftarrow : '⇐' ,
LeftArrowRightArrow : '⇆' ,
leftarrowtail : '↢' ,
LeftCeiling : '⌈' ,
LeftDoubleBracket : '⟦' ,
LeftDownTeeVector : '⥡' ,
LeftDownVectorBar : '⥙' ,
LeftDownVector : '⇃' ,
LeftFloor : '⌊' ,
leftharpoondown : '↽' ,
leftharpoonup : '↼' ,
leftleftarrows : '⇇' ,
leftrightarrow : '↔' ,
LeftRightArrow : '↔' ,
Leftrightarrow : '⇔' ,
leftrightarrows : '⇆' ,
leftrightharpoons : '⇋' ,
leftrightsquigarrow : '↭' ,
LeftRightVector : '⥎' ,
LeftTeeArrow : '↤' ,
LeftTee : '⊣' ,
LeftTeeVector : '⥚' ,
leftthreetimes : '⋋' ,
LeftTriangleBar : '⧏' ,
LeftTriangle : '⊲' ,
LeftTriangleEqual : '⊴' ,
LeftUpDownVector : '⥑' ,
LeftUpTeeVector : '⥠' ,
LeftUpVectorBar : '⥘' ,
LeftUpVector : '↿' ,
LeftVectorBar : '⥒' ,
LeftVector : '↼' ,
lEg : '⪋' ,
leg : '⋚' ,
leq : '≤' ,
leqq : '≦' ,
leqslant : '⩽' ,
lescc : '⪨' ,
les : '⩽' ,
lesdot : '⩿' ,
lesdoto : '⪁' ,
lesdotor : '⪃' ,
lesg : '⋚︀' ,
lesges : '⪓' ,
lessapprox : '⪅' ,
lessdot : '⋖' ,
lesseqgtr : '⋚' ,
lesseqqgtr : '⪋' ,
LessEqualGreater : '⋚' ,
LessFullEqual : '≦' ,
LessGreater : '≶' ,
lessgtr : '≶' ,
LessLess : '⪡' ,
lesssim : '≲' ,
LessSlantEqual : '⩽' ,
LessTilde : '≲' ,
lfisht : '⥼' ,
lfloor : '⌊' ,
Lfr : '𝔏 ' ,
lfr : '𝔩 ' ,
lg : '≶' ,
lgE : '⪑' ,
lHar : '⥢' ,
lhard : '↽' ,
lharu : '↼' ,
lharul : '⥪' ,
lhblk : '▄' ,
LJcy : 'Љ' ,
ljcy : 'љ' ,
llarr : '⇇' ,
ll : '≪' ,
Ll : '⋘' ,
llcorner : '⌞' ,
Lleftarrow : '⇚' ,
llhard : '⥫' ,
lltri : '◺' ,
Lmidot : 'Ŀ' ,
lmidot : 'ŀ' ,
lmoustache : '⎰' ,
lmoust : '⎰' ,
lnap : '⪉' ,
lnapprox : '⪉' ,
lne : '⪇' ,
lnE : '≨' ,
lneq : '⪇' ,
lneqq : '≨' ,
lnsim : '⋦' ,
loang : '⟬' ,
loarr : '⇽' ,
lobrk : '⟦' ,
longleftarrow : '⟵' ,
LongLeftArrow : '⟵' ,
Longleftarrow : '⟸' ,
longleftrightarrow : '⟷' ,
LongLeftRightArrow : '⟷' ,
Longleftrightarrow : '⟺' ,
longmapsto : '⟼' ,
longrightarrow : '⟶' ,
LongRightArrow : '⟶' ,
Longrightarrow : '⟹' ,
looparrowleft : '↫' ,
looparrowright : '↬' ,
lopar : '⦅' ,
Lopf : '𝕃 ' ,
lopf : '𝕝 ' ,
loplus : '⨭' ,
lotimes : '⨴' ,
lowast : '∗ ' ,
lowbar : '_' ,
LowerLeftArrow : '↙' ,
LowerRightArrow : '↘' ,
loz : '◊' ,
lozenge : '◊' ,
lozf : '⧫' ,
lpar : '(' ,
lparlt : '⦓' ,
lrarr : '⇆' ,
lrcorner : '⌟' ,
lrhar : '⇋' ,
lrhard : '⥭' ,
lrm : ' ' ,
lrtri : '⊿' ,
lsaquo : '‹ ' ,
lscr : '𝓁 ' ,
Lscr : 'ℒ ' ,
lsh : '↰' ,
Lsh : '↰' ,
lsim : '≲' ,
lsime : '⪍' ,
lsimg : '⪏' ,
lsqb : '[' ,
lsquo : '‘ ' ,
lsquor : '‚ ' ,
Lstrok : 'Ł' ,
lstrok : 'ł' ,
ltcc : '⪦' ,
ltcir : '⩹' ,
lt : '<' ,
LT : '<' ,
Lt : '≪' ,
ltdot : '⋖' ,
lthree : '⋋' ,
ltimes : '⋉' ,
ltlarr : '⥶' ,
ltquest : '⩻' ,
ltri : '◃' ,
ltrie : '⊴' ,
ltrif : '◂' ,
ltrPar : '⦖' ,
lurdshar : '⥊' ,
luruhar : '⥦' ,
lvertneqq : '≨︀' ,
lvnE : '≨︀' ,
macr : '¯' ,
male : '♂' ,
malt : '✠' ,
maltese : '✠' ,
Map : '⤅' ,
map : '↦' ,
mapsto : '↦' ,
mapstodown : '↧' ,
mapstoleft : '↤' ,
mapstoup : '↥' ,
marker : '▮' ,
mcomma : '⨩' ,
Mcy : 'М ' ,
mcy : 'м' ,
mdash : '—' ,
mDDot : '∺' ,
measuredangle : '∡' ,
MediumSpace : ' ' ,
Mellintrf : 'ℳ ' ,
Mfr : '𝔐 ' ,
mfr : '𝔪' ,
mho : '℧' ,
micro : 'µ' ,
midast : '*' ,
midcir : '⫰' ,
mid : '∣ ' ,
middot : '·' ,
minusb : '⊟' ,
minus : '− ' ,
minusd : '∸' ,
minusdu : '⨪' ,
MinusPlus : '∓' ,
mlcp : '⫛' ,
mldr : '…' ,
mnplus : '∓' ,
models : '⊧' ,
Mopf : '𝕄 ' ,
mopf : '𝕞' ,
mp : '∓' ,
mscr : '𝓂' ,
Mscr : 'ℳ ' ,
mstpos : '∾' ,
Mu : 'Μ ' ,
mu : 'μ' ,
multimap : '⊸' ,
mumap : '⊸' ,
nabla : '∇' ,
Nacute : 'Ń' ,
nacute : 'ń' ,
nang : '∠⃒' ,
nap : '≉' ,
napE : '⩰̸' ,
napid : '≋̸' ,
napos : 'ʼn' ,
napprox : '≉' ,
natural : '♮' ,
naturals : 'ℕ ' ,
natur : '♮' ,
nbsp : ' ' ,
nbump : '≎̸' ,
nbumpe : '≏̸' ,
ncap : '⩃' ,
Ncaron : 'Ň' ,
ncaron : 'ň' ,
Ncedil : 'Ņ' ,
ncedil : 'ņ' ,
ncong : '≇' ,
ncongdot : '⩭̸' ,
ncup : '⩂' ,
Ncy : 'Н ' ,
ncy : 'н' ,
ndash : '– ' ,
nearhk : '⤤' ,
nearr : '↗' ,
neArr : '⇗' ,
nearrow : '↗' ,
ne : '≠' ,
nedot : '≐̸' ,
NegativeMediumSpace : ' ' ,
NegativeThickSpace : ' ' ,
NegativeThinSpace : ' ' ,
NegativeVeryThinSpace : ' ' ,
nequiv : '≢' ,
nesear : '⤨' ,
nesim : '≂̸' ,
NestedGreaterGreater : '≫' ,
NestedLessLess : '≪' ,
NewLine : '\n' ,
nexist : '∄' ,
nexists : '∄' ,
Nfr : '𝔑 ' ,
nfr : '𝔫 ' ,
ngE : '≧̸' ,
nge : '≱' ,
ngeq : '≱' ,
ngeqq : '≧̸' ,
ngeqslant : '⩾̸' ,
nges : '⩾̸' ,
nGg : '⋙̸' ,
ngsim : '≵' ,
nGt : '≫⃒' ,
ngt : '≯' ,
ngtr : '≯' ,
nGtv : '≫̸' ,
nharr : '↮' ,
nhArr : '⇎' ,
nhpar : '⫲' ,
ni : '∋' ,
nis : '⋼' ,
nisd : '⋺' ,
niv : '∋' ,
NJcy : 'Њ' ,
njcy : 'њ' ,
nlarr : '↚' ,
nlArr : '⇍' ,
nldr : '‥' ,
nlE : '≦̸' ,
nle : '≰' ,
nleftarrow : '↚' ,
nLeftarrow : '⇍' ,
nleftrightarrow : '↮' ,
nLeftrightarrow : '⇎' ,
nleq : '≰' ,
nleqq : '≦̸' ,
nleqslant : '⩽̸' ,
nles : '⩽̸' ,
nless : '≮' ,
nLl : '⋘̸' ,
nlsim : '≴' ,
nLt : '≪⃒' ,
nlt : '≮' ,
nltri : '⋪' ,
nltrie : '⋬' ,
nLtv : '≪̸' ,
nmid : '∤' ,
NoBreak : ' ' ,
NonBreakingSpace : ' ' ,
nopf : '𝕟 ' ,
Nopf : 'ℕ ' ,
Not : '⫬' ,
not : '¬' ,
NotCongruent : '≢' ,
NotCupCap : '≭' ,
NotDoubleVerticalBar : '∦' ,
NotElement : '∉' ,
NotEqual : '≠' ,
NotEqualTilde : '≂̸' ,
NotExists : '∄' ,
NotGreater : '≯' ,
NotGreaterEqual : '≱' ,
NotGreaterFullEqual : '≧̸' ,
NotGreaterGreater : '≫̸' ,
NotGreaterLess : '≹' ,
NotGreaterSlantEqual : '⩾̸' ,
NotGreaterTilde : '≵' ,
NotHumpDownHump : '≎̸' ,
NotHumpEqual : '≏̸' ,
notin : '∉' ,
notindot : '⋵̸' ,
notinE : '⋹̸' ,
notinva : '∉' ,
notinvb : '⋷' ,
notinvc : '⋶' ,
NotLeftTriangleBar : '⧏̸' ,
NotLeftTriangle : '⋪' ,
NotLeftTriangleEqual : '⋬' ,
NotLess : '≮' ,
NotLessEqual : '≰' ,
NotLessGreater : '≸' ,
NotLessLess : '≪̸' ,
NotLessSlantEqual : '⩽̸' ,
NotLessTilde : '≴' ,
NotNestedGreaterGreater : '⪢̸' ,
NotNestedLessLess : '⪡̸' ,
notni : '∌' ,
notniva : '∌' ,
notnivb : '⋾' ,
notnivc : '⋽' ,
NotPrecedes : '⊀' ,
NotPrecedesEqual : '⪯̸' ,
NotPrecedesSlantEqual : '⋠' ,
NotReverseElement : '∌' ,
NotRightTriangleBar : '⧐̸' ,
NotRightTriangle : '⋫' ,
NotRightTriangleEqual : '⋭' ,
NotSquareSubset : '⊏̸' ,
NotSquareSubsetEqual : '⋢' ,
NotSquareSuperset : '⊐̸' ,
NotSquareSupersetEqual : '⋣' ,
NotSubset : '⊂⃒' ,
NotSubsetEqual : '⊈' ,
NotSucceeds : '⊁' ,
NotSucceedsEqual : '⪰̸' ,
NotSucceedsSlantEqual : '⋡' ,
NotSucceedsTilde : '≿̸' ,
NotSuperset : '⊃⃒' ,
NotSupersetEqual : '⊉' ,
NotTilde : '≁' ,
NotTildeEqual : '≄' ,
NotTildeFullEqual : '≇' ,
NotTildeTilde : '≉' ,
NotVerticalBar : '∤' ,
nparallel : '∦' ,
npar : '∦' ,
nparsl : '⫽⃥' ,
npart : '∂̸' ,
npolint : '⨔' ,
npr : '⊀' ,
nprcue : '⋠' ,
nprec : '⊀' ,
npreceq : '⪯̸' ,
npre : '⪯̸' ,
nrarrc : '⤳̸' ,
nrarr : '↛' ,
nrArr : '⇏' ,
nrarrw : '↝̸' ,
nrightarrow : '↛' ,
nRightarrow : '⇏' ,
nrtri : '⋫' ,
nrtrie : '⋭' ,
nsc : '⊁' ,
nsccue : '⋡' ,
nsce : '⪰̸' ,
Nscr : '𝒩 ' ,
nscr : '𝓃 ' ,
nshortmid : '∤' ,
nshortparallel : '∦' ,
nsim : '≁' ,
nsime : '≄' ,
nsimeq : '≄' ,
nsmid : '∤' ,
nspar : '∦' ,
nsqsube : '⋢' ,
nsqsupe : '⋣' ,
nsub : '⊄' ,
nsubE : '⫅̸' ,
nsube : '⊈' ,
nsubset : '⊂⃒' ,
nsubseteq : '⊈' ,
nsubseteqq : '⫅̸' ,
nsucc : '⊁' ,
nsucceq : '⪰̸' ,
nsup : '⊅' ,
nsupE : '⫆̸' ,
nsupe : '⊉' ,
nsupset : '⊃⃒' ,
nsupseteq : '⊉' ,
nsupseteqq : '⫆̸' ,
ntgl : '≹' ,
Ntilde : 'Ñ' ,
ntilde : 'ñ' ,
ntlg : '≸' ,
ntriangleleft : '⋪' ,
ntrianglelefteq : '⋬' ,
ntriangleright : '⋫' ,
ntrianglerighteq : '⋭' ,
Nu : 'Ν ' ,
nu : 'ν ' ,
num : '#' ,
numero : '№' ,
numsp : ' ' ,
nvap : '≍⃒' ,
nvdash : '⊬' ,
nvDash : '⊭' ,
nVdash : '⊮' ,
nVDash : '⊯' ,
nvge : '≥⃒' ,
nvgt : '>⃒' ,
nvHarr : '⤄' ,
nvinfin : '⧞' ,
nvlArr : '⤂' ,
nvle : '≤⃒' ,
nvlt : '<⃒' ,
nvltrie : '⊴⃒' ,
nvrArr : '⤃' ,
nvrtrie : '⊵⃒' ,
nvsim : '∼⃒' ,
nwarhk : '⤣' ,
nwarr : '↖' ,
nwArr : '⇖' ,
nwarrow : '↖' ,
nwnear : '⤧' ,
Oacute : 'Ó' ,
oacute : 'ó' ,
oast : '⊛' ,
Ocirc : 'Ô' ,
ocirc : 'ô' ,
ocir : '⊚' ,
Ocy : 'О ' ,
ocy : 'о ' ,
odash : '⊝' ,
Odblac : 'Ő' ,
odblac : 'ő' ,
odiv : '⨸' ,
odot : '⊙' ,
odsold : '⦼' ,
OElig : 'Œ' ,
oelig : 'œ' ,
ofcir : '⦿' ,
Ofr : '𝔒 ' ,
ofr : '𝔬 ' ,
ogon : '˛ ' ,
Ograve : 'Ò' ,
ograve : 'ò' ,
ogt : '⧁' ,
ohbar : '⦵' ,
ohm : 'Ω' ,
oint : '∮' ,
olarr : '↺' ,
olcir : '⦾' ,
olcross : '⦻' ,
oline : '‾' ,
olt : '⧀' ,
Omacr : 'Ō' ,
omacr : 'ō' ,
Omega : 'Ω' ,
omega : 'ω' ,
Omicron : 'Ο ' ,
omicron : 'ο ' ,
omid : '⦶' ,
ominus : '⊖' ,
Oopf : '𝕆 ' ,
oopf : '𝕠 ' ,
opar : '⦷' ,
OpenCurlyDoubleQuote : '“' ,
OpenCurlyQuote : '‘ ' ,
operp : '⦹' ,
oplus : '⊕' ,
orarr : '↻' ,
Or : '⩔' ,
or : '∨ ' ,
ord : '⩝' ,
order : 'ℴ ' ,
orderof : 'ℴ ' ,
ordf : 'ª' ,
ordm : 'º' ,
origof : '⊶' ,
oror : '⩖' ,
orslope : '⩗' ,
orv : '⩛' ,
oS : 'Ⓢ' ,
Oscr : '𝒪 ' ,
oscr : 'ℴ ' ,
Oslash : 'Ø' ,
oslash : 'ø' ,
osol : '⊘' ,
Otilde : 'Õ' ,
otilde : 'õ' ,
otimesas : '⨶' ,
Otimes : '⨷' ,
otimes : '⊗' ,
Ouml : 'Ö' ,
ouml : 'ö' ,
ovbar : '⌽' ,
OverBar : '‾' ,
OverBrace : '⏞' ,
OverBracket : '⎴' ,
OverParenthesis : '⏜' ,
para : '¶' ,
parallel : '∥' ,
par : '∥' ,
parsim : '⫳' ,
parsl : '⫽' ,
part : '∂' ,
PartialD : '∂' ,
Pcy : 'П' ,
pcy : 'п' ,
percnt : '%' ,
period : '.' ,
permil : '‰' ,
perp : '⊥' ,
pertenk : '‱' ,
Pfr : '𝔓 ' ,
pfr : '𝔭 ' ,
Phi : 'Φ' ,
phi : 'φ' ,
phiv : 'ϕ' ,
phmmat : 'ℳ ' ,
phone : '☎' ,
Pi : 'Π' ,
pi : 'π' ,
pitchfork : '⋔' ,
piv : 'ϖ' ,
planck : 'ℏ' ,
planckh : 'ℎ ' ,
plankv : 'ℏ' ,
plusacir : '⨣' ,
plusb : '⊞' ,
pluscir : '⨢' ,
plus : '+' ,
plusdo : '∔' ,
plusdu : '⨥' ,
pluse : '⩲' ,
PlusMinus : '±' ,
plusmn : '±' ,
plussim : '⨦' ,
plustwo : '⨧' ,
pm : '±' ,
Poincareplane : 'ℌ ' ,
pointint : '⨕' ,
popf : '𝕡 ' ,
Popf : 'ℙ ' ,
pound : '£' ,
prap : '⪷' ,
Pr : '⪻' ,
pr : '≺' ,
prcue : '≼' ,
precapprox : '⪷' ,
prec : '≺' ,
preccurlyeq : '≼' ,
Precedes : '≺' ,
PrecedesEqual : '⪯' ,
PrecedesSlantEqual : '≼' ,
PrecedesTilde : '≾' ,
preceq : '⪯' ,
precnapprox : '⪹' ,
precneqq : '⪵' ,
precnsim : '⋨' ,
pre : '⪯' ,
prE : '⪳' ,
precsim : '≾' ,
prime : '′ ' ,
Prime : '″' ,
primes : 'ℙ ' ,
prnap : '⪹' ,
prnE : '⪵' ,
prnsim : '⋨' ,
prod : '∏' ,
Product : '∏' ,
profalar : '⌮' ,
profline : '⌒' ,
profsurf : '⌓' ,
prop : '∝' ,
Proportional : '∝' ,
Proportion : '∷' ,
propto : '∝' ,
prsim : '≾' ,
prurel : '⊰' ,
Pscr : '𝒫 ' ,
pscr : '𝓅 ' ,
Psi : 'Ψ' ,
psi : 'ψ' ,
puncsp : ' ' ,
Qfr : '𝔔 ' ,
qfr : '𝔮 ' ,
qint : '⨌' ,
qopf : '𝕢 ' ,
Qopf : 'ℚ ' ,
qprime : '⁗' ,
Qscr : '𝒬 ' ,
qscr : '𝓆 ' ,
quaternions : 'ℍ ' ,
quatint : '⨖' ,
quest : '?' ,
questeq : '≟' ,
quot : '"' ,
QUOT : '"' ,
rAarr : '⇛' ,
race : '∽̱' ,
Racute : 'Ŕ' ,
racute : 'ŕ' ,
radic : '√' ,
raemptyv : '⦳' ,
rang : '⟩' ,
Rang : '⟫' ,
rangd : '⦒' ,
range : '⦥' ,
rangle : '⟩' ,
raquo : '»' ,
rarrap : '⥵' ,
rarrb : '⇥' ,
rarrbfs : '⤠' ,
rarrc : '⤳' ,
rarr : '→' ,
Rarr : '↠' ,
rArr : '⇒' ,
rarrfs : '⤞' ,
rarrhk : '↪' ,
rarrlp : '↬' ,
rarrpl : '⥅' ,
rarrsim : '⥴' ,
Rarrtl : '⤖' ,
rarrtl : '↣' ,
rarrw : '↝' ,
ratail : '⤚' ,
rAtail : '⤜' ,
ratio : '∶ ' ,
rationals : 'ℚ ' ,
rbarr : '⤍' ,
rBarr : '⤏' ,
RBarr : '⤐' ,
rbbrk : '❳ ' ,
rbrace : '}' ,
rbrack : ']' ,
rbrke : '⦌' ,
rbrksld : '⦎' ,
rbrkslu : '⦐' ,
Rcaron : 'Ř' ,
rcaron : 'ř' ,
Rcedil : 'Ŗ' ,
rcedil : 'ŗ' ,
rceil : '⌉' ,
rcub : '}' ,
Rcy : 'Р ' ,
rcy : 'р ' ,
rdca : '⤷' ,
rdldhar : '⥩' ,
rdquo : '”' ,
rdquor : '”' ,
rdsh : '↳' ,
real : 'ℜ ' ,
realine : 'ℛ ' ,
realpart : 'ℜ ' ,
reals : 'ℝ ' ,
Re : 'ℜ ' ,
rect : '▭' ,
reg : '®' ,
REG : '®' ,
ReverseElement : '∋' ,
ReverseEquilibrium : '⇋' ,
ReverseUpEquilibrium : '⥯' ,
rfisht : '⥽' ,
rfloor : '⌋' ,
rfr : '𝔯 ' ,
Rfr : 'ℜ ' ,
rHar : '⥤' ,
rhard : '⇁' ,
rharu : '⇀' ,
rharul : '⥬' ,
Rho : 'Ρ ' ,
rho : 'ρ ' ,
rhov : 'ϱ ' ,
RightAngleBracket : '⟩' ,
RightArrowBar : '⇥' ,
rightarrow : '→' ,
RightArrow : '→' ,
Rightarrow : '⇒' ,
RightArrowLeftArrow : '⇄' ,
rightarrowtail : '↣' ,
RightCeiling : '⌉' ,
RightDoubleBracket : '⟧' ,
RightDownTeeVector : '⥝' ,
RightDownVectorBar : '⥕' ,
RightDownVector : '⇂' ,
RightFloor : '⌋' ,
rightharpoondown : '⇁' ,
rightharpoonup : '⇀' ,
rightleftarrows : '⇄' ,
rightleftharpoons : '⇌' ,
rightrightarrows : '⇉' ,
rightsquigarrow : '↝' ,
RightTeeArrow : '↦' ,
RightTee : '⊢' ,
RightTeeVector : '⥛' ,
rightthreetimes : '⋌' ,
RightTriangleBar : '⧐' ,
RightTriangle : '⊳' ,
RightTriangleEqual : '⊵' ,
RightUpDownVector : '⥏' ,
RightUpTeeVector : '⥜' ,
RightUpVectorBar : '⥔' ,
RightUpVector : '↾' ,
RightVectorBar : '⥓' ,
RightVector : '⇀' ,
ring : '˚' ,
risingdotseq : '≓' ,
rlarr : '⇄' ,
rlhar : '⇌' ,
rlm : ' ' ,
rmoustache : '⎱' ,
rmoust : '⎱' ,
rnmid : '⫮' ,
roang : '⟭' ,
roarr : '⇾' ,
robrk : '⟧' ,
ropar : '⦆' ,
ropf : '𝕣 ' ,
Ropf : 'ℝ ' ,
roplus : '⨮' ,
rotimes : '⨵' ,
RoundImplies : '⥰' ,
rpar : ')' ,
rpargt : '⦔' ,
rppolint : '⨒' ,
rrarr : '⇉' ,
Rrightarrow : '⇛' ,
rsaquo : '› ' ,
rscr : '𝓇 ' ,
Rscr : 'ℛ ' ,
rsh : '↱' ,
Rsh : '↱' ,
rsqb : ']' ,
rsquo : '’ ' ,
rsquor : '’ ' ,
rthree : '⋌' ,
rtimes : '⋊' ,
rtri : '▹' ,
rtrie : '⊵' ,
rtrif : '▸' ,
rtriltri : '⧎' ,
RuleDelayed : '⧴' ,
ruluhar : '⥨' ,
rx : '℞' ,
Sacute : 'Ś' ,
sacute : 'ś' ,
sbquo : '‚ ' ,
scap : '⪸' ,
Scaron : 'Š' ,
scaron : 'š' ,
Sc : '⪼' ,
sc : '≻' ,
sccue : '≽' ,
sce : '⪰' ,
scE : '⪴' ,
Scedil : 'Ş' ,
scedil : 'ş' ,
Scirc : 'Ŝ' ,
scirc : 'ŝ' ,
scnap : '⪺' ,
scnE : '⪶' ,
scnsim : '⋩' ,
scpolint : '⨓' ,
scsim : '≿' ,
Scy : 'С ' ,
scy : 'с ' ,
sdotb : '⊡' ,
sdot : '⋅' ,
sdote : '⩦' ,
searhk : '⤥' ,
searr : '↘' ,
seArr : '⇘' ,
searrow : '↘' ,
sect : '§' ,
semi : ';' ,
seswar : '⤩' ,
setminus : '∖ ' ,
setmn : '∖ ' ,
sext : '✶' ,
Sfr : '𝔖 ' ,
sfr : '𝔰 ' ,
sfrown : '⌢' ,
sharp : '♯' ,
SHCHcy : 'Щ' ,
shchcy : 'щ' ,
SHcy : 'Ш' ,
shcy : 'ш' ,
ShortDownArrow : '↓' ,
ShortLeftArrow : '←' ,
shortmid : '∣ ' ,
shortparallel : '∥' ,
ShortRightArrow : '→' ,
ShortUpArrow : '↑' ,
shy : ' ' ,
Sigma : 'Σ' ,
sigma : 'σ ' ,
sigmaf : 'ς' ,
sigmav : 'ς' ,
sim : '∼ ' ,
simdot : '⩪' ,
sime : '≃' ,
simeq : '≃' ,
simg : '⪞' ,
simgE : '⪠' ,
siml : '⪝' ,
simlE : '⪟' ,
simne : '≆' ,
simplus : '⨤' ,
simrarr : '⥲' ,
slarr : '←' ,
SmallCircle : '∘' ,
smallsetminus : '∖ ' ,
smashp : '⨳' ,
smeparsl : '⧤' ,
smid : '∣ ' ,
smile : '⌣' ,
smt : '⪪' ,
smte : '⪬' ,
smtes : '⪬︀' ,
SOFTcy : 'Ь ' ,
softcy : 'ь' ,
solbar : '⌿' ,
solb : '⧄' ,
sol : '/' ,
Sopf : '𝕊 ' ,
sopf : '𝕤 ' ,
spades : '♠' ,
spadesuit : '♠' ,
spar : '∥' ,
sqcap : '⊓' ,
sqcaps : '⊓︀' ,
sqcup : '⊔' ,
sqcups : '⊔︀' ,
Sqrt : '√' ,
sqsub : '⊏' ,
sqsube : '⊑' ,
sqsubset : '⊏' ,
sqsubseteq : '⊑' ,
sqsup : '⊐' ,
sqsupe : '⊒' ,
sqsupset : '⊐' ,
sqsupseteq : '⊒' ,
square : '□' ,
Square : '□' ,
SquareIntersection : '⊓' ,
SquareSubset : '⊏' ,
SquareSubsetEqual : '⊑' ,
SquareSuperset : '⊐' ,
SquareSupersetEqual : '⊒' ,
SquareUnion : '⊔' ,
squarf : '▪' ,
squ : '□' ,
squf : '▪' ,
srarr : '→' ,
Sscr : '𝒮 ' ,
sscr : '𝓈 ' ,
ssetmn : '∖ ' ,
ssmile : '⌣' ,
sstarf : '⋆' ,
Star : '⋆' ,
star : '☆' ,
starf : '★' ,
straightepsilon : 'ϵ' ,
straightphi : 'ϕ' ,
strns : '¯' ,
sub : '⊂' ,
Sub : '⋐' ,
subdot : '⪽' ,
subE : '⫅' ,
sube : '⊆' ,
subedot : '⫃' ,
submult : '⫁' ,
subnE : '⫋' ,
subne : '⊊' ,
subplus : '⪿' ,
subrarr : '⥹' ,
subset : '⊂' ,
Subset : '⋐' ,
subseteq : '⊆' ,
subseteqq : '⫅' ,
SubsetEqual : '⊆' ,
subsetneq : '⊊' ,
subsetneqq : '⫋' ,
subsim : '⫇' ,
subsub : '⫕' ,
subsup : '⫓' ,
succapprox : '⪸' ,
succ : '≻' ,
succcurlyeq : '≽' ,
Succeeds : '≻' ,
SucceedsEqual : '⪰' ,
SucceedsSlantEqual : '≽' ,
SucceedsTilde : '≿' ,
succeq : '⪰' ,
succnapprox : '⪺' ,
succneqq : '⪶' ,
succnsim : '⋩' ,
succsim : '≿' ,
SuchThat : '∋' ,
sum : '∑' ,
Sum : '∑' ,
sung : '♪' ,
sup1 : '¹' ,
sup2 : '²' ,
sup3 : '³' ,
sup : '⊃' ,
Sup : '⋑' ,
supdot : '⪾' ,
supdsub : '⫘' ,
supE : '⫆' ,
supe : '⊇' ,
supedot : '⫄' ,
Superset : '⊃' ,
SupersetEqual : '⊇' ,
suphsol : '⟉' ,
suphsub : '⫗' ,
suplarr : '⥻' ,
supmult : '⫂' ,
supnE : '⫌' ,
supne : '⊋' ,
supplus : '⫀' ,
supset : '⊃' ,
Supset : '⋑' ,
supseteq : '⊇' ,
supseteqq : '⫆' ,
supsetneq : '⊋' ,
supsetneqq : '⫌' ,
supsim : '⫈' ,
supsub : '⫔' ,
supsup : '⫖' ,
swarhk : '⤦' ,
swarr : '↙' ,
swArr : '⇙' ,
swarrow : '↙' ,
swnwar : '⤪' ,
szlig : 'ß' ,
Tab : ' ' ,
target : '⌖' ,
Tau : 'Τ ' ,
tau : 'τ' ,
tbrk : '⎴' ,
Tcaron : 'Ť' ,
tcaron : 'ť' ,
Tcedil : 'Ţ' ,
tcedil : 'ţ' ,
Tcy : 'Т ' ,
tcy : 'т' ,
tdot : '⃛' ,
telrec : '⌕' ,
Tfr : '𝔗 ' ,
tfr : '𝔱 ' ,
there4 : '∴' ,
therefore : '∴' ,
Therefore : '∴' ,
Theta : 'Θ' ,
theta : 'θ' ,
thetasym : 'ϑ' ,
thetav : 'ϑ' ,
thickapprox : '≈' ,
thicksim : '∼ ' ,
ThickSpace : ' ' ,
ThinSpace : ' ' ,
thinsp : ' ' ,
thkap : '≈' ,
thksim : '∼ ' ,
THORN : 'Þ' ,
thorn : 'þ' ,
tilde : '˜ ' ,
Tilde : '∼ ' ,
TildeEqual : '≃' ,
TildeFullEqual : '≅' ,
TildeTilde : '≈' ,
timesbar : '⨱' ,
timesb : '⊠' ,
times : '× ' ,
timesd : '⨰' ,
tint : '∭' ,
toea : '⤨' ,
topbot : '⌶' ,
topcir : '⫱' ,
top : '⊤ ' ,
Topf : '𝕋 ' ,
topf : '𝕥 ' ,
topfork : '⫚' ,
tosa : '⤩' ,
tprime : '‴' ,
trade : '™' ,
TRADE : '™' ,
triangle : '▵' ,
triangledown : '▿' ,
triangleleft : '◃' ,
trianglelefteq : '⊴' ,
triangleq : '≜' ,
triangleright : '▹' ,
trianglerighteq : '⊵' ,
tridot : '◬' ,
trie : '≜' ,
triminus : '⨺' ,
TripleDot : '⃛' ,
triplus : '⨹' ,
trisb : '⧍' ,
tritime : '⨻' ,
trpezium : '⏢' ,
Tscr : '𝒯 ' ,
tscr : '𝓉 ' ,
TScy : 'Ц' ,
tscy : 'ц' ,
TSHcy : 'Ћ' ,
tshcy : 'ћ' ,
Tstrok : 'Ŧ' ,
tstrok : 'ŧ' ,
twixt : '≬' ,
twoheadleftarrow : '↞' ,
twoheadrightarrow : '↠' ,
Uacute : 'Ú' ,
uacute : 'ú' ,
uarr : '↑' ,
Uarr : '↟' ,
uArr : '⇑' ,
Uarrocir : '⥉' ,
Ubrcy : 'Ў' ,
ubrcy : 'ў' ,
Ubreve : 'Ŭ' ,
ubreve : 'ŭ' ,
Ucirc : 'Û' ,
ucirc : 'û' ,
Ucy : 'У ' ,
ucy : 'у ' ,
udarr : '⇅' ,
Udblac : 'Ű' ,
udblac : 'ű' ,
udhar : '⥮' ,
ufisht : '⥾' ,
Ufr : '𝔘 ' ,
ufr : '𝔲 ' ,
Ugrave : 'Ù' ,
ugrave : 'ù' ,
uHar : '⥣' ,
uharl : '↿' ,
uharr : '↾' ,
uhblk : '▀' ,
ulcorn : '⌜' ,
ulcorner : '⌜' ,
ulcrop : '⌏' ,
ultri : '◸' ,
Umacr : 'Ū' ,
umacr : 'ū' ,
uml : '¨' ,
UnderBar : '_' ,
UnderBrace : '⏟' ,
UnderBracket : '⎵' ,
UnderParenthesis : '⏝' ,
Union : '⋃ ' ,
UnionPlus : '⊎' ,
Uogon : 'Ų' ,
uogon : 'ų' ,
Uopf : '𝕌 ' ,
uopf : '𝕦 ' ,
UpArrowBar : '⤒' ,
uparrow : '↑' ,
UpArrow : '↑' ,
Uparrow : '⇑' ,
UpArrowDownArrow : '⇅' ,
updownarrow : '↕' ,
UpDownArrow : '↕' ,
Updownarrow : '⇕' ,
UpEquilibrium : '⥮' ,
upharpoonleft : '↿' ,
upharpoonright : '↾' ,
uplus : '⊎' ,
UpperLeftArrow : '↖' ,
UpperRightArrow : '↗' ,
upsi : 'υ ' ,
Upsi : 'ϒ ' ,
upsih : 'ϒ ' ,
Upsilon : 'Υ ' ,
upsilon : 'υ ' ,
UpTeeArrow : '↥' ,
UpTee : '⊥' ,
upuparrows : '⇈' ,
urcorn : '⌝' ,
urcorner : '⌝' ,
urcrop : '⌎' ,
Uring : 'Ů' ,
uring : 'ů' ,
urtri : '◹' ,
Uscr : '𝒰 ' ,
uscr : '𝓊 ' ,
utdot : '⋰' ,
Utilde : 'Ũ' ,
utilde : 'ũ' ,
utri : '▵' ,
utrif : '▴' ,
uuarr : '⇈' ,
Uuml : 'Ü' ,
uuml : 'ü' ,
uwangle : '⦧' ,
vangrt : '⦜' ,
varepsilon : 'ϵ' ,
varkappa : 'ϰ' ,
varnothing : '∅' ,
varphi : 'ϕ' ,
varpi : 'ϖ' ,
varpropto : '∝' ,
varr : '↕' ,
vArr : '⇕' ,
varrho : 'ϱ ' ,
varsigma : 'ς' ,
varsubsetneq : '⊊︀' ,
varsubsetneqq : '⫋︀' ,
varsupsetneq : '⊋︀' ,
varsupsetneqq : '⫌︀' ,
vartheta : 'ϑ' ,
vartriangleleft : '⊲' ,
vartriangleright : '⊳' ,
vBar : '⫨' ,
Vbar : '⫫' ,
vBarv : '⫩' ,
Vcy : 'В ' ,
vcy : 'в' ,
vdash : '⊢' ,
vDash : '⊨' ,
Vdash : '⊩' ,
VDash : '⊫' ,
Vdashl : '⫦' ,
veebar : '⊻' ,
vee : '∨ ' ,
Vee : '⋁ ' ,
veeeq : '≚' ,
vellip : '⋮' ,
verbar : '|' ,
Verbar : '‖' ,
vert : '|' ,
Vert : '‖' ,
VerticalBar : '∣ ' ,
VerticalLine : '|' ,
VerticalSeparator : '❘' ,
VerticalTilde : '≀' ,
VeryThinSpace : ' ' ,
Vfr : '𝔙 ' ,
vfr : '𝔳 ' ,
vltri : '⊲' ,
vnsub : '⊂⃒' ,
vnsup : '⊃⃒' ,
Vopf : '𝕍 ' ,
vopf : '𝕧 ' ,
vprop : '∝' ,
vrtri : '⊳' ,
Vscr : '𝒱 ' ,
vscr : '𝓋 ' ,
vsubnE : '⫋︀' ,
vsubne : '⊊︀' ,
vsupnE : '⫌︀' ,
vsupne : '⊋︀' ,
Vvdash : '⊪' ,
vzigzag : '⦚' ,
Wcirc : 'Ŵ' ,
wcirc : 'ŵ' ,
wedbar : '⩟' ,
wedge : '∧' ,
Wedge : '⋀' ,
wedgeq : '≙' ,
weierp : '℘' ,
Wfr : '𝔚 ' ,
wfr : '𝔴 ' ,
Wopf : '𝕎 ' ,
wopf : '𝕨 ' ,
wp : '℘' ,
wr : '≀' ,
wreath : '≀' ,
Wscr : '𝒲 ' ,
wscr : '𝓌 ' ,
xcap : '⋂' ,
xcirc : '◯' ,
xcup : '⋃ ' ,
xdtri : '▽' ,
Xfr : '𝔛 ' ,
xfr : '𝔵 ' ,
xharr : '⟷' ,
xhArr : '⟺' ,
Xi : 'Ξ' ,
xi : 'ξ' ,
xlarr : '⟵' ,
xlArr : '⟸' ,
xmap : '⟼' ,
xnis : '⋻' ,
xodot : '⨀' ,
Xopf : '𝕏 ' ,
xopf : '𝕩 ' ,
xoplus : '⨁' ,
xotime : '⨂' ,
xrarr : '⟶' ,
xrArr : '⟹' ,
Xscr : '𝒳 ' ,
xscr : '𝓍 ' ,
xsqcup : '⨆' ,
xuplus : '⨄' ,
xutri : '△' ,
xvee : '⋁ ' ,
xwedge : '⋀' ,
Yacute : 'Ý' ,
yacute : 'ý' ,
YAcy : 'Я' ,
yacy : 'я' ,
Ycirc : 'Ŷ' ,
ycirc : 'ŷ' ,
Ycy : 'Ы' ,
ycy : 'ы' ,
yen : '¥' ,
Yfr : '𝔜 ' ,
yfr : '𝔶 ' ,
YIcy : 'Ї' ,
yicy : 'ї' ,
Yopf : '𝕐 ' ,
yopf : '𝕪 ' ,
Yscr : '𝒴 ' ,
yscr : '𝓎 ' ,
YUcy : 'Ю' ,
yucy : 'ю' ,
yuml : 'ÿ' ,
Yuml : 'Ÿ' ,
Zacute : 'Ź' ,
zacute : 'ź' ,
Zcaron : 'Ž' ,
zcaron : 'ž' ,
Zcy : 'З ' ,
zcy : 'з' ,
Zdot : 'Ż' ,
zdot : 'ż' ,
zeetrf : 'ℨ ' ,
ZeroWidthSpace : ' ' ,
Zeta : 'Ζ ' ,
zeta : 'ζ' ,
zfr : '𝔷 ' ,
Zfr : 'ℨ ' ,
ZHcy : 'Ж' ,
zhcy : 'ж' ,
zigrarr : '⇝' ,
zopf : '𝕫 ' ,
Zopf : 'ℤ ' ,
Zscr : '𝒵 ' ,
zscr : '𝓏 ' ,
zwj : ' ' ,
zwnj : ' '
}
} ,
{ }
] ,
54 : [
function ( e , r , t ) {
'use strict'
function n ( e ) {
var r = Array . prototype . slice . call ( arguments , 1 )
return (
r . forEach ( function ( r ) {
r &&
Object . keys ( r ) . forEach ( function ( t ) {
e [ t ] = r [ t ]
} )
} ) ,
e
)
}
function s ( e ) {
return Object . prototype . toString . call ( e )
}
function o ( e ) {
return '[object String]' === s ( e )
}
function i ( e ) {
return '[object Object]' === s ( e )
}
function a ( e ) {
return '[object RegExp]' === s ( e )
}
function c ( e ) {
return '[object Function]' === s ( e )
}
function l ( e ) {
return e . replace ( /[.?*+^$[\]\\(){}|-]/g , '\\$&' )
}
function u ( e ) {
return Object . keys ( e || { } ) . reduce ( function ( e , r ) {
return e || k . hasOwnProperty ( r )
} , ! 1 )
}
function p ( e ) {
; ( e . _ _index _ _ = - 1 ) , ( e . _ _text _cache _ _ = '' )
}
function h ( e ) {
return function ( r , t ) {
var n = r . slice ( t )
return e . test ( n ) ? n . match ( e ) [ 0 ] . length : 0
}
}
function f ( ) {
return function ( e , r ) {
r . normalize ( e )
}
}
function d ( r ) {
function t ( e ) {
return e . replace ( '%TLDS%' , s . src _tlds )
}
function n ( e , r ) {
throw new Error (
'(LinkifyIt) Invalid schema "' + e + '": ' + r
)
}
var s = ( r . re = e ( './lib/re' ) ( r . _ _opts _ _ ) ) ,
u = r . _ _tlds _ _ . slice ( )
r . onCompile ( ) ,
r . _ _tlds _replaced _ _ || u . push ( v ) ,
u . push ( s . src _xn ) ,
( s . src _tlds = u . join ( '|' ) ) ,
( s . email _fuzzy = RegExp ( t ( s . tpl _email _fuzzy ) , 'i' ) ) ,
( s . link _fuzzy = RegExp ( t ( s . tpl _link _fuzzy ) , 'i' ) ) ,
( s . link _no _ip _fuzzy = RegExp ( t ( s . tpl _link _no _ip _fuzzy ) , 'i' ) ) ,
( s . host _fuzzy _test = RegExp ( t ( s . tpl _host _fuzzy _test ) , 'i' ) )
var d = [ ]
; ( r . _ _compiled _ _ = { } ) ,
Object . keys ( r . _ _schemas _ _ ) . forEach ( function ( e ) {
var t = r . _ _schemas _ _ [ e ]
if ( null !== t ) {
var s = { validate : null , link : null }
return (
( r . _ _compiled _ _ [ e ] = s ) ,
i ( t )
? ( a ( t . validate )
? ( s . validate = h ( t . validate ) )
: c ( t . validate )
? ( s . validate = t . validate )
: n ( e , t ) ,
void ( c ( t . normalize )
? ( s . normalize = t . normalize )
: t . normalize
? n ( e , t )
: ( s . normalize = f ( ) ) ) )
: o ( t )
? void d . push ( e )
: void n ( e , t )
)
}
} ) ,
d . forEach ( function ( e ) {
r . _ _compiled _ _ [ r . _ _schemas _ _ [ e ] ] &&
( ( r . _ _compiled _ _ [ e ] . validate =
r . _ _compiled _ _ [ r . _ _schemas _ _ [ e ] ] . validate ) ,
( r . _ _compiled _ _ [ e ] . normalize =
r . _ _compiled _ _ [ r . _ _schemas _ _ [ e ] ] . normalize ) )
} ) ,
( r . _ _compiled _ _ [ '' ] = { validate : null , normalize : f ( ) } )
var m = Object . keys ( r . _ _compiled _ _ )
. filter ( function ( e ) {
return e . length > 0 && r . _ _compiled _ _ [ e ]
} )
. map ( l )
. join ( '|' )
; ( r . re . schema _test = RegExp (
'(^|(?!_)(?:[><]|' + s . src _ZPCc + '))(' + m + ')' ,
'i'
) ) ,
( r . re . schema _search = RegExp (
'(^|(?!_)(?:[><]|' + s . src _ZPCc + '))(' + m + ')' ,
'ig'
) ) ,
( r . re . pretest = RegExp (
'(' +
r . re . schema _test . source +
')|(' +
r . re . host _fuzzy _test . source +
')|@' ,
'i'
) ) ,
p ( r )
}
function m ( e , r ) {
var t = e . _ _index _ _ ,
n = e . _ _last _index _ _ ,
s = e . _ _text _cache _ _ . slice ( t , n )
; ( this . schema = e . _ _schema _ _ . toLowerCase ( ) ) ,
( this . index = t + r ) ,
( this . lastIndex = n + r ) ,
( this . raw = s ) ,
( this . text = s ) ,
( this . url = s )
}
function _ ( e , r ) {
var t = new m ( e , r )
return e . _ _compiled _ _ [ t . schema ] . normalize ( t , e ) , t
}
function g ( e , r ) {
return this instanceof g
? ( r || ( u ( e ) && ( ( r = e ) , ( e = { } ) ) ) ,
( this . _ _opts _ _ = n ( { } , k , r ) ) ,
( this . _ _index _ _ = - 1 ) ,
( this . _ _last _index _ _ = - 1 ) ,
( this . _ _schema _ _ = '' ) ,
( this . _ _text _cache _ _ = '' ) ,
( this . _ _schemas _ _ = n ( { } , b , e ) ) ,
( this . _ _compiled _ _ = { } ) ,
( this . _ _tlds _ _ = x ) ,
( this . _ _tlds _replaced _ _ = ! 1 ) ,
( this . re = { } ) ,
void d ( this ) )
: new g ( e , r )
}
var k = { fuzzyLink : ! 0 , fuzzyEmail : ! 0 , fuzzyIP : ! 1 } ,
b = {
'http:' : {
validate : function ( e , r , t ) {
var n = e . slice ( r )
return (
t . re . http ||
( t . re . http = new RegExp (
'^\\/\\/' +
t . re . src _auth +
t . re . src _host _port _strict +
t . re . src _path ,
'i'
) ) ,
t . re . http . test ( n ) ? n . match ( t . re . http ) [ 0 ] . length : 0
)
}
} ,
'https:' : 'http:' ,
'ftp:' : 'http:' ,
'//' : {
validate : function ( e , r , t ) {
var n = e . slice ( r )
return (
t . re . no _http ||
( t . re . no _http = new RegExp (
'^' +
t . re . src _auth +
'(?:localhost|(?:(?:' +
t . re . src _domain +
')\\.)+' +
t . re . src _domain _root +
')' +
t . re . src _port +
t . re . src _host _terminator +
t . re . src _path ,
'i'
) ) ,
t . re . no _http . test ( n )
? r >= 3 && ':' === e [ r - 3 ]
? 0
: r >= 3 && '/' === e [ r - 3 ]
? 0
: n . match ( t . re . no _http ) [ 0 ] . length
: 0
)
}
} ,
'mailto:' : {
validate : function ( e , r , t ) {
var n = e . slice ( r )
return (
t . re . mailto ||
( t . re . mailto = new RegExp (
'^' +
t . re . src _email _name +
'@' +
t . re . src _host _strict ,
'i'
) ) ,
t . re . mailto . test ( n ) ? n . match ( t . re . mailto ) [ 0 ] . length : 0
)
}
}
} ,
v =
'a[cdefgilmnoqrstuwxz]|b[abdefghijmnorstvwyz]|c[acdfghiklmnoruvwxyz]|d[ejkmoz]|e[cegrstu]|f[ijkmor]|g[abdefghilmnpqrstuwy]|h[kmnrtu]|i[delmnoqrst]|j[emop]|k[eghimnprwyz]|l[abcikrstuvy]|m[acdeghklmnopqrstuvwxyz]|n[acefgilopruz]|om|p[aefghklmnrstwy]|qa|r[eosuw]|s[abcdeghijklmnortuvxyz]|t[cdfghjklmnortvwz]|u[agksyz]|v[aceginu]|w[fs]|y[et]|z[amw]' ,
x = 'biz|com|edu|gov|net|org|pro|web|xxx|aero|asia|coop|info|museum|name|shop|рф' . split (
'|'
)
; ( g . prototype . add = function ( e , r ) {
return ( this . _ _schemas _ _ [ e ] = r ) , d ( this ) , this
} ) ,
( g . prototype . set = function ( e ) {
return ( this . _ _opts _ _ = n ( this . _ _opts _ _ , e ) ) , this
} ) ,
( g . prototype . test = function ( e ) {
if (
( ( this . _ _text _cache _ _ = e ) ,
( this . _ _index _ _ = - 1 ) ,
! e . length )
)
return ! 1
var r , t , n , s , o , i , a , c , l
if ( this . re . schema _test . test ( e ) )
for (
a = this . re . schema _search , a . lastIndex = 0 ;
null !== ( r = a . exec ( e ) ) ;
)
if ( ( s = this . testSchemaAt ( e , r [ 2 ] , a . lastIndex ) ) ) {
; ( this . _ _schema _ _ = r [ 2 ] ) ,
( this . _ _index _ _ = r . index + r [ 1 ] . length ) ,
( this . _ _last _index _ _ = r . index + r [ 0 ] . length + s )
break
}
return (
this . _ _opts _ _ . fuzzyLink &&
this . _ _compiled _ _ [ 'http:' ] &&
( ( c = e . search ( this . re . host _fuzzy _test ) ) ,
c >= 0 &&
( this . _ _index _ _ < 0 || c < this . _ _index _ _ ) &&
null !==
( t = e . match (
this . _ _opts _ _ . fuzzyIP
? this . re . link _fuzzy
: this . re . link _no _ip _fuzzy
) ) &&
( ( o = t . index + t [ 1 ] . length ) ,
( this . _ _index _ _ < 0 || o < this . _ _index _ _ ) &&
( ( this . _ _schema _ _ = '' ) ,
( this . _ _index _ _ = o ) ,
( this . _ _last _index _ _ = t . index + t [ 0 ] . length ) ) ) ) ,
this . _ _opts _ _ . fuzzyEmail &&
this . _ _compiled _ _ [ 'mailto:' ] &&
( ( l = e . indexOf ( '@' ) ) ,
l >= 0 &&
null !== ( n = e . match ( this . re . email _fuzzy ) ) &&
( ( o = n . index + n [ 1 ] . length ) ,
( i = n . index + n [ 0 ] . length ) ,
( this . _ _index _ _ < 0 ||
o < this . _ _index _ _ ||
( o === this . _ _index _ _ && i > this . _ _last _index _ _ ) ) &&
( ( this . _ _schema _ _ = 'mailto:' ) ,
( this . _ _index _ _ = o ) ,
( this . _ _last _index _ _ = i ) ) ) ) ,
this . _ _index _ _ >= 0
)
} ) ,
( g . prototype . pretest = function ( e ) {
return this . re . pretest . test ( e )
} ) ,
( g . prototype . testSchemaAt = function ( e , r , t ) {
return this . _ _compiled _ _ [ r . toLowerCase ( ) ]
? this . _ _compiled _ _ [ r . toLowerCase ( ) ] . validate ( e , t , this )
: 0
} ) ,
( g . prototype . match = function ( e ) {
var r = 0 ,
t = [ ]
this . _ _index _ _ >= 0 &&
this . _ _text _cache _ _ === e &&
( t . push ( _ ( this , r ) ) , ( r = this . _ _last _index _ _ ) )
for ( var n = r ? e . slice ( r ) : e ; this . test ( n ) ; )
t . push ( _ ( this , r ) ) ,
( n = n . slice ( this . _ _last _index _ _ ) ) ,
( r += this . _ _last _index _ _ )
return t . length ? t : null
} ) ,
( g . prototype . tlds = function ( e , r ) {
return (
( e = Array . isArray ( e ) ? e : [ e ] ) ,
r
? ( ( this . _ _tlds _ _ = this . _ _tlds _ _
. concat ( e )
. sort ( )
. filter ( function ( e , r , t ) {
return e !== t [ r - 1 ]
} )
. reverse ( ) ) ,
d ( this ) ,
this )
: ( ( this . _ _tlds _ _ = e . slice ( ) ) ,
( this . _ _tlds _replaced _ _ = ! 0 ) ,
d ( this ) ,
this )
)
} ) ,
( g . prototype . normalize = function ( e ) {
e . schema || ( e . url = 'http://' + e . url ) ,
'mailto:' !== e . schema ||
/^mailto:/i . test ( e . url ) ||
( e . url = 'mailto:' + e . url )
} ) ,
( g . prototype . onCompile = function ( ) { } ) ,
( r . exports = g )
} ,
{ './lib/re' : 55 }
] ,
55 : [
function ( e , r , t ) {
'use strict'
r . exports = function ( r ) {
var t = { }
return (
( t . src _Any = e ( 'uc.micro/properties/Any/regex' ) . source ) ,
( t . src _Cc = e ( 'uc.micro/categories/Cc/regex' ) . source ) ,
( t . src _Z = e ( 'uc.micro/categories/Z/regex' ) . source ) ,
( t . src _P = e ( 'uc.micro/categories/P/regex' ) . source ) ,
( t . src _ZPCc = [ t . src _Z , t . src _P , t . src _Cc ] . join ( '|' ) ) ,
( t . src _ZCc = [ t . src _Z , t . src _Cc ] . join ( '|' ) ) ,
( t . src _pseudo _letter =
'(?:(?!>|<|' + t . src _ZPCc + ')' + t . src _Any + ')' ) ,
( t . src _ip4 =
'(?:(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)' ) ,
( t . src _auth = '(?:(?:(?!' + t . src _ZCc + '|[@/]).)+@)?' ) ,
( t . src _port =
'(?::(?:6(?:[0-4]\\d{3}|5(?:[0-4]\\d{2}|5(?:[0-2]\\d|3[0-5])))|[1-5]?\\d{1,4}))?' ) ,
( t . src _host _terminator =
'(?=$|>|<|' +
t . src _ZPCc +
')(?!-|_|:\\d|\\.-|\\.(?!$|' +
t . src _ZPCc +
'))' ) ,
( t . src _path =
'(?:[/?#](?:(?!' +
t . src _ZCc +
'|[()[\\]{}.,"\'?!\\-<>]).|\\[(?:(?!' +
t . src _ZCc +
'|\\]).)*\\]|\\((?:(?!' +
t . src _ZCc +
'|[)]).)*\\)|\\{(?:(?!' +
t . src _ZCc +
'|[}]).)*\\}|\\"(?:(?!' +
t . src _ZCc +
'|["]).)+\\"|\\\'(?:(?!' +
t . src _ZCc +
"|[']).)+\\'|\\'(?=" +
t . src _pseudo _letter +
'|[-]).|\\.{2,3}[a-zA-Z0-9%/]|\\.(?!' +
t . src _ZCc +
'|[.]).|' +
( r && r [ '---' ] ? '\\-(?!--(?:[^-]|$))(?:-*)|' : '\\-+|' ) +
'\\,(?!' +
t . src _ZCc +
').|\\!(?!' +
t . src _ZCc +
'|[!]).|\\?(?!' +
t . src _ZCc +
'|[?]).)+|\\/)?' ) ,
( t . src _email _name = '[\\-;:&=\\+\\$,\\"\\.a-zA-Z0-9_]+' ) ,
( t . src _xn = 'xn--[a-z0-9\\-]{1,59}' ) ,
( t . src _domain _root =
'(?:' + t . src _xn + '|' + t . src _pseudo _letter + '{1,63})' ) ,
( t . src _domain =
'(?:' +
t . src _xn +
'|(?:' +
t . src _pseudo _letter +
')|(?:' +
t . src _pseudo _letter +
'(?:-(?!-)|' +
t . src _pseudo _letter +
'){0,61}' +
t . src _pseudo _letter +
'))' ) ,
( t . src _host =
'(?:(?:(?:(?:' +
t . src _domain +
')\\.)*' +
t . src _domain _root +
'))' ) ,
( t . tpl _host _fuzzy =
'(?:' +
t . src _ip4 +
'|(?:(?:(?:' +
t . src _domain +
')\\.)+(?:%TLDS%)))' ) ,
( t . tpl _host _no _ip _fuzzy =
'(?:(?:(?:' + t . src _domain + ')\\.)+(?:%TLDS%))' ) ,
( t . src _host _strict = t . src _host + t . src _host _terminator ) ,
( t . tpl _host _fuzzy _strict =
t . tpl _host _fuzzy + t . src _host _terminator ) ,
( t . src _host _port _strict =
t . src _host + t . src _port + t . src _host _terminator ) ,
( t . tpl _host _port _fuzzy _strict =
t . tpl _host _fuzzy + t . src _port + t . src _host _terminator ) ,
( t . tpl _host _port _no _ip _fuzzy _strict =
t . tpl _host _no _ip _fuzzy +
t . src _port +
t . src _host _terminator ) ,
( t . tpl _host _fuzzy _test =
'localhost|www\\.|\\.\\d{1,3}\\.|(?:\\.(?:%TLDS%)(?:' +
t . src _ZPCc +
'|>|$))' ) ,
( t . tpl _email _fuzzy =
'(^|<|>|\\(|' +
t . src _ZCc +
')(' +
t . src _email _name +
'@' +
t . tpl _host _fuzzy _strict +
')' ) ,
( t . tpl _link _fuzzy =
'(^|(?![.:/\\-_@])(?:[$+<=>^`|]|' +
t . src _ZPCc +
'))((?![$+<=>^`|])' +
t . tpl _host _port _fuzzy _strict +
t . src _path +
')' ) ,
( t . tpl _link _no _ip _fuzzy =
'(^|(?![.:/\\-_@])(?:[$+<=>^`|]|' +
t . src _ZPCc +
'))((?![$+<=>^`|])' +
t . tpl _host _port _no _ip _fuzzy _strict +
t . src _path +
')' ) ,
t
)
}
} ,
{
'uc.micro/categories/Cc/regex' : 61 ,
'uc.micro/categories/P/regex' : 63 ,
'uc.micro/categories/Z/regex' : 64 ,
'uc.micro/properties/Any/regex' : 66
}
] ,
56 : [
function ( e , r , t ) {
'use strict'
function n ( e ) {
var r ,
t ,
n = o [ e ]
if ( n ) return n
for ( n = o [ e ] = [ ] , r = 0 ; r < 128 ; r ++ )
( t = String . fromCharCode ( r ) ) , n . push ( t )
for ( r = 0 ; r < e . length ; r ++ )
( t = e . charCodeAt ( r ) ) ,
( n [ t ] =
'%' + ( '0' + t . toString ( 16 ) . toUpperCase ( ) ) . slice ( - 2 ) )
return n
}
function s ( e , r ) {
var t
return (
'string' != typeof r && ( r = s . defaultChars ) ,
( t = n ( r ) ) ,
e . replace ( /(%[a-f0-9]{2})+/gi , function ( e ) {
var r ,
n ,
s ,
o ,
i ,
a ,
c ,
l = ''
for ( r = 0 , n = e . length ; r < n ; r += 3 )
( s = parseInt ( e . slice ( r + 1 , r + 3 ) , 16 ) ) ,
s < 128
? ( l += t [ s ] )
: 192 === ( 224 & s ) &&
r + 3 < n &&
( ( o = parseInt ( e . slice ( r + 4 , r + 6 ) , 16 ) ) ,
128 === ( 192 & o ) )
? ( ( c = ( ( s << 6 ) & 1984 ) | ( 63 & o ) ) ,
( l += c < 128 ? '<27> <> ' : String . fromCharCode ( c ) ) ,
( r += 3 ) )
: 224 === ( 240 & s ) &&
r + 6 < n &&
( ( o = parseInt ( e . slice ( r + 4 , r + 6 ) , 16 ) ) ,
( i = parseInt ( e . slice ( r + 7 , r + 9 ) , 16 ) ) ,
128 === ( 192 & o ) && 128 === ( 192 & i ) )
? ( ( c =
( ( s << 12 ) & 61440 ) |
( ( o << 6 ) & 4032 ) |
( 63 & i ) ) ,
( l +=
c < 2048 || ( c >= 55296 && c <= 57343 )
? '<27> <> <EFBFBD> '
: String . fromCharCode ( c ) ) ,
( r += 6 ) )
: 240 === ( 248 & s ) &&
r + 9 < n &&
( ( o = parseInt ( e . slice ( r + 4 , r + 6 ) , 16 ) ) ,
( i = parseInt ( e . slice ( r + 7 , r + 9 ) , 16 ) ) ,
( a = parseInt ( e . slice ( r + 10 , r + 12 ) , 16 ) ) ,
128 === ( 192 & o ) &&
128 === ( 192 & i ) &&
128 === ( 192 & a ) )
? ( ( c =
( ( s << 18 ) & 1835008 ) |
( ( o << 12 ) & 258048 ) |
( ( i << 6 ) & 4032 ) |
( 63 & a ) ) ,
c < 65536 || c > 1114111
? ( l += '<27> <> <EFBFBD> <EFBFBD> ' )
: ( ( c -= 65536 ) ,
( l += String . fromCharCode (
55296 + ( c >> 10 ) ,
56320 + ( 1023 & c )
) ) ) ,
( r += 9 ) )
: ( l += '<27> ' )
return l
} )
)
}
var o = { }
; ( s . defaultChars = ';/?:@&=+$,#' ) ,
( s . componentChars = '' ) ,
( r . exports = s )
} ,
{ }
] ,
57 : [
function ( e , r , t ) {
'use strict'
function n ( e ) {
var r ,
t ,
n = o [ e ]
if ( n ) return n
for ( n = o [ e ] = [ ] , r = 0 ; r < 128 ; r ++ )
( t = String . fromCharCode ( r ) ) ,
/^[0-9a-z]$/i . test ( t )
? n . push ( t )
: n . push (
'%' + ( '0' + r . toString ( 16 ) . toUpperCase ( ) ) . slice ( - 2 )
)
for ( r = 0 ; r < e . length ; r ++ ) n [ e . charCodeAt ( r ) ] = e [ r ]
return n
}
function s ( e , r , t ) {
var o ,
i ,
a ,
c ,
l ,
u = ''
for (
'string' != typeof r && ( ( t = r ) , ( r = s . defaultChars ) ) ,
'undefined' == typeof t && ( t = ! 0 ) ,
l = n ( r ) ,
o = 0 ,
i = e . length ;
o < i ;
o ++
)
if (
( ( a = e . charCodeAt ( o ) ) ,
t &&
37 === a &&
o + 2 < i &&
/^[0-9a-f]{2}$/i . test ( e . slice ( o + 1 , o + 3 ) ) )
)
( u += e . slice ( o , o + 3 ) ) , ( o += 2 )
else if ( a < 128 ) u += l [ a ]
else if ( a >= 55296 && a <= 57343 ) {
if (
a >= 55296 &&
a <= 56319 &&
o + 1 < i &&
( ( c = e . charCodeAt ( o + 1 ) ) , c >= 56320 && c <= 57343 )
) {
; ( u += encodeURIComponent ( e [ o ] + e [ o + 1 ] ) ) , o ++
continue
}
u += '%EF%BF%BD'
} else u += encodeURIComponent ( e [ o ] )
return u
}
var o = { }
; ( s . defaultChars = ";/?:@&=+$,-_.!~*'()#" ) ,
( s . componentChars = "-_.!~*'()" ) ,
( r . exports = s )
} ,
{ }
] ,
58 : [
function ( e , r , t ) {
'use strict'
r . exports = function ( e ) {
var r = ''
return (
( r += e . protocol || '' ) ,
( r += e . slashes ? '//' : '' ) ,
( r += e . auth ? e . auth + '@' : '' ) ,
( r +=
e . hostname && e . hostname . indexOf ( ':' ) !== - 1
? '[' + e . hostname + ']'
: e . hostname || '' ) ,
( r += e . port ? ':' + e . port : '' ) ,
( r += e . pathname || '' ) ,
( r += e . search || '' ) ,
( r += e . hash || '' )
)
}
} ,
{ }
] ,
59 : [
function ( e , r , t ) {
'use strict'
; ( r . exports . encode = e ( './encode' ) ) ,
( r . exports . decode = e ( './decode' ) ) ,
( r . exports . format = e ( './format' ) ) ,
( r . exports . parse = e ( './parse' ) )
} ,
{ './decode' : 56 , './encode' : 57 , './format' : 58 , './parse' : 60 }
] ,
60 : [
function ( e , r , t ) {
'use strict'
function n ( ) {
; ( this . protocol = null ) ,
( this . slashes = null ) ,
( this . auth = null ) ,
( this . port = null ) ,
( this . hostname = null ) ,
( this . hash = null ) ,
( this . search = null ) ,
( this . pathname = null )
}
function s ( e , r ) {
if ( e && e instanceof n ) return e
var t = new n ( )
return t . parse ( e , r ) , t
}
var o = /^([a-z0-9.+-]+:)/i ,
i = /:[0-9]*$/ ,
a = /^(\/\/?(?!\/)[^\?\s]*)(\?[^\s]*)?$/ ,
c = [ '<' , '>' , '"' , '`' , ' ' , '\r' , '\n' , ' ' ] ,
l = [ '{' , '}' , '|' , '\\' , '^' , '`' ] . concat ( c ) ,
u = [ "'" ] . concat ( l ) ,
p = [ '%' , '/' , '?' , ';' , '#' ] . concat ( u ) ,
h = [ '/' , '?' , '#' ] ,
f = 255 ,
d = /^[+a-z0-9A-Z_-]{0,63}$/ ,
m = /^([+a-z0-9A-Z_-]{0,63})(.*)$/ ,
_ = { javascript : ! 0 , 'javascript:' : ! 0 } ,
g = {
http : ! 0 ,
https : ! 0 ,
ftp : ! 0 ,
gopher : ! 0 ,
file : ! 0 ,
'http:' : ! 0 ,
'https:' : ! 0 ,
'ftp:' : ! 0 ,
'gopher:' : ! 0 ,
'file:' : ! 0
}
; ( n . prototype . parse = function ( e , r ) {
var t ,
n ,
s ,
i ,
c ,
l = e
if ( ( ( l = l . trim ( ) ) , ! r && 1 === e . split ( '#' ) . length ) ) {
var u = a . exec ( l )
if ( u )
return (
( this . pathname = u [ 1 ] ) , u [ 2 ] && ( this . search = u [ 2 ] ) , this
)
}
var k = o . exec ( l )
if (
( k &&
( ( k = k [ 0 ] ) ,
( s = k . toLowerCase ( ) ) ,
( this . protocol = k ) ,
( l = l . substr ( k . length ) ) ) ,
( r || k || l . match ( /^\/\/[^@\/]+@[^@\/]+/ ) ) &&
( ( c = '//' === l . substr ( 0 , 2 ) ) ,
! c ||
( k && _ [ k ] ) ||
( ( l = l . substr ( 2 ) ) , ( this . slashes = ! 0 ) ) ) ,
! _ [ k ] && ( c || ( k && ! g [ k ] ) ) )
) {
var b = - 1
for ( t = 0 ; t < h . length ; t ++ )
( i = l . indexOf ( h [ t ] ) ) ,
i !== - 1 && ( b === - 1 || i < b ) && ( b = i )
var v , x
for (
x = b === - 1 ? l . lastIndexOf ( '@' ) : l . lastIndexOf ( '@' , b ) ,
x !== - 1 &&
( ( v = l . slice ( 0 , x ) ) ,
( l = l . slice ( x + 1 ) ) ,
( this . auth = v ) ) ,
b = - 1 ,
t = 0 ;
t < p . length ;
t ++
)
( i = l . indexOf ( p [ t ] ) ) ,
i !== - 1 && ( b === - 1 || i < b ) && ( b = i )
b === - 1 && ( b = l . length ) , ':' === l [ b - 1 ] && b --
var y = l . slice ( 0 , b )
; ( l = l . slice ( b ) ) ,
this . parseHost ( y ) ,
( this . hostname = this . hostname || '' )
var C =
'[' === this . hostname [ 0 ] &&
']' === this . hostname [ this . hostname . length - 1 ]
if ( ! C ) {
var A = this . hostname . split ( /\./ )
for ( t = 0 , n = A . length ; t < n ; t ++ ) {
var w = A [ t ]
if ( w && ! w . match ( d ) ) {
for ( var D = '' , q = 0 , E = w . length ; q < E ; q ++ )
D += w . charCodeAt ( q ) > 127 ? 'x' : w [ q ]
if ( ! D . match ( d ) ) {
var S = A . slice ( 0 , t ) ,
F = A . slice ( t + 1 ) ,
z = w . match ( m )
z && ( S . push ( z [ 1 ] ) , F . unshift ( z [ 2 ] ) ) ,
F . length && ( l = F . join ( '.' ) + l ) ,
( this . hostname = S . join ( '.' ) )
break
}
}
}
}
this . hostname . length > f && ( this . hostname = '' ) ,
C &&
( this . hostname = this . hostname . substr (
1 ,
this . hostname . length - 2
) )
}
var L = l . indexOf ( '#' )
L !== - 1 && ( ( this . hash = l . substr ( L ) ) , ( l = l . slice ( 0 , L ) ) )
var T = l . indexOf ( '?' )
return (
T !== - 1 &&
( ( this . search = l . substr ( T ) ) , ( l = l . slice ( 0 , T ) ) ) ,
l && ( this . pathname = l ) ,
g [ s ] &&
this . hostname &&
! this . pathname &&
( this . pathname = '' ) ,
this
)
} ) ,
( n . prototype . parseHost = function ( e ) {
var r = i . exec ( e )
r &&
( ( r = r [ 0 ] ) ,
':' !== r && ( this . port = r . substr ( 1 ) ) ,
( e = e . substr ( 0 , e . length - r . length ) ) ) ,
e && ( this . hostname = e )
} ) ,
( r . exports = s )
} ,
{ }
] ,
61 : [
function ( e , r , t ) {
r . exports = /[\0-\x1F\x7F-\x9F]/
} ,
{ }
] ,
62 : [
function ( e , r , t ) {
r . exports = /[\xAD\u0600-\u0605\u061C\u06DD\u070F\u180E\u200B-\u200F\u202A-\u202E\u2060-\u2064\u2066-\u206F\uFEFF\uFFF9-\uFFFB]|\uD804\uDCBD|\uD82F[\uDCA0-\uDCA3]|\uD834[\uDD73-\uDD7A]|\uDB40[\uDC01\uDC20-\uDC7F]/
} ,
{ }
] ,
63 : [
function ( e , r , t ) {
r . exports = /[!-#%-\*,-\/:;\?@\[-\]_\{\}\xA1\xA7\xAB\xB6\xB7\xBB\xBF\u037E\u0387\u055A-\u055F\u0589\u058A\u05BE\u05C0\u05C3\u05C6\u05F3\u05F4\u0609\u060A\u060C\u060D\u061B\u061E\u061F\u066A-\u066D\u06D4\u0700-\u070D\u07F7-\u07F9\u0830-\u083E\u085E\u0964\u0965\u0970\u0AF0\u0DF4\u0E4F\u0E5A\u0E5B\u0F04-\u0F12\u0F14\u0F3A-\u0F3D\u0F85\u0FD0-\u0FD4\u0FD9\u0FDA\u104A-\u104F\u10FB\u1360-\u1368\u1400\u166D\u166E\u169B\u169C\u16EB-\u16ED\u1735\u1736\u17D4-\u17D6\u17D8-\u17DA\u1800-\u180A\u1944\u1945\u1A1E\u1A1F\u1AA0-\u1AA6\u1AA8-\u1AAD\u1B5A-\u1B60\u1BFC-\u1BFF\u1C3B-\u1C3F\u1C7E\u1C7F\u1CC0-\u1CC7\u1CD3\u2010-\u2027\u2030-\u2043\u2045-\u2051\u2053-\u205E\u207D\u207E\u208D\u208E\u2308-\u230B\u2329\u232A\u2768-\u2775\u27C5\u27C6\u27E6-\u27EF\u2983-\u2998\u29D8-\u29DB\u29FC\u29FD\u2CF9-\u2CFC\u2CFE\u2CFF\u2D70\u2E00-\u2E2E\u2E30-\u2E42\u3001-\u3003\u3008-\u3011\u3014-\u301F\u3030\u303D\u30A0\u30FB\uA4FE\uA4FF\uA60D-\uA60F\uA673\uA67E\uA6F2-\uA6F7\uA874-\uA877\uA8CE\uA8CF\uA8F8-\uA8FA\uA8FC\uA92E\uA92F\uA95F\uA9C1-\uA9CD\uA9DE\uA9DF\uAA5C-\uAA5F\uAADE\uAADF\uAAF0\uAAF1\uABEB\uFD3E\uFD3F\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE61\uFE63\uFE68\uFE6A\uFE6B\uFF01-\uFF03\uFF05-\uFF0A\uFF0C-\uFF0F\uFF1A\uFF1B\uFF1F\uFF20\uFF3B-\uFF3D\uFF3F\uFF5B\uFF5D\uFF5F-\uFF65]|\uD800[\uDD00-\uDD02\uDF9F\uDFD0]|\uD801\uDD6F|\uD802[\uDC57\uDD1F\uDD3F\uDE50-\uDE58\uDE7F\uDEF0-\uDEF6\uDF39-\uDF3F\uDF99-\uDF9C]|\uD804[\uDC47-\uDC4D\uDCBB\uDCBC\uDCBE-\uDCC1\uDD40-\uDD43\uDD74\uDD75\uDDC5-\uDDC9\uDDCD\uDDDB\uDDDD-\uDDDF\uDE38-\uDE3D\uDEA9]|\uD805[\uDCC6\uDDC1-\uDDD7\uDE41-\uDE43\uDF3C-\uDF3E]|\uD809[\uDC70-\uDC74]|\uD81A[\uDE6E\uDE6F\uDEF5\uDF37-\uDF3B\uDF44]|\uD82F\uDC9F|\uD836[\uDE87-\uDE8B]/
} ,
{ }
] ,
64 : [
function ( e , r , t ) {
r . exports = /[ \xA0\u1680\u2000-\u200A\u202F\u205F\u3000]/
} ,
{ }
] ,
65 : [
function ( e , r , t ) {
; ( r . exports . Any = e ( './properties/Any/regex' ) ) ,
( r . exports . Cc = e ( './categories/Cc/regex' ) ) ,
( r . exports . Cf = e ( './categories/Cf/regex' ) ) ,
( r . exports . P = e ( './categories/P/regex' ) ) ,
( r . exports . Z = e ( './categories/Z/regex' ) )
} ,
{
'./categories/Cc/regex' : 61 ,
'./categories/Cf/regex' : 62 ,
'./categories/P/regex' : 63 ,
'./categories/Z/regex' : 64 ,
'./properties/Any/regex' : 66
}
] ,
66 : [
function ( e , r , t ) {
r . exports = /[\0-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/
} ,
{ }
] ,
67 : [
function ( e , r , t ) {
'use strict'
r . exports = e ( './lib/' )
} ,
{ './lib/' : 9 }
]
} ,
{ } ,
[ 67 ]
) ( 67 )
} )
define ( 'Core/KnockoutMarkdownBinding' , [
'markdown-it-sanitizer' ,
'markdown-it'
] , function ( MarkdownItSanitizer , MarkdownIt ) {
'use strict'
var htmlTagRegex = /<html(.|\s)*>(.|\s)*<\/html>/im
var md = new MarkdownIt ( { html : true , linkify : true } )
md . use ( MarkdownItSanitizer , {
imageClass : '' ,
removeUnbalanced : false ,
removeUnknown : false
} )
var KnockoutMarkdownBinding = {
register : function ( Knockout ) {
Knockout . bindingHandlers . markdown = {
init : function ( ) {
return { controlsDescendantBindings : true }
} ,
update : function ( element , valueAccessor ) {
while ( element . firstChild ) {
Knockout . removeNode ( element . firstChild )
}
var rawText = Knockout . unwrap ( valueAccessor ( ) )
var html
if ( htmlTagRegex . test ( rawText ) ) {
html = rawText
} else {
html = md . render ( rawText )
}
var nodes = Knockout . utils . parseHtmlFragment ( html , element )
element . className = element . className + ' markdown'
for ( var i = 0 ; i < nodes . length ; ++ i ) {
var node = nodes [ i ]
setAnchorTargets ( node )
element . appendChild ( node )
}
}
}
}
}
function setAnchorTargets ( element ) {
if ( element instanceof HTMLAnchorElement ) {
element . target = '_blank'
}
if ( element . childNodes && element . childNodes . length > 0 ) {
for ( var i = 0 ; i < element . childNodes . length ; ++ i ) {
setAnchorTargets ( element . childNodes [ i ] )
}
}
}
return KnockoutMarkdownBinding
} )
! ( function ( a , b , c , d ) {
'use strict'
function e ( a , b , c ) {
return setTimeout ( j ( a , c ) , b )
}
function f ( a , b , c ) {
return Array . isArray ( a ) ? ( g ( a , c [ b ] , c ) , ! 0 ) : ! 1
}
function g ( a , b , c ) {
var e
if ( a )
if ( a . forEach ) a . forEach ( b , c )
else if ( a . length !== d )
for ( e = 0 ; e < a . length ; ) b . call ( c , a [ e ] , e , a ) , e ++
else for ( e in a ) a . hasOwnProperty ( e ) && b . call ( c , a [ e ] , e , a )
}
function h ( b , c , d ) {
var e = 'DEPRECATED METHOD: ' + c + '\n' + d + ' AT \n'
return function ( ) {
var c = new Error ( 'get-stack-trace' ) ,
d =
c && c . stack
? c . stack
. replace ( /^[^\(]+?[\n$]/gm , '' )
. replace ( /^\s+at\s+/gm , '' )
. replace ( /^Object.<anonymous>\s*\(/gm , '{anonymous}()@' )
: 'Unknown Stack Trace' ,
f = a . console && ( a . console . warn || a . console . log )
return f && f . call ( a . console , e , d ) , b . apply ( this , arguments )
}
}
function i ( a , b , c ) {
var d ,
e = b . prototype
; ( d = a . prototype = Object . create ( e ) ) ,
( d . constructor = a ) ,
( d . _super = e ) ,
c && la ( d , c )
}
function j ( a , b ) {
return function ( ) {
return a . apply ( b , arguments )
}
}
function k ( a , b ) {
return typeof a == oa ? a . apply ( b ? b [ 0 ] || d : d , b ) : a
}
function l ( a , b ) {
return a === d ? b : a
}
function m ( a , b , c ) {
g ( q ( b ) , function ( b ) {
a . addEventListener ( b , c , ! 1 )
} )
}
function n ( a , b , c ) {
g ( q ( b ) , function ( b ) {
a . removeEventListener ( b , c , ! 1 )
} )
}
function o ( a , b ) {
for ( ; a ; ) {
if ( a == b ) return ! 0
a = a . parentNode
}
return ! 1
}
function p ( a , b ) {
return a . indexOf ( b ) > - 1
}
function q ( a ) {
return a . trim ( ) . split ( /\s+/g )
}
function r ( a , b , c ) {
if ( a . indexOf && ! c ) return a . indexOf ( b )
for ( var d = 0 ; d < a . length ; ) {
if ( ( c && a [ d ] [ c ] == b ) || ( ! c && a [ d ] === b ) ) return d
d ++
}
return - 1
}
function s ( a ) {
return Array . prototype . slice . call ( a , 0 )
}
function t ( a , b , c ) {
for ( var d = [ ] , e = [ ] , f = 0 ; f < a . length ; ) {
var g = b ? a [ f ] [ b ] : a [ f ]
r ( e , g ) < 0 && d . push ( a [ f ] ) , ( e [ f ] = g ) , f ++
}
return (
c &&
( d = b
? d . sort ( function ( a , c ) {
return a [ b ] > c [ b ]
} )
: d . sort ( ) ) ,
d
)
}
function u ( a , b ) {
for (
var c , e , f = b [ 0 ] . toUpperCase ( ) + b . slice ( 1 ) , g = 0 ;
g < ma . length ;
) {
if ( ( ( c = ma [ g ] ) , ( e = c ? c + f : b ) , e in a ) ) return e
g ++
}
return d
}
function v ( ) {
return ua ++
}
function w ( b ) {
var c = b . ownerDocument || b
return c . defaultView || c . parentWindow || a
}
function x ( a , b ) {
var c = this
; ( this . manager = a ) ,
( this . callback = b ) ,
( this . element = a . element ) ,
( this . target = a . options . inputTarget ) ,
( this . domHandler = function ( b ) {
k ( a . options . enable , [ a ] ) && c . handler ( b )
} ) ,
this . init ( )
}
function y ( a ) {
var b ,
c = a . options . inputClass
return new ( b = c ? c : xa ? M : ya ? P : wa ? R : L ) ( a , z )
}
function z ( a , b , c ) {
var d = c . pointers . length ,
e = c . changedPointers . length ,
f = b & Ea && d - e === 0 ,
g = b & ( Ga | Ha ) && d - e === 0
; ( c . isFirst = ! ! f ) ,
( c . isFinal = ! ! g ) ,
f && ( a . session = { } ) ,
( c . eventType = b ) ,
A ( a , c ) ,
a . emit ( 'hammer.input' , c ) ,
a . recognize ( c ) ,
( a . session . prevInput = c )
}
function A ( a , b ) {
var c = a . session ,
d = b . pointers ,
e = d . length
c . firstInput || ( c . firstInput = D ( b ) ) ,
e > 1 && ! c . firstMultiple
? ( c . firstMultiple = D ( b ) )
: 1 === e && ( c . firstMultiple = ! 1 )
var f = c . firstInput ,
g = c . firstMultiple ,
h = g ? g . center : f . center ,
i = ( b . center = E ( d ) )
; ( b . timeStamp = ra ( ) ) ,
( b . deltaTime = b . timeStamp - f . timeStamp ) ,
( b . angle = I ( h , i ) ) ,
( b . distance = H ( h , i ) ) ,
B ( c , b ) ,
( b . offsetDirection = G ( b . deltaX , b . deltaY ) )
var j = F ( b . deltaTime , b . deltaX , b . deltaY )
; ( b . overallVelocityX = j . x ) ,
( b . overallVelocityY = j . y ) ,
( b . overallVelocity = qa ( j . x ) > qa ( j . y ) ? j . x : j . y ) ,
( b . scale = g ? K ( g . pointers , d ) : 1 ) ,
( b . rotation = g ? J ( g . pointers , d ) : 0 ) ,
( b . maxPointers = c . prevInput
? b . pointers . length > c . prevInput . maxPointers
? b . pointers . length
: c . prevInput . maxPointers
: b . pointers . length ) ,
C ( c , b )
var k = a . element
o ( b . srcEvent . target , k ) && ( k = b . srcEvent . target ) , ( b . target = k )
}
function B ( a , b ) {
var c = b . center ,
d = a . offsetDelta || { } ,
e = a . prevDelta || { } ,
f = a . prevInput || { }
; ( b . eventType !== Ea && f . eventType !== Ga ) ||
( ( e = a . prevDelta = {
x : f . deltaX || 0 ,
y : f . deltaY || 0
} ) ,
( d = a . offsetDelta = { x : c . x , y : c . y } ) ) ,
( b . deltaX = e . x + ( c . x - d . x ) ) ,
( b . deltaY = e . y + ( c . y - d . y ) )
}
function C ( a , b ) {
var c ,
e ,
f ,
g ,
h = a . lastInterval || b ,
i = b . timeStamp - h . timeStamp
if ( b . eventType != Ha && ( i > Da || h . velocity === d ) ) {
var j = b . deltaX - h . deltaX ,
k = b . deltaY - h . deltaY ,
l = F ( i , j , k )
; ( e = l . x ) ,
( f = l . y ) ,
( c = qa ( l . x ) > qa ( l . y ) ? l . x : l . y ) ,
( g = G ( j , k ) ) ,
( a . lastInterval = b )
} else
( c = h . velocity ) ,
( e = h . velocityX ) ,
( f = h . velocityY ) ,
( g = h . direction )
; ( b . velocity = c ) ,
( b . velocityX = e ) ,
( b . velocityY = f ) ,
( b . direction = g )
}
function D ( a ) {
for ( var b = [ ] , c = 0 ; c < a . pointers . length ; )
( b [ c ] = {
clientX : pa ( a . pointers [ c ] . clientX ) ,
clientY : pa ( a . pointers [ c ] . clientY )
} ) ,
c ++
return {
timeStamp : ra ( ) ,
pointers : b ,
center : E ( b ) ,
deltaX : a . deltaX ,
deltaY : a . deltaY
}
}
function E ( a ) {
var b = a . length
if ( 1 === b ) return { x : pa ( a [ 0 ] . clientX ) , y : pa ( a [ 0 ] . clientY ) }
for ( var c = 0 , d = 0 , e = 0 ; b > e ; )
( c += a [ e ] . clientX ) , ( d += a [ e ] . clientY ) , e ++
return { x : pa ( c / b ) , y : pa ( d / b ) }
}
function F ( a , b , c ) {
return { x : b / a || 0 , y : c / a || 0 }
}
function G ( a , b ) {
return a === b
? Ia
: qa ( a ) >= qa ( b )
? 0 > a
? Ja
: Ka
: 0 > b
? La
: Ma
}
function H ( a , b , c ) {
c || ( c = Qa )
var d = b [ c [ 0 ] ] - a [ c [ 0 ] ] ,
e = b [ c [ 1 ] ] - a [ c [ 1 ] ]
return Math . sqrt ( d * d + e * e )
}
function I ( a , b , c ) {
c || ( c = Qa )
var d = b [ c [ 0 ] ] - a [ c [ 0 ] ] ,
e = b [ c [ 1 ] ] - a [ c [ 1 ] ]
return ( 180 * Math . atan2 ( e , d ) ) / Math . PI
}
function J ( a , b ) {
return I ( b [ 1 ] , b [ 0 ] , Ra ) + I ( a [ 1 ] , a [ 0 ] , Ra )
}
function K ( a , b ) {
return H ( b [ 0 ] , b [ 1 ] , Ra ) / H ( a [ 0 ] , a [ 1 ] , Ra )
}
function L ( ) {
; ( this . evEl = Ta ) ,
( this . evWin = Ua ) ,
( this . pressed = ! 1 ) ,
x . apply ( this , arguments )
}
function M ( ) {
; ( this . evEl = Xa ) ,
( this . evWin = Ya ) ,
x . apply ( this , arguments ) ,
( this . store = this . manager . session . pointerEvents = [ ] )
}
function N ( ) {
; ( this . evTarget = $a ) ,
( this . evWin = _a ) ,
( this . started = ! 1 ) ,
x . apply ( this , arguments )
}
function O ( a , b ) {
var c = s ( a . touches ) ,
d = s ( a . changedTouches )
return b & ( Ga | Ha ) && ( c = t ( c . concat ( d ) , 'identifier' , ! 0 ) ) , [ c , d ]
}
function P ( ) {
; ( this . evTarget = bb ) , ( this . targetIds = { } ) , x . apply ( this , arguments )
}
function Q ( a , b ) {
var c = s ( a . touches ) ,
d = this . targetIds
if ( b & ( Ea | Fa ) && 1 === c . length )
return ( d [ c [ 0 ] . identifier ] = ! 0 ) , [ c , c ]
var e ,
f ,
g = s ( a . changedTouches ) ,
h = [ ] ,
i = this . target
if (
( ( f = c . filter ( function ( a ) {
return o ( a . target , i )
} ) ) ,
b === Ea )
)
for ( e = 0 ; e < f . length ; ) ( d [ f [ e ] . identifier ] = ! 0 ) , e ++
for ( e = 0 ; e < g . length ; )
d [ g [ e ] . identifier ] && h . push ( g [ e ] ) ,
b & ( Ga | Ha ) && delete d [ g [ e ] . identifier ] ,
e ++
return h . length ? [ t ( f . concat ( h ) , 'identifier' , ! 0 ) , h ] : void 0
}
function R ( ) {
x . apply ( this , arguments )
var a = j ( this . handler , this )
; ( this . touch = new P ( this . manager , a ) ) ,
( this . mouse = new L ( this . manager , a ) ) ,
( this . primaryTouch = null ) ,
( this . lastTouches = [ ] )
}
function S ( a , b ) {
a & Ea
? ( ( this . primaryTouch = b . changedPointers [ 0 ] . identifier ) ,
T . call ( this , b ) )
: a & ( Ga | Ha ) && T . call ( this , b )
}
function T ( a ) {
var b = a . changedPointers [ 0 ]
if ( b . identifier === this . primaryTouch ) {
var c = { x : b . clientX , y : b . clientY }
this . lastTouches . push ( c )
var d = this . lastTouches ,
e = function ( ) {
var a = d . indexOf ( c )
a > - 1 && d . splice ( a , 1 )
}
setTimeout ( e , cb )
}
}
function U ( a ) {
for (
var b = a . srcEvent . clientX , c = a . srcEvent . clientY , d = 0 ;
d < this . lastTouches . length ;
d ++
) {
var e = this . lastTouches [ d ] ,
f = Math . abs ( b - e . x ) ,
g = Math . abs ( c - e . y )
if ( db >= f && db >= g ) return ! 0
}
return ! 1
}
function V ( a , b ) {
; ( this . manager = a ) , this . set ( b )
}
function W ( a ) {
if ( p ( a , jb ) ) return jb
var b = p ( a , kb ) ,
c = p ( a , lb )
return b && c ? jb : b || c ? ( b ? kb : lb ) : p ( a , ib ) ? ib : hb
}
function X ( ) {
if ( ! fb ) return ! 1
var b = { } ,
c = a . CSS && a . CSS . supports
return (
[
'auto' ,
'manipulation' ,
'pan-y' ,
'pan-x' ,
'pan-x pan-y' ,
'none'
] . forEach ( function ( d ) {
b [ d ] = c ? a . CSS . supports ( 'touch-action' , d ) : ! 0
} ) ,
b
)
}
function Y ( a ) {
; ( this . options = la ( { } , this . defaults , a || { } ) ) ,
( this . id = v ( ) ) ,
( this . manager = null ) ,
( this . options . enable = l ( this . options . enable , ! 0 ) ) ,
( this . state = nb ) ,
( this . simultaneous = { } ) ,
( this . requireFail = [ ] )
}
function Z ( a ) {
return a & sb
? 'cancel'
: a & qb
? 'end'
: a & pb
? 'move'
: a & ob
? 'start'
: ''
}
function $ ( a ) {
return a == Ma
? 'down'
: a == La
? 'up'
: a == Ja
? 'left'
: a == Ka
? 'right'
: ''
}
function _ ( a , b ) {
var c = b . manager
return c ? c . get ( a ) : a
}
function aa ( ) {
Y . apply ( this , arguments )
}
function ba ( ) {
aa . apply ( this , arguments ) , ( this . pX = null ) , ( this . pY = null )
}
function ca ( ) {
aa . apply ( this , arguments )
}
function da ( ) {
Y . apply ( this , arguments ) , ( this . _timer = null ) , ( this . _input = null )
}
function ea ( ) {
aa . apply ( this , arguments )
}
function fa ( ) {
aa . apply ( this , arguments )
}
function ga ( ) {
Y . apply ( this , arguments ) ,
( this . pTime = ! 1 ) ,
( this . pCenter = ! 1 ) ,
( this . _timer = null ) ,
( this . _input = null ) ,
( this . count = 0 )
}
function ha ( a , b ) {
return (
( b = b || { } ) ,
( b . recognizers = l ( b . recognizers , ha . defaults . preset ) ) ,
new ia ( a , b )
)
}
function ia ( a , b ) {
; ( this . options = la ( { } , ha . defaults , b || { } ) ) ,
( this . options . inputTarget = this . options . inputTarget || a ) ,
( this . handlers = { } ) ,
( this . session = { } ) ,
( this . recognizers = [ ] ) ,
( this . oldCssProps = { } ) ,
( this . element = a ) ,
( this . input = y ( this ) ) ,
( this . touchAction = new V ( this , this . options . touchAction ) ) ,
ja ( this , ! 0 ) ,
g (
this . options . recognizers ,
function ( a ) {
var b = this . add ( new a [ 0 ] ( a [ 1 ] ) )
a [ 2 ] && b . recognizeWith ( a [ 2 ] ) , a [ 3 ] && b . requireFailure ( a [ 3 ] )
} ,
this
)
}
function ja ( a , b ) {
var c = a . element
if ( c . style ) {
var d
g ( a . options . cssProps , function ( e , f ) {
; ( d = u ( c . style , f ) ) ,
b
? ( ( a . oldCssProps [ d ] = c . style [ d ] ) , ( c . style [ d ] = e ) )
: ( c . style [ d ] = a . oldCssProps [ d ] || '' )
} ) ,
b || ( a . oldCssProps = { } )
}
}
function ka ( a , c ) {
var d = b . createEvent ( 'Event' )
d . initEvent ( a , ! 0 , ! 0 ) , ( d . gesture = c ) , c . target . dispatchEvent ( d )
}
var la ,
ma = [ '' , 'webkit' , 'Moz' , 'MS' , 'ms' , 'o' ] ,
na = b . createElement ( 'div' ) ,
oa = 'function' ,
pa = Math . round ,
qa = Math . abs ,
ra = Date . now
la =
'function' != typeof Object . assign
? function ( a ) {
if ( a === d || null === a )
throw new TypeError (
'Cannot convert undefined or null to object'
)
for ( var b = Object ( a ) , c = 1 ; c < arguments . length ; c ++ ) {
var e = arguments [ c ]
if ( e !== d && null !== e )
for ( var f in e ) e . hasOwnProperty ( f ) && ( b [ f ] = e [ f ] )
}
return b
}
: Object . assign
var sa = h (
function ( a , b , c ) {
for ( var e = Object . keys ( b ) , f = 0 ; f < e . length ; )
( ! c || ( c && a [ e [ f ] ] === d ) ) && ( a [ e [ f ] ] = b [ e [ f ] ] ) , f ++
return a
} ,
'extend' ,
'Use `assign`.'
) ,
ta = h (
function ( a , b ) {
return sa ( a , b , ! 0 )
} ,
'merge' ,
'Use `assign`.'
) ,
ua = 1 ,
va = /mobile|tablet|ip(ad|hone|od)|android/i ,
wa = 'ontouchstart' in a ,
xa = u ( a , 'PointerEvent' ) !== d ,
ya = wa && va . test ( navigator . userAgent ) ,
za = 'touch' ,
Aa = 'pen' ,
Ba = 'mouse' ,
Ca = 'kinect' ,
Da = 25 ,
Ea = 1 ,
Fa = 2 ,
Ga = 4 ,
Ha = 8 ,
Ia = 1 ,
Ja = 2 ,
Ka = 4 ,
La = 8 ,
Ma = 16 ,
Na = Ja | Ka ,
Oa = La | Ma ,
Pa = Na | Oa ,
Qa = [ 'x' , 'y' ] ,
Ra = [ 'clientX' , 'clientY' ]
x . prototype = {
handler : function ( ) { } ,
init : function ( ) {
this . evEl && m ( this . element , this . evEl , this . domHandler ) ,
this . evTarget && m ( this . target , this . evTarget , this . domHandler ) ,
this . evWin && m ( w ( this . element ) , this . evWin , this . domHandler )
} ,
destroy : function ( ) {
this . evEl && n ( this . element , this . evEl , this . domHandler ) ,
this . evTarget && n ( this . target , this . evTarget , this . domHandler ) ,
this . evWin && n ( w ( this . element ) , this . evWin , this . domHandler )
}
}
var Sa = { mousedown : Ea , mousemove : Fa , mouseup : Ga } ,
Ta = 'mousedown' ,
Ua = 'mousemove mouseup'
i ( L , x , {
handler : function ( a ) {
var b = Sa [ a . type ]
b & Ea && 0 === a . button && ( this . pressed = ! 0 ) ,
b & Fa && 1 !== a . which && ( b = Ga ) ,
this . pressed &&
( b & Ga && ( this . pressed = ! 1 ) ,
this . callback ( this . manager , b , {
pointers : [ a ] ,
changedPointers : [ a ] ,
pointerType : Ba ,
srcEvent : a
} ) )
}
} )
var Va = {
pointerdown : Ea ,
pointermove : Fa ,
pointerup : Ga ,
pointercancel : Ha ,
pointerout : Ha
} ,
Wa = { 2 : za , 3 : Aa , 4 : Ba , 5 : Ca } ,
Xa = 'pointerdown' ,
Ya = 'pointermove pointerup pointercancel'
a . MSPointerEvent &&
! a . PointerEvent &&
( ( Xa = 'MSPointerDown' ) ,
( Ya = 'MSPointerMove MSPointerUp MSPointerCancel' ) ) ,
i ( M , x , {
handler : function ( a ) {
var b = this . store ,
c = ! 1 ,
d = a . type . toLowerCase ( ) . replace ( 'ms' , '' ) ,
e = Va [ d ] ,
f = Wa [ a . pointerType ] || a . pointerType ,
g = f == za ,
h = r ( b , a . pointerId , 'pointerId' )
e & Ea && ( 0 === a . button || g )
? 0 > h && ( b . push ( a ) , ( h = b . length - 1 ) )
: e & ( Ga | Ha ) && ( c = ! 0 ) ,
0 > h ||
( ( b [ h ] = a ) ,
this . callback ( this . manager , e , {
pointers : b ,
changedPointers : [ a ] ,
pointerType : f ,
srcEvent : a
} ) ,
c && b . splice ( h , 1 ) )
}
} )
var Za = { touchstart : Ea , touchmove : Fa , touchend : Ga , touchcancel : Ha } ,
$a = 'touchstart' ,
_a = 'touchstart touchmove touchend touchcancel'
i ( N , x , {
handler : function ( a ) {
var b = Za [ a . type ]
if ( ( b === Ea && ( this . started = ! 0 ) , this . started ) ) {
var c = O . call ( this , a , b )
b & ( Ga | Ha ) &&
c [ 0 ] . length - c [ 1 ] . length === 0 &&
( this . started = ! 1 ) ,
this . callback ( this . manager , b , {
pointers : c [ 0 ] ,
changedPointers : c [ 1 ] ,
pointerType : za ,
srcEvent : a
} )
}
}
} )
var ab = { touchstart : Ea , touchmove : Fa , touchend : Ga , touchcancel : Ha } ,
bb = 'touchstart touchmove touchend touchcancel'
i ( P , x , {
handler : function ( a ) {
var b = ab [ a . type ] ,
c = Q . call ( this , a , b )
c &&
this . callback ( this . manager , b , {
pointers : c [ 0 ] ,
changedPointers : c [ 1 ] ,
pointerType : za ,
srcEvent : a
} )
}
} )
var cb = 2500 ,
db = 25
i ( R , x , {
handler : function ( a , b , c ) {
var d = c . pointerType == za ,
e = c . pointerType == Ba
if (
! (
e &&
c . sourceCapabilities &&
c . sourceCapabilities . firesTouchEvents
)
) {
if ( d ) S . call ( this , b , c )
else if ( e && U . call ( this , c ) ) return
this . callback ( a , b , c )
}
} ,
destroy : function ( ) {
this . touch . destroy ( ) , this . mouse . destroy ( )
}
} )
var eb = u ( na . style , 'touchAction' ) ,
fb = eb !== d ,
gb = 'compute' ,
hb = 'auto' ,
ib = 'manipulation' ,
jb = 'none' ,
kb = 'pan-x' ,
lb = 'pan-y' ,
mb = X ( )
V . prototype = {
set : function ( a ) {
a == gb && ( a = this . compute ( ) ) ,
fb &&
this . manager . element . style &&
mb [ a ] &&
( this . manager . element . style [ eb ] = a ) ,
( this . actions = a . toLowerCase ( ) . trim ( ) )
} ,
update : function ( ) {
this . set ( this . manager . options . touchAction )
} ,
compute : function ( ) {
var a = [ ]
return (
g ( this . manager . recognizers , function ( b ) {
k ( b . options . enable , [ b ] ) && ( a = a . concat ( b . getTouchAction ( ) ) )
} ) ,
W ( a . join ( ' ' ) )
)
} ,
preventDefaults : function ( a ) {
var b = a . srcEvent ,
c = a . offsetDirection
if ( this . manager . session . prevented ) return void b . preventDefault ( )
var d = this . actions ,
e = p ( d , jb ) && ! mb [ jb ] ,
f = p ( d , lb ) && ! mb [ lb ] ,
g = p ( d , kb ) && ! mb [ kb ]
if ( e ) {
var h = 1 === a . pointers . length ,
i = a . distance < 2 ,
j = a . deltaTime < 250
if ( h && i && j ) return
}
return g && f
? void 0
: e || ( f && c & Na ) || ( g && c & Oa )
? this . preventSrc ( b )
: void 0
} ,
preventSrc : function ( a ) {
; ( this . manager . session . prevented = ! 0 ) , a . preventDefault ( )
}
}
var nb = 1 ,
ob = 2 ,
pb = 4 ,
qb = 8 ,
rb = qb ,
sb = 16 ,
tb = 32
; ( Y . prototype = {
defaults : { } ,
set : function ( a ) {
return (
la ( this . options , a ) ,
this . manager && this . manager . touchAction . update ( ) ,
this
)
} ,
recognizeWith : function ( a ) {
if ( f ( a , 'recognizeWith' , this ) ) return this
var b = this . simultaneous
return (
( a = _ ( a , this ) ) ,
b [ a . id ] || ( ( b [ a . id ] = a ) , a . recognizeWith ( this ) ) ,
this
)
} ,
dropRecognizeWith : function ( a ) {
return f ( a , 'dropRecognizeWith' , this )
? this
: ( ( a = _ ( a , this ) ) , delete this . simultaneous [ a . id ] , this )
} ,
requireFailure : function ( a ) {
if ( f ( a , 'requireFailure' , this ) ) return this
var b = this . requireFail
return (
( a = _ ( a , this ) ) ,
- 1 === r ( b , a ) && ( b . push ( a ) , a . requireFailure ( this ) ) ,
this
)
} ,
dropRequireFailure : function ( a ) {
if ( f ( a , 'dropRequireFailure' , this ) ) return this
a = _ ( a , this )
var b = r ( this . requireFail , a )
return b > - 1 && this . requireFail . splice ( b , 1 ) , this
} ,
hasRequireFailures : function ( ) {
return this . requireFail . length > 0
} ,
canRecognizeWith : function ( a ) {
return ! ! this . simultaneous [ a . id ]
} ,
emit : function ( a ) {
function b ( b ) {
c . manager . emit ( b , a )
}
var c = this ,
d = this . state
qb > d && b ( c . options . event + Z ( d ) ) ,
b ( c . options . event ) ,
a . additionalEvent && b ( a . additionalEvent ) ,
d >= qb && b ( c . options . event + Z ( d ) )
} ,
tryEmit : function ( a ) {
return this . canEmit ( ) ? this . emit ( a ) : void ( this . state = tb )
} ,
canEmit : function ( ) {
for ( var a = 0 ; a < this . requireFail . length ; ) {
if ( ! ( this . requireFail [ a ] . state & ( tb | nb ) ) ) return ! 1
a ++
}
return ! 0
} ,
recognize : function ( a ) {
var b = la ( { } , a )
return k ( this . options . enable , [ this , b ] )
? ( this . state & ( rb | sb | tb ) && ( this . state = nb ) ,
( this . state = this . process ( b ) ) ,
void ( this . state & ( ob | pb | qb | sb ) && this . tryEmit ( b ) ) )
: ( this . reset ( ) , void ( this . state = tb ) )
} ,
process : function ( a ) { } ,
getTouchAction : function ( ) { } ,
reset : function ( ) { }
} ) ,
i ( aa , Y , {
defaults : { pointers : 1 } ,
attrTest : function ( a ) {
var b = this . options . pointers
return 0 === b || a . pointers . length === b
} ,
process : function ( a ) {
var b = this . state ,
c = a . eventType ,
d = b & ( ob | pb ) ,
e = this . attrTest ( a )
return d && ( c & Ha || ! e )
? b | sb
: d || e
? c & Ga
? b | qb
: b & ob
? b | pb
: ob
: tb
}
} ) ,
i ( ba , aa , {
defaults : { event : 'pan' , threshold : 10 , pointers : 1 , direction : Pa } ,
getTouchAction : function ( ) {
var a = this . options . direction ,
b = [ ]
return a & Na && b . push ( lb ) , a & Oa && b . push ( kb ) , b
} ,
directionTest : function ( a ) {
var b = this . options ,
c = ! 0 ,
d = a . distance ,
e = a . direction ,
f = a . deltaX ,
g = a . deltaY
return (
e & b . direction ||
( b . direction & Na
? ( ( e = 0 === f ? Ia : 0 > f ? Ja : Ka ) ,
( c = f != this . pX ) ,
( d = Math . abs ( a . deltaX ) ) )
: ( ( e = 0 === g ? Ia : 0 > g ? La : Ma ) ,
( c = g != this . pY ) ,
( d = Math . abs ( a . deltaY ) ) ) ) ,
( a . direction = e ) ,
c && d > b . threshold && e & b . direction
)
} ,
attrTest : function ( a ) {
return (
aa . prototype . attrTest . call ( this , a ) &&
( this . state & ob || ( ! ( this . state & ob ) && this . directionTest ( a ) ) )
)
} ,
emit : function ( a ) {
; ( this . pX = a . deltaX ) , ( this . pY = a . deltaY )
var b = $ ( a . direction )
b && ( a . additionalEvent = this . options . event + b ) ,
this . _super . emit . call ( this , a )
}
} ) ,
i ( ca , aa , {
defaults : { event : 'pinch' , threshold : 0 , pointers : 2 } ,
getTouchAction : function ( ) {
return [ jb ]
} ,
attrTest : function ( a ) {
return (
this . _super . attrTest . call ( this , a ) &&
( Math . abs ( a . scale - 1 ) > this . options . threshold ||
this . state & ob )
)
} ,
emit : function ( a ) {
if ( 1 !== a . scale ) {
var b = a . scale < 1 ? 'in' : 'out'
a . additionalEvent = this . options . event + b
}
this . _super . emit . call ( this , a )
}
} ) ,
i ( da , Y , {
defaults : { event : 'press' , pointers : 1 , time : 251 , threshold : 9 } ,
getTouchAction : function ( ) {
return [ hb ]
} ,
process : function ( a ) {
var b = this . options ,
c = a . pointers . length === b . pointers ,
d = a . distance < b . threshold ,
f = a . deltaTime > b . time
if (
( ( this . _input = a ) , ! d || ! c || ( a . eventType & ( Ga | Ha ) && ! f ) )
)
this . reset ( )
else if ( a . eventType & Ea )
this . reset ( ) ,
( this . _timer = e (
function ( ) {
; ( this . state = rb ) , this . tryEmit ( )
} ,
b . time ,
this
) )
else if ( a . eventType & Ga ) return rb
return tb
} ,
reset : function ( ) {
clearTimeout ( this . _timer )
} ,
emit : function ( a ) {
this . state === rb &&
( a && a . eventType & Ga
? this . manager . emit ( this . options . event + 'up' , a )
: ( ( this . _input . timeStamp = ra ( ) ) ,
this . manager . emit ( this . options . event , this . _input ) ) )
}
} ) ,
i ( ea , aa , {
defaults : { event : 'rotate' , threshold : 0 , pointers : 2 } ,
getTouchAction : function ( ) {
return [ jb ]
} ,
attrTest : function ( a ) {
return (
this . _super . attrTest . call ( this , a ) &&
( Math . abs ( a . rotation ) > this . options . threshold || this . state & ob )
)
}
} ) ,
i ( fa , aa , {
defaults : {
event : 'swipe' ,
threshold : 10 ,
velocity : 0.3 ,
direction : Na | Oa ,
pointers : 1
} ,
getTouchAction : function ( ) {
return ba . prototype . getTouchAction . call ( this )
} ,
attrTest : function ( a ) {
var b ,
c = this . options . direction
return (
c & ( Na | Oa )
? ( b = a . overallVelocity )
: c & Na
? ( b = a . overallVelocityX )
: c & Oa && ( b = a . overallVelocityY ) ,
this . _super . attrTest . call ( this , a ) &&
c & a . offsetDirection &&
a . distance > this . options . threshold &&
a . maxPointers == this . options . pointers &&
qa ( b ) > this . options . velocity &&
a . eventType & Ga
)
} ,
emit : function ( a ) {
var b = $ ( a . offsetDirection )
b && this . manager . emit ( this . options . event + b , a ) ,
this . manager . emit ( this . options . event , a )
}
} ) ,
i ( ga , Y , {
defaults : {
event : 'tap' ,
pointers : 1 ,
taps : 1 ,
interval : 300 ,
time : 250 ,
threshold : 9 ,
posThreshold : 10
} ,
getTouchAction : function ( ) {
return [ ib ]
} ,
process : function ( a ) {
var b = this . options ,
c = a . pointers . length === b . pointers ,
d = a . distance < b . threshold ,
f = a . deltaTime < b . time
if ( ( this . reset ( ) , a . eventType & Ea && 0 === this . count ) )
return this . failTimeout ( )
if ( d && f && c ) {
if ( a . eventType != Ga ) return this . failTimeout ( )
var g = this . pTime ? a . timeStamp - this . pTime < b . interval : ! 0 ,
h = ! this . pCenter || H ( this . pCenter , a . center ) < b . posThreshold
; ( this . pTime = a . timeStamp ) ,
( this . pCenter = a . center ) ,
h && g ? ( this . count += 1 ) : ( this . count = 1 ) ,
( this . _input = a )
var i = this . count % b . taps
if ( 0 === i )
return this . hasRequireFailures ( )
? ( ( this . _timer = e (
function ( ) {
; ( this . state = rb ) , this . tryEmit ( )
} ,
b . interval ,
this
) ) ,
ob )
: rb
}
return tb
} ,
failTimeout : function ( ) {
return (
( this . _timer = e (
function ( ) {
this . state = tb
} ,
this . options . interval ,
this
) ) ,
tb
)
} ,
reset : function ( ) {
clearTimeout ( this . _timer )
} ,
emit : function ( ) {
this . state == rb &&
( ( this . _input . tapCount = this . count ) ,
this . manager . emit ( this . options . event , this . _input ) )
}
} ) ,
( ha . VERSION = '2.0.7' ) ,
( ha . defaults = {
domEvents : ! 1 ,
touchAction : gb ,
enable : ! 0 ,
inputTarget : null ,
inputClass : null ,
preset : [
[ ea , { enable : ! 1 } ] ,
[ ca , { enable : ! 1 } , [ 'rotate' ] ] ,
[ fa , { direction : Na } ] ,
[ ba , { direction : Na } , [ 'swipe' ] ] ,
[ ga ] ,
[
ga ,
{
event : 'doubletap' ,
taps : 2
} ,
[ 'tap' ]
] ,
[ da ]
] ,
cssProps : {
userSelect : 'none' ,
touchSelect : 'none' ,
touchCallout : 'none' ,
contentZooming : 'none' ,
userDrag : 'none' ,
tapHighlightColor : 'rgba(0,0,0,0)'
}
} )
var ub = 1 ,
vb = 2
; ( ia . prototype = {
set : function ( a ) {
return (
la ( this . options , a ) ,
a . touchAction && this . touchAction . update ( ) ,
a . inputTarget &&
( this . input . destroy ( ) ,
( this . input . target = a . inputTarget ) ,
this . input . init ( ) ) ,
this
)
} ,
stop : function ( a ) {
this . session . stopped = a ? vb : ub
} ,
recognize : function ( a ) {
var b = this . session
if ( ! b . stopped ) {
this . touchAction . preventDefaults ( a )
var c ,
d = this . recognizers ,
e = b . curRecognizer
; ( ! e || ( e && e . state & rb ) ) && ( e = b . curRecognizer = null )
for ( var f = 0 ; f < d . length ; )
( c = d [ f ] ) ,
b . stopped === vb || ( e && c != e && ! c . canRecognizeWith ( e ) )
? c . reset ( )
: c . recognize ( a ) ,
! e && c . state & ( ob | pb | qb ) && ( e = b . curRecognizer = c ) ,
f ++
}
} ,
get : function ( a ) {
if ( a instanceof Y ) return a
for ( var b = this . recognizers , c = 0 ; c < b . length ; c ++ )
if ( b [ c ] . options . event == a ) return b [ c ]
return null
} ,
add : function ( a ) {
if ( f ( a , 'add' , this ) ) return this
var b = this . get ( a . options . event )
return (
b && this . remove ( b ) ,
this . recognizers . push ( a ) ,
( a . manager = this ) ,
this . touchAction . update ( ) ,
a
)
} ,
remove : function ( a ) {
if ( f ( a , 'remove' , this ) ) return this
if ( ( a = this . get ( a ) ) ) {
var b = this . recognizers ,
c = r ( b , a )
; - 1 !== c && ( b . splice ( c , 1 ) , this . touchAction . update ( ) )
}
return this
} ,
on : function ( a , b ) {
if ( a !== d && b !== d ) {
var c = this . handlers
return (
g ( q ( a ) , function ( a ) {
; ( c [ a ] = c [ a ] || [ ] ) , c [ a ] . push ( b )
} ) ,
this
)
}
} ,
off : function ( a , b ) {
if ( a !== d ) {
var c = this . handlers
return (
g ( q ( a ) , function ( a ) {
b ? c [ a ] && c [ a ] . splice ( r ( c [ a ] , b ) , 1 ) : delete c [ a ]
} ) ,
this
)
}
} ,
emit : function ( a , b ) {
this . options . domEvents && ka ( a , b )
var c = this . handlers [ a ] && this . handlers [ a ] . slice ( )
if ( c && c . length ) {
; ( b . type = a ) ,
( b . preventDefault = function ( ) {
b . srcEvent . preventDefault ( )
} )
for ( var d = 0 ; d < c . length ; ) c [ d ] ( b ) , d ++
}
} ,
destroy : function ( ) {
this . element && ja ( this , ! 1 ) ,
( this . handlers = { } ) ,
( this . session = { } ) ,
this . input . destroy ( ) ,
( this . element = null )
}
} ) ,
la ( ha , {
INPUT _START : Ea ,
INPUT _MOVE : Fa ,
INPUT _END : Ga ,
INPUT _CANCEL : Ha ,
STATE _POSSIBLE : nb ,
STATE _BEGAN : ob ,
STATE _CHANGED : pb ,
STATE _ENDED : qb ,
STATE _RECOGNIZED : rb ,
STATE _CANCELLED : sb ,
STATE _FAILED : tb ,
DIRECTION _NONE : Ia ,
DIRECTION _LEFT : Ja ,
DIRECTION _RIGHT : Ka ,
DIRECTION _UP : La ,
DIRECTION _DOWN : Ma ,
DIRECTION _HORIZONTAL : Na ,
DIRECTION _VERTICAL : Oa ,
DIRECTION _ALL : Pa ,
Manager : ia ,
Input : x ,
TouchAction : V ,
TouchInput : P ,
MouseInput : L ,
PointerEventInput : M ,
TouchMouseInput : R ,
SingleTouchInput : N ,
Recognizer : Y ,
AttrRecognizer : aa ,
Tap : ga ,
Pan : ba ,
Swipe : fa ,
Pinch : ca ,
Rotate : ea ,
Press : da ,
on : m ,
off : n ,
each : g ,
merge : ta ,
extend : sa ,
assign : la ,
inherit : i ,
bindFn : j ,
prefixed : u
} )
var wb =
'undefined' != typeof a ? a : 'undefined' != typeof self ? self : { }
; ( wb . Hammer = ha ) ,
'function' == typeof define && define . amd
? define ( 'Hammer' , [ ] , function ( ) {
return ha
} )
: 'undefined' != typeof module && module . exports
? ( module . exports = ha )
: ( a [ c ] = ha )
} ) ( window , document , 'Hammer' )
define ( 'Core/KnockoutHammerBinding' , [ 'KnockoutES5' , 'Hammer' ] , function (
Knockout ,
Hammer
) {
'use strict'
var KnockoutHammerBinding = {
register : function ( Knockout ) {
Knockout . bindingHandlers . swipeLeft = {
init : function (
element ,
valueAccessor ,
allBindings ,
viewModel ,
bindingContext
) {
var f = Knockout . unwrap ( valueAccessor ( ) )
new Hammer ( element ) . on ( 'swipeleft' , function ( e ) {
var viewModel = bindingContext . $data
f . apply ( viewModel , arguments )
} )
}
}
Knockout . bindingHandlers . swipeRight = {
init : function (
element ,
valueAccessor ,
allBindings ,
viewModel ,
bindingContext
) {
var f = Knockout . unwrap ( valueAccessor ( ) )
new Hammer ( element ) . on ( 'swiperight' , function ( e ) {
var viewModel = bindingContext . $data
f . apply ( viewModel , arguments )
} )
}
}
}
}
return KnockoutHammerBinding
} )
define ( 'Core/registerKnockoutBindings' , [
'Cesium/Widgets/SvgPathBindingHandler' ,
'KnockoutES5' ,
'Core/KnockoutMarkdownBinding' ,
'Core/KnockoutHammerBinding'
] , function (
SvgPathBindingHandler ,
Knockout ,
KnockoutMarkdownBinding ,
KnockoutHammerBinding
) {
'use strict'
var registerKnockoutBindings = function ( ) {
SvgPathBindingHandler . register ( Knockout )
KnockoutMarkdownBinding . register ( Knockout )
KnockoutHammerBinding . register ( Knockout )
Knockout . bindingHandlers . embeddedComponent = {
init : function (
element ,
valueAccessor ,
allBindings ,
viewModel ,
bindingContext
) {
var component = Knockout . unwrap ( valueAccessor ( ) )
component . show ( element )
return { controlsDescendantBindings : true }
} ,
update : function (
element ,
valueAccessor ,
allBindings ,
viewModel ,
bindingContext
) { }
}
}
return registerKnockoutBindings
} )
define ( 'Core/createFragmentFromTemplate' , [ ] , function ( ) {
'use strict'
var createFragmentFromTemplate = function ( htmlString ) {
var holder = document . createElement ( 'div' )
holder . innerHTML = htmlString
var fragment = document . createDocumentFragment ( )
while ( holder . firstChild ) {
fragment . appendChild ( holder . firstChild )
}
return fragment
}
return createFragmentFromTemplate
} )
define ( 'Core/loadView' , [
'Cesium/Widgets/getElement' ,
'KnockoutES5' ,
'Core/createFragmentFromTemplate'
] , function ( getElement , Knockout , createFragmentFromTemplate ) {
'use strict'
var loadView = function ( htmlString , container , viewModel ) {
container = getElement ( container )
var fragment = createFragmentFromTemplate ( htmlString )
var nodes = [ ]
var i
for ( i = 0 ; i < fragment . childNodes . length ; ++ i ) {
nodes . push ( fragment . childNodes [ i ] )
}
container . appendChild ( fragment )
for ( i = 0 ; i < nodes . length ; ++ i ) {
var node = nodes [ i ]
if ( node . nodeType === 1 || node . nodeType === 8 ) {
Knockout . applyBindings ( viewModel , node )
}
}
return nodes
}
return loadView
} )
! ( function ( t , e , i ) {
var n = t . L ,
o = { }
; ( o . version = '0.7.7' ) ,
'object' == typeof module && 'object' == typeof module . exports
? ( module . exports = o )
: 'function' == typeof define && define . amd && define ( 'leaflet' , o ) ,
( o . noConflict = function ( ) {
return ( t . L = n ) , this
} ) ,
( t . L = o ) ,
( o . Util = {
extend : function ( t ) {
var e ,
i ,
n ,
o ,
s = Array . prototype . slice . call ( arguments , 1 )
for ( i = 0 , n = s . length ; n > i ; i ++ ) {
o = s [ i ] || { }
for ( e in o ) o . hasOwnProperty ( e ) && ( t [ e ] = o [ e ] )
}
return t
} ,
bind : function ( t , e ) {
var i =
arguments . length > 2
? Array . prototype . slice . call ( arguments , 2 )
: null
return function ( ) {
return t . apply ( e , i || arguments )
}
} ,
stamp : ( function ( ) {
var t = 0 ,
e = '_leaflet_id'
return function ( i ) {
return ( i [ e ] = i [ e ] || ++ t ) , i [ e ]
}
} ) ( ) ,
invokeEach : function ( t , e , i ) {
var n , o
if ( 'object' == typeof t ) {
o = Array . prototype . slice . call ( arguments , 3 )
for ( n in t ) e . apply ( i , [ n , t [ n ] ] . concat ( o ) )
return ! 0
}
return ! 1
} ,
limitExecByInterval : function ( t , e , i ) {
var n , o
return function s ( ) {
var a = arguments
return n
? void ( o = ! 0 )
: ( ( n = ! 0 ) ,
setTimeout ( function ( ) {
; ( n = ! 1 ) , o && ( s . apply ( i , a ) , ( o = ! 1 ) )
} , e ) ,
void t . apply ( i , a ) )
}
} ,
falseFn : function ( ) {
return ! 1
} ,
formatNum : function ( t , e ) {
var i = Math . pow ( 10 , e || 5 )
return Math . round ( t * i ) / i
} ,
trim : function ( t ) {
return t . trim ? t . trim ( ) : t . replace ( /^\s+|\s+$/g , '' )
} ,
splitWords : function ( t ) {
return o . Util . trim ( t ) . split ( /\s+/ )
} ,
setOptions : function ( t , e ) {
return ( t . options = o . extend ( { } , t . options , e ) ) , t . options
} ,
getParamString : function ( t , e , i ) {
var n = [ ]
for ( var o in t )
n . push (
encodeURIComponent ( i ? o . toUpperCase ( ) : o ) +
'=' +
encodeURIComponent ( t [ o ] )
)
return ( e && - 1 !== e . indexOf ( '?' ) ? '&' : '?' ) + n . join ( '&' )
} ,
template : function ( t , e ) {
return t . replace ( /\{ *([\w_]+) *\}/g , function ( t , n ) {
var o = e [ n ]
if ( o === i )
throw new Error ( 'No value provided for variable ' + t )
return 'function' == typeof o && ( o = o ( e ) ) , o
} )
} ,
isArray :
Array . isArray ||
function ( t ) {
return '[object Array]' === Object . prototype . toString . call ( t )
} ,
emptyImageUrl :
'data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs='
} ) ,
( function ( ) {
function e ( e ) {
var i ,
n ,
o = [ 'webkit' , 'moz' , 'o' , 'ms' ]
for ( i = 0 ; i < o . length && ! n ; i ++ ) n = t [ o [ i ] + e ]
return n
}
function i ( e ) {
var i = + new Date ( ) ,
o = Math . max ( 0 , 16 - ( i - n ) )
return ( n = i + o ) , t . setTimeout ( e , o )
}
var n = 0 ,
s = t . requestAnimationFrame || e ( 'RequestAnimationFrame' ) || i ,
a =
t . cancelAnimationFrame ||
e ( 'CancelAnimationFrame' ) ||
e ( 'CancelRequestAnimationFrame' ) ||
function ( e ) {
t . clearTimeout ( e )
}
; ( o . Util . requestAnimFrame = function ( e , n , a , r ) {
return ( e = o . bind ( e , n ) ) , a && s === i ? void e ( ) : s . call ( t , e , r )
} ) ,
( o . Util . cancelAnimFrame = function ( e ) {
e && a . call ( t , e )
} )
} ) ( ) ,
( o . extend = o . Util . extend ) ,
( o . bind = o . Util . bind ) ,
( o . stamp = o . Util . stamp ) ,
( o . setOptions = o . Util . setOptions ) ,
( o . Class = function ( ) { } ) ,
( o . Class . extend = function ( t ) {
var e = function ( ) {
this . initialize && this . initialize . apply ( this , arguments ) ,
this . _initHooks && this . callInitHooks ( )
} ,
i = function ( ) { }
i . prototype = this . prototype
var n = new i ( )
; ( n . constructor = e ) , ( e . prototype = n )
for ( var s in this )
this . hasOwnProperty ( s ) && 'prototype' !== s && ( e [ s ] = this [ s ] )
t . statics && ( o . extend ( e , t . statics ) , delete t . statics ) ,
t . includes &&
( o . Util . extend . apply ( null , [ n ] . concat ( t . includes ) ) ,
delete t . includes ) ,
t . options &&
n . options &&
( t . options = o . extend ( { } , n . options , t . options ) ) ,
o . extend ( n , t ) ,
( n . _initHooks = [ ] )
var a = this
return (
( e . _ _super _ _ = a . prototype ) ,
( n . callInitHooks = function ( ) {
if ( ! this . _initHooksCalled ) {
a . prototype . callInitHooks &&
a . prototype . callInitHooks . call ( this ) ,
( this . _initHooksCalled = ! 0 )
for ( var t = 0 , e = n . _initHooks . length ; e > t ; t ++ )
n . _initHooks [ t ] . call ( this )
}
} ) ,
e
)
} ) ,
( o . Class . include = function ( t ) {
o . extend ( this . prototype , t )
} ) ,
( o . Class . mergeOptions = function ( t ) {
o . extend ( this . prototype . options , t )
} ) ,
( o . Class . addInitHook = function ( t ) {
var e = Array . prototype . slice . call ( arguments , 1 ) ,
i =
'function' == typeof t
? t
: function ( ) {
this [ t ] . apply ( this , e )
}
; ( this . prototype . _initHooks = this . prototype . _initHooks || [ ] ) ,
this . prototype . _initHooks . push ( i )
} )
var s = '_leaflet_events'
; ( o . Mixin = { } ) ,
( o . Mixin . Events = {
addEventListener : function ( t , e , i ) {
if ( o . Util . invokeEach ( t , this . addEventListener , this , e , i ) )
return this
var n ,
a ,
r ,
h ,
l ,
u ,
c ,
d = ( this [ s ] = this [ s ] || { } ) ,
p = i && i !== this && o . stamp ( i )
for ( t = o . Util . splitWords ( t ) , n = 0 , a = t . length ; a > n ; n ++ )
( r = {
action : e ,
context : i || this
} ) ,
( h = t [ n ] ) ,
p
? ( ( l = h + '_idx' ) ,
( u = l + '_len' ) ,
( c = d [ l ] = d [ l ] || { } ) ,
c [ p ] || ( ( c [ p ] = [ ] ) , ( d [ u ] = ( d [ u ] || 0 ) + 1 ) ) ,
c [ p ] . push ( r ) )
: ( ( d [ h ] = d [ h ] || [ ] ) , d [ h ] . push ( r ) )
return this
} ,
hasEventListeners : function ( t ) {
var e = this [ s ]
return (
! ! e &&
( ( t in e && e [ t ] . length > 0 ) ||
( t + '_idx' in e && e [ t + '_idx_len' ] > 0 ) )
)
} ,
removeEventListener : function ( t , e , i ) {
if ( ! this [ s ] ) return this
if ( ! t ) return this . clearAllEventListeners ( )
if ( o . Util . invokeEach ( t , this . removeEventListener , this , e , i ) )
return this
var n ,
a ,
r ,
h ,
l ,
u ,
c ,
d ,
p ,
_ = this [ s ] ,
m = i && i !== this && o . stamp ( i )
for ( t = o . Util . splitWords ( t ) , n = 0 , a = t . length ; a > n ; n ++ )
if (
( ( r = t [ n ] ) , ( u = r + '_idx' ) , ( c = u + '_len' ) , ( d = _ [ u ] ) , e )
) {
if ( ( h = m && d ? d [ m ] : _ [ r ] ) ) {
for ( l = h . length - 1 ; l >= 0 ; l -- )
h [ l ] . action !== e ||
( i && h [ l ] . context !== i ) ||
( ( p = h . splice ( l , 1 ) ) , ( p [ 0 ] . action = o . Util . falseFn ) )
i && d && 0 === h . length && ( delete d [ m ] , _ [ c ] -- )
}
} else delete _ [ r ] , delete _ [ u ] , delete _ [ c ]
return this
} ,
clearAllEventListeners : function ( ) {
return delete this [ s ] , this
} ,
fireEvent : function ( t , e ) {
if ( ! this . hasEventListeners ( t ) ) return this
var i ,
n ,
a ,
r ,
h ,
l = o . Util . extend ( { } , e , { type : t , target : this } ) ,
u = this [ s ]
if ( u [ t ] )
for ( i = u [ t ] . slice ( ) , n = 0 , a = i . length ; a > n ; n ++ )
i [ n ] . action . call ( i [ n ] . context , l )
r = u [ t + '_idx' ]
for ( h in r )
if ( ( i = r [ h ] . slice ( ) ) )
for ( n = 0 , a = i . length ; a > n ; n ++ )
i [ n ] . action . call ( i [ n ] . context , l )
return this
} ,
addOneTimeEventListener : function ( t , e , i ) {
if ( o . Util . invokeEach ( t , this . addOneTimeEventListener , this , e , i ) )
return this
var n = o . bind ( function ( ) {
this . removeEventListener ( t , e , i ) . removeEventListener ( t , n , i )
} , this )
return this . addEventListener ( t , e , i ) . addEventListener ( t , n , i )
}
} ) ,
( o . Mixin . Events . on = o . Mixin . Events . addEventListener ) ,
( o . Mixin . Events . off = o . Mixin . Events . removeEventListener ) ,
( o . Mixin . Events . once = o . Mixin . Events . addOneTimeEventListener ) ,
( o . Mixin . Events . fire = o . Mixin . Events . fireEvent ) ,
( function ( ) {
var n = 'ActiveXObject' in t ,
s = n && ! e . addEventListener ,
a = navigator . userAgent . toLowerCase ( ) ,
r = - 1 !== a . indexOf ( 'webkit' ) ,
h = - 1 !== a . indexOf ( 'chrome' ) ,
l = - 1 !== a . indexOf ( 'phantom' ) ,
u = - 1 !== a . indexOf ( 'android' ) ,
c = - 1 !== a . search ( 'android [23]' ) ,
d = - 1 !== a . indexOf ( 'gecko' ) ,
p = typeof orientation != i + '' ,
_ = ! t . PointerEvent && t . MSPointerEvent ,
m = ( t . PointerEvent && t . navigator . pointerEnabled ) || _ ,
f =
( 'devicePixelRatio' in t && t . devicePixelRatio > 1 ) ||
( 'matchMedia' in t &&
t . matchMedia ( '(min-resolution:144dpi)' ) &&
t . matchMedia ( '(min-resolution:144dpi)' ) . matches ) ,
g = e . documentElement ,
v = n && 'transition' in g . style ,
y =
'WebKitCSSMatrix' in t && 'm11' in new t . WebKitCSSMatrix ( ) && ! c ,
P = 'MozPerspective' in g . style ,
L = 'OTransition' in g . style ,
x = ! t . L _DISABLE _3D && ( v || y || P || L ) && ! l ,
w =
! t . L _NO _TOUCH &&
! l &&
( m ||
'ontouchstart' in t ||
( t . DocumentTouch && e instanceof t . DocumentTouch ) )
o . Browser = {
ie : n ,
ielt9 : s ,
webkit : r ,
gecko : d && ! r && ! t . opera && ! n ,
android : u ,
android23 : c ,
chrome : h ,
ie3d : v ,
webkit3d : y ,
gecko3d : P ,
opera3d : L ,
any3d : x ,
mobile : p ,
mobileWebkit : p && r ,
mobileWebkit3d : p && y ,
mobileOpera : p && t . opera ,
touch : w ,
msPointer : _ ,
pointer : m ,
retina : f
}
} ) ( ) ,
( o . Point = function ( t , e , i ) {
; ( this . x = i ? Math . round ( t ) : t ) , ( this . y = i ? Math . round ( e ) : e )
} ) ,
( o . Point . prototype = {
clone : function ( ) {
return new o . Point ( this . x , this . y )
} ,
add : function ( t ) {
return this . clone ( ) . _add ( o . point ( t ) )
} ,
_add : function ( t ) {
return ( this . x += t . x ) , ( this . y += t . y ) , this
} ,
subtract : function ( t ) {
return this . clone ( ) . _subtract ( o . point ( t ) )
} ,
_subtract : function ( t ) {
return ( this . x -= t . x ) , ( this . y -= t . y ) , this
} ,
divideBy : function ( t ) {
return this . clone ( ) . _divideBy ( t )
} ,
_divideBy : function ( t ) {
return ( this . x /= t ) , ( this . y /= t ) , this
} ,
multiplyBy : function ( t ) {
return this . clone ( ) . _multiplyBy ( t )
} ,
_multiplyBy : function ( t ) {
return ( this . x *= t ) , ( this . y *= t ) , this
} ,
round : function ( ) {
return this . clone ( ) . _round ( )
} ,
_round : function ( ) {
return (
( this . x = Math . round ( this . x ) ) , ( this . y = Math . round ( this . y ) ) , this
)
} ,
floor : function ( ) {
return this . clone ( ) . _floor ( )
} ,
_floor : function ( ) {
return (
( this . x = Math . floor ( this . x ) ) , ( this . y = Math . floor ( this . y ) ) , this
)
} ,
distanceTo : function ( t ) {
t = o . point ( t )
var e = t . x - this . x ,
i = t . y - this . y
return Math . sqrt ( e * e + i * i )
} ,
equals : function ( t ) {
return ( t = o . point ( t ) ) , t . x === this . x && t . y === this . y
} ,
contains : function ( t ) {
return (
( t = o . point ( t ) ) ,
Math . abs ( t . x ) <= Math . abs ( this . x ) &&
Math . abs ( t . y ) <= Math . abs ( this . y )
)
} ,
toString : function ( ) {
return (
'Point(' +
o . Util . formatNum ( this . x ) +
', ' +
o . Util . formatNum ( this . y ) +
')'
)
}
} ) ,
( o . point = function ( t , e , n ) {
return t instanceof o . Point
? t
: o . Util . isArray ( t )
? new o . Point ( t [ 0 ] , t [ 1 ] )
: t === i || null === t
? t
: new o . Point ( t , e , n )
} ) ,
( o . Bounds = function ( t , e ) {
if ( t )
for ( var i = e ? [ t , e ] : t , n = 0 , o = i . length ; o > n ; n ++ )
this . extend ( i [ n ] )
} ) ,
( o . Bounds . prototype = {
extend : function ( t ) {
return (
( t = o . point ( t ) ) ,
this . min || this . max
? ( ( this . min . x = Math . min ( t . x , this . min . x ) ) ,
( this . max . x = Math . max ( t . x , this . max . x ) ) ,
( this . min . y = Math . min ( t . y , this . min . y ) ) ,
( this . max . y = Math . max ( t . y , this . max . y ) ) )
: ( ( this . min = t . clone ( ) ) , ( this . max = t . clone ( ) ) ) ,
this
)
} ,
getCenter : function ( t ) {
return new o . Point (
( this . min . x + this . max . x ) / 2 ,
( this . min . y + this . max . y ) / 2 ,
t
)
} ,
getBottomLeft : function ( ) {
return new o . Point ( this . min . x , this . max . y )
} ,
getTopRight : function ( ) {
return new o . Point ( this . max . x , this . min . y )
} ,
getSize : function ( ) {
return this . max . subtract ( this . min )
} ,
contains : function ( t ) {
var e , i
return (
( t =
'number' == typeof t [ 0 ] || t instanceof o . Point
? o . point ( t )
: o . bounds ( t ) ) ,
t instanceof o . Bounds ? ( ( e = t . min ) , ( i = t . max ) ) : ( e = i = t ) ,
e . x >= this . min . x &&
i . x <= this . max . x &&
e . y >= this . min . y &&
i . y <= this . max . y
)
} ,
intersects : function ( t ) {
t = o . bounds ( t )
var e = this . min ,
i = this . max ,
n = t . min ,
s = t . max ,
a = s . x >= e . x && n . x <= i . x ,
r = s . y >= e . y && n . y <= i . y
return a && r
} ,
isValid : function ( ) {
return ! ( ! this . min || ! this . max )
}
} ) ,
( o . bounds = function ( t , e ) {
return ! t || t instanceof o . Bounds ? t : new o . Bounds ( t , e )
} ) ,
( o . Transformation = function ( t , e , i , n ) {
; ( this . _a = t ) , ( this . _b = e ) , ( this . _c = i ) , ( this . _d = n )
} ) ,
( o . Transformation . prototype = {
transform : function ( t , e ) {
return this . _transform ( t . clone ( ) , e )
} ,
_transform : function ( t , e ) {
return (
( e = e || 1 ) ,
( t . x = e * ( this . _a * t . x + this . _b ) ) ,
( t . y = e * ( this . _c * t . y + this . _d ) ) ,
t
)
} ,
untransform : function ( t , e ) {
return (
( e = e || 1 ) ,
new o . Point (
( t . x / e - this . _b ) / this . _a ,
( t . y / e - this . _d ) / this . _c
)
)
}
} ) ,
( o . DomUtil = {
get : function ( t ) {
return 'string' == typeof t ? e . getElementById ( t ) : t
} ,
getStyle : function ( t , i ) {
var n = t . style [ i ]
if (
( ! n && t . currentStyle && ( n = t . currentStyle [ i ] ) ,
( ! n || 'auto' === n ) && e . defaultView )
) {
var o = e . defaultView . getComputedStyle ( t , null )
n = o ? o [ i ] : null
}
return 'auto' === n ? null : n
} ,
getViewportOffset : function ( t ) {
var i ,
n = 0 ,
s = 0 ,
a = t ,
r = e . body ,
h = e . documentElement
do {
if (
( ( n += a . offsetTop || 0 ) ,
( s += a . offsetLeft || 0 ) ,
( n +=
parseInt ( o . DomUtil . getStyle ( a , 'borderTopWidth' ) , 10 ) || 0 ) ,
( s +=
parseInt ( o . DomUtil . getStyle ( a , 'borderLeftWidth' ) , 10 ) || 0 ) ,
( i = o . DomUtil . getStyle ( a , 'position' ) ) ,
a . offsetParent === r && 'absolute' === i )
)
break
if ( 'fixed' === i ) {
; ( n += r . scrollTop || h . scrollTop || 0 ) ,
( s += r . scrollLeft || h . scrollLeft || 0 )
break
}
if ( 'relative' === i && ! a . offsetLeft ) {
var l = o . DomUtil . getStyle ( a , 'width' ) ,
u = o . DomUtil . getStyle ( a , 'max-width' ) ,
c = a . getBoundingClientRect ( )
; ( 'none' !== l || 'none' !== u ) && ( s += c . left + a . clientLeft ) ,
( n += c . top + ( r . scrollTop || h . scrollTop || 0 ) )
break
}
a = a . offsetParent
} while ( a )
a = t
do {
if ( a === r ) break
; ( n -= a . scrollTop || 0 ) ,
( s -= a . scrollLeft || 0 ) ,
( a = a . parentNode )
} while ( a )
return new o . Point ( s , n )
} ,
documentIsLtr : function ( ) {
return (
o . DomUtil . _docIsLtrCached ||
( ( o . DomUtil . _docIsLtrCached = ! 0 ) ,
( o . DomUtil . _docIsLtr =
'ltr' === o . DomUtil . getStyle ( e . body , 'direction' ) ) ) ,
o . DomUtil . _docIsLtr
)
} ,
create : function ( t , i , n ) {
var o = e . createElement ( t )
return ( o . className = i ) , n && n . appendChild ( o ) , o
} ,
hasClass : function ( t , e ) {
if ( t . classList !== i ) return t . classList . contains ( e )
var n = o . DomUtil . _getClass ( t )
return n . length > 0 && new RegExp ( '(^|\\s)' + e + '(\\s|$)' ) . test ( n )
} ,
addClass : function ( t , e ) {
if ( t . classList !== i )
for (
var n = o . Util . splitWords ( e ) , s = 0 , a = n . length ;
a > s ;
s ++
)
t . classList . add ( n [ s ] )
else if ( ! o . DomUtil . hasClass ( t , e ) ) {
var r = o . DomUtil . _getClass ( t )
o . DomUtil . _setClass ( t , ( r ? r + ' ' : '' ) + e )
}
} ,
removeClass : function ( t , e ) {
t . classList !== i
? t . classList . remove ( e )
: o . DomUtil . _setClass (
t ,
o . Util . trim (
( ' ' + o . DomUtil . _getClass ( t ) + ' ' ) . replace (
' ' + e + ' ' ,
' '
)
)
)
} ,
_setClass : function ( t , e ) {
t . className . baseVal === i
? ( t . className = e )
: ( t . className . baseVal = e )
} ,
_getClass : function ( t ) {
return t . className . baseVal === i ? t . className : t . className . baseVal
} ,
setOpacity : function ( t , e ) {
if ( 'opacity' in t . style ) t . style . opacity = e
else if ( 'filter' in t . style ) {
var i = ! 1 ,
n = 'DXImageTransform.Microsoft.Alpha'
try {
i = t . filters . item ( n )
} catch ( o ) {
if ( 1 === e ) return
}
; ( e = Math . round ( 100 * e ) ) ,
i
? ( ( i . Enabled = 100 !== e ) , ( i . Opacity = e ) )
: ( t . style . filter += ' progid:' + n + '(opacity=' + e + ')' )
}
} ,
testProp : function ( t ) {
for ( var i = e . documentElement . style , n = 0 ; n < t . length ; n ++ )
if ( t [ n ] in i ) return t [ n ]
return ! 1
} ,
getTranslateString : function ( t ) {
var e = o . Browser . webkit3d ,
i = 'translate' + ( e ? '3d' : '' ) + '(' ,
n = ( e ? ',0' : '' ) + ')'
return i + t . x + 'px,' + t . y + 'px' + n
} ,
getScaleString : function ( t , e ) {
var i = o . DomUtil . getTranslateString ( e . add ( e . multiplyBy ( - 1 * t ) ) ) ,
n = ' scale(' + t + ') '
return i + n
} ,
setPosition : function ( t , e , i ) {
; ( t . _leaflet _pos = e ) ,
! i && o . Browser . any3d
? ( t . style [ o . DomUtil . TRANSFORM ] = o . DomUtil . getTranslateString (
e
) )
: ( ( t . style . left = e . x + 'px' ) , ( t . style . top = e . y + 'px' ) )
} ,
getPosition : function ( t ) {
return t . _leaflet _pos
}
} ) ,
( o . DomUtil . TRANSFORM = o . DomUtil . testProp ( [
'transform' ,
'WebkitTransform' ,
'OTransform' ,
'MozTransform' ,
'msTransform'
] ) ) ,
( o . DomUtil . TRANSITION = o . DomUtil . testProp ( [
'webkitTransition' ,
'transition' ,
'OTransition' ,
'MozTransition' ,
'msTransition'
] ) ) ,
( o . DomUtil . TRANSITION _END =
'webkitTransition' === o . DomUtil . TRANSITION ||
'OTransition' === o . DomUtil . TRANSITION
? o . DomUtil . TRANSITION + 'End'
: 'transitionend' ) ,
( function ( ) {
if ( 'onselectstart' in e )
o . extend ( o . DomUtil , {
disableTextSelection : function ( ) {
o . DomEvent . on ( t , 'selectstart' , o . DomEvent . preventDefault )
} ,
enableTextSelection : function ( ) {
o . DomEvent . off ( t , 'selectstart' , o . DomEvent . preventDefault )
}
} )
else {
var i = o . DomUtil . testProp ( [
'userSelect' ,
'WebkitUserSelect' ,
'OUserSelect' ,
'MozUserSelect' ,
'msUserSelect'
] )
o . extend ( o . DomUtil , {
disableTextSelection : function ( ) {
if ( i ) {
var t = e . documentElement . style
; ( this . _userSelect = t [ i ] ) , ( t [ i ] = 'none' )
}
} ,
enableTextSelection : function ( ) {
i &&
( ( e . documentElement . style [ i ] = this . _userSelect ) ,
delete this . _userSelect )
}
} )
}
o . extend ( o . DomUtil , {
disableImageDrag : function ( ) {
o . DomEvent . on ( t , 'dragstart' , o . DomEvent . preventDefault )
} ,
enableImageDrag : function ( ) {
o . DomEvent . off ( t , 'dragstart' , o . DomEvent . preventDefault )
}
} )
} ) ( ) ,
( o . LatLng = function ( t , e , n ) {
if ( ( ( t = parseFloat ( t ) ) , ( e = parseFloat ( e ) ) , isNaN ( t ) || isNaN ( e ) ) )
throw new Error ( 'Invalid LatLng object: (' + t + ', ' + e + ')' )
; ( this . lat = t ) , ( this . lng = e ) , n !== i && ( this . alt = parseFloat ( n ) )
} ) ,
o . extend ( o . LatLng , {
DEG _TO _RAD : Math . PI / 180 ,
RAD _TO _DEG : 180 / Math . PI ,
MAX _MARGIN : 1e-9
} ) ,
( o . LatLng . prototype = {
equals : function ( t ) {
if ( ! t ) return ! 1
t = o . latLng ( t )
var e = Math . max (
Math . abs ( this . lat - t . lat ) ,
Math . abs ( this . lng - t . lng )
)
return e <= o . LatLng . MAX _MARGIN
} ,
toString : function ( t ) {
return (
'LatLng(' +
o . Util . formatNum ( this . lat , t ) +
', ' +
o . Util . formatNum ( this . lng , t ) +
')'
)
} ,
distanceTo : function ( t ) {
t = o . latLng ( t )
var e = 6378137 ,
i = o . LatLng . DEG _TO _RAD ,
n = ( t . lat - this . lat ) * i ,
s = ( t . lng - this . lng ) * i ,
a = this . lat * i ,
r = t . lat * i ,
h = Math . sin ( n / 2 ) ,
l = Math . sin ( s / 2 ) ,
u = h * h + l * l * Math . cos ( a ) * Math . cos ( r )
return 2 * e * Math . atan2 ( Math . sqrt ( u ) , Math . sqrt ( 1 - u ) )
} ,
wrap : function ( t , e ) {
var i = this . lng
return (
( t = t || - 180 ) ,
( e = e || 180 ) ,
( i = ( ( i + e ) % ( e - t ) ) + ( t > i || i === e ? e : t ) ) ,
new o . LatLng ( this . lat , i )
)
}
} ) ,
( o . latLng = function ( t , e ) {
return t instanceof o . LatLng
? t
: o . Util . isArray ( t )
? 'number' == typeof t [ 0 ] || 'string' == typeof t [ 0 ]
? new o . LatLng ( t [ 0 ] , t [ 1 ] , t [ 2 ] )
: null
: t === i || null === t
? t
: 'object' == typeof t && 'lat' in t
? new o . LatLng ( t . lat , 'lng' in t ? t . lng : t . lon )
: e === i
? null
: new o . LatLng ( t , e )
} ) ,
( o . LatLngBounds = function ( t , e ) {
if ( t )
for ( var i = e ? [ t , e ] : t , n = 0 , o = i . length ; o > n ; n ++ )
this . extend ( i [ n ] )
} ) ,
( o . LatLngBounds . prototype = {
extend : function ( t ) {
if ( ! t ) return this
var e = o . latLng ( t )
return (
( t = null !== e ? e : o . latLngBounds ( t ) ) ,
t instanceof o . LatLng
? this . _southWest || this . _northEast
? ( ( this . _southWest . lat = Math . min (
t . lat ,
this . _southWest . lat
) ) ,
( this . _southWest . lng = Math . min (
t . lng ,
this . _southWest . lng
) ) ,
( this . _northEast . lat = Math . max (
t . lat ,
this . _northEast . lat
) ) ,
( this . _northEast . lng = Math . max (
t . lng ,
this . _northEast . lng
) ) )
: ( ( this . _southWest = new o . LatLng ( t . lat , t . lng ) ) ,
( this . _northEast = new o . LatLng ( t . lat , t . lng ) ) )
: t instanceof o . LatLngBounds &&
( this . extend ( t . _southWest ) , this . extend ( t . _northEast ) ) ,
this
)
} ,
pad : function ( t ) {
var e = this . _southWest ,
i = this . _northEast ,
n = Math . abs ( e . lat - i . lat ) * t ,
s = Math . abs ( e . lng - i . lng ) * t
return new o . LatLngBounds (
new o . LatLng ( e . lat - n , e . lng - s ) ,
new o . LatLng ( i . lat + n , i . lng + s )
)
} ,
getCenter : function ( ) {
return new o . LatLng (
( this . _southWest . lat + this . _northEast . lat ) / 2 ,
( this . _southWest . lng + this . _northEast . lng ) / 2
)
} ,
getSouthWest : function ( ) {
return this . _southWest
} ,
getNorthEast : function ( ) {
return this . _northEast
} ,
getNorthWest : function ( ) {
return new o . LatLng ( this . getNorth ( ) , this . getWest ( ) )
} ,
getSouthEast : function ( ) {
return new o . LatLng ( this . getSouth ( ) , this . getEast ( ) )
} ,
getWest : function ( ) {
return this . _southWest . lng
} ,
getSouth : function ( ) {
return this . _southWest . lat
} ,
getEast : function ( ) {
return this . _northEast . lng
} ,
getNorth : function ( ) {
return this . _northEast . lat
} ,
contains : function ( t ) {
t =
'number' == typeof t [ 0 ] || t instanceof o . LatLng
? o . latLng ( t )
: o . latLngBounds ( t )
var e ,
i ,
n = this . _southWest ,
s = this . _northEast
return (
t instanceof o . LatLngBounds
? ( ( e = t . getSouthWest ( ) ) , ( i = t . getNorthEast ( ) ) )
: ( e = i = t ) ,
e . lat >= n . lat &&
i . lat <= s . lat &&
e . lng >= n . lng &&
i . lng <= s . lng
)
} ,
intersects : function ( t ) {
t = o . latLngBounds ( t )
var e = this . _southWest ,
i = this . _northEast ,
n = t . getSouthWest ( ) ,
s = t . getNorthEast ( ) ,
a = s . lat >= e . lat && n . lat <= i . lat ,
r = s . lng >= e . lng && n . lng <= i . lng
return a && r
} ,
toBBoxString : function ( ) {
return [
this . getWest ( ) ,
this . getSouth ( ) ,
this . getEast ( ) ,
this . getNorth ( )
] . join ( ',' )
} ,
equals : function ( t ) {
return t
? ( ( t = o . latLngBounds ( t ) ) ,
this . _southWest . equals ( t . getSouthWest ( ) ) &&
this . _northEast . equals ( t . getNorthEast ( ) ) )
: ! 1
} ,
isValid : function ( ) {
return ! ( ! this . _southWest || ! this . _northEast )
}
} ) ,
( o . latLngBounds = function ( t , e ) {
return ! t || t instanceof o . LatLngBounds
? t
: new o . LatLngBounds ( t , e )
} ) ,
( o . Projection = { } ) ,
( o . Projection . SphericalMercator = {
MAX _LATITUDE : 85.0511287798 ,
project : function ( t ) {
var e = o . LatLng . DEG _TO _RAD ,
i = this . MAX _LATITUDE ,
n = Math . max ( Math . min ( i , t . lat ) , - i ) ,
s = t . lng * e ,
a = n * e
return (
( a = Math . log ( Math . tan ( Math . PI / 4 + a / 2 ) ) ) , new o . Point ( s , a )
)
} ,
unproject : function ( t ) {
var e = o . LatLng . RAD _TO _DEG ,
i = t . x * e ,
n = ( 2 * Math . atan ( Math . exp ( t . y ) ) - Math . PI / 2 ) * e
return new o . LatLng ( n , i )
}
} ) ,
( o . Projection . LonLat = {
project : function ( t ) {
return new o . Point ( t . lng , t . lat )
} ,
unproject : function ( t ) {
return new o . LatLng ( t . y , t . x )
}
} ) ,
( o . CRS = {
latLngToPoint : function ( t , e ) {
var i = this . projection . project ( t ) ,
n = this . scale ( e )
return this . transformation . _transform ( i , n )
} ,
pointToLatLng : function ( t , e ) {
var i = this . scale ( e ) ,
n = this . transformation . untransform ( t , i )
return this . projection . unproject ( n )
} ,
project : function ( t ) {
return this . projection . project ( t )
} ,
scale : function ( t ) {
return 256 * Math . pow ( 2 , t )
} ,
getSize : function ( t ) {
var e = this . scale ( t )
return o . point ( e , e )
}
} ) ,
( o . CRS . Simple = o . extend ( { } , o . CRS , {
projection : o . Projection . LonLat ,
transformation : new o . Transformation ( 1 , 0 , - 1 , 0 ) ,
scale : function ( t ) {
return Math . pow ( 2 , t )
}
} ) ) ,
( o . CRS . EPSG3857 = o . extend ( { } , o . CRS , {
code : 'EPSG:3857' ,
projection : o . Projection . SphericalMercator ,
transformation : new o . Transformation (
0.5 / Math . PI ,
0.5 ,
- 0.5 / Math . PI ,
0.5
) ,
project : function ( t ) {
var e = this . projection . project ( t ) ,
i = 6378137
return e . multiplyBy ( i )
}
} ) ) ,
( o . CRS . EPSG900913 = o . extend ( { } , o . CRS . EPSG3857 , {
code : 'EPSG:900913'
} ) ) ,
( o . CRS . EPSG4326 = o . extend ( { } , o . CRS , {
code : 'EPSG:4326' ,
projection : o . Projection . LonLat ,
transformation : new o . Transformation ( 1 / 360 , 0.5 , - 1 / 360 , 0.5 )
} ) ) ,
( o . Map = o . Class . extend ( {
includes : o . Mixin . Events ,
options : {
crs : o . CRS . EPSG3857 ,
fadeAnimation : o . DomUtil . TRANSITION && ! o . Browser . android23 ,
trackResize : ! 0 ,
markerZoomAnimation : o . DomUtil . TRANSITION && o . Browser . any3d
} ,
initialize : function ( t , e ) {
; ( e = o . setOptions ( this , e ) ) ,
this . _initContainer ( t ) ,
this . _initLayout ( ) ,
( this . _onResize = o . bind ( this . _onResize , this ) ) ,
this . _initEvents ( ) ,
e . maxBounds && this . setMaxBounds ( e . maxBounds ) ,
e . center &&
e . zoom !== i &&
this . setView ( o . latLng ( e . center ) , e . zoom , { reset : ! 0 } ) ,
( this . _handlers = [ ] ) ,
( this . _layers = { } ) ,
( this . _zoomBoundLayers = { } ) ,
( this . _tileLayersNum = 0 ) ,
this . callInitHooks ( ) ,
this . _addLayers ( e . layers )
} ,
setView : function ( t , e ) {
return (
( e = e === i ? this . getZoom ( ) : e ) ,
this . _resetView ( o . latLng ( t ) , this . _limitZoom ( e ) ) ,
this
)
} ,
setZoom : function ( t , e ) {
return this . _loaded
? this . setView ( this . getCenter ( ) , t , { zoom : e } )
: ( ( this . _zoom = this . _limitZoom ( t ) ) , this )
} ,
zoomIn : function ( t , e ) {
return this . setZoom ( this . _zoom + ( t || 1 ) , e )
} ,
zoomOut : function ( t , e ) {
return this . setZoom ( this . _zoom - ( t || 1 ) , e )
} ,
setZoomAround : function ( t , e , i ) {
var n = this . getZoomScale ( e ) ,
s = this . getSize ( ) . divideBy ( 2 ) ,
a = t instanceof o . Point ? t : this . latLngToContainerPoint ( t ) ,
r = a . subtract ( s ) . multiplyBy ( 1 - 1 / n ) ,
h = this . containerPointToLatLng ( s . add ( r ) )
return this . setView ( h , e , { zoom : i } )
} ,
fitBounds : function ( t , e ) {
; ( e = e || { } ) ,
( t = t . getBounds ? t . getBounds ( ) : o . latLngBounds ( t ) )
var i = o . point ( e . paddingTopLeft || e . padding || [ 0 , 0 ] ) ,
n = o . point ( e . paddingBottomRight || e . padding || [ 0 , 0 ] ) ,
s = this . getBoundsZoom ( t , ! 1 , i . add ( n ) )
s = e . maxZoom ? Math . min ( e . maxZoom , s ) : s
var a = n . subtract ( i ) . divideBy ( 2 ) ,
r = this . project ( t . getSouthWest ( ) , s ) ,
h = this . project ( t . getNorthEast ( ) , s ) ,
l = this . unproject (
r
. add ( h )
. divideBy ( 2 )
. add ( a ) ,
s
)
return this . setView ( l , s , e )
} ,
fitWorld : function ( t ) {
return this . fitBounds (
[
[ - 90 , - 180 ] ,
[ 90 , 180 ]
] ,
t
)
} ,
panTo : function ( t , e ) {
return this . setView ( t , this . _zoom , { pan : e } )
} ,
panBy : function ( t ) {
return (
this . fire ( 'movestart' ) ,
this . _rawPanBy ( o . point ( t ) ) ,
this . fire ( 'move' ) ,
this . fire ( 'moveend' )
)
} ,
setMaxBounds : function ( t ) {
return (
( t = o . latLngBounds ( t ) ) ,
( this . options . maxBounds = t ) ,
t
? ( this . _loaded && this . _panInsideMaxBounds ( ) ,
this . on ( 'moveend' , this . _panInsideMaxBounds , this ) )
: this . off ( 'moveend' , this . _panInsideMaxBounds , this )
)
} ,
panInsideBounds : function ( t , e ) {
var i = this . getCenter ( ) ,
n = this . _limitCenter ( i , this . _zoom , t )
return i . equals ( n ) ? this : this . panTo ( n , e )
} ,
addLayer : function ( t ) {
var e = o . stamp ( t )
return this . _layers [ e ]
? this
: ( ( this . _layers [ e ] = t ) ,
! t . options ||
( isNaN ( t . options . maxZoom ) && isNaN ( t . options . minZoom ) ) ||
( ( this . _zoomBoundLayers [ e ] = t ) , this . _updateZoomLevels ( ) ) ,
this . options . zoomAnimation &&
o . TileLayer &&
t instanceof o . TileLayer &&
( this . _tileLayersNum ++ ,
this . _tileLayersToLoad ++ ,
t . on ( 'load' , this . _onTileLayerLoad , this ) ) ,
this . _loaded && this . _layerAdd ( t ) ,
this )
} ,
removeLayer : function ( t ) {
var e = o . stamp ( t )
return this . _layers [ e ]
? ( this . _loaded && t . onRemove ( this ) ,
delete this . _layers [ e ] ,
this . _loaded && this . fire ( 'layerremove' , { layer : t } ) ,
this . _zoomBoundLayers [ e ] &&
( delete this . _zoomBoundLayers [ e ] , this . _updateZoomLevels ( ) ) ,
this . options . zoomAnimation &&
o . TileLayer &&
t instanceof o . TileLayer &&
( this . _tileLayersNum -- ,
this . _tileLayersToLoad -- ,
t . off ( 'load' , this . _onTileLayerLoad , this ) ) ,
this )
: this
} ,
hasLayer : function ( t ) {
return t ? o . stamp ( t ) in this . _layers : ! 1
} ,
eachLayer : function ( t , e ) {
for ( var i in this . _layers ) t . call ( e , this . _layers [ i ] )
return this
} ,
invalidateSize : function ( t ) {
if ( ! this . _loaded ) return this
t = o . extend (
{ animate : ! 1 , pan : ! 0 } ,
t === ! 0 ? { animate : ! 0 } : t
)
var e = this . getSize ( )
; ( this . _sizeChanged = ! 0 ) , ( this . _initialCenter = null )
var i = this . getSize ( ) ,
n = e . divideBy ( 2 ) . round ( ) ,
s = i . divideBy ( 2 ) . round ( ) ,
a = n . subtract ( s )
return a . x || a . y
? ( t . animate && t . pan
? this . panBy ( a )
: ( t . pan && this . _rawPanBy ( a ) ,
this . fire ( 'move' ) ,
t . debounceMoveend
? ( clearTimeout ( this . _sizeTimer ) ,
( this . _sizeTimer = setTimeout (
o . bind ( this . fire , this , 'moveend' ) ,
200
) ) )
: this . fire ( 'moveend' ) ) ,
this . fire ( 'resize' , {
oldSize : e ,
newSize : i
} ) )
: this
} ,
addHandler : function ( t , e ) {
if ( ! e ) return this
var i = ( this [ t ] = new e ( this ) )
return this . _handlers . push ( i ) , this . options [ t ] && i . enable ( ) , this
} ,
remove : function ( ) {
this . _loaded && this . fire ( 'unload' ) , this . _initEvents ( 'off' )
try {
delete this . _container . _leaflet
} catch ( t ) {
this . _container . _leaflet = i
}
return (
this . _clearPanes ( ) ,
this . _clearControlPos && this . _clearControlPos ( ) ,
this . _clearHandlers ( ) ,
this
)
} ,
getCenter : function ( ) {
return (
this . _checkIfLoaded ( ) ,
this . _initialCenter && ! this . _moved ( )
? this . _initialCenter
: this . layerPointToLatLng ( this . _getCenterLayerPoint ( ) )
)
} ,
getZoom : function ( ) {
return this . _zoom
} ,
getBounds : function ( ) {
var t = this . getPixelBounds ( ) ,
e = this . unproject ( t . getBottomLeft ( ) ) ,
i = this . unproject ( t . getTopRight ( ) )
return new o . LatLngBounds ( e , i )
} ,
getMinZoom : function ( ) {
return this . options . minZoom === i
? this . _layersMinZoom === i
? 0
: this . _layersMinZoom
: this . options . minZoom
} ,
getMaxZoom : function ( ) {
return this . options . maxZoom === i
? this . _layersMaxZoom === i
? 1 / 0
: this . _layersMaxZoom
: this . options . maxZoom
} ,
getBoundsZoom : function ( t , e , i ) {
t = o . latLngBounds ( t )
var n ,
s = this . getMinZoom ( ) - ( e ? 1 : 0 ) ,
a = this . getMaxZoom ( ) ,
r = this . getSize ( ) ,
h = t . getNorthWest ( ) ,
l = t . getSouthEast ( ) ,
u = ! 0
i = o . point ( i || [ 0 , 0 ] )
do
s ++ ,
( n = this . project ( l , s )
. subtract ( this . project ( h , s ) )
. add ( i ) ) ,
( u = e ? n . x < r . x || n . y < r . y : r . contains ( n ) )
while ( u && a >= s )
return u && e ? null : e ? s : s - 1
} ,
getSize : function ( ) {
return (
( ! this . _size || this . _sizeChanged ) &&
( ( this . _size = new o . Point (
this . _container . clientWidth ,
this . _container . clientHeight
) ) ,
( this . _sizeChanged = ! 1 ) ) ,
this . _size . clone ( )
)
} ,
getPixelBounds : function ( ) {
var t = this . _getTopLeftPoint ( )
return new o . Bounds ( t , t . add ( this . getSize ( ) ) )
} ,
getPixelOrigin : function ( ) {
return this . _checkIfLoaded ( ) , this . _initialTopLeftPoint
} ,
getPanes : function ( ) {
return this . _panes
} ,
getContainer : function ( ) {
return this . _container
} ,
getZoomScale : function ( t ) {
var e = this . options . crs
return e . scale ( t ) / e . scale ( this . _zoom )
} ,
getScaleZoom : function ( t ) {
return this . _zoom + Math . log ( t ) / Math . LN2
} ,
project : function ( t , e ) {
return (
( e = e === i ? this . _zoom : e ) ,
this . options . crs . latLngToPoint ( o . latLng ( t ) , e )
)
} ,
unproject : function ( t , e ) {
return (
( e = e === i ? this . _zoom : e ) ,
this . options . crs . pointToLatLng ( o . point ( t ) , e )
)
} ,
layerPointToLatLng : function ( t ) {
var e = o . point ( t ) . add ( this . getPixelOrigin ( ) )
return this . unproject ( e )
} ,
latLngToLayerPoint : function ( t ) {
var e = this . project ( o . latLng ( t ) ) . _round ( )
return e . _subtract ( this . getPixelOrigin ( ) )
} ,
containerPointToLayerPoint : function ( t ) {
return o . point ( t ) . subtract ( this . _getMapPanePos ( ) )
} ,
layerPointToContainerPoint : function ( t ) {
return o . point ( t ) . add ( this . _getMapPanePos ( ) )
} ,
containerPointToLatLng : function ( t ) {
var e = this . containerPointToLayerPoint ( o . point ( t ) )
return this . layerPointToLatLng ( e )
} ,
latLngToContainerPoint : function ( t ) {
return this . layerPointToContainerPoint (
this . latLngToLayerPoint ( o . latLng ( t ) )
)
} ,
mouseEventToContainerPoint : function ( t ) {
return o . DomEvent . getMousePosition ( t , this . _container )
} ,
mouseEventToLayerPoint : function ( t ) {
return this . containerPointToLayerPoint (
this . mouseEventToContainerPoint ( t )
)
} ,
mouseEventToLatLng : function ( t ) {
return this . layerPointToLatLng ( this . mouseEventToLayerPoint ( t ) )
} ,
_initContainer : function ( t ) {
var e = ( this . _container = o . DomUtil . get ( t ) )
if ( ! e ) throw new Error ( 'Map container not found.' )
if ( e . _leaflet )
throw new Error ( 'Map container is already initialized.' )
e . _leaflet = ! 0
} ,
_initLayout : function ( ) {
var t = this . _container
o . DomUtil . addClass (
t ,
'leaflet-container' +
( o . Browser . touch ? ' leaflet-touch' : '' ) +
( o . Browser . retina ? ' leaflet-retina' : '' ) +
( o . Browser . ielt9 ? ' leaflet-oldie' : '' ) +
( this . options . fadeAnimation ? ' leaflet-fade-anim' : '' )
)
var e = o . DomUtil . getStyle ( t , 'position' )
'absolute' !== e &&
'relative' !== e &&
'fixed' !== e &&
( t . style . position = 'relative' ) ,
this . _initPanes ( ) ,
this . _initControlPos && this . _initControlPos ( )
} ,
_initPanes : function ( ) {
var t = ( this . _panes = { } )
; ( this . _mapPane = t . mapPane = this . _createPane (
'leaflet-map-pane' ,
this . _container
) ) ,
( this . _tilePane = t . tilePane = this . _createPane (
'leaflet-tile-pane' ,
this . _mapPane
) ) ,
( t . objectsPane = this . _createPane (
'leaflet-objects-pane' ,
this . _mapPane
) ) ,
( t . shadowPane = this . _createPane ( 'leaflet-shadow-pane' ) ) ,
( t . overlayPane = this . _createPane ( 'leaflet-overlay-pane' ) ) ,
( t . markerPane = this . _createPane ( 'leaflet-marker-pane' ) ) ,
( t . popupPane = this . _createPane ( 'leaflet-popup-pane' ) )
var e = ' leaflet-zoom-hide'
this . options . markerZoomAnimation ||
( o . DomUtil . addClass ( t . markerPane , e ) ,
o . DomUtil . addClass ( t . shadowPane , e ) ,
o . DomUtil . addClass ( t . popupPane , e ) )
} ,
_createPane : function ( t , e ) {
return o . DomUtil . create ( 'div' , t , e || this . _panes . objectsPane )
} ,
_clearPanes : function ( ) {
this . _container . removeChild ( this . _mapPane )
} ,
_addLayers : function ( t ) {
t = t ? ( o . Util . isArray ( t ) ? t : [ t ] ) : [ ]
for ( var e = 0 , i = t . length ; i > e ; e ++ ) this . addLayer ( t [ e ] )
} ,
_resetView : function ( t , e , i , n ) {
var s = this . _zoom !== e
n || ( this . fire ( 'movestart' ) , s && this . fire ( 'zoomstart' ) ) ,
( this . _zoom = e ) ,
( this . _initialCenter = t ) ,
( this . _initialTopLeftPoint = this . _getNewTopLeftPoint ( t ) ) ,
i
? this . _initialTopLeftPoint . _add ( this . _getMapPanePos ( ) )
: o . DomUtil . setPosition ( this . _mapPane , new o . Point ( 0 , 0 ) ) ,
( this . _tileLayersToLoad = this . _tileLayersNum )
var a = ! this . _loaded
; ( this . _loaded = ! 0 ) ,
this . fire ( 'viewreset' , { hard : ! i } ) ,
a && ( this . fire ( 'load' ) , this . eachLayer ( this . _layerAdd , this ) ) ,
this . fire ( 'move' ) ,
( s || n ) && this . fire ( 'zoomend' ) ,
this . fire ( 'moveend' , { hard : ! i } )
} ,
_rawPanBy : function ( t ) {
o . DomUtil . setPosition (
this . _mapPane ,
this . _getMapPanePos ( ) . subtract ( t )
)
} ,
_getZoomSpan : function ( ) {
return this . getMaxZoom ( ) - this . getMinZoom ( )
} ,
_updateZoomLevels : function ( ) {
var t ,
e = 1 / 0 ,
n = - ( 1 / 0 ) ,
o = this . _getZoomSpan ( )
for ( t in this . _zoomBoundLayers ) {
var s = this . _zoomBoundLayers [ t ]
isNaN ( s . options . minZoom ) || ( e = Math . min ( e , s . options . minZoom ) ) ,
isNaN ( s . options . maxZoom ) || ( n = Math . max ( n , s . options . maxZoom ) )
}
t === i
? ( this . _layersMaxZoom = this . _layersMinZoom = i )
: ( ( this . _layersMaxZoom = n ) , ( this . _layersMinZoom = e ) ) ,
o !== this . _getZoomSpan ( ) && this . fire ( 'zoomlevelschange' )
} ,
_panInsideMaxBounds : function ( ) {
this . panInsideBounds ( this . options . maxBounds )
} ,
_checkIfLoaded : function ( ) {
if ( ! this . _loaded ) throw new Error ( 'Set map center and zoom first.' )
} ,
_initEvents : function ( e ) {
if ( o . DomEvent ) {
; ( e = e || 'on' ) ,
o . DomEvent [ e ] (
this . _container ,
'click' ,
this . _onMouseClick ,
this
)
var i ,
n ,
s = [
'dblclick' ,
'mousedown' ,
'mouseup' ,
'mouseenter' ,
'mouseleave' ,
'mousemove' ,
'contextmenu'
]
for ( i = 0 , n = s . length ; n > i ; i ++ )
o . DomEvent [ e ] ( this . _container , s [ i ] , this . _fireMouseEvent , this )
this . options . trackResize &&
o . DomEvent [ e ] ( t , 'resize' , this . _onResize , this )
}
} ,
_onResize : function ( ) {
o . Util . cancelAnimFrame ( this . _resizeRequest ) ,
( this . _resizeRequest = o . Util . requestAnimFrame (
function ( ) {
this . invalidateSize ( { debounceMoveend : ! 0 } )
} ,
this ,
! 1 ,
this . _container
) )
} ,
_onMouseClick : function ( t ) {
! this . _loaded ||
( ! t . _simulated &&
( ( this . dragging && this . dragging . moved ( ) ) ||
( this . boxZoom && this . boxZoom . moved ( ) ) ) ) ||
o . DomEvent . _skipped ( t ) ||
( this . fire ( 'preclick' ) , this . _fireMouseEvent ( t ) )
} ,
_fireMouseEvent : function ( t ) {
if ( this . _loaded && ! o . DomEvent . _skipped ( t ) ) {
var e = t . type
if (
( ( e =
'mouseenter' === e
? 'mouseover'
: 'mouseleave' === e
? 'mouseout'
: e ) ,
this . hasEventListeners ( e ) )
) {
'contextmenu' === e && o . DomEvent . preventDefault ( t )
var i = this . mouseEventToContainerPoint ( t ) ,
n = this . containerPointToLayerPoint ( i ) ,
s = this . layerPointToLatLng ( n )
this . fire ( e , {
latlng : s ,
layerPoint : n ,
containerPoint : i ,
originalEvent : t
} )
}
}
} ,
_onTileLayerLoad : function ( ) {
this . _tileLayersToLoad -- ,
this . _tileLayersNum &&
! this . _tileLayersToLoad &&
this . fire ( 'tilelayersload' )
} ,
_clearHandlers : function ( ) {
for ( var t = 0 , e = this . _handlers . length ; e > t ; t ++ )
this . _handlers [ t ] . disable ( )
} ,
whenReady : function ( t , e ) {
return (
this . _loaded ? t . call ( e || this , this ) : this . on ( 'load' , t , e ) ,
this
)
} ,
_layerAdd : function ( t ) {
t . onAdd ( this ) , this . fire ( 'layeradd' , { layer : t } )
} ,
_getMapPanePos : function ( ) {
return o . DomUtil . getPosition ( this . _mapPane )
} ,
_moved : function ( ) {
var t = this . _getMapPanePos ( )
return t && ! t . equals ( [ 0 , 0 ] )
} ,
_getTopLeftPoint : function ( ) {
return this . getPixelOrigin ( ) . subtract ( this . _getMapPanePos ( ) )
} ,
_getNewTopLeftPoint : function ( t , e ) {
var i = this . getSize ( ) . _divideBy ( 2 )
return this . project ( t , e )
. _subtract ( i )
. _round ( )
} ,
_latLngToNewLayerPoint : function ( t , e , i ) {
var n = this . _getNewTopLeftPoint ( i , e ) . add ( this . _getMapPanePos ( ) )
return this . project ( t , e ) . _subtract ( n )
} ,
_getCenterLayerPoint : function ( ) {
return this . containerPointToLayerPoint ( this . getSize ( ) . _divideBy ( 2 ) )
} ,
_getCenterOffset : function ( t ) {
return this . latLngToLayerPoint ( t ) . subtract (
this . _getCenterLayerPoint ( )
)
} ,
_limitCenter : function ( t , e , i ) {
if ( ! i ) return t
var n = this . project ( t , e ) ,
s = this . getSize ( ) . divideBy ( 2 ) ,
a = new o . Bounds ( n . subtract ( s ) , n . add ( s ) ) ,
r = this . _getBoundsOffset ( a , i , e )
return this . unproject ( n . add ( r ) , e )
} ,
_limitOffset : function ( t , e ) {
if ( ! e ) return t
var i = this . getPixelBounds ( ) ,
n = new o . Bounds ( i . min . add ( t ) , i . max . add ( t ) )
return t . add ( this . _getBoundsOffset ( n , e ) )
} ,
_getBoundsOffset : function ( t , e , i ) {
var n = this . project ( e . getNorthWest ( ) , i ) . subtract ( t . min ) ,
s = this . project ( e . getSouthEast ( ) , i ) . subtract ( t . max ) ,
a = this . _rebound ( n . x , - s . x ) ,
r = this . _rebound ( n . y , - s . y )
return new o . Point ( a , r )
} ,
_rebound : function ( t , e ) {
return t + e > 0
? Math . round ( t - e ) / 2
: Math . max ( 0 , Math . ceil ( t ) ) - Math . max ( 0 , Math . floor ( e ) )
} ,
_limitZoom : function ( t ) {
var e = this . getMinZoom ( ) ,
i = this . getMaxZoom ( )
return Math . max ( e , Math . min ( i , t ) )
}
} ) ) ,
( o . map = function ( t , e ) {
return new o . Map ( t , e )
} ) ,
( o . Projection . Mercator = {
MAX _LATITUDE : 85.0840591556 ,
R _MINOR : 6356752.314245179 ,
R _MAJOR : 6378137 ,
project : function ( t ) {
var e = o . LatLng . DEG _TO _RAD ,
i = this . MAX _LATITUDE ,
n = Math . max ( Math . min ( i , t . lat ) , - i ) ,
s = this . R _MAJOR ,
a = this . R _MINOR ,
r = t . lng * e * s ,
h = n * e ,
l = a / s ,
u = Math . sqrt ( 1 - l * l ) ,
c = u * Math . sin ( h )
c = Math . pow ( ( 1 - c ) / ( 1 + c ) , 0.5 * u )
var d = Math . tan ( 0.5 * ( 0.5 * Math . PI - h ) ) / c
return ( h = - s * Math . log ( d ) ) , new o . Point ( r , h )
} ,
unproject : function ( t ) {
for (
var e ,
i = o . LatLng . RAD _TO _DEG ,
n = this . R _MAJOR ,
s = this . R _MINOR ,
a = ( t . x * i ) / n ,
r = s / n ,
h = Math . sqrt ( 1 - r * r ) ,
l = Math . exp ( - t . y / n ) ,
u = Math . PI / 2 - 2 * Math . atan ( l ) ,
c = 15 ,
d = 1e-7 ,
p = c ,
_ = 0.1 ;
Math . abs ( _ ) > d && -- p > 0 ;
)
( e = h * Math . sin ( u ) ) ,
( _ =
Math . PI / 2 -
2 * Math . atan ( l * Math . pow ( ( 1 - e ) / ( 1 + e ) , 0.5 * h ) ) -
u ) ,
( u += _ )
return new o . LatLng ( u * i , a )
}
} ) ,
( o . CRS . EPSG3395 = o . extend ( { } , o . CRS , {
code : 'EPSG:3395' ,
projection : o . Projection . Mercator ,
transformation : ( function ( ) {
var t = o . Projection . Mercator ,
e = t . R _MAJOR ,
i = 0.5 / ( Math . PI * e )
return new o . Transformation ( i , 0.5 , - i , 0.5 )
} ) ( )
} ) ) ,
( o . TileLayer = o . Class . extend ( {
includes : o . Mixin . Events ,
options : {
minZoom : 0 ,
maxZoom : 18 ,
tileSize : 256 ,
subdomains : 'abc' ,
errorTileUrl : '' ,
attribution : '' ,
zoomOffset : 0 ,
opacity : 1 ,
unloadInvisibleTiles : o . Browser . mobile ,
updateWhenIdle : o . Browser . mobile
} ,
initialize : function ( t , e ) {
; ( e = o . setOptions ( this , e ) ) ,
e . detectRetina &&
o . Browser . retina &&
e . maxZoom > 0 &&
( ( e . tileSize = Math . floor ( e . tileSize / 2 ) ) ,
e . zoomOffset ++ ,
e . minZoom > 0 && e . minZoom -- ,
this . options . maxZoom -- ) ,
e . bounds && ( e . bounds = o . latLngBounds ( e . bounds ) ) ,
( this . _url = t )
var i = this . options . subdomains
'string' == typeof i && ( this . options . subdomains = i . split ( '' ) )
} ,
onAdd : function ( t ) {
; ( this . _map = t ) ,
( this . _animated = t . _zoomAnimated ) ,
this . _initContainer ( ) ,
t . on (
{
viewreset : this . _reset ,
moveend : this . _update
} ,
this
) ,
this . _animated &&
t . on (
{
zoomanim : this . _animateZoom ,
zoomend : this . _endZoomAnim
} ,
this
) ,
this . options . updateWhenIdle ||
( ( this . _limitedUpdate = o . Util . limitExecByInterval (
this . _update ,
150 ,
this
) ) ,
t . on ( 'move' , this . _limitedUpdate , this ) ) ,
this . _reset ( ) ,
this . _update ( )
} ,
addTo : function ( t ) {
return t . addLayer ( this ) , this
} ,
onRemove : function ( t ) {
this . _container . parentNode . removeChild ( this . _container ) ,
t . off (
{
viewreset : this . _reset ,
moveend : this . _update
} ,
this
) ,
this . _animated &&
t . off (
{
zoomanim : this . _animateZoom ,
zoomend : this . _endZoomAnim
} ,
this
) ,
this . options . updateWhenIdle ||
t . off ( 'move' , this . _limitedUpdate , this ) ,
( this . _container = null ) ,
( this . _map = null )
} ,
bringToFront : function ( ) {
var t = this . _map . _panes . tilePane
return (
this . _container &&
( t . appendChild ( this . _container ) ,
this . _setAutoZIndex ( t , Math . max ) ) ,
this
)
} ,
bringToBack : function ( ) {
var t = this . _map . _panes . tilePane
return (
this . _container &&
( t . insertBefore ( this . _container , t . firstChild ) ,
this . _setAutoZIndex ( t , Math . min ) ) ,
this
)
} ,
getAttribution : function ( ) {
return this . options . attribution
} ,
getContainer : function ( ) {
return this . _container
} ,
setOpacity : function ( t ) {
return (
( this . options . opacity = t ) ,
this . _map && this . _updateOpacity ( ) ,
this
)
} ,
setZIndex : function ( t ) {
return ( this . options . zIndex = t ) , this . _updateZIndex ( ) , this
} ,
setUrl : function ( t , e ) {
return ( this . _url = t ) , e || this . redraw ( ) , this
} ,
redraw : function ( ) {
return (
this . _map && ( this . _reset ( { hard : ! 0 } ) , this . _update ( ) ) , this
)
} ,
_updateZIndex : function ( ) {
this . _container &&
this . options . zIndex !== i &&
( this . _container . style . zIndex = this . options . zIndex )
} ,
_setAutoZIndex : function ( t , e ) {
var i ,
n ,
o ,
s = t . children ,
a = - e ( 1 / 0 , - ( 1 / 0 ) )
for ( n = 0 , o = s . length ; o > n ; n ++ )
s [ n ] !== this . _container &&
( ( i = parseInt ( s [ n ] . style . zIndex , 10 ) ) ,
isNaN ( i ) || ( a = e ( a , i ) ) )
this . options . zIndex = this . _container . style . zIndex =
( isFinite ( a ) ? a : 0 ) + e ( 1 , - 1 )
} ,
_updateOpacity : function ( ) {
var t ,
e = this . _tiles
if ( o . Browser . ielt9 )
for ( t in e ) o . DomUtil . setOpacity ( e [ t ] , this . options . opacity )
else o . DomUtil . setOpacity ( this . _container , this . options . opacity )
} ,
_initContainer : function ( ) {
var t = this . _map . _panes . tilePane
if ( ! this . _container ) {
if (
( ( this . _container = o . DomUtil . create ( 'div' , 'leaflet-layer' ) ) ,
this . _updateZIndex ( ) ,
this . _animated )
) {
var e = 'leaflet-tile-container'
; ( this . _bgBuffer = o . DomUtil . create ( 'div' , e , this . _container ) ) ,
( this . _tileContainer = o . DomUtil . create (
'div' ,
e ,
this . _container
) )
} else this . _tileContainer = this . _container
t . appendChild ( this . _container ) ,
this . options . opacity < 1 && this . _updateOpacity ( )
}
} ,
_reset : function ( t ) {
for ( var e in this . _tiles )
this . fire ( 'tileunload' , { tile : this . _tiles [ e ] } )
; ( this . _tiles = { } ) ,
( this . _tilesToLoad = 0 ) ,
this . options . reuseTiles && ( this . _unusedTiles = [ ] ) ,
( this . _tileContainer . innerHTML = '' ) ,
this . _animated && t && t . hard && this . _clearBgBuffer ( ) ,
this . _initContainer ( )
} ,
_getTileSize : function ( ) {
var t = this . _map ,
e = t . getZoom ( ) + this . options . zoomOffset ,
i = this . options . maxNativeZoom ,
n = this . options . tileSize
return (
i &&
e > i &&
( n = Math . round ( ( t . getZoomScale ( e ) / t . getZoomScale ( i ) ) * n ) ) ,
n
)
} ,
_update : function ( ) {
if ( this . _map ) {
var t = this . _map ,
e = t . getPixelBounds ( ) ,
i = t . getZoom ( ) ,
n = this . _getTileSize ( )
if ( ! ( i > this . options . maxZoom || i < this . options . minZoom ) ) {
var s = o . bounds (
e . min . divideBy ( n ) . _floor ( ) ,
e . max . divideBy ( n ) . _floor ( )
)
this . _addTilesFromCenterOut ( s ) ,
( this . options . unloadInvisibleTiles ||
this . options . reuseTiles ) &&
this . _removeOtherTiles ( s )
}
}
} ,
_addTilesFromCenterOut : function ( t ) {
var i ,
n ,
s ,
a = [ ] ,
r = t . getCenter ( )
for ( i = t . min . y ; i <= t . max . y ; i ++ )
for ( n = t . min . x ; n <= t . max . x ; n ++ )
( s = new o . Point ( n , i ) ) ,
this . _tileShouldBeLoaded ( s ) && a . push ( s )
var h = a . length
if ( 0 !== h ) {
a . sort ( function ( t , e ) {
return t . distanceTo ( r ) - e . distanceTo ( r )
} )
var l = e . createDocumentFragment ( )
for (
this . _tilesToLoad || this . fire ( 'loading' ) ,
this . _tilesToLoad += h ,
n = 0 ;
h > n ;
n ++
)
this . _addTile ( a [ n ] , l )
this . _tileContainer . appendChild ( l )
}
} ,
_tileShouldBeLoaded : function ( t ) {
if ( t . x + ':' + t . y in this . _tiles ) return ! 1
var e = this . options
if ( ! e . continuousWorld ) {
var i = this . _getWrapTileNum ( )
if (
( e . noWrap && ( t . x < 0 || t . x >= i . x ) ) ||
t . y < 0 ||
t . y >= i . y
)
return ! 1
}
if ( e . bounds ) {
var n = this . _getTileSize ( ) ,
o = t . multiplyBy ( n ) ,
s = o . add ( [ n , n ] ) ,
a = this . _map . unproject ( o ) ,
r = this . _map . unproject ( s )
if (
( e . continuousWorld ||
e . noWrap ||
( ( a = a . wrap ( ) ) , ( r = r . wrap ( ) ) ) ,
! e . bounds . intersects ( [ a , r ] ) )
)
return ! 1
}
return ! 0
} ,
_removeOtherTiles : function ( t ) {
var e , i , n , o
for ( o in this . _tiles )
( e = o . split ( ':' ) ) ,
( i = parseInt ( e [ 0 ] , 10 ) ) ,
( n = parseInt ( e [ 1 ] , 10 ) ) ,
( i < t . min . x || i > t . max . x || n < t . min . y || n > t . max . y ) &&
this . _removeTile ( o )
} ,
_removeTile : function ( t ) {
var e = this . _tiles [ t ]
this . fire ( 'tileunload' , {
tile : e ,
url : e . src
} ) ,
this . options . reuseTiles
? ( o . DomUtil . removeClass ( e , 'leaflet-tile-loaded' ) ,
this . _unusedTiles . push ( e ) )
: e . parentNode === this . _tileContainer &&
this . _tileContainer . removeChild ( e ) ,
o . Browser . android ||
( ( e . onload = null ) , ( e . src = o . Util . emptyImageUrl ) ) ,
delete this . _tiles [ t ]
} ,
_addTile : function ( t , e ) {
var i = this . _getTilePos ( t ) ,
n = this . _getTile ( )
o . DomUtil . setPosition ( n , i , o . Browser . chrome ) ,
( this . _tiles [ t . x + ':' + t . y ] = n ) ,
this . _loadTile ( n , t ) ,
n . parentNode !== this . _tileContainer && e . appendChild ( n )
} ,
_getZoomForUrl : function ( ) {
var t = this . options ,
e = this . _map . getZoom ( )
return (
t . zoomReverse && ( e = t . maxZoom - e ) ,
( e += t . zoomOffset ) ,
t . maxNativeZoom ? Math . min ( e , t . maxNativeZoom ) : e
)
} ,
_getTilePos : function ( t ) {
var e = this . _map . getPixelOrigin ( ) ,
i = this . _getTileSize ( )
return t . multiplyBy ( i ) . subtract ( e )
} ,
getTileUrl : function ( t ) {
return o . Util . template (
this . _url ,
o . extend (
{ s : this . _getSubdomain ( t ) , z : t . z , x : t . x , y : t . y } ,
this . options
)
)
} ,
_getWrapTileNum : function ( ) {
var t = this . _map . options . crs ,
e = t . getSize ( this . _map . getZoom ( ) )
return e . divideBy ( this . _getTileSize ( ) ) . _floor ( )
} ,
_adjustTilePoint : function ( t ) {
var e = this . _getWrapTileNum ( )
this . options . continuousWorld ||
this . options . noWrap ||
( t . x = ( ( t . x % e . x ) + e . x ) % e . x ) ,
this . options . tms && ( t . y = e . y - t . y - 1 ) ,
( t . z = this . _getZoomForUrl ( ) )
} ,
_getSubdomain : function ( t ) {
var e = Math . abs ( t . x + t . y ) % this . options . subdomains . length
return this . options . subdomains [ e ]
} ,
_getTile : function ( ) {
if ( this . options . reuseTiles && this . _unusedTiles . length > 0 ) {
var t = this . _unusedTiles . pop ( )
return this . _resetTile ( t ) , t
}
return this . _createTile ( )
} ,
_resetTile : function ( ) { } ,
_createTile : function ( ) {
var t = o . DomUtil . create ( 'img' , 'leaflet-tile' )
return (
( t . style . width = t . style . height = this . _getTileSize ( ) + 'px' ) ,
( t . galleryimg = 'no' ) ,
( t . onselectstart = t . onmousemove = o . Util . falseFn ) ,
o . Browser . ielt9 &&
this . options . opacity !== i &&
o . DomUtil . setOpacity ( t , this . options . opacity ) ,
o . Browser . mobileWebkit3d &&
( t . style . WebkitBackfaceVisibility = 'hidden' ) ,
t
)
} ,
_loadTile : function ( t , e ) {
; ( t . _layer = this ) ,
( t . onload = this . _tileOnLoad ) ,
( t . onerror = this . _tileOnError ) ,
this . _adjustTilePoint ( e ) ,
( t . src = this . getTileUrl ( e ) ) ,
this . fire ( 'tileloadstart' , {
tile : t ,
url : t . src
} )
} ,
_tileLoaded : function ( ) {
this . _tilesToLoad -- ,
this . _animated &&
o . DomUtil . addClass (
this . _tileContainer ,
'leaflet-zoom-animated'
) ,
this . _tilesToLoad ||
( this . fire ( 'load' ) ,
this . _animated &&
( clearTimeout ( this . _clearBgBufferTimer ) ,
( this . _clearBgBufferTimer = setTimeout (
o . bind ( this . _clearBgBuffer , this ) ,
500
) ) ) )
} ,
_tileOnLoad : function ( ) {
var t = this . _layer
this . src !== o . Util . emptyImageUrl &&
( o . DomUtil . addClass ( this , 'leaflet-tile-loaded' ) ,
t . fire ( 'tileload' , {
tile : this ,
url : this . src
} ) ) ,
t . _tileLoaded ( )
} ,
_tileOnError : function ( ) {
var t = this . _layer
t . fire ( 'tileerror' , { tile : this , url : this . src } )
var e = t . options . errorTileUrl
e && ( this . src = e ) , t . _tileLoaded ( )
}
} ) ) ,
( o . tileLayer = function ( t , e ) {
return new o . TileLayer ( t , e )
} ) ,
( o . TileLayer . WMS = o . TileLayer . extend ( {
defaultWmsParams : {
service : 'WMS' ,
request : 'GetMap' ,
version : '1.1.1' ,
layers : '' ,
styles : '' ,
format : 'image/jpeg' ,
transparent : ! 1
} ,
initialize : function ( t , e ) {
this . _url = t
var i = o . extend ( { } , this . defaultWmsParams ) ,
n = e . tileSize || this . options . tileSize
e . detectRetina && o . Browser . retina
? ( i . width = i . height = 2 * n )
: ( i . width = i . height = n )
for ( var s in e )
this . options . hasOwnProperty ( s ) || 'crs' === s || ( i [ s ] = e [ s ] )
; ( this . wmsParams = i ) , o . setOptions ( this , e )
} ,
onAdd : function ( t ) {
; ( this . _crs = this . options . crs || t . options . crs ) ,
( this . _wmsVersion = parseFloat ( this . wmsParams . version ) )
var e = this . _wmsVersion >= 1.3 ? 'crs' : 'srs'
; ( this . wmsParams [ e ] = this . _crs . code ) ,
o . TileLayer . prototype . onAdd . call ( this , t )
} ,
getTileUrl : function ( t ) {
var e = this . _map ,
i = this . options . tileSize ,
n = t . multiplyBy ( i ) ,
s = n . add ( [ i , i ] ) ,
a = this . _crs . project ( e . unproject ( n , t . z ) ) ,
r = this . _crs . project ( e . unproject ( s , t . z ) ) ,
h =
this . _wmsVersion >= 1.3 && this . _crs === o . CRS . EPSG4326
? [ r . y , a . x , a . y , r . x ] . join ( ',' )
: [ a . x , r . y , r . x , a . y ] . join ( ',' ) ,
l = o . Util . template ( this . _url , { s : this . _getSubdomain ( t ) } )
return (
l + o . Util . getParamString ( this . wmsParams , l , ! 0 ) + '&BBOX=' + h
)
} ,
setParams : function ( t , e ) {
return o . extend ( this . wmsParams , t ) , e || this . redraw ( ) , this
}
} ) ) ,
( o . tileLayer . wms = function ( t , e ) {
return new o . TileLayer . WMS ( t , e )
} ) ,
( o . TileLayer . Canvas = o . TileLayer . extend ( {
options : { async : ! 1 } ,
initialize : function ( t ) {
o . setOptions ( this , t )
} ,
redraw : function ( ) {
this . _map && ( this . _reset ( { hard : ! 0 } ) , this . _update ( ) )
for ( var t in this . _tiles ) this . _redrawTile ( this . _tiles [ t ] )
return this
} ,
_redrawTile : function ( t ) {
this . drawTile ( t , t . _tilePoint , this . _map . _zoom )
} ,
_createTile : function ( ) {
var t = o . DomUtil . create ( 'canvas' , 'leaflet-tile' )
return (
( t . width = t . height = this . options . tileSize ) ,
( t . onselectstart = t . onmousemove = o . Util . falseFn ) ,
t
)
} ,
_loadTile : function ( t , e ) {
; ( t . _layer = this ) ,
( t . _tilePoint = e ) ,
this . _redrawTile ( t ) ,
this . options . async || this . tileDrawn ( t )
} ,
drawTile : function ( ) { } ,
tileDrawn : function ( t ) {
this . _tileOnLoad . call ( t )
}
} ) ) ,
( o . tileLayer . canvas = function ( t ) {
return new o . TileLayer . Canvas ( t )
} ) ,
( o . ImageOverlay = o . Class . extend ( {
includes : o . Mixin . Events ,
options : { opacity : 1 } ,
initialize : function ( t , e , i ) {
; ( this . _url = t ) ,
( this . _bounds = o . latLngBounds ( e ) ) ,
o . setOptions ( this , i )
} ,
onAdd : function ( t ) {
; ( this . _map = t ) ,
this . _image || this . _initImage ( ) ,
t . _panes . overlayPane . appendChild ( this . _image ) ,
t . on ( 'viewreset' , this . _reset , this ) ,
t . options . zoomAnimation &&
o . Browser . any3d &&
t . on ( 'zoomanim' , this . _animateZoom , this ) ,
this . _reset ( )
} ,
onRemove : function ( t ) {
t . getPanes ( ) . overlayPane . removeChild ( this . _image ) ,
t . off ( 'viewreset' , this . _reset , this ) ,
t . options . zoomAnimation &&
t . off ( 'zoomanim' , this . _animateZoom , this )
} ,
addTo : function ( t ) {
return t . addLayer ( this ) , this
} ,
setOpacity : function ( t ) {
return ( this . options . opacity = t ) , this . _updateOpacity ( ) , this
} ,
bringToFront : function ( ) {
return (
this . _image &&
this . _map . _panes . overlayPane . appendChild ( this . _image ) ,
this
)
} ,
bringToBack : function ( ) {
var t = this . _map . _panes . overlayPane
return (
this . _image && t . insertBefore ( this . _image , t . firstChild ) , this
)
} ,
setUrl : function ( t ) {
; ( this . _url = t ) , ( this . _image . src = this . _url )
} ,
getAttribution : function ( ) {
return this . options . attribution
} ,
_initImage : function ( ) {
; ( this . _image = o . DomUtil . create ( 'img' , 'leaflet-image-layer' ) ) ,
this . _map . options . zoomAnimation && o . Browser . any3d
? o . DomUtil . addClass ( this . _image , 'leaflet-zoom-animated' )
: o . DomUtil . addClass ( this . _image , 'leaflet-zoom-hide' ) ,
this . _updateOpacity ( ) ,
o . extend ( this . _image , {
galleryimg : 'no' ,
onselectstart : o . Util . falseFn ,
onmousemove : o . Util . falseFn ,
onload : o . bind ( this . _onImageLoad , this ) ,
src : this . _url
} )
} ,
_animateZoom : function ( t ) {
var e = this . _map ,
i = this . _image ,
n = e . getZoomScale ( t . zoom ) ,
s = this . _bounds . getNorthWest ( ) ,
a = this . _bounds . getSouthEast ( ) ,
r = e . _latLngToNewLayerPoint ( s , t . zoom , t . center ) ,
h = e . _latLngToNewLayerPoint ( a , t . zoom , t . center ) . _subtract ( r ) ,
l = r . _add ( h . _multiplyBy ( 0.5 * ( 1 - 1 / n ) ) )
i . style [ o . DomUtil . TRANSFORM ] =
o . DomUtil . getTranslateString ( l ) + ' scale(' + n + ') '
} ,
_reset : function ( ) {
var t = this . _image ,
e = this . _map . latLngToLayerPoint ( this . _bounds . getNorthWest ( ) ) ,
i = this . _map
. latLngToLayerPoint ( this . _bounds . getSouthEast ( ) )
. _subtract ( e )
o . DomUtil . setPosition ( t , e ) ,
( t . style . width = i . x + 'px' ) ,
( t . style . height = i . y + 'px' )
} ,
_onImageLoad : function ( ) {
this . fire ( 'load' )
} ,
_updateOpacity : function ( ) {
o . DomUtil . setOpacity ( this . _image , this . options . opacity )
}
} ) ) ,
( o . imageOverlay = function ( t , e , i ) {
return new o . ImageOverlay ( t , e , i )
} ) ,
( o . Icon = o . Class . extend ( {
options : { className : '' } ,
initialize : function ( t ) {
o . setOptions ( this , t )
} ,
createIcon : function ( t ) {
return this . _createIcon ( 'icon' , t )
} ,
createShadow : function ( t ) {
return this . _createIcon ( 'shadow' , t )
} ,
_createIcon : function ( t , e ) {
var i = this . _getIconUrl ( t )
if ( ! i ) {
if ( 'icon' === t )
throw new Error (
'iconUrl not set in Icon options (see the docs).'
)
return null
}
var n
return (
( n =
e && 'IMG' === e . tagName
? this . _createImg ( i , e )
: this . _createImg ( i ) ) ,
this . _setIconStyles ( n , t ) ,
n
)
} ,
_setIconStyles : function ( t , e ) {
var i ,
n = this . options ,
s = o . point ( n [ e + 'Size' ] )
; ( i =
'shadow' === e
? o . point ( n . shadowAnchor || n . iconAnchor )
: o . point ( n . iconAnchor ) ) ,
! i && s && ( i = s . divideBy ( 2 , ! 0 ) ) ,
( t . className = 'leaflet-marker-' + e + ' ' + n . className ) ,
i &&
( ( t . style . marginLeft = - i . x + 'px' ) ,
( t . style . marginTop = - i . y + 'px' ) ) ,
s && ( ( t . style . width = s . x + 'px' ) , ( t . style . height = s . y + 'px' ) )
} ,
_createImg : function ( t , i ) {
return ( i = i || e . createElement ( 'img' ) ) , ( i . src = t ) , i
} ,
_getIconUrl : function ( t ) {
return o . Browser . retina && this . options [ t + 'RetinaUrl' ]
? this . options [ t + 'RetinaUrl' ]
: this . options [ t + 'Url' ]
}
} ) ) ,
( o . icon = function ( t ) {
return new o . Icon ( t )
} ) ,
( o . Icon . Default = o . Icon . extend ( {
options : {
iconSize : [ 25 , 41 ] ,
iconAnchor : [ 12 , 41 ] ,
popupAnchor : [ 1 , - 34 ] ,
shadowSize : [ 41 , 41 ]
} ,
_getIconUrl : function ( t ) {
var e = t + 'Url'
if ( this . options [ e ] ) return this . options [ e ]
o . Browser . retina && 'icon' === t && ( t += '-2x' )
var i = o . Icon . Default . imagePath
if ( ! i )
throw new Error (
"Couldn't autodetect L.Icon.Default.imagePath, set it manually."
)
return i + '/marker-' + t + '.png'
}
} ) ) ,
( o . Icon . Default . imagePath = ( function ( ) {
var t ,
i ,
n ,
o ,
s ,
a = e . getElementsByTagName ( 'script' ) ,
r = /[\/^]leaflet[\-\._]?([\w\-\._]*)\.js\??/
for ( t = 0 , i = a . length ; i > t ; t ++ )
if ( ( ( n = a [ t ] . src ) , ( o = n . match ( r ) ) ) )
return ( s = n . split ( r ) [ 0 ] ) , ( s ? s + '/' : '' ) + 'images'
} ) ( ) ) ,
( o . Marker = o . Class . extend ( {
includes : o . Mixin . Events ,
options : {
icon : new o . Icon . Default ( ) ,
title : '' ,
alt : '' ,
clickable : ! 0 ,
draggable : ! 1 ,
keyboard : ! 0 ,
zIndexOffset : 0 ,
opacity : 1 ,
riseOnHover : ! 1 ,
riseOffset : 250
} ,
initialize : function ( t , e ) {
o . setOptions ( this , e ) , ( this . _latlng = o . latLng ( t ) )
} ,
onAdd : function ( t ) {
; ( this . _map = t ) ,
t . on ( 'viewreset' , this . update , this ) ,
this . _initIcon ( ) ,
this . update ( ) ,
this . fire ( 'add' ) ,
t . options . zoomAnimation &&
t . options . markerZoomAnimation &&
t . on ( 'zoomanim' , this . _animateZoom , this )
} ,
addTo : function ( t ) {
return t . addLayer ( this ) , this
} ,
onRemove : function ( t ) {
this . dragging && this . dragging . disable ( ) ,
this . _removeIcon ( ) ,
this . _removeShadow ( ) ,
this . fire ( 'remove' ) ,
t . off (
{
viewreset : this . update ,
zoomanim : this . _animateZoom
} ,
this
) ,
( this . _map = null )
} ,
getLatLng : function ( ) {
return this . _latlng
} ,
setLatLng : function ( t ) {
return (
( this . _latlng = o . latLng ( t ) ) ,
this . update ( ) ,
this . fire ( 'move' , { latlng : this . _latlng } )
)
} ,
setZIndexOffset : function ( t ) {
return ( this . options . zIndexOffset = t ) , this . update ( ) , this
} ,
setIcon : function ( t ) {
return (
( this . options . icon = t ) ,
this . _map && ( this . _initIcon ( ) , this . update ( ) ) ,
this . _popup && this . bindPopup ( this . _popup ) ,
this
)
} ,
update : function ( ) {
return (
this . _icon &&
this . _setPos (
this . _map . latLngToLayerPoint ( this . _latlng ) . round ( )
) ,
this
)
} ,
_initIcon : function ( ) {
var t = this . options ,
e = this . _map ,
i = e . options . zoomAnimation && e . options . markerZoomAnimation ,
n = i ? 'leaflet-zoom-animated' : 'leaflet-zoom-hide' ,
s = t . icon . createIcon ( this . _icon ) ,
a = ! 1
s !== this . _icon &&
( this . _icon && this . _removeIcon ( ) ,
( a = ! 0 ) ,
t . title && ( s . title = t . title ) ,
t . alt && ( s . alt = t . alt ) ) ,
o . DomUtil . addClass ( s , n ) ,
t . keyboard && ( s . tabIndex = '0' ) ,
( this . _icon = s ) ,
this . _initInteraction ( ) ,
t . riseOnHover &&
o . DomEvent . on ( s , 'mouseover' , this . _bringToFront , this ) . on (
s ,
'mouseout' ,
this . _resetZIndex ,
this
)
var r = t . icon . createShadow ( this . _shadow ) ,
h = ! 1
r !== this . _shadow && ( this . _removeShadow ( ) , ( h = ! 0 ) ) ,
r && o . DomUtil . addClass ( r , n ) ,
( this . _shadow = r ) ,
t . opacity < 1 && this . _updateOpacity ( )
var l = this . _map . _panes
a && l . markerPane . appendChild ( this . _icon ) ,
r && h && l . shadowPane . appendChild ( this . _shadow )
} ,
_removeIcon : function ( ) {
this . options . riseOnHover &&
o . DomEvent . off ( this . _icon , 'mouseover' , this . _bringToFront ) . off (
this . _icon ,
'mouseout' ,
this . _resetZIndex
) ,
this . _map . _panes . markerPane . removeChild ( this . _icon ) ,
( this . _icon = null )
} ,
_removeShadow : function ( ) {
this . _shadow &&
this . _map . _panes . shadowPane . removeChild ( this . _shadow ) ,
( this . _shadow = null )
} ,
_setPos : function ( t ) {
o . DomUtil . setPosition ( this . _icon , t ) ,
this . _shadow && o . DomUtil . setPosition ( this . _shadow , t ) ,
( this . _zIndex = t . y + this . options . zIndexOffset ) ,
this . _resetZIndex ( )
} ,
_updateZIndex : function ( t ) {
this . _icon . style . zIndex = this . _zIndex + t
} ,
_animateZoom : function ( t ) {
var e = this . _map
. _latLngToNewLayerPoint ( this . _latlng , t . zoom , t . center )
. round ( )
this . _setPos ( e )
} ,
_initInteraction : function ( ) {
if ( this . options . clickable ) {
var t = this . _icon ,
e = [
'dblclick' ,
'mousedown' ,
'mouseover' ,
'mouseout' ,
'contextmenu'
]
o . DomUtil . addClass ( t , 'leaflet-clickable' ) ,
o . DomEvent . on ( t , 'click' , this . _onMouseClick , this ) ,
o . DomEvent . on ( t , 'keypress' , this . _onKeyPress , this )
for ( var i = 0 ; i < e . length ; i ++ )
o . DomEvent . on ( t , e [ i ] , this . _fireMouseEvent , this )
o . Handler . MarkerDrag &&
( ( this . dragging = new o . Handler . MarkerDrag ( this ) ) ,
this . options . draggable && this . dragging . enable ( ) )
}
} ,
_onMouseClick : function ( t ) {
var e = this . dragging && this . dragging . moved ( )
; ( this . hasEventListeners ( t . type ) || e ) &&
o . DomEvent . stopPropagation ( t ) ,
e ||
( ( ( this . dragging && this . dragging . _enabled ) ||
! this . _map . dragging ||
! this . _map . dragging . moved ( ) ) &&
this . fire ( t . type , {
originalEvent : t ,
latlng : this . _latlng
} ) )
} ,
_onKeyPress : function ( t ) {
13 === t . keyCode &&
this . fire ( 'click' , { originalEvent : t , latlng : this . _latlng } )
} ,
_fireMouseEvent : function ( t ) {
this . fire ( t . type , {
originalEvent : t ,
latlng : this . _latlng
} ) ,
'contextmenu' === t . type &&
this . hasEventListeners ( t . type ) &&
o . DomEvent . preventDefault ( t ) ,
'mousedown' !== t . type
? o . DomEvent . stopPropagation ( t )
: o . DomEvent . preventDefault ( t )
} ,
setOpacity : function ( t ) {
return (
( this . options . opacity = t ) ,
this . _map && this . _updateOpacity ( ) ,
this
)
} ,
_updateOpacity : function ( ) {
o . DomUtil . setOpacity ( this . _icon , this . options . opacity ) ,
this . _shadow &&
o . DomUtil . setOpacity ( this . _shadow , this . options . opacity )
} ,
_bringToFront : function ( ) {
this . _updateZIndex ( this . options . riseOffset )
} ,
_resetZIndex : function ( ) {
this . _updateZIndex ( 0 )
}
} ) ) ,
( o . marker = function ( t , e ) {
return new o . Marker ( t , e )
} ) ,
( o . DivIcon = o . Icon . extend ( {
options : {
iconSize : [ 12 , 12 ] ,
className : 'leaflet-div-icon' ,
html : ! 1
} ,
createIcon : function ( t ) {
var i = t && 'DIV' === t . tagName ? t : e . createElement ( 'div' ) ,
n = this . options
return (
n . html !== ! 1 ? ( i . innerHTML = n . html ) : ( i . innerHTML = '' ) ,
n . bgPos &&
( i . style . backgroundPosition =
- n . bgPos . x + 'px ' + - n . bgPos . y + 'px' ) ,
this . _setIconStyles ( i , 'icon' ) ,
i
)
} ,
createShadow : function ( ) {
return null
}
} ) ) ,
( o . divIcon = function ( t ) {
return new o . DivIcon ( t )
} ) ,
o . Map . mergeOptions ( { closePopupOnClick : ! 0 } ) ,
( o . Popup = o . Class . extend ( {
includes : o . Mixin . Events ,
options : {
minWidth : 50 ,
maxWidth : 300 ,
autoPan : ! 0 ,
closeButton : ! 0 ,
offset : [ 0 , 7 ] ,
autoPanPadding : [ 5 , 5 ] ,
keepInView : ! 1 ,
className : '' ,
zoomAnimation : ! 0
} ,
initialize : function ( t , e ) {
o . setOptions ( this , t ) ,
( this . _source = e ) ,
( this . _animated = o . Browser . any3d && this . options . zoomAnimation ) ,
( this . _isOpen = ! 1 )
} ,
onAdd : function ( t ) {
; ( this . _map = t ) , this . _container || this . _initLayout ( )
var e = t . options . fadeAnimation
e && o . DomUtil . setOpacity ( this . _container , 0 ) ,
t . _panes . popupPane . appendChild ( this . _container ) ,
t . on ( this . _getEvents ( ) , this ) ,
this . update ( ) ,
e && o . DomUtil . setOpacity ( this . _container , 1 ) ,
this . fire ( 'open' ) ,
t . fire ( 'popupopen' , { popup : this } ) ,
this . _source && this . _source . fire ( 'popupopen' , { popup : this } )
} ,
addTo : function ( t ) {
return t . addLayer ( this ) , this
} ,
openOn : function ( t ) {
return t . openPopup ( this ) , this
} ,
onRemove : function ( t ) {
t . _panes . popupPane . removeChild ( this . _container ) ,
o . Util . falseFn ( this . _container . offsetWidth ) ,
t . off ( this . _getEvents ( ) , this ) ,
t . options . fadeAnimation &&
o . DomUtil . setOpacity ( this . _container , 0 ) ,
( this . _map = null ) ,
this . fire ( 'close' ) ,
t . fire ( 'popupclose' , { popup : this } ) ,
this . _source && this . _source . fire ( 'popupclose' , { popup : this } )
} ,
getLatLng : function ( ) {
return this . _latlng
} ,
setLatLng : function ( t ) {
return (
( this . _latlng = o . latLng ( t ) ) ,
this . _map && ( this . _updatePosition ( ) , this . _adjustPan ( ) ) ,
this
)
} ,
getContent : function ( ) {
return this . _content
} ,
setContent : function ( t ) {
return ( this . _content = t ) , this . update ( ) , this
} ,
update : function ( ) {
this . _map &&
( ( this . _container . style . visibility = 'hidden' ) ,
this . _updateContent ( ) ,
this . _updateLayout ( ) ,
this . _updatePosition ( ) ,
( this . _container . style . visibility = '' ) ,
this . _adjustPan ( ) )
} ,
_getEvents : function ( ) {
var t = { viewreset : this . _updatePosition }
return (
this . _animated && ( t . zoomanim = this . _zoomAnimation ) ,
( 'closeOnClick' in this . options
? this . options . closeOnClick
: this . _map . options . closePopupOnClick ) &&
( t . preclick = this . _close ) ,
this . options . keepInView && ( t . moveend = this . _adjustPan ) ,
t
)
} ,
_close : function ( ) {
this . _map && this . _map . closePopup ( this )
} ,
_initLayout : function ( ) {
var t ,
e = 'leaflet-popup' ,
i =
e +
' ' +
this . options . className +
' leaflet-zoom-' +
( this . _animated ? 'animated' : 'hide' ) ,
n = ( this . _container = o . DomUtil . create ( 'div' , i ) )
this . options . closeButton &&
( ( t = this . _closeButton = o . DomUtil . create (
'a' ,
e + '-close-button' ,
n
) ) ,
( t . href = '#close' ) ,
( t . innerHTML = '×' ) ,
o . DomEvent . disableClickPropagation ( t ) ,
o . DomEvent . on ( t , 'click' , this . _onCloseButtonClick , this ) )
var s = ( this . _wrapper = o . DomUtil . create (
'div' ,
e + '-content-wrapper' ,
n
) )
o . DomEvent . disableClickPropagation ( s ) ,
( this . _contentNode = o . DomUtil . create ( 'div' , e + '-content' , s ) ) ,
o . DomEvent . disableScrollPropagation ( this . _contentNode ) ,
o . DomEvent . on ( s , 'contextmenu' , o . DomEvent . stopPropagation ) ,
( this . _tipContainer = o . DomUtil . create (
'div' ,
e + '-tip-container' ,
n
) ) ,
( this . _tip = o . DomUtil . create (
'div' ,
e + '-tip' ,
this . _tipContainer
) )
} ,
_updateContent : function ( ) {
if ( this . _content ) {
if ( 'string' == typeof this . _content )
this . _contentNode . innerHTML = this . _content
else {
for ( ; this . _contentNode . hasChildNodes ( ) ; )
this . _contentNode . removeChild ( this . _contentNode . firstChild )
this . _contentNode . appendChild ( this . _content )
}
this . fire ( 'contentupdate' )
}
} ,
_updateLayout : function ( ) {
var t = this . _contentNode ,
e = t . style
; ( e . width = '' ) , ( e . whiteSpace = 'nowrap' )
var i = t . offsetWidth
; ( i = Math . min ( i , this . options . maxWidth ) ) ,
( i = Math . max ( i , this . options . minWidth ) ) ,
( e . width = i + 1 + 'px' ) ,
( e . whiteSpace = '' ) ,
( e . height = '' )
var n = t . offsetHeight ,
s = this . options . maxHeight ,
a = 'leaflet-popup-scrolled'
s && n > s
? ( ( e . height = s + 'px' ) , o . DomUtil . addClass ( t , a ) )
: o . DomUtil . removeClass ( t , a ) ,
( this . _containerWidth = this . _container . offsetWidth )
} ,
_updatePosition : function ( ) {
if ( this . _map ) {
var t = this . _map . latLngToLayerPoint ( this . _latlng ) ,
e = this . _animated ,
i = o . point ( this . options . offset )
e && o . DomUtil . setPosition ( this . _container , t ) ,
( this . _containerBottom = - i . y - ( e ? 0 : t . y ) ) ,
( this . _containerLeft =
- Math . round ( this . _containerWidth / 2 ) + i . x + ( e ? 0 : t . x ) ) ,
( this . _container . style . bottom = this . _containerBottom + 'px' ) ,
( this . _container . style . left = this . _containerLeft + 'px' )
}
} ,
_zoomAnimation : function ( t ) {
var e = this . _map . _latLngToNewLayerPoint (
this . _latlng ,
t . zoom ,
t . center
)
o . DomUtil . setPosition ( this . _container , e )
} ,
_adjustPan : function ( ) {
if ( this . options . autoPan ) {
var t = this . _map ,
e = this . _container . offsetHeight ,
i = this . _containerWidth ,
n = new o . Point ( this . _containerLeft , - e - this . _containerBottom )
this . _animated && n . _add ( o . DomUtil . getPosition ( this . _container ) )
var s = t . layerPointToContainerPoint ( n ) ,
a = o . point ( this . options . autoPanPadding ) ,
r = o . point ( this . options . autoPanPaddingTopLeft || a ) ,
h = o . point ( this . options . autoPanPaddingBottomRight || a ) ,
l = t . getSize ( ) ,
u = 0 ,
c = 0
s . x + i + h . x > l . x && ( u = s . x + i - l . x + h . x ) ,
s . x - u - r . x < 0 && ( u = s . x - r . x ) ,
s . y + e + h . y > l . y && ( c = s . y + e - l . y + h . y ) ,
s . y - c - r . y < 0 && ( c = s . y - r . y ) ,
( u || c ) && t . fire ( 'autopanstart' ) . panBy ( [ u , c ] )
}
} ,
_onCloseButtonClick : function ( t ) {
this . _close ( ) , o . DomEvent . stop ( t )
}
} ) ) ,
( o . popup = function ( t , e ) {
return new o . Popup ( t , e )
} ) ,
o . Map . include ( {
openPopup : function ( t , e , i ) {
if ( ( this . closePopup ( ) , ! ( t instanceof o . Popup ) ) ) {
var n = t
t = new o . Popup ( i ) . setLatLng ( e ) . setContent ( n )
}
return ( t . _isOpen = ! 0 ) , ( this . _popup = t ) , this . addLayer ( t )
} ,
closePopup : function ( t ) {
return (
( t && t !== this . _popup ) ||
( ( t = this . _popup ) , ( this . _popup = null ) ) ,
t && ( this . removeLayer ( t ) , ( t . _isOpen = ! 1 ) ) ,
this
)
}
} ) ,
o . Marker . include ( {
openPopup : function ( ) {
return (
this . _popup &&
this . _map &&
! this . _map . hasLayer ( this . _popup ) &&
( this . _popup . setLatLng ( this . _latlng ) ,
this . _map . openPopup ( this . _popup ) ) ,
this
)
} ,
closePopup : function ( ) {
return this . _popup && this . _popup . _close ( ) , this
} ,
togglePopup : function ( ) {
return (
this . _popup &&
( this . _popup . _isOpen ? this . closePopup ( ) : this . openPopup ( ) ) ,
this
)
} ,
bindPopup : function ( t , e ) {
var i = o . point ( this . options . icon . options . popupAnchor || [ 0 , 0 ] )
return (
( i = i . add ( o . Popup . prototype . options . offset ) ) ,
e && e . offset && ( i = i . add ( e . offset ) ) ,
( e = o . extend ( { offset : i } , e ) ) ,
this . _popupHandlersAdded ||
( this . on ( 'click' , this . togglePopup , this )
. on ( 'remove' , this . closePopup , this )
. on ( 'move' , this . _movePopup , this ) ,
( this . _popupHandlersAdded = ! 0 ) ) ,
t instanceof o . Popup
? ( o . setOptions ( t , e ) , ( this . _popup = t ) , ( t . _source = this ) )
: ( this . _popup = new o . Popup ( e , this ) . setContent ( t ) ) ,
this
)
} ,
setPopupContent : function ( t ) {
return this . _popup && this . _popup . setContent ( t ) , this
} ,
unbindPopup : function ( ) {
return (
this . _popup &&
( ( this . _popup = null ) ,
this . off ( 'click' , this . togglePopup , this )
. off ( 'remove' , this . closePopup , this )
. off ( 'move' , this . _movePopup , this ) ,
( this . _popupHandlersAdded = ! 1 ) ) ,
this
)
} ,
getPopup : function ( ) {
return this . _popup
} ,
_movePopup : function ( t ) {
this . _popup . setLatLng ( t . latlng )
}
} ) ,
( o . LayerGroup = o . Class . extend ( {
initialize : function ( t ) {
this . _layers = { }
var e , i
if ( t ) for ( e = 0 , i = t . length ; i > e ; e ++ ) this . addLayer ( t [ e ] )
} ,
addLayer : function ( t ) {
var e = this . getLayerId ( t )
return (
( this . _layers [ e ] = t ) , this . _map && this . _map . addLayer ( t ) , this
)
} ,
removeLayer : function ( t ) {
var e = t in this . _layers ? t : this . getLayerId ( t )
return (
this . _map &&
this . _layers [ e ] &&
this . _map . removeLayer ( this . _layers [ e ] ) ,
delete this . _layers [ e ] ,
this
)
} ,
hasLayer : function ( t ) {
return t
? t in this . _layers || this . getLayerId ( t ) in this . _layers
: ! 1
} ,
clearLayers : function ( ) {
return this . eachLayer ( this . removeLayer , this ) , this
} ,
invoke : function ( t ) {
var e ,
i ,
n = Array . prototype . slice . call ( arguments , 1 )
for ( e in this . _layers )
( i = this . _layers [ e ] ) , i [ t ] && i [ t ] . apply ( i , n )
return this
} ,
onAdd : function ( t ) {
; ( this . _map = t ) , this . eachLayer ( t . addLayer , t )
} ,
onRemove : function ( t ) {
this . eachLayer ( t . removeLayer , t ) , ( this . _map = null )
} ,
addTo : function ( t ) {
return t . addLayer ( this ) , this
} ,
eachLayer : function ( t , e ) {
for ( var i in this . _layers ) t . call ( e , this . _layers [ i ] )
return this
} ,
getLayer : function ( t ) {
return this . _layers [ t ]
} ,
getLayers : function ( ) {
var t = [ ]
for ( var e in this . _layers ) t . push ( this . _layers [ e ] )
return t
} ,
setZIndex : function ( t ) {
return this . invoke ( 'setZIndex' , t )
} ,
getLayerId : function ( t ) {
return o . stamp ( t )
}
} ) ) ,
( o . layerGroup = function ( t ) {
return new o . LayerGroup ( t )
} ) ,
( o . FeatureGroup = o . LayerGroup . extend ( {
includes : o . Mixin . Events ,
statics : {
EVENTS :
'click dblclick mouseover mouseout mousemove contextmenu popupopen popupclose'
} ,
addLayer : function ( t ) {
return this . hasLayer ( t )
? this
: ( 'on' in t &&
t . on ( o . FeatureGroup . EVENTS , this . _propagateEvent , this ) ,
o . LayerGroup . prototype . addLayer . call ( this , t ) ,
this . _popupContent &&
t . bindPopup &&
t . bindPopup ( this . _popupContent , this . _popupOptions ) ,
this . fire ( 'layeradd' , { layer : t } ) )
} ,
removeLayer : function ( t ) {
return this . hasLayer ( t )
? ( t in this . _layers && ( t = this . _layers [ t ] ) ,
'off' in t &&
t . off ( o . FeatureGroup . EVENTS , this . _propagateEvent , this ) ,
o . LayerGroup . prototype . removeLayer . call ( this , t ) ,
this . _popupContent && this . invoke ( 'unbindPopup' ) ,
this . fire ( 'layerremove' , { layer : t } ) )
: this
} ,
bindPopup : function ( t , e ) {
return (
( this . _popupContent = t ) ,
( this . _popupOptions = e ) ,
this . invoke ( 'bindPopup' , t , e )
)
} ,
openPopup : function ( t ) {
for ( var e in this . _layers ) {
this . _layers [ e ] . openPopup ( t )
break
}
return this
} ,
setStyle : function ( t ) {
return this . invoke ( 'setStyle' , t )
} ,
bringToFront : function ( ) {
return this . invoke ( 'bringToFront' )
} ,
bringToBack : function ( ) {
return this . invoke ( 'bringToBack' )
} ,
getBounds : function ( ) {
var t = new o . LatLngBounds ( )
return (
this . eachLayer ( function ( e ) {
t . extend ( e instanceof o . Marker ? e . getLatLng ( ) : e . getBounds ( ) )
} ) ,
t
)
} ,
_propagateEvent : function ( t ) {
; ( t = o . extend ( { layer : t . target , target : this } , t ) ) ,
this . fire ( t . type , t )
}
} ) ) ,
( o . featureGroup = function ( t ) {
return new o . FeatureGroup ( t )
} ) ,
( o . Path = o . Class . extend ( {
includes : [ o . Mixin . Events ] ,
statics : {
CLIP _PADDING : ( function ( ) {
var e = o . Browser . mobile ? 1280 : 2e3 ,
i = ( e / Math . max ( t . outerWidth , t . outerHeight ) - 1 ) / 2
return Math . max ( 0 , Math . min ( 0.5 , i ) )
} ) ( )
} ,
options : {
stroke : ! 0 ,
color : '#0033ff' ,
dashArray : null ,
lineCap : null ,
lineJoin : null ,
weight : 5 ,
opacity : 0.5 ,
fill : ! 1 ,
fillColor : null ,
fillOpacity : 0.2 ,
clickable : ! 0
} ,
initialize : function ( t ) {
o . setOptions ( this , t )
} ,
onAdd : function ( t ) {
; ( this . _map = t ) ,
this . _container || ( this . _initElements ( ) , this . _initEvents ( ) ) ,
this . projectLatlngs ( ) ,
this . _updatePath ( ) ,
this . _container &&
this . _map . _pathRoot . appendChild ( this . _container ) ,
this . fire ( 'add' ) ,
t . on (
{
viewreset : this . projectLatlngs ,
moveend : this . _updatePath
} ,
this
)
} ,
addTo : function ( t ) {
return t . addLayer ( this ) , this
} ,
onRemove : function ( t ) {
t . _pathRoot . removeChild ( this . _container ) ,
this . fire ( 'remove' ) ,
( this . _map = null ) ,
o . Browser . vml &&
( ( this . _container = null ) ,
( this . _stroke = null ) ,
( this . _fill = null ) ) ,
t . off (
{
viewreset : this . projectLatlngs ,
moveend : this . _updatePath
} ,
this
)
} ,
projectLatlngs : function ( ) { } ,
setStyle : function ( t ) {
return (
o . setOptions ( this , t ) ,
this . _container && this . _updateStyle ( ) ,
this
)
} ,
redraw : function ( ) {
return (
this . _map && ( this . projectLatlngs ( ) , this . _updatePath ( ) ) , this
)
}
} ) ) ,
o . Map . include ( {
_updatePathViewport : function ( ) {
var t = o . Path . CLIP _PADDING ,
e = this . getSize ( ) ,
i = o . DomUtil . getPosition ( this . _mapPane ) ,
n = i . multiplyBy ( - 1 ) . _subtract ( e . multiplyBy ( t ) . _round ( ) ) ,
s = n . add ( e . multiplyBy ( 1 + 2 * t ) . _round ( ) )
this . _pathViewport = new o . Bounds ( n , s )
}
} ) ,
( o . Path . SVG _NS = 'http://www.w3.org/2000/svg' ) ,
( o . Browser . svg = ! (
! e . createElementNS ||
! e . createElementNS ( o . Path . SVG _NS , 'svg' ) . createSVGRect
) ) ,
( o . Path = o . Path . extend ( {
statics : { SVG : o . Browser . svg } ,
bringToFront : function ( ) {
var t = this . _map . _pathRoot ,
e = this . _container
return e && t . lastChild !== e && t . appendChild ( e ) , this
} ,
bringToBack : function ( ) {
var t = this . _map . _pathRoot ,
e = this . _container ,
i = t . firstChild
return e && i !== e && t . insertBefore ( e , i ) , this
} ,
getPathString : function ( ) { } ,
_createElement : function ( t ) {
return e . createElementNS ( o . Path . SVG _NS , t )
} ,
_initElements : function ( ) {
this . _map . _initPathRoot ( ) , this . _initPath ( ) , this . _initStyle ( )
} ,
_initPath : function ( ) {
; ( this . _container = this . _createElement ( 'g' ) ) ,
( this . _path = this . _createElement ( 'path' ) ) ,
this . options . className &&
o . DomUtil . addClass ( this . _path , this . options . className ) ,
this . _container . appendChild ( this . _path )
} ,
_initStyle : function ( ) {
this . options . stroke &&
( this . _path . setAttribute ( 'stroke-linejoin' , 'round' ) ,
this . _path . setAttribute ( 'stroke-linecap' , 'round' ) ) ,
this . options . fill &&
this . _path . setAttribute ( 'fill-rule' , 'evenodd' ) ,
this . options . pointerEvents &&
this . _path . setAttribute (
'pointer-events' ,
this . options . pointerEvents
) ,
this . options . clickable ||
this . options . pointerEvents ||
this . _path . setAttribute ( 'pointer-events' , 'none' ) ,
this . _updateStyle ( )
} ,
_updateStyle : function ( ) {
this . options . stroke
? ( this . _path . setAttribute ( 'stroke' , this . options . color ) ,
this . _path . setAttribute ( 'stroke-opacity' , this . options . opacity ) ,
this . _path . setAttribute ( 'stroke-width' , this . options . weight ) ,
this . options . dashArray
? this . _path . setAttribute (
'stroke-dasharray' ,
this . options . dashArray
)
: this . _path . removeAttribute ( 'stroke-dasharray' ) ,
this . options . lineCap &&
this . _path . setAttribute (
'stroke-linecap' ,
this . options . lineCap
) ,
this . options . lineJoin &&
this . _path . setAttribute (
'stroke-linejoin' ,
this . options . lineJoin
) )
: this . _path . setAttribute ( 'stroke' , 'none' ) ,
this . options . fill
? ( this . _path . setAttribute (
'fill' ,
this . options . fillColor || this . options . color
) ,
this . _path . setAttribute (
'fill-opacity' ,
this . options . fillOpacity
) )
: this . _path . setAttribute ( 'fill' , 'none' )
} ,
_updatePath : function ( ) {
var t = this . getPathString ( )
t || ( t = 'M0 0' ) , this . _path . setAttribute ( 'd' , t )
} ,
_initEvents : function ( ) {
if ( this . options . clickable ) {
; ( o . Browser . svg || ! o . Browser . vml ) &&
o . DomUtil . addClass ( this . _path , 'leaflet-clickable' ) ,
o . DomEvent . on (
this . _container ,
'click' ,
this . _onMouseClick ,
this
)
for (
var t = [
'dblclick' ,
'mousedown' ,
'mouseover' ,
'mouseout' ,
'mousemove' ,
'contextmenu'
] ,
e = 0 ;
e < t . length ;
e ++
)
o . DomEvent . on ( this . _container , t [ e ] , this . _fireMouseEvent , this )
}
} ,
_onMouseClick : function ( t ) {
; ( this . _map . dragging && this . _map . dragging . moved ( ) ) ||
this . _fireMouseEvent ( t )
} ,
_fireMouseEvent : function ( t ) {
if ( this . _map && this . hasEventListeners ( t . type ) ) {
var e = this . _map ,
i = e . mouseEventToContainerPoint ( t ) ,
n = e . containerPointToLayerPoint ( i ) ,
s = e . layerPointToLatLng ( n )
this . fire ( t . type , {
latlng : s ,
layerPoint : n ,
containerPoint : i ,
originalEvent : t
} ) ,
'contextmenu' === t . type && o . DomEvent . preventDefault ( t ) ,
'mousemove' !== t . type && o . DomEvent . stopPropagation ( t )
}
}
} ) ) ,
o . Map . include ( {
_initPathRoot : function ( ) {
this . _pathRoot ||
( ( this . _pathRoot = o . Path . prototype . _createElement ( 'svg' ) ) ,
this . _panes . overlayPane . appendChild ( this . _pathRoot ) ,
this . options . zoomAnimation && o . Browser . any3d
? ( o . DomUtil . addClass ( this . _pathRoot , 'leaflet-zoom-animated' ) ,
this . on ( {
zoomanim : this . _animatePathZoom ,
zoomend : this . _endPathZoom
} ) )
: o . DomUtil . addClass ( this . _pathRoot , 'leaflet-zoom-hide' ) ,
this . on ( 'moveend' , this . _updateSvgViewport ) ,
this . _updateSvgViewport ( ) )
} ,
_animatePathZoom : function ( t ) {
var e = this . getZoomScale ( t . zoom ) ,
i = this . _getCenterOffset ( t . center )
. _multiplyBy ( - e )
. _add ( this . _pathViewport . min )
; ( this . _pathRoot . style [ o . DomUtil . TRANSFORM ] =
o . DomUtil . getTranslateString ( i ) + ' scale(' + e + ') ' ) ,
( this . _pathZooming = ! 0 )
} ,
_endPathZoom : function ( ) {
this . _pathZooming = ! 1
} ,
_updateSvgViewport : function ( ) {
if ( ! this . _pathZooming ) {
this . _updatePathViewport ( )
var t = this . _pathViewport ,
e = t . min ,
i = t . max ,
n = i . x - e . x ,
s = i . y - e . y ,
a = this . _pathRoot ,
r = this . _panes . overlayPane
o . Browser . mobileWebkit && r . removeChild ( a ) ,
o . DomUtil . setPosition ( a , e ) ,
a . setAttribute ( 'width' , n ) ,
a . setAttribute ( 'height' , s ) ,
a . setAttribute ( 'viewBox' , [ e . x , e . y , n , s ] . join ( ' ' ) ) ,
o . Browser . mobileWebkit && r . appendChild ( a )
}
}
} ) ,
o . Path . include ( {
bindPopup : function ( t , e ) {
return (
t instanceof o . Popup
? ( this . _popup = t )
: ( ( ! this . _popup || e ) && ( this . _popup = new o . Popup ( e , this ) ) ,
this . _popup . setContent ( t ) ) ,
this . _popupHandlersAdded ||
( this . on ( 'click' , this . _openPopup , this ) . on (
'remove' ,
this . closePopup ,
this
) ,
( this . _popupHandlersAdded = ! 0 ) ) ,
this
)
} ,
unbindPopup : function ( ) {
return (
this . _popup &&
( ( this . _popup = null ) ,
this . off ( 'click' , this . _openPopup ) . off (
'remove' ,
this . closePopup
) ,
( this . _popupHandlersAdded = ! 1 ) ) ,
this
)
} ,
openPopup : function ( t ) {
return (
this . _popup &&
( ( t =
t ||
this . _latlng ||
this . _latlngs [ Math . floor ( this . _latlngs . length / 2 ) ] ) ,
this . _openPopup ( { latlng : t } ) ) ,
this
)
} ,
closePopup : function ( ) {
return this . _popup && this . _popup . _close ( ) , this
} ,
_openPopup : function ( t ) {
this . _popup . setLatLng ( t . latlng ) , this . _map . openPopup ( this . _popup )
}
} ) ,
( o . Browser . vml =
! o . Browser . svg &&
( function ( ) {
try {
var t = e . createElement ( 'div' )
t . innerHTML = '<v:shape adj="1"/>'
var i = t . firstChild
return (
( i . style . behavior = 'url(#default#VML)' ) ,
i && 'object' == typeof i . adj
)
} catch ( n ) {
return ! 1
}
} ) ( ) ) ,
( o . Path =
o . Browser . svg || ! o . Browser . vml
? o . Path
: o . Path . extend ( {
statics : { VML : ! 0 , CLIP _PADDING : 0.02 } ,
_createElement : ( function ( ) {
try {
return (
e . namespaces . add ( 'lvml' , 'urn:schemas-microsoft-com:vml' ) ,
function ( t ) {
return e . createElement ( '<lvml:' + t + ' class="lvml">' )
}
)
} catch ( t ) {
return function ( t ) {
return e . createElement (
'<' +
t +
' xmlns="urn:schemas-microsoft.com:vml" class="lvml">'
)
}
}
} ) ( ) ,
_initPath : function ( ) {
var t = ( this . _container = this . _createElement ( 'shape' ) )
o . DomUtil . addClass (
t ,
'leaflet-vml-shape' +
( this . options . className
? ' ' + this . options . className
: '' )
) ,
this . options . clickable &&
o . DomUtil . addClass ( t , 'leaflet-clickable' ) ,
( t . coordsize = '1 1' ) ,
( this . _path = this . _createElement ( 'path' ) ) ,
t . appendChild ( this . _path ) ,
this . _map . _pathRoot . appendChild ( t )
} ,
_initStyle : function ( ) {
this . _updateStyle ( )
} ,
_updateStyle : function ( ) {
var t = this . _stroke ,
e = this . _fill ,
i = this . options ,
n = this . _container
; ( n . stroked = i . stroke ) ,
( n . filled = i . fill ) ,
i . stroke
? ( t ||
( ( t = this . _stroke = this . _createElement ( 'stroke' ) ) ,
( t . endcap = 'round' ) ,
n . appendChild ( t ) ) ,
( t . weight = i . weight + 'px' ) ,
( t . color = i . color ) ,
( t . opacity = i . opacity ) ,
i . dashArray
? ( t . dashStyle = o . Util . isArray ( i . dashArray )
? i . dashArray . join ( ' ' )
: i . dashArray . replace ( /( *, *)/g , ' ' ) )
: ( t . dashStyle = '' ) ,
i . lineCap &&
( t . endcap = i . lineCap . replace ( 'butt' , 'flat' ) ) ,
i . lineJoin && ( t . joinstyle = i . lineJoin ) )
: t && ( n . removeChild ( t ) , ( this . _stroke = null ) ) ,
i . fill
? ( e ||
( ( e = this . _fill = this . _createElement ( 'fill' ) ) ,
n . appendChild ( e ) ) ,
( e . color = i . fillColor || i . color ) ,
( e . opacity = i . fillOpacity ) )
: e && ( n . removeChild ( e ) , ( this . _fill = null ) )
} ,
_updatePath : function ( ) {
var t = this . _container . style
; ( t . display = 'none' ) ,
( this . _path . v = this . getPathString ( ) + ' ' ) ,
( t . display = '' )
}
} ) ) ,
o . Map . include (
o . Browser . svg || ! o . Browser . vml
? { }
: {
_initPathRoot : function ( ) {
if ( ! this . _pathRoot ) {
var t = ( this . _pathRoot = e . createElement ( 'div' ) )
; ( t . className = 'leaflet-vml-container' ) ,
this . _panes . overlayPane . appendChild ( t ) ,
this . on ( 'moveend' , this . _updatePathViewport ) ,
this . _updatePathViewport ( )
}
}
}
) ,
( o . Browser . canvas = ( function ( ) {
return ! ! e . createElement ( 'canvas' ) . getContext
} ) ( ) ) ,
( o . Path =
( o . Path . SVG && ! t . L _PREFER _CANVAS ) || ! o . Browser . canvas
? o . Path
: o . Path . extend ( {
statics : {
CANVAS : ! 0 ,
SVG : ! 1
} ,
redraw : function ( ) {
return (
this . _map && ( this . projectLatlngs ( ) , this . _requestUpdate ( ) ) ,
this
)
} ,
setStyle : function ( t ) {
return (
o . setOptions ( this , t ) ,
this . _map && ( this . _updateStyle ( ) , this . _requestUpdate ( ) ) ,
this
)
} ,
onRemove : function ( t ) {
t
. off ( 'viewreset' , this . projectLatlngs , this )
. off ( 'moveend' , this . _updatePath , this ) ,
this . options . clickable &&
( this . _map . off ( 'click' , this . _onClick , this ) ,
this . _map . off ( 'mousemove' , this . _onMouseMove , this ) ) ,
this . _requestUpdate ( ) ,
this . fire ( 'remove' ) ,
( this . _map = null )
} ,
_requestUpdate : function ( ) {
this . _map &&
! o . Path . _updateRequest &&
( o . Path . _updateRequest = o . Util . requestAnimFrame (
this . _fireMapMoveEnd ,
this . _map
) )
} ,
_fireMapMoveEnd : function ( ) {
; ( o . Path . _updateRequest = null ) , this . fire ( 'moveend' )
} ,
_initElements : function ( ) {
this . _map . _initPathRoot ( ) , ( this . _ctx = this . _map . _canvasCtx )
} ,
_updateStyle : function ( ) {
var t = this . options
t . stroke &&
( ( this . _ctx . lineWidth = t . weight ) ,
( this . _ctx . strokeStyle = t . color ) ) ,
t . fill && ( this . _ctx . fillStyle = t . fillColor || t . color ) ,
t . lineCap && ( this . _ctx . lineCap = t . lineCap ) ,
t . lineJoin && ( this . _ctx . lineJoin = t . lineJoin )
} ,
_drawPath : function ( ) {
var t , e , i , n , s , a
for (
this . _ctx . beginPath ( ) , t = 0 , i = this . _parts . length ;
i > t ;
t ++
) {
for ( e = 0 , n = this . _parts [ t ] . length ; n > e ; e ++ )
( s = this . _parts [ t ] [ e ] ) ,
( a = ( 0 === e ? 'move' : 'line' ) + 'To' ) ,
this . _ctx [ a ] ( s . x , s . y )
this instanceof o . Polygon && this . _ctx . closePath ( )
}
} ,
_checkIfEmpty : function ( ) {
return ! this . _parts . length
} ,
_updatePath : function ( ) {
if ( ! this . _checkIfEmpty ( ) ) {
var t = this . _ctx ,
e = this . options
this . _drawPath ( ) ,
t . save ( ) ,
this . _updateStyle ( ) ,
e . fill &&
( ( t . globalAlpha = e . fillOpacity ) ,
t . fill ( e . fillRule || 'evenodd' ) ) ,
e . stroke && ( ( t . globalAlpha = e . opacity ) , t . stroke ( ) ) ,
t . restore ( )
}
} ,
_initEvents : function ( ) {
this . options . clickable &&
( this . _map . on ( 'mousemove' , this . _onMouseMove , this ) ,
this . _map . on (
'click dblclick contextmenu' ,
this . _fireMouseEvent ,
this
) )
} ,
_fireMouseEvent : function ( t ) {
this . _containsPoint ( t . layerPoint ) && this . fire ( t . type , t )
} ,
_onMouseMove : function ( t ) {
this . _map &&
! this . _map . _animatingZoom &&
( this . _containsPoint ( t . layerPoint )
? ( ( this . _ctx . canvas . style . cursor = 'pointer' ) ,
( this . _mouseInside = ! 0 ) ,
this . fire ( 'mouseover' , t ) )
: this . _mouseInside &&
( ( this . _ctx . canvas . style . cursor = '' ) ,
( this . _mouseInside = ! 1 ) ,
this . fire ( 'mouseout' , t ) ) )
}
} ) ) ,
o . Map . include (
( o . Path . SVG && ! t . L _PREFER _CANVAS ) || ! o . Browser . canvas
? { }
: {
_initPathRoot : function ( ) {
var t ,
i = this . _pathRoot
i ||
( ( i = this . _pathRoot = e . createElement ( 'canvas' ) ) ,
( i . style . position = 'absolute' ) ,
( t = this . _canvasCtx = i . getContext ( '2d' ) ) ,
( t . lineCap = 'round' ) ,
( t . lineJoin = 'round' ) ,
this . _panes . overlayPane . appendChild ( i ) ,
this . options . zoomAnimation &&
( ( this . _pathRoot . className = 'leaflet-zoom-animated' ) ,
this . on ( 'zoomanim' , this . _animatePathZoom ) ,
this . on ( 'zoomend' , this . _endPathZoom ) ) ,
this . on ( 'moveend' , this . _updateCanvasViewport ) ,
this . _updateCanvasViewport ( ) )
} ,
_updateCanvasViewport : function ( ) {
if ( ! this . _pathZooming ) {
this . _updatePathViewport ( )
var t = this . _pathViewport ,
e = t . min ,
i = t . max . subtract ( e ) ,
n = this . _pathRoot
o . DomUtil . setPosition ( n , e ) ,
( n . width = i . x ) ,
( n . height = i . y ) ,
n . getContext ( '2d' ) . translate ( - e . x , - e . y )
}
}
}
) ,
( o . LineUtil = {
simplify : function ( t , e ) {
if ( ! e || ! t . length ) return t . slice ( )
var i = e * e
return ( t = this . _reducePoints ( t , i ) ) , ( t = this . _simplifyDP ( t , i ) )
} ,
pointToSegmentDistance : function ( t , e , i ) {
return Math . sqrt ( this . _sqClosestPointOnSegment ( t , e , i , ! 0 ) )
} ,
closestPointOnSegment : function ( t , e , i ) {
return this . _sqClosestPointOnSegment ( t , e , i )
} ,
_simplifyDP : function ( t , e ) {
var n = t . length ,
o = typeof Uint8Array != i + '' ? Uint8Array : Array ,
s = new o ( n )
; ( s [ 0 ] = s [ n - 1 ] = 1 ) , this . _simplifyDPStep ( t , s , e , 0 , n - 1 )
var a ,
r = [ ]
for ( a = 0 ; n > a ; a ++ ) s [ a ] && r . push ( t [ a ] )
return r
} ,
_simplifyDPStep : function ( t , e , i , n , o ) {
var s ,
a ,
r ,
h = 0
for ( a = n + 1 ; o - 1 >= a ; a ++ )
( r = this . _sqClosestPointOnSegment ( t [ a ] , t [ n ] , t [ o ] , ! 0 ) ) ,
r > h && ( ( s = a ) , ( h = r ) )
h > i &&
( ( e [ s ] = 1 ) ,
this . _simplifyDPStep ( t , e , i , n , s ) ,
this . _simplifyDPStep ( t , e , i , s , o ) )
} ,
_reducePoints : function ( t , e ) {
for ( var i = [ t [ 0 ] ] , n = 1 , o = 0 , s = t . length ; s > n ; n ++ )
this . _sqDist ( t [ n ] , t [ o ] ) > e && ( i . push ( t [ n ] ) , ( o = n ) )
return s - 1 > o && i . push ( t [ s - 1 ] ) , i
} ,
clipSegment : function ( t , e , i , n ) {
var o ,
s ,
a ,
r = n ? this . _lastCode : this . _getBitCode ( t , i ) ,
h = this . _getBitCode ( e , i )
for ( this . _lastCode = h ; ; ) {
if ( ! ( r | h ) ) return [ t , e ]
if ( r & h ) return ! 1
; ( o = r || h ) ,
( s = this . _getEdgeIntersection ( t , e , o , i ) ) ,
( a = this . _getBitCode ( s , i ) ) ,
o === r ? ( ( t = s ) , ( r = a ) ) : ( ( e = s ) , ( h = a ) )
}
} ,
_getEdgeIntersection : function ( t , e , i , n ) {
var s = e . x - t . x ,
a = e . y - t . y ,
r = n . min ,
h = n . max
return 8 & i
? new o . Point ( t . x + ( s * ( h . y - t . y ) ) / a , h . y )
: 4 & i
? new o . Point ( t . x + ( s * ( r . y - t . y ) ) / a , r . y )
: 2 & i
? new o . Point ( h . x , t . y + ( a * ( h . x - t . x ) ) / s )
: 1 & i
? new o . Point ( r . x , t . y + ( a * ( r . x - t . x ) ) / s )
: void 0
} ,
_getBitCode : function ( t , e ) {
var i = 0
return (
t . x < e . min . x ? ( i |= 1 ) : t . x > e . max . x && ( i |= 2 ) ,
t . y < e . min . y ? ( i |= 4 ) : t . y > e . max . y && ( i |= 8 ) ,
i
)
} ,
_sqDist : function ( t , e ) {
var i = e . x - t . x ,
n = e . y - t . y
return i * i + n * n
} ,
_sqClosestPointOnSegment : function ( t , e , i , n ) {
var s ,
a = e . x ,
r = e . y ,
h = i . x - a ,
l = i . y - r ,
u = h * h + l * l
return (
u > 0 &&
( ( s = ( ( t . x - a ) * h + ( t . y - r ) * l ) / u ) ,
s > 1
? ( ( a = i . x ) , ( r = i . y ) )
: s > 0 && ( ( a += h * s ) , ( r += l * s ) ) ) ,
( h = t . x - a ) ,
( l = t . y - r ) ,
n ? h * h + l * l : new o . Point ( a , r )
)
}
} ) ,
( o . Polyline = o . Path . extend ( {
initialize : function ( t , e ) {
o . Path . prototype . initialize . call ( this , e ) ,
( this . _latlngs = this . _convertLatLngs ( t ) )
} ,
options : { smoothFactor : 1 , noClip : ! 1 } ,
projectLatlngs : function ( ) {
this . _originalPoints = [ ]
for ( var t = 0 , e = this . _latlngs . length ; e > t ; t ++ )
this . _originalPoints [ t ] = this . _map . latLngToLayerPoint (
this . _latlngs [ t ]
)
} ,
getPathString : function ( ) {
for ( var t = 0 , e = this . _parts . length , i = '' ; e > t ; t ++ )
i += this . _getPathPartStr ( this . _parts [ t ] )
return i
} ,
getLatLngs : function ( ) {
return this . _latlngs
} ,
setLatLngs : function ( t ) {
return ( this . _latlngs = this . _convertLatLngs ( t ) ) , this . redraw ( )
} ,
addLatLng : function ( t ) {
return this . _latlngs . push ( o . latLng ( t ) ) , this . redraw ( )
} ,
spliceLatLngs : function ( ) {
var t = [ ] . splice . apply ( this . _latlngs , arguments )
return this . _convertLatLngs ( this . _latlngs , ! 0 ) , this . redraw ( ) , t
} ,
closestLayerPoint : function ( t ) {
for (
var e ,
i ,
n = 1 / 0 ,
s = this . _parts ,
a = null ,
r = 0 ,
h = s . length ;
h > r ;
r ++
)
for ( var l = s [ r ] , u = 1 , c = l . length ; c > u ; u ++ ) {
; ( e = l [ u - 1 ] ) , ( i = l [ u ] )
var d = o . LineUtil . _sqClosestPointOnSegment ( t , e , i , ! 0 )
n > d &&
( ( n = d ) , ( a = o . LineUtil . _sqClosestPointOnSegment ( t , e , i ) ) )
}
return a && ( a . distance = Math . sqrt ( n ) ) , a
} ,
getBounds : function ( ) {
return new o . LatLngBounds ( this . getLatLngs ( ) )
} ,
_convertLatLngs : function ( t , e ) {
var i ,
n ,
s = e ? t : [ ]
for ( i = 0 , n = t . length ; n > i ; i ++ ) {
if ( o . Util . isArray ( t [ i ] ) && 'number' != typeof t [ i ] [ 0 ] ) return
s [ i ] = o . latLng ( t [ i ] )
}
return s
} ,
_initEvents : function ( ) {
o . Path . prototype . _initEvents . call ( this )
} ,
_getPathPartStr : function ( t ) {
for ( var e , i = o . Path . VML , n = 0 , s = t . length , a = '' ; s > n ; n ++ )
( e = t [ n ] ) ,
i && e . _round ( ) ,
( a += ( n ? 'L' : 'M' ) + e . x + ' ' + e . y )
return a
} ,
_clipPoints : function ( ) {
var t ,
e ,
i ,
n = this . _originalPoints ,
s = n . length
if ( this . options . noClip ) return void ( this . _parts = [ n ] )
this . _parts = [ ]
var a = this . _parts ,
r = this . _map . _pathViewport ,
h = o . LineUtil
for ( t = 0 , e = 0 ; s - 1 > t ; t ++ )
( i = h . clipSegment ( n [ t ] , n [ t + 1 ] , r , t ) ) ,
i &&
( ( a [ e ] = a [ e ] || [ ] ) ,
a [ e ] . push ( i [ 0 ] ) ,
( i [ 1 ] !== n [ t + 1 ] || t === s - 2 ) && ( a [ e ] . push ( i [ 1 ] ) , e ++ ) )
} ,
_simplifyPoints : function ( ) {
for (
var t = this . _parts , e = o . LineUtil , i = 0 , n = t . length ;
n > i ;
i ++
)
t [ i ] = e . simplify ( t [ i ] , this . options . smoothFactor )
} ,
_updatePath : function ( ) {
this . _map &&
( this . _clipPoints ( ) ,
this . _simplifyPoints ( ) ,
o . Path . prototype . _updatePath . call ( this ) )
}
} ) ) ,
( o . polyline = function ( t , e ) {
return new o . Polyline ( t , e )
} ) ,
( o . PolyUtil = { } ) ,
( o . PolyUtil . clipPolygon = function ( t , e ) {
var i ,
n ,
s ,
a ,
r ,
h ,
l ,
u ,
c ,
d = [ 1 , 4 , 2 , 8 ] ,
p = o . LineUtil
for ( n = 0 , l = t . length ; l > n ; n ++ )
t [ n ] . _code = p . _getBitCode ( t [ n ] , e )
for ( a = 0 ; 4 > a ; a ++ ) {
for (
u = d [ a ] , i = [ ] , n = 0 , l = t . length , s = l - 1 ;
l > n ;
s = n ++
)
( r = t [ n ] ) ,
( h = t [ s ] ) ,
r . _code & u
? h . _code & u ||
( ( c = p . _getEdgeIntersection ( h , r , u , e ) ) ,
( c . _code = p . _getBitCode ( c , e ) ) ,
i . push ( c ) )
: ( h . _code & u &&
( ( c = p . _getEdgeIntersection ( h , r , u , e ) ) ,
( c . _code = p . _getBitCode ( c , e ) ) ,
i . push ( c ) ) ,
i . push ( r ) )
t = i
}
return t
} ) ,
( o . Polygon = o . Polyline . extend ( {
options : { fill : ! 0 } ,
initialize : function ( t , e ) {
o . Polyline . prototype . initialize . call ( this , t , e ) ,
this . _initWithHoles ( t )
} ,
_initWithHoles : function ( t ) {
var e , i , n
if ( t && o . Util . isArray ( t [ 0 ] ) && 'number' != typeof t [ 0 ] [ 0 ] )
for (
this . _latlngs = this . _convertLatLngs ( t [ 0 ] ) ,
this . _holes = t . slice ( 1 ) ,
e = 0 ,
i = this . _holes . length ;
i > e ;
e ++
)
( n = this . _holes [ e ] = this . _convertLatLngs ( this . _holes [ e ] ) ) ,
n [ 0 ] . equals ( n [ n . length - 1 ] ) && n . pop ( )
; ( t = this . _latlngs ) ,
t . length >= 2 && t [ 0 ] . equals ( t [ t . length - 1 ] ) && t . pop ( )
} ,
projectLatlngs : function ( ) {
if (
( o . Polyline . prototype . projectLatlngs . call ( this ) ,
( this . _holePoints = [ ] ) ,
this . _holes )
) {
var t , e , i , n
for ( t = 0 , i = this . _holes . length ; i > t ; t ++ )
for (
this . _holePoints [ t ] = [ ] , e = 0 , n = this . _holes [ t ] . length ;
n > e ;
e ++
)
this . _holePoints [ t ] [ e ] = this . _map . latLngToLayerPoint (
this . _holes [ t ] [ e ]
)
}
} ,
setLatLngs : function ( t ) {
return t && o . Util . isArray ( t [ 0 ] ) && 'number' != typeof t [ 0 ] [ 0 ]
? ( this . _initWithHoles ( t ) , this . redraw ( ) )
: o . Polyline . prototype . setLatLngs . call ( this , t )
} ,
_clipPoints : function ( ) {
var t = this . _originalPoints ,
e = [ ]
if (
( ( this . _parts = [ t ] . concat ( this . _holePoints ) ) ,
! this . options . noClip )
) {
for ( var i = 0 , n = this . _parts . length ; n > i ; i ++ ) {
var s = o . PolyUtil . clipPolygon (
this . _parts [ i ] ,
this . _map . _pathViewport
)
s . length && e . push ( s )
}
this . _parts = e
}
} ,
_getPathPartStr : function ( t ) {
var e = o . Polyline . prototype . _getPathPartStr . call ( this , t )
return e + ( o . Browser . svg ? 'z' : 'x' )
}
} ) ) ,
( o . polygon = function ( t , e ) {
return new o . Polygon ( t , e )
} ) ,
( function ( ) {
function t ( t ) {
return o . FeatureGroup . extend ( {
initialize : function ( t , e ) {
; ( this . _layers = { } ) , ( this . _options = e ) , this . setLatLngs ( t )
} ,
setLatLngs : function ( e ) {
var i = 0 ,
n = e . length
for (
this . eachLayer ( function ( t ) {
n > i ? t . setLatLngs ( e [ i ++ ] ) : this . removeLayer ( t )
} , this ) ;
n > i ;
)
this . addLayer ( new t ( e [ i ++ ] , this . _options ) )
return this
} ,
getLatLngs : function ( ) {
var t = [ ]
return (
this . eachLayer ( function ( e ) {
t . push ( e . getLatLngs ( ) )
} ) ,
t
)
}
} )
}
; ( o . MultiPolyline = t ( o . Polyline ) ) ,
( o . MultiPolygon = t ( o . Polygon ) ) ,
( o . multiPolyline = function ( t , e ) {
return new o . MultiPolyline ( t , e )
} ) ,
( o . multiPolygon = function ( t , e ) {
return new o . MultiPolygon ( t , e )
} )
} ) ( ) ,
( o . Rectangle = o . Polygon . extend ( {
initialize : function ( t , e ) {
o . Polygon . prototype . initialize . call (
this ,
this . _boundsToLatLngs ( t ) ,
e
)
} ,
setBounds : function ( t ) {
this . setLatLngs ( this . _boundsToLatLngs ( t ) )
} ,
_boundsToLatLngs : function ( t ) {
return (
( t = o . latLngBounds ( t ) ) ,
[
t . getSouthWest ( ) ,
t . getNorthWest ( ) ,
t . getNorthEast ( ) ,
t . getSouthEast ( )
]
)
}
} ) ) ,
( o . rectangle = function ( t , e ) {
return new o . Rectangle ( t , e )
} ) ,
( o . Circle = o . Path . extend ( {
initialize : function ( t , e , i ) {
o . Path . prototype . initialize . call ( this , i ) ,
( this . _latlng = o . latLng ( t ) ) ,
( this . _mRadius = e )
} ,
options : { fill : ! 0 } ,
setLatLng : function ( t ) {
return ( this . _latlng = o . latLng ( t ) ) , this . redraw ( )
} ,
setRadius : function ( t ) {
return ( this . _mRadius = t ) , this . redraw ( )
} ,
projectLatlngs : function ( ) {
var t = this . _getLngRadius ( ) ,
e = this . _latlng ,
i = this . _map . latLngToLayerPoint ( [ e . lat , e . lng - t ] )
; ( this . _point = this . _map . latLngToLayerPoint ( e ) ) ,
( this . _radius = Math . max ( this . _point . x - i . x , 1 ) )
} ,
getBounds : function ( ) {
var t = this . _getLngRadius ( ) ,
e = ( this . _mRadius / 40075017 ) * 360 ,
i = this . _latlng
return new o . LatLngBounds (
[ i . lat - e , i . lng - t ] ,
[ i . lat + e , i . lng + t ]
)
} ,
getLatLng : function ( ) {
return this . _latlng
} ,
getPathString : function ( ) {
var t = this . _point ,
e = this . _radius
return this . _checkIfEmpty ( )
? ''
: o . Browser . svg
? 'M' +
t . x +
',' +
( t . y - e ) +
'A' +
e +
',' +
e +
',0,1,1,' +
( t . x - 0.1 ) +
',' +
( t . y - e ) +
' z'
: ( t . _round ( ) ,
( e = Math . round ( e ) ) ,
'AL ' + t . x + ',' + t . y + ' ' + e + ',' + e + ' 0,23592600' )
} ,
getRadius : function ( ) {
return this . _mRadius
} ,
_getLatRadius : function ( ) {
return ( this . _mRadius / 40075017 ) * 360
} ,
_getLngRadius : function ( ) {
return (
this . _getLatRadius ( ) /
Math . cos ( o . LatLng . DEG _TO _RAD * this . _latlng . lat )
)
} ,
_checkIfEmpty : function ( ) {
if ( ! this . _map ) return ! 1
var t = this . _map . _pathViewport ,
e = this . _radius ,
i = this . _point
return (
i . x - e > t . max . x ||
i . y - e > t . max . y ||
i . x + e < t . min . x ||
i . y + e < t . min . y
)
}
} ) ) ,
( o . circle = function ( t , e , i ) {
return new o . Circle ( t , e , i )
} ) ,
( o . CircleMarker = o . Circle . extend ( {
options : { radius : 10 , weight : 2 } ,
initialize : function ( t , e ) {
o . Circle . prototype . initialize . call ( this , t , null , e ) ,
( this . _radius = this . options . radius )
} ,
projectLatlngs : function ( ) {
this . _point = this . _map . latLngToLayerPoint ( this . _latlng )
} ,
_updateStyle : function ( ) {
o . Circle . prototype . _updateStyle . call ( this ) ,
this . setRadius ( this . options . radius )
} ,
setLatLng : function ( t ) {
return (
o . Circle . prototype . setLatLng . call ( this , t ) ,
this . _popup && this . _popup . _isOpen && this . _popup . setLatLng ( t ) ,
this
)
} ,
setRadius : function ( t ) {
return ( this . options . radius = this . _radius = t ) , this . redraw ( )
} ,
getRadius : function ( ) {
return this . _radius
}
} ) ) ,
( o . circleMarker = function ( t , e ) {
return new o . CircleMarker ( t , e )
} ) ,
o . Polyline . include (
o . Path . CANVAS
? {
_containsPoint : function ( t , e ) {
var i ,
n ,
s ,
a ,
r ,
h ,
l ,
u = this . options . weight / 2
for (
o . Browser . touch && ( u += 10 ) , i = 0 , a = this . _parts . length ;
a > i ;
i ++
)
for (
l = this . _parts [ i ] , n = 0 , r = l . length , s = r - 1 ;
r > n ;
s = n ++
)
if (
( e || 0 !== n ) &&
( ( h = o . LineUtil . pointToSegmentDistance ( t , l [ s ] , l [ n ] ) ) ,
u >= h )
)
return ! 0
return ! 1
}
}
: { }
) ,
o . Polygon . include (
o . Path . CANVAS
? {
_containsPoint : function ( t ) {
var e ,
i ,
n ,
s ,
a ,
r ,
h ,
l ,
u = ! 1
if ( o . Polyline . prototype . _containsPoint . call ( this , t , ! 0 ) )
return ! 0
for ( s = 0 , h = this . _parts . length ; h > s ; s ++ )
for (
e = this . _parts [ s ] , a = 0 , l = e . length , r = l - 1 ;
l > a ;
r = a ++
)
( i = e [ a ] ) ,
( n = e [ r ] ) ,
i . y > t . y != n . y > t . y &&
t . x <
( ( n . x - i . x ) * ( t . y - i . y ) ) / ( n . y - i . y ) + i . x &&
( u = ! u )
return u
}
}
: { }
) ,
o . Circle . include (
o . Path . CANVAS
? {
_drawPath : function ( ) {
var t = this . _point
this . _ctx . beginPath ( ) ,
this . _ctx . arc ( t . x , t . y , this . _radius , 0 , 2 * Math . PI , ! 1 )
} ,
_containsPoint : function ( t ) {
var e = this . _point ,
i = this . options . stroke ? this . options . weight / 2 : 0
return t . distanceTo ( e ) <= this . _radius + i
}
}
: { }
) ,
o . CircleMarker . include (
o . Path . CANVAS
? {
_updateStyle : function ( ) {
o . Path . prototype . _updateStyle . call ( this )
}
}
: { }
) ,
( o . GeoJSON = o . FeatureGroup . extend ( {
initialize : function ( t , e ) {
o . setOptions ( this , e ) , ( this . _layers = { } ) , t && this . addData ( t )
} ,
addData : function ( t ) {
var e ,
i ,
n ,
s = o . Util . isArray ( t ) ? t : t . features
if ( s ) {
for ( e = 0 , i = s . length ; i > e ; e ++ )
( n = s [ e ] ) ,
( n . geometries || n . geometry || n . features || n . coordinates ) &&
this . addData ( s [ e ] )
return this
}
var a = this . options
if ( ! a . filter || a . filter ( t ) ) {
var r = o . GeoJSON . geometryToLayer (
t ,
a . pointToLayer ,
a . coordsToLatLng ,
a
)
return (
( r . feature = o . GeoJSON . asFeature ( t ) ) ,
( r . defaultOptions = r . options ) ,
this . resetStyle ( r ) ,
a . onEachFeature && a . onEachFeature ( t , r ) ,
this . addLayer ( r )
)
}
} ,
resetStyle : function ( t ) {
var e = this . options . style
e &&
( o . Util . extend ( t . options , t . defaultOptions ) ,
this . _setLayerStyle ( t , e ) )
} ,
setStyle : function ( t ) {
this . eachLayer ( function ( e ) {
this . _setLayerStyle ( e , t )
} , this )
} ,
_setLayerStyle : function ( t , e ) {
'function' == typeof e && ( e = e ( t . feature ) ) ,
t . setStyle && t . setStyle ( e )
}
} ) ) ,
o . extend ( o . GeoJSON , {
geometryToLayer : function ( t , e , i , n ) {
var s ,
a ,
r ,
h ,
l = 'Feature' === t . type ? t . geometry : t ,
u = l . coordinates ,
c = [ ]
switch ( ( ( i = i || this . coordsToLatLng ) , l . type ) ) {
case 'Point' :
return ( s = i ( u ) ) , e ? e ( t , s ) : new o . Marker ( s )
case 'MultiPoint' :
for ( r = 0 , h = u . length ; h > r ; r ++ )
( s = i ( u [ r ] ) ) , c . push ( e ? e ( t , s ) : new o . Marker ( s ) )
return new o . FeatureGroup ( c )
case 'LineString' :
return ( a = this . coordsToLatLngs ( u , 0 , i ) ) , new o . Polyline ( a , n )
case 'Polygon' :
if ( 2 === u . length && ! u [ 1 ] . length )
throw new Error ( 'Invalid GeoJSON object.' )
return ( a = this . coordsToLatLngs ( u , 1 , i ) ) , new o . Polygon ( a , n )
case 'MultiLineString' :
return (
( a = this . coordsToLatLngs ( u , 1 , i ) ) , new o . MultiPolyline ( a , n )
)
case 'MultiPolygon' :
return (
( a = this . coordsToLatLngs ( u , 2 , i ) ) , new o . MultiPolygon ( a , n )
)
case 'GeometryCollection' :
for ( r = 0 , h = l . geometries . length ; h > r ; r ++ )
c . push (
this . geometryToLayer (
{
geometry : l . geometries [ r ] ,
type : 'Feature' ,
properties : t . properties
} ,
e ,
i ,
n
)
)
return new o . FeatureGroup ( c )
default :
throw new Error ( 'Invalid GeoJSON object.' )
}
} ,
coordsToLatLng : function ( t ) {
return new o . LatLng ( t [ 1 ] , t [ 0 ] , t [ 2 ] )
} ,
coordsToLatLngs : function ( t , e , i ) {
var n ,
o ,
s ,
a = [ ]
for ( o = 0 , s = t . length ; s > o ; o ++ )
( n = e
? this . coordsToLatLngs ( t [ o ] , e - 1 , i )
: ( i || this . coordsToLatLng ) ( t [ o ] ) ) ,
a . push ( n )
return a
} ,
latLngToCoords : function ( t ) {
var e = [ t . lng , t . lat ]
return t . alt !== i && e . push ( t . alt ) , e
} ,
latLngsToCoords : function ( t ) {
for ( var e = [ ] , i = 0 , n = t . length ; n > i ; i ++ )
e . push ( o . GeoJSON . latLngToCoords ( t [ i ] ) )
return e
} ,
getFeature : function ( t , e ) {
return t . feature
? o . extend ( { } , t . feature , { geometry : e } )
: o . GeoJSON . asFeature ( e )
} ,
asFeature : function ( t ) {
return 'Feature' === t . type
? t
: { type : 'Feature' , properties : { } , geometry : t }
}
} )
var a = {
toGeoJSON : function ( ) {
return o . GeoJSON . getFeature ( this , {
type : 'Point' ,
coordinates : o . GeoJSON . latLngToCoords ( this . getLatLng ( ) )
} )
}
}
o . Marker . include ( a ) ,
o . Circle . include ( a ) ,
o . CircleMarker . include ( a ) ,
o . Polyline . include ( {
toGeoJSON : function ( ) {
return o . GeoJSON . getFeature ( this , {
type : 'LineString' ,
coordinates : o . GeoJSON . latLngsToCoords ( this . getLatLngs ( ) )
} )
}
} ) ,
o . Polygon . include ( {
toGeoJSON : function ( ) {
var t ,
e ,
i ,
n = [ o . GeoJSON . latLngsToCoords ( this . getLatLngs ( ) ) ]
if ( ( n [ 0 ] . push ( n [ 0 ] [ 0 ] ) , this . _holes ) )
for ( t = 0 , e = this . _holes . length ; e > t ; t ++ )
( i = o . GeoJSON . latLngsToCoords ( this . _holes [ t ] ) ) ,
i . push ( i [ 0 ] ) ,
n . push ( i )
return o . GeoJSON . getFeature ( this , {
type : 'Polygon' ,
coordinates : n
} )
}
} ) ,
( function ( ) {
function t ( t ) {
return function ( ) {
var e = [ ]
return (
this . eachLayer ( function ( t ) {
e . push ( t . toGeoJSON ( ) . geometry . coordinates )
} ) ,
o . GeoJSON . getFeature ( this , { type : t , coordinates : e } )
)
}
}
o . MultiPolyline . include ( { toGeoJSON : t ( 'MultiLineString' ) } ) ,
o . MultiPolygon . include ( { toGeoJSON : t ( 'MultiPolygon' ) } ) ,
o . LayerGroup . include ( {
toGeoJSON : function ( ) {
var e ,
i = this . feature && this . feature . geometry ,
n = [ ]
if ( i && 'MultiPoint' === i . type )
return t ( 'MultiPoint' ) . call ( this )
var s = i && 'GeometryCollection' === i . type
return (
this . eachLayer ( function ( t ) {
t . toGeoJSON &&
( ( e = t . toGeoJSON ( ) ) ,
n . push ( s ? e . geometry : o . GeoJSON . asFeature ( e ) ) )
} ) ,
s
? o . GeoJSON . getFeature ( this , {
geometries : n ,
type : 'GeometryCollection'
} )
: {
type : 'FeatureCollection' ,
features : n
}
)
}
} )
} ) ( ) ,
( o . geoJson = function ( t , e ) {
return new o . GeoJSON ( t , e )
} ) ,
( o . DomEvent = {
addListener : function ( t , e , i , n ) {
var s ,
a ,
r ,
h = o . stamp ( i ) ,
l = '_leaflet_' + e + h
return t [ l ]
? this
: ( ( s = function ( e ) {
return i . call ( n || t , e || o . DomEvent . _getEvent ( ) )
} ) ,
o . Browser . pointer && 0 === e . indexOf ( 'touch' )
? this . addPointerListener ( t , e , s , h )
: ( o . Browser . touch &&
'dblclick' === e &&
this . addDoubleTapListener &&
this . addDoubleTapListener ( t , s , h ) ,
'addEventListener' in t
? 'mousewheel' === e
? ( t . addEventListener ( 'DOMMouseScroll' , s , ! 1 ) ,
t . addEventListener ( e , s , ! 1 ) )
: 'mouseenter' === e || 'mouseleave' === e
? ( ( a = s ) ,
( r = 'mouseenter' === e ? 'mouseover' : 'mouseout' ) ,
( s = function ( e ) {
return o . DomEvent . _checkMouse ( t , e ) ? a ( e ) : void 0
} ) ,
t . addEventListener ( r , s , ! 1 ) )
: 'click' === e && o . Browser . android
? ( ( a = s ) ,
( s = function ( t ) {
return o . DomEvent . _filterClick ( t , a )
} ) ,
t . addEventListener ( e , s , ! 1 ) )
: t . addEventListener ( e , s , ! 1 )
: 'attachEvent' in t && t . attachEvent ( 'on' + e , s ) ,
( t [ l ] = s ) ,
this ) )
} ,
removeListener : function ( t , e , i ) {
var n = o . stamp ( i ) ,
s = '_leaflet_' + e + n ,
a = t [ s ]
return a
? ( o . Browser . pointer && 0 === e . indexOf ( 'touch' )
? this . removePointerListener ( t , e , n )
: o . Browser . touch &&
'dblclick' === e &&
this . removeDoubleTapListener
? this . removeDoubleTapListener ( t , n )
: 'removeEventListener' in t
? 'mousewheel' === e
? ( t . removeEventListener ( 'DOMMouseScroll' , a , ! 1 ) ,
t . removeEventListener ( e , a , ! 1 ) )
: 'mouseenter' === e || 'mouseleave' === e
? t . removeEventListener (
'mouseenter' === e ? 'mouseover' : 'mouseout' ,
a ,
! 1
)
: t . removeEventListener ( e , a , ! 1 )
: 'detachEvent' in t && t . detachEvent ( 'on' + e , a ) ,
( t [ s ] = null ) ,
this )
: this
} ,
stopPropagation : function ( t ) {
return (
t . stopPropagation ? t . stopPropagation ( ) : ( t . cancelBubble = ! 0 ) ,
o . DomEvent . _skipped ( t ) ,
this
)
} ,
disableScrollPropagation : function ( t ) {
var e = o . DomEvent . stopPropagation
return o . DomEvent . on ( t , 'mousewheel' , e ) . on (
t ,
'MozMousePixelScroll' ,
e
)
} ,
disableClickPropagation : function ( t ) {
for (
var e = o . DomEvent . stopPropagation ,
i = o . Draggable . START . length - 1 ;
i >= 0 ;
i --
)
o . DomEvent . on ( t , o . Draggable . START [ i ] , e )
return o . DomEvent . on ( t , 'click' , o . DomEvent . _fakeStop ) . on (
t ,
'dblclick' ,
e
)
} ,
preventDefault : function ( t ) {
return (
t . preventDefault ? t . preventDefault ( ) : ( t . returnValue = ! 1 ) , this
)
} ,
stop : function ( t ) {
return o . DomEvent . preventDefault ( t ) . stopPropagation ( t )
} ,
getMousePosition : function ( t , e ) {
if ( ! e ) return new o . Point ( t . clientX , t . clientY )
var i = e . getBoundingClientRect ( )
return new o . Point (
t . clientX - i . left - e . clientLeft ,
t . clientY - i . top - e . clientTop
)
} ,
getWheelDelta : function ( t ) {
var e = 0
return (
t . wheelDelta && ( e = t . wheelDelta / 120 ) ,
t . detail && ( e = - t . detail / 3 ) ,
e
)
} ,
_skipEvents : { } ,
_fakeStop : function ( t ) {
o . DomEvent . _skipEvents [ t . type ] = ! 0
} ,
_skipped : function ( t ) {
var e = this . _skipEvents [ t . type ]
return ( this . _skipEvents [ t . type ] = ! 1 ) , e
} ,
_checkMouse : function ( t , e ) {
var i = e . relatedTarget
if ( ! i ) return ! 0
try {
for ( ; i && i !== t ; ) i = i . parentNode
} catch ( n ) {
return ! 1
}
return i !== t
} ,
_getEvent : function ( ) {
var e = t . event
if ( ! e )
for (
var i = arguments . callee . caller ;
i && ( ( e = i . arguments [ 0 ] ) , ! e || t . Event !== e . constructor ) ;
)
i = i . caller
return e
} ,
_filterClick : function ( t , e ) {
var i = t . timeStamp || t . originalEvent . timeStamp ,
n = o . DomEvent . _lastClick && i - o . DomEvent . _lastClick
return ( n && n > 100 && 500 > n ) ||
( t . target . _simulatedClick && ! t . _simulated )
? void o . DomEvent . stop ( t )
: ( ( o . DomEvent . _lastClick = i ) , e ( t ) )
}
} ) ,
( o . DomEvent . on = o . DomEvent . addListener ) ,
( o . DomEvent . off = o . DomEvent . removeListener ) ,
( o . Draggable = o . Class . extend ( {
includes : o . Mixin . Events ,
statics : {
START : o . Browser . touch
? [ 'touchstart' , 'mousedown' ]
: [ 'mousedown' ] ,
END : {
mousedown : 'mouseup' ,
touchstart : 'touchend' ,
pointerdown : 'touchend' ,
MSPointerDown : 'touchend'
} ,
MOVE : {
mousedown : 'mousemove' ,
touchstart : 'touchmove' ,
pointerdown : 'touchmove' ,
MSPointerDown : 'touchmove'
}
} ,
initialize : function ( t , e ) {
; ( this . _element = t ) , ( this . _dragStartTarget = e || t )
} ,
enable : function ( ) {
if ( ! this . _enabled ) {
for ( var t = o . Draggable . START . length - 1 ; t >= 0 ; t -- )
o . DomEvent . on (
this . _dragStartTarget ,
o . Draggable . START [ t ] ,
this . _onDown ,
this
)
this . _enabled = ! 0
}
} ,
disable : function ( ) {
if ( this . _enabled ) {
for ( var t = o . Draggable . START . length - 1 ; t >= 0 ; t -- )
o . DomEvent . off (
this . _dragStartTarget ,
o . Draggable . START [ t ] ,
this . _onDown ,
this
)
; ( this . _enabled = ! 1 ) , ( this . _moved = ! 1 )
}
} ,
_onDown : function ( t ) {
if (
( ( this . _moved = ! 1 ) ,
! t . shiftKey &&
( 1 === t . which || 1 === t . button || t . touches ) &&
( o . DomEvent . stopPropagation ( t ) ,
! o . Draggable . _disabled &&
( o . DomUtil . disableImageDrag ( ) ,
o . DomUtil . disableTextSelection ( ) ,
! this . _moving ) ) )
) {
var i = t . touches ? t . touches [ 0 ] : t
; ( this . _startPoint = new o . Point ( i . clientX , i . clientY ) ) ,
( this . _startPos = this . _newPos = o . DomUtil . getPosition (
this . _element
) ) ,
o . DomEvent . on (
e ,
o . Draggable . MOVE [ t . type ] ,
this . _onMove ,
this
) . on ( e , o . Draggable . END [ t . type ] , this . _onUp , this )
}
} ,
_onMove : function ( t ) {
if ( t . touches && t . touches . length > 1 )
return void ( this . _moved = ! 0 )
var i = t . touches && 1 === t . touches . length ? t . touches [ 0 ] : t ,
n = new o . Point ( i . clientX , i . clientY ) ,
s = n . subtract ( this . _startPoint )
; ( s . x || s . y ) &&
( ( o . Browser . touch && Math . abs ( s . x ) + Math . abs ( s . y ) < 3 ) ||
( o . DomEvent . preventDefault ( t ) ,
this . _moved ||
( this . fire ( 'dragstart' ) ,
( this . _moved = ! 0 ) ,
( this . _startPos = o . DomUtil . getPosition (
this . _element
) . subtract ( s ) ) ,
o . DomUtil . addClass ( e . body , 'leaflet-dragging' ) ,
( this . _lastTarget = t . target || t . srcElement ) ,
o . DomUtil . addClass ( this . _lastTarget , 'leaflet-drag-target' ) ) ,
( this . _newPos = this . _startPos . add ( s ) ) ,
( this . _moving = ! 0 ) ,
o . Util . cancelAnimFrame ( this . _animRequest ) ,
( this . _animRequest = o . Util . requestAnimFrame (
this . _updatePosition ,
this ,
! 0 ,
this . _dragStartTarget
) ) ) )
} ,
_updatePosition : function ( ) {
this . fire ( 'predrag' ) ,
o . DomUtil . setPosition ( this . _element , this . _newPos ) ,
this . fire ( 'drag' )
} ,
_onUp : function ( ) {
o . DomUtil . removeClass ( e . body , 'leaflet-dragging' ) ,
this . _lastTarget &&
( o . DomUtil . removeClass ( this . _lastTarget , 'leaflet-drag-target' ) ,
( this . _lastTarget = null ) )
for ( var t in o . Draggable . MOVE )
o . DomEvent . off ( e , o . Draggable . MOVE [ t ] , this . _onMove ) . off (
e ,
o . Draggable . END [ t ] ,
this . _onUp
)
o . DomUtil . enableImageDrag ( ) ,
o . DomUtil . enableTextSelection ( ) ,
this . _moved &&
this . _moving &&
( o . Util . cancelAnimFrame ( this . _animRequest ) ,
this . fire ( 'dragend' , {
distance : this . _newPos . distanceTo ( this . _startPos )
} ) ) ,
( this . _moving = ! 1 )
}
} ) ) ,
( o . Handler = o . Class . extend ( {
initialize : function ( t ) {
this . _map = t
} ,
enable : function ( ) {
this . _enabled || ( ( this . _enabled = ! 0 ) , this . addHooks ( ) )
} ,
disable : function ( ) {
this . _enabled && ( ( this . _enabled = ! 1 ) , this . removeHooks ( ) )
} ,
enabled : function ( ) {
return ! ! this . _enabled
}
} ) ) ,
o . Map . mergeOptions ( {
dragging : ! 0 ,
inertia : ! o . Browser . android23 ,
inertiaDeceleration : 3400 ,
inertiaMaxSpeed : 1 / 0 ,
inertiaThreshold : o . Browser . touch ? 32 : 18 ,
easeLinearity : 0.25 ,
worldCopyJump : ! 1
} ) ,
( o . Map . Drag = o . Handler . extend ( {
addHooks : function ( ) {
if ( ! this . _draggable ) {
var t = this . _map
; ( this . _draggable = new o . Draggable ( t . _mapPane , t . _container ) ) ,
this . _draggable . on (
{
dragstart : this . _onDragStart ,
drag : this . _onDrag ,
dragend : this . _onDragEnd
} ,
this
) ,
t . options . worldCopyJump &&
( this . _draggable . on ( 'predrag' , this . _onPreDrag , this ) ,
t . on ( 'viewreset' , this . _onViewReset , this ) ,
t . whenReady ( this . _onViewReset , this ) )
}
this . _draggable . enable ( )
} ,
removeHooks : function ( ) {
this . _draggable . disable ( )
} ,
moved : function ( ) {
return this . _draggable && this . _draggable . _moved
} ,
_onDragStart : function ( ) {
var t = this . _map
t . _panAnim && t . _panAnim . stop ( ) ,
t . fire ( 'movestart' ) . fire ( 'dragstart' ) ,
t . options . inertia && ( ( this . _positions = [ ] ) , ( this . _times = [ ] ) )
} ,
_onDrag : function ( ) {
if ( this . _map . options . inertia ) {
var t = ( this . _lastTime = + new Date ( ) ) ,
e = ( this . _lastPos = this . _draggable . _newPos )
this . _positions . push ( e ) ,
this . _times . push ( t ) ,
t - this . _times [ 0 ] > 200 &&
( this . _positions . shift ( ) , this . _times . shift ( ) )
}
this . _map . fire ( 'move' ) . fire ( 'drag' )
} ,
_onViewReset : function ( ) {
var t = this . _map . getSize ( ) . _divideBy ( 2 ) ,
e = this . _map . latLngToLayerPoint ( [ 0 , 0 ] )
; ( this . _initialWorldOffset = e . subtract ( t ) . x ) ,
( this . _worldWidth = this . _map . project ( [ 0 , 180 ] ) . x )
} ,
_onPreDrag : function ( ) {
var t = this . _worldWidth ,
e = Math . round ( t / 2 ) ,
i = this . _initialWorldOffset ,
n = this . _draggable . _newPos . x ,
o = ( ( n - e + i ) % t ) + e - i ,
s = ( ( n + e + i ) % t ) - e - i ,
a = Math . abs ( o + i ) < Math . abs ( s + i ) ? o : s
this . _draggable . _newPos . x = a
} ,
_onDragEnd : function ( t ) {
var e = this . _map ,
i = e . options ,
n = + new Date ( ) - this . _lastTime ,
s = ! i . inertia || n > i . inertiaThreshold || ! this . _positions [ 0 ]
if ( ( e . fire ( 'dragend' , t ) , s ) ) e . fire ( 'moveend' )
else {
var a = this . _lastPos . subtract ( this . _positions [ 0 ] ) ,
r = ( this . _lastTime + n - this . _times [ 0 ] ) / 1e3 ,
h = i . easeLinearity ,
l = a . multiplyBy ( h / r ) ,
u = l . distanceTo ( [ 0 , 0 ] ) ,
c = Math . min ( i . inertiaMaxSpeed , u ) ,
d = l . multiplyBy ( c / u ) ,
p = c / ( i . inertiaDeceleration * h ) ,
_ = d . multiplyBy ( - p / 2 ) . round ( )
_ . x && _ . y
? ( ( _ = e . _limitOffset ( _ , e . options . maxBounds ) ) ,
o . Util . requestAnimFrame ( function ( ) {
e . panBy ( _ , {
duration : p ,
easeLinearity : h ,
noMoveStart : ! 0
} )
} ) )
: e . fire ( 'moveend' )
}
}
} ) ) ,
o . Map . addInitHook ( 'addHandler' , 'dragging' , o . Map . Drag ) ,
o . Map . mergeOptions ( { doubleClickZoom : ! 0 } ) ,
( o . Map . DoubleClickZoom = o . Handler . extend ( {
addHooks : function ( ) {
this . _map . on ( 'dblclick' , this . _onDoubleClick , this )
} ,
removeHooks : function ( ) {
this . _map . off ( 'dblclick' , this . _onDoubleClick , this )
} ,
_onDoubleClick : function ( t ) {
var e = this . _map ,
i = e . getZoom ( ) + ( t . originalEvent . shiftKey ? - 1 : 1 )
'center' === e . options . doubleClickZoom
? e . setZoom ( i )
: e . setZoomAround ( t . containerPoint , i )
}
} ) ) ,
o . Map . addInitHook (
'addHandler' ,
'doubleClickZoom' ,
o . Map . DoubleClickZoom
) ,
o . Map . mergeOptions ( { scrollWheelZoom : ! 0 } ) ,
( o . Map . ScrollWheelZoom = o . Handler . extend ( {
addHooks : function ( ) {
o . DomEvent . on (
this . _map . _container ,
'mousewheel' ,
this . _onWheelScroll ,
this
) ,
o . DomEvent . on (
this . _map . _container ,
'MozMousePixelScroll' ,
o . DomEvent . preventDefault
) ,
( this . _delta = 0 )
} ,
removeHooks : function ( ) {
o . DomEvent . off (
this . _map . _container ,
'mousewheel' ,
this . _onWheelScroll
) ,
o . DomEvent . off (
this . _map . _container ,
'MozMousePixelScroll' ,
o . DomEvent . preventDefault
)
} ,
_onWheelScroll : function ( t ) {
var e = o . DomEvent . getWheelDelta ( t )
; ( this . _delta += e ) ,
( this . _lastMousePos = this . _map . mouseEventToContainerPoint ( t ) ) ,
this . _startTime || ( this . _startTime = + new Date ( ) )
var i = Math . max ( 40 - ( + new Date ( ) - this . _startTime ) , 0 )
clearTimeout ( this . _timer ) ,
( this . _timer = setTimeout ( o . bind ( this . _performZoom , this ) , i ) ) ,
o . DomEvent . preventDefault ( t ) ,
o . DomEvent . stopPropagation ( t )
} ,
_performZoom : function ( ) {
var t = this . _map ,
e = this . _delta ,
i = t . getZoom ( )
; ( e = e > 0 ? Math . ceil ( e ) : Math . floor ( e ) ) ,
( e = Math . max ( Math . min ( e , 4 ) , - 4 ) ) ,
( e = t . _limitZoom ( i + e ) - i ) ,
( this . _delta = 0 ) ,
( this . _startTime = null ) ,
e &&
( 'center' === t . options . scrollWheelZoom
? t . setZoom ( i + e )
: t . setZoomAround ( this . _lastMousePos , i + e ) )
}
} ) ) ,
o . Map . addInitHook (
'addHandler' ,
'scrollWheelZoom' ,
o . Map . ScrollWheelZoom
) ,
o . extend ( o . DomEvent , {
_touchstart : o . Browser . msPointer
? 'MSPointerDown'
: o . Browser . pointer
? 'pointerdown'
: 'touchstart' ,
_touchend : o . Browser . msPointer
? 'MSPointerUp'
: o . Browser . pointer
? 'pointerup'
: 'touchend' ,
addDoubleTapListener : function ( t , i , n ) {
function s ( t ) {
var e
if (
( o . Browser . pointer
? ( _ . push ( t . pointerId ) , ( e = _ . length ) )
: ( e = t . touches . length ) ,
! ( e > 1 ) )
) {
var i = Date . now ( ) ,
n = i - ( r || i )
; ( h = t . touches ? t . touches [ 0 ] : t ) ,
( l = n > 0 && u >= n ) ,
( r = i )
}
}
function a ( t ) {
if ( o . Browser . pointer ) {
var e = _ . indexOf ( t . pointerId )
if ( - 1 === e ) return
_ . splice ( e , 1 )
}
if ( l ) {
if ( o . Browser . pointer ) {
var n ,
s = { }
for ( var a in h )
( n = h [ a ] ) ,
'function' == typeof n ? ( s [ a ] = n . bind ( h ) ) : ( s [ a ] = n )
h = s
}
; ( h . type = 'dblclick' ) , i ( h ) , ( r = null )
}
}
var r ,
h ,
l = ! 1 ,
u = 250 ,
c = '_leaflet_' ,
d = this . _touchstart ,
p = this . _touchend ,
_ = [ ]
; ( t [ c + d + n ] = s ) , ( t [ c + p + n ] = a )
var m = o . Browser . pointer ? e . documentElement : t
return (
t . addEventListener ( d , s , ! 1 ) ,
m . addEventListener ( p , a , ! 1 ) ,
o . Browser . pointer &&
m . addEventListener ( o . DomEvent . POINTER _CANCEL , a , ! 1 ) ,
this
)
} ,
removeDoubleTapListener : function ( t , i ) {
var n = '_leaflet_'
return (
t . removeEventListener (
this . _touchstart ,
t [ n + this . _touchstart + i ] ,
! 1
) ,
( o . Browser . pointer ? e . documentElement : t ) . removeEventListener (
this . _touchend ,
t [ n + this . _touchend + i ] ,
! 1
) ,
o . Browser . pointer &&
e . documentElement . removeEventListener (
o . DomEvent . POINTER _CANCEL ,
t [ n + this . _touchend + i ] ,
! 1
) ,
this
)
}
} ) ,
o . extend ( o . DomEvent , {
POINTER _DOWN : o . Browser . msPointer ? 'MSPointerDown' : 'pointerdown' ,
POINTER _MOVE : o . Browser . msPointer ? 'MSPointerMove' : 'pointermove' ,
POINTER _UP : o . Browser . msPointer ? 'MSPointerUp' : 'pointerup' ,
POINTER _CANCEL : o . Browser . msPointer
? 'MSPointerCancel'
: 'pointercancel' ,
_pointers : [ ] ,
_pointerDocumentListener : ! 1 ,
addPointerListener : function ( t , e , i , n ) {
switch ( e ) {
case 'touchstart' :
return this . addPointerListenerStart ( t , e , i , n )
case 'touchend' :
return this . addPointerListenerEnd ( t , e , i , n )
case 'touchmove' :
return this . addPointerListenerMove ( t , e , i , n )
default :
throw 'Unknown touch event type'
}
} ,
addPointerListenerStart : function ( t , i , n , s ) {
var a = '_leaflet_' ,
r = this . _pointers ,
h = function ( t ) {
'mouse' !== t . pointerType &&
t . pointerType !== t . MSPOINTER _TYPE _MOUSE &&
o . DomEvent . preventDefault ( t )
for ( var e = ! 1 , i = 0 ; i < r . length ; i ++ )
if ( r [ i ] . pointerId === t . pointerId ) {
e = ! 0
break
}
e || r . push ( t ) ,
( t . touches = r . slice ( ) ) ,
( t . changedTouches = [ t ] ) ,
n ( t )
}
if (
( ( t [ a + 'touchstart' + s ] = h ) ,
t . addEventListener ( this . POINTER _DOWN , h , ! 1 ) ,
! this . _pointerDocumentListener )
) {
var l = function ( t ) {
for ( var e = 0 ; e < r . length ; e ++ )
if ( r [ e ] . pointerId === t . pointerId ) {
r . splice ( e , 1 )
break
}
}
e . documentElement . addEventListener ( this . POINTER _UP , l , ! 1 ) ,
e . documentElement . addEventListener ( this . POINTER _CANCEL , l , ! 1 ) ,
( this . _pointerDocumentListener = ! 0 )
}
return this
} ,
addPointerListenerMove : function ( t , e , i , n ) {
function o ( t ) {
if (
( t . pointerType !== t . MSPOINTER _TYPE _MOUSE &&
'mouse' !== t . pointerType ) ||
0 !== t . buttons
) {
for ( var e = 0 ; e < a . length ; e ++ )
if ( a [ e ] . pointerId === t . pointerId ) {
a [ e ] = t
break
}
; ( t . touches = a . slice ( ) ) , ( t . changedTouches = [ t ] ) , i ( t )
}
}
var s = '_leaflet_' ,
a = this . _pointers
return (
( t [ s + 'touchmove' + n ] = o ) ,
t . addEventListener ( this . POINTER _MOVE , o , ! 1 ) ,
this
)
} ,
addPointerListenerEnd : function ( t , e , i , n ) {
var o = '_leaflet_' ,
s = this . _pointers ,
a = function ( t ) {
for ( var e = 0 ; e < s . length ; e ++ )
if ( s [ e ] . pointerId === t . pointerId ) {
s . splice ( e , 1 )
break
}
; ( t . touches = s . slice ( ) ) , ( t . changedTouches = [ t ] ) , i ( t )
}
return (
( t [ o + 'touchend' + n ] = a ) ,
t . addEventListener ( this . POINTER _UP , a , ! 1 ) ,
t . addEventListener ( this . POINTER _CANCEL , a , ! 1 ) ,
this
)
} ,
removePointerListener : function ( t , e , i ) {
var n = '_leaflet_' ,
o = t [ n + e + i ]
switch ( e ) {
case 'touchstart' :
t . removeEventListener ( this . POINTER _DOWN , o , ! 1 )
break
case 'touchmove' :
t . removeEventListener ( this . POINTER _MOVE , o , ! 1 )
break
case 'touchend' :
t . removeEventListener ( this . POINTER _UP , o , ! 1 ) ,
t . removeEventListener ( this . POINTER _CANCEL , o , ! 1 )
}
return this
}
} ) ,
o . Map . mergeOptions ( {
touchZoom : o . Browser . touch && ! o . Browser . android23 ,
bounceAtZoomLimits : ! 0
} ) ,
( o . Map . TouchZoom = o . Handler . extend ( {
addHooks : function ( ) {
o . DomEvent . on (
this . _map . _container ,
'touchstart' ,
this . _onTouchStart ,
this
)
} ,
removeHooks : function ( ) {
o . DomEvent . off (
this . _map . _container ,
'touchstart' ,
this . _onTouchStart ,
this
)
} ,
_onTouchStart : function ( t ) {
var i = this . _map
if (
t . touches &&
2 === t . touches . length &&
! i . _animatingZoom &&
! this . _zooming
) {
var n = i . mouseEventToLayerPoint ( t . touches [ 0 ] ) ,
s = i . mouseEventToLayerPoint ( t . touches [ 1 ] ) ,
a = i . _getCenterLayerPoint ( )
; ( this . _startCenter = n . add ( s ) . _divideBy ( 2 ) ) ,
( this . _startDist = n . distanceTo ( s ) ) ,
( this . _moved = ! 1 ) ,
( this . _zooming = ! 0 ) ,
( this . _centerOffset = a . subtract ( this . _startCenter ) ) ,
i . _panAnim && i . _panAnim . stop ( ) ,
o . DomEvent . on ( e , 'touchmove' , this . _onTouchMove , this ) . on (
e ,
'touchend' ,
this . _onTouchEnd ,
this
) ,
o . DomEvent . preventDefault ( t )
}
} ,
_onTouchMove : function ( t ) {
var e = this . _map
if ( t . touches && 2 === t . touches . length && this . _zooming ) {
var i = e . mouseEventToLayerPoint ( t . touches [ 0 ] ) ,
n = e . mouseEventToLayerPoint ( t . touches [ 1 ] )
; ( this . _scale = i . distanceTo ( n ) / this . _startDist ) ,
( this . _delta = i
. _add ( n )
. _divideBy ( 2 )
. _subtract ( this . _startCenter ) ) ,
1 !== this . _scale &&
( e . options . bounceAtZoomLimits ||
! (
( e . getZoom ( ) === e . getMinZoom ( ) && this . _scale < 1 ) ||
( e . getZoom ( ) === e . getMaxZoom ( ) && this . _scale > 1 )
) ) &&
( this . _moved ||
( o . DomUtil . addClass ( e . _mapPane , 'leaflet-touching' ) ,
e . fire ( 'movestart' ) . fire ( 'zoomstart' ) ,
( this . _moved = ! 0 ) ) ,
o . Util . cancelAnimFrame ( this . _animRequest ) ,
( this . _animRequest = o . Util . requestAnimFrame (
this . _updateOnMove ,
this ,
! 0 ,
this . _map . _container
) ) ,
o . DomEvent . preventDefault ( t ) )
}
} ,
_updateOnMove : function ( ) {
var t = this . _map ,
e = this . _getScaleOrigin ( ) ,
i = t . layerPointToLatLng ( e ) ,
n = t . getScaleZoom ( this . _scale )
t . _animateZoom (
i ,
n ,
this . _startCenter ,
this . _scale ,
this . _delta ,
! 1 ,
! 0
)
} ,
_onTouchEnd : function ( ) {
if ( ! this . _moved || ! this . _zooming ) return void ( this . _zooming = ! 1 )
var t = this . _map
; ( this . _zooming = ! 1 ) ,
o . DomUtil . removeClass ( t . _mapPane , 'leaflet-touching' ) ,
o . Util . cancelAnimFrame ( this . _animRequest ) ,
o . DomEvent . off ( e , 'touchmove' , this . _onTouchMove ) . off (
e ,
'touchend' ,
this . _onTouchEnd
)
var i = this . _getScaleOrigin ( ) ,
n = t . layerPointToLatLng ( i ) ,
s = t . getZoom ( ) ,
a = t . getScaleZoom ( this . _scale ) - s ,
r = a > 0 ? Math . ceil ( a ) : Math . floor ( a ) ,
h = t . _limitZoom ( s + r ) ,
l = t . getZoomScale ( h ) / this . _scale
t . _animateZoom ( n , h , i , l )
} ,
_getScaleOrigin : function ( ) {
var t = this . _centerOffset
. subtract ( this . _delta )
. divideBy ( this . _scale )
return this . _startCenter . add ( t )
}
} ) ) ,
o . Map . addInitHook ( 'addHandler' , 'touchZoom' , o . Map . TouchZoom ) ,
o . Map . mergeOptions ( {
tap : ! 0 ,
tapTolerance : 15
} ) ,
( o . Map . Tap = o . Handler . extend ( {
addHooks : function ( ) {
o . DomEvent . on (
this . _map . _container ,
'touchstart' ,
this . _onDown ,
this
)
} ,
removeHooks : function ( ) {
o . DomEvent . off (
this . _map . _container ,
'touchstart' ,
this . _onDown ,
this
)
} ,
_onDown : function ( t ) {
if ( t . touches ) {
if (
( o . DomEvent . preventDefault ( t ) ,
( this . _fireClick = ! 0 ) ,
t . touches . length > 1 )
)
return (
( this . _fireClick = ! 1 ) , void clearTimeout ( this . _holdTimeout )
)
var i = t . touches [ 0 ] ,
n = i . target
; ( this . _startPos = this . _newPos = new o . Point (
i . clientX ,
i . clientY
) ) ,
n . tagName &&
'a' === n . tagName . toLowerCase ( ) &&
o . DomUtil . addClass ( n , 'leaflet-active' ) ,
( this . _holdTimeout = setTimeout (
o . bind ( function ( ) {
this . _isTapValid ( ) &&
( ( this . _fireClick = ! 1 ) ,
this . _onUp ( ) ,
this . _simulateEvent ( 'contextmenu' , i ) )
} , this ) ,
1e3
) ) ,
o . DomEvent . on ( e , 'touchmove' , this . _onMove , this ) . on (
e ,
'touchend' ,
this . _onUp ,
this
)
}
} ,
_onUp : function ( t ) {
if (
( clearTimeout ( this . _holdTimeout ) ,
o . DomEvent . off ( e , 'touchmove' , this . _onMove , this ) . off (
e ,
'touchend' ,
this . _onUp ,
this
) ,
this . _fireClick && t && t . changedTouches )
) {
var i = t . changedTouches [ 0 ] ,
n = i . target
n &&
n . tagName &&
'a' === n . tagName . toLowerCase ( ) &&
o . DomUtil . removeClass ( n , 'leaflet-active' ) ,
this . _isTapValid ( ) && this . _simulateEvent ( 'click' , i )
}
} ,
_isTapValid : function ( ) {
return (
this . _newPos . distanceTo ( this . _startPos ) <=
this . _map . options . tapTolerance
)
} ,
_onMove : function ( t ) {
var e = t . touches [ 0 ]
this . _newPos = new o . Point ( e . clientX , e . clientY )
} ,
_simulateEvent : function ( i , n ) {
var o = e . createEvent ( 'MouseEvents' )
; ( o . _simulated = ! 0 ) ,
( n . target . _simulatedClick = ! 0 ) ,
o . initMouseEvent (
i ,
! 0 ,
! 0 ,
t ,
1 ,
n . screenX ,
n . screenY ,
n . clientX ,
n . clientY ,
! 1 ,
! 1 ,
! 1 ,
! 1 ,
0 ,
null
) ,
n . target . dispatchEvent ( o )
}
} ) ) ,
o . Browser . touch &&
! o . Browser . pointer &&
o . Map . addInitHook ( 'addHandler' , 'tap' , o . Map . Tap ) ,
o . Map . mergeOptions ( { boxZoom : ! 0 } ) ,
( o . Map . BoxZoom = o . Handler . extend ( {
initialize : function ( t ) {
; ( this . _map = t ) ,
( this . _container = t . _container ) ,
( this . _pane = t . _panes . overlayPane ) ,
( this . _moved = ! 1 )
} ,
addHooks : function ( ) {
o . DomEvent . on ( this . _container , 'mousedown' , this . _onMouseDown , this )
} ,
removeHooks : function ( ) {
o . DomEvent . off ( this . _container , 'mousedown' , this . _onMouseDown ) ,
( this . _moved = ! 1 )
} ,
moved : function ( ) {
return this . _moved
} ,
_onMouseDown : function ( t ) {
return (
( this . _moved = ! 1 ) ,
! t . shiftKey || ( 1 !== t . which && 1 !== t . button )
? ! 1
: ( o . DomUtil . disableTextSelection ( ) ,
o . DomUtil . disableImageDrag ( ) ,
( this . _startLayerPoint = this . _map . mouseEventToLayerPoint ( t ) ) ,
void o . DomEvent . on ( e , 'mousemove' , this . _onMouseMove , this )
. on ( e , 'mouseup' , this . _onMouseUp , this )
. on ( e , 'keydown' , this . _onKeyDown , this ) )
)
} ,
_onMouseMove : function ( t ) {
this . _moved ||
( ( this . _box = o . DomUtil . create (
'div' ,
'leaflet-zoom-box' ,
this . _pane
) ) ,
o . DomUtil . setPosition ( this . _box , this . _startLayerPoint ) ,
( this . _container . style . cursor = 'crosshair' ) ,
this . _map . fire ( 'boxzoomstart' ) )
var e = this . _startLayerPoint ,
i = this . _box ,
n = this . _map . mouseEventToLayerPoint ( t ) ,
s = n . subtract ( e ) ,
a = new o . Point ( Math . min ( n . x , e . x ) , Math . min ( n . y , e . y ) )
o . DomUtil . setPosition ( i , a ) ,
( this . _moved = ! 0 ) ,
( i . style . width = Math . max ( 0 , Math . abs ( s . x ) - 4 ) + 'px' ) ,
( i . style . height = Math . max ( 0 , Math . abs ( s . y ) - 4 ) + 'px' )
} ,
_finish : function ( ) {
this . _moved &&
( this . _pane . removeChild ( this . _box ) ,
( this . _container . style . cursor = '' ) ) ,
o . DomUtil . enableTextSelection ( ) ,
o . DomUtil . enableImageDrag ( ) ,
o . DomEvent . off ( e , 'mousemove' , this . _onMouseMove )
. off ( e , 'mouseup' , this . _onMouseUp )
. off ( e , 'keydown' , this . _onKeyDown )
} ,
_onMouseUp : function ( t ) {
this . _finish ( )
var e = this . _map ,
i = e . mouseEventToLayerPoint ( t )
if ( ! this . _startLayerPoint . equals ( i ) ) {
var n = new o . LatLngBounds (
e . layerPointToLatLng ( this . _startLayerPoint ) ,
e . layerPointToLatLng ( i )
)
e . fitBounds ( n ) , e . fire ( 'boxzoomend' , { boxZoomBounds : n } )
}
} ,
_onKeyDown : function ( t ) {
27 === t . keyCode && this . _finish ( )
}
} ) ) ,
o . Map . addInitHook ( 'addHandler' , 'boxZoom' , o . Map . BoxZoom ) ,
o . Map . mergeOptions ( {
keyboard : ! 0 ,
keyboardPanOffset : 80 ,
keyboardZoomOffset : 1
} ) ,
( o . Map . Keyboard = o . Handler . extend ( {
keyCodes : {
left : [ 37 ] ,
right : [ 39 ] ,
down : [ 40 ] ,
up : [ 38 ] ,
zoomIn : [ 187 , 107 , 61 , 171 ] ,
zoomOut : [ 189 , 109 , 173 ]
} ,
initialize : function ( t ) {
; ( this . _map = t ) ,
this . _setPanOffset ( t . options . keyboardPanOffset ) ,
this . _setZoomOffset ( t . options . keyboardZoomOffset )
} ,
addHooks : function ( ) {
var t = this . _map . _container
; - 1 === t . tabIndex && ( t . tabIndex = '0' ) ,
o . DomEvent . on ( t , 'focus' , this . _onFocus , this )
. on ( t , 'blur' , this . _onBlur , this )
. on ( t , 'mousedown' , this . _onMouseDown , this ) ,
this . _map
. on ( 'focus' , this . _addHooks , this )
. on ( 'blur' , this . _removeHooks , this )
} ,
removeHooks : function ( ) {
this . _removeHooks ( )
var t = this . _map . _container
o . DomEvent . off ( t , 'focus' , this . _onFocus , this )
. off ( t , 'blur' , this . _onBlur , this )
. off ( t , 'mousedown' , this . _onMouseDown , this ) ,
this . _map
. off ( 'focus' , this . _addHooks , this )
. off ( 'blur' , this . _removeHooks , this )
} ,
_onMouseDown : function ( ) {
if ( ! this . _focused ) {
var i = e . body ,
n = e . documentElement ,
o = i . scrollTop || n . scrollTop ,
s = i . scrollLeft || n . scrollLeft
this . _map . _container . focus ( ) , t . scrollTo ( s , o )
}
} ,
_onFocus : function ( ) {
; ( this . _focused = ! 0 ) , this . _map . fire ( 'focus' )
} ,
_onBlur : function ( ) {
; ( this . _focused = ! 1 ) , this . _map . fire ( 'blur' )
} ,
_setPanOffset : function ( t ) {
var e ,
i ,
n = ( this . _panKeys = { } ) ,
o = this . keyCodes
for ( e = 0 , i = o . left . length ; i > e ; e ++ )
n [ o . left [ e ] ] = [ - 1 * t , 0 ]
for ( e = 0 , i = o . right . length ; i > e ; e ++ ) n [ o . right [ e ] ] = [ t , 0 ]
for ( e = 0 , i = o . down . length ; i > e ; e ++ ) n [ o . down [ e ] ] = [ 0 , t ]
for ( e = 0 , i = o . up . length ; i > e ; e ++ ) n [ o . up [ e ] ] = [ 0 , - 1 * t ]
} ,
_setZoomOffset : function ( t ) {
var e ,
i ,
n = ( this . _zoomKeys = { } ) ,
o = this . keyCodes
for ( e = 0 , i = o . zoomIn . length ; i > e ; e ++ ) n [ o . zoomIn [ e ] ] = t
for ( e = 0 , i = o . zoomOut . length ; i > e ; e ++ ) n [ o . zoomOut [ e ] ] = - t
} ,
_addHooks : function ( ) {
o . DomEvent . on ( e , 'keydown' , this . _onKeyDown , this )
} ,
_removeHooks : function ( ) {
o . DomEvent . off ( e , 'keydown' , this . _onKeyDown , this )
} ,
_onKeyDown : function ( t ) {
var e = t . keyCode ,
i = this . _map
if ( e in this . _panKeys ) {
if ( i . _panAnim && i . _panAnim . _inProgress ) return
i . panBy ( this . _panKeys [ e ] ) ,
i . options . maxBounds && i . panInsideBounds ( i . options . maxBounds )
} else {
if ( ! ( e in this . _zoomKeys ) ) return
i . setZoom ( i . getZoom ( ) + this . _zoomKeys [ e ] )
}
o . DomEvent . stop ( t )
}
} ) ) ,
o . Map . addInitHook ( 'addHandler' , 'keyboard' , o . Map . Keyboard ) ,
( o . Handler . MarkerDrag = o . Handler . extend ( {
initialize : function ( t ) {
this . _marker = t
} ,
addHooks : function ( ) {
var t = this . _marker . _icon
this . _draggable || ( this . _draggable = new o . Draggable ( t , t ) ) ,
this . _draggable
. on ( 'dragstart' , this . _onDragStart , this )
. on ( 'drag' , this . _onDrag , this )
. on ( 'dragend' , this . _onDragEnd , this ) ,
this . _draggable . enable ( ) ,
o . DomUtil . addClass ( this . _marker . _icon , 'leaflet-marker-draggable' )
} ,
removeHooks : function ( ) {
this . _draggable
. off ( 'dragstart' , this . _onDragStart , this )
. off ( 'drag' , this . _onDrag , this )
. off ( 'dragend' , this . _onDragEnd , this ) ,
this . _draggable . disable ( ) ,
o . DomUtil . removeClass (
this . _marker . _icon ,
'leaflet-marker-draggable'
)
} ,
moved : function ( ) {
return this . _draggable && this . _draggable . _moved
} ,
_onDragStart : function ( ) {
this . _marker
. closePopup ( )
. fire ( 'movestart' )
. fire ( 'dragstart' )
} ,
_onDrag : function ( ) {
var t = this . _marker ,
e = t . _shadow ,
i = o . DomUtil . getPosition ( t . _icon ) ,
n = t . _map . layerPointToLatLng ( i )
e && o . DomUtil . setPosition ( e , i ) ,
( t . _latlng = n ) ,
t . fire ( 'move' , { latlng : n } ) . fire ( 'drag' )
} ,
_onDragEnd : function ( t ) {
this . _marker . fire ( 'moveend' ) . fire ( 'dragend' , t )
}
} ) ) ,
( o . Control = o . Class . extend ( {
options : { position : 'topright' } ,
initialize : function ( t ) {
o . setOptions ( this , t )
} ,
getPosition : function ( ) {
return this . options . position
} ,
setPosition : function ( t ) {
var e = this . _map
return (
e && e . removeControl ( this ) ,
( this . options . position = t ) ,
e && e . addControl ( this ) ,
this
)
} ,
getContainer : function ( ) {
return this . _container
} ,
addTo : function ( t ) {
this . _map = t
var e = ( this . _container = this . onAdd ( t ) ) ,
i = this . getPosition ( ) ,
n = t . _controlCorners [ i ]
return (
o . DomUtil . addClass ( e , 'leaflet-control' ) ,
- 1 !== i . indexOf ( 'bottom' )
? n . insertBefore ( e , n . firstChild )
: n . appendChild ( e ) ,
this
)
} ,
removeFrom : function ( t ) {
var e = this . getPosition ( ) ,
i = t . _controlCorners [ e ]
return (
i . removeChild ( this . _container ) ,
( this . _map = null ) ,
this . onRemove && this . onRemove ( t ) ,
this
)
} ,
_refocusOnMap : function ( ) {
this . _map && this . _map . getContainer ( ) . focus ( )
}
} ) ) ,
( o . control = function ( t ) {
return new o . Control ( t )
} ) ,
o . Map . include ( {
addControl : function ( t ) {
return t . addTo ( this ) , this
} ,
removeControl : function ( t ) {
return t . removeFrom ( this ) , this
} ,
_initControlPos : function ( ) {
function t ( t , s ) {
var a = i + t + ' ' + i + s
e [ t + s ] = o . DomUtil . create ( 'div' , a , n )
}
var e = ( this . _controlCorners = { } ) ,
i = 'leaflet-' ,
n = ( this . _controlContainer = o . DomUtil . create (
'div' ,
i + 'control-container' ,
this . _container
) )
t ( 'top' , 'left' ) ,
t ( 'top' , 'right' ) ,
t ( 'bottom' , 'left' ) ,
t ( 'bottom' , 'right' )
} ,
_clearControlPos : function ( ) {
this . _container . removeChild ( this . _controlContainer )
}
} ) ,
( o . Control . Zoom = o . Control . extend ( {
options : {
position : 'topleft' ,
zoomInText : '+' ,
zoomInTitle : '放大' ,
zoomOutText : '-' ,
zoomOutTitle : '缩小'
} ,
onAdd : function ( t ) {
var e = 'leaflet-control-zoom' ,
i = o . DomUtil . create ( 'div' , e + ' leaflet-bar' )
return (
( this . _map = t ) ,
( this . _zoomInButton = this . _createButton (
this . options . zoomInText ,
this . options . zoomInTitle ,
e + '-in' ,
i ,
this . _zoomIn ,
this
) ) ,
( this . _zoomOutButton = this . _createButton (
this . options . zoomOutText ,
this . options . zoomOutTitle ,
e + '-out' ,
i ,
this . _zoomOut ,
this
) ) ,
this . _updateDisabled ( ) ,
t . on ( 'zoomend zoomlevelschange' , this . _updateDisabled , this ) ,
i
)
} ,
onRemove : function ( t ) {
t . off ( 'zoomend zoomlevelschange' , this . _updateDisabled , this )
} ,
_zoomIn : function ( t ) {
this . _map . zoomIn ( t . shiftKey ? 3 : 1 )
} ,
_zoomOut : function ( t ) {
this . _map . zoomOut ( t . shiftKey ? 3 : 1 )
} ,
_createButton : function ( t , e , i , n , s , a ) {
var r = o . DomUtil . create ( 'a' , i , n )
; ( r . innerHTML = t ) , ( r . href = '#' ) , ( r . title = e )
var h = o . DomEvent . stopPropagation
return (
o . DomEvent . on ( r , 'click' , h )
. on ( r , 'mousedown' , h )
. on ( r , 'dblclick' , h )
. on ( r , 'click' , o . DomEvent . preventDefault )
. on ( r , 'click' , s , a )
. on ( r , 'click' , this . _refocusOnMap , a ) ,
r
)
} ,
_updateDisabled : function ( ) {
var t = this . _map ,
e = 'leaflet-disabled'
o . DomUtil . removeClass ( this . _zoomInButton , e ) ,
o . DomUtil . removeClass ( this . _zoomOutButton , e ) ,
t . _zoom === t . getMinZoom ( ) &&
o . DomUtil . addClass ( this . _zoomOutButton , e ) ,
t . _zoom === t . getMaxZoom ( ) &&
o . DomUtil . addClass ( this . _zoomInButton , e )
}
} ) ) ,
o . Map . mergeOptions ( { zoomControl : ! 0 } ) ,
o . Map . addInitHook ( function ( ) {
this . options . zoomControl &&
( ( this . zoomControl = new o . Control . Zoom ( ) ) ,
this . addControl ( this . zoomControl ) )
} ) ,
( o . control . zoom = function ( t ) {
return new o . Control . Zoom ( t )
} ) ,
( o . Control . Attribution = o . Control . extend ( {
options : {
position : 'bottomright' ,
prefix :
'<a href="http://leafletjs.com" title="A JS library for interactive maps">Leaflet</a>'
} ,
initialize : function ( t ) {
o . setOptions ( this , t ) , ( this . _attributions = { } )
} ,
onAdd : function ( t ) {
; ( this . _container = o . DomUtil . create (
'div' ,
'leaflet-control-attribution'
) ) ,
o . DomEvent . disableClickPropagation ( this . _container )
for ( var e in t . _layers )
t . _layers [ e ] . getAttribution &&
this . addAttribution ( t . _layers [ e ] . getAttribution ( ) )
return (
t
. on ( 'layeradd' , this . _onLayerAdd , this )
. on ( 'layerremove' , this . _onLayerRemove , this ) ,
this . _update ( ) ,
this . _container
)
} ,
onRemove : function ( t ) {
t . off ( 'layeradd' , this . _onLayerAdd ) . off (
'layerremove' ,
this . _onLayerRemove
)
} ,
setPrefix : function ( t ) {
return ( this . options . prefix = t ) , this . _update ( ) , this
} ,
addAttribution : function ( t ) {
return t
? ( this . _attributions [ t ] || ( this . _attributions [ t ] = 0 ) ,
this . _attributions [ t ] ++ ,
this . _update ( ) ,
this )
: void 0
} ,
removeAttribution : function ( t ) {
return t
? ( this . _attributions [ t ] &&
( this . _attributions [ t ] -- , this . _update ( ) ) ,
this )
: void 0
} ,
_update : function ( ) {
if ( this . _map ) {
var t = [ ]
for ( var e in this . _attributions )
this . _attributions [ e ] && t . push ( e )
var i = [ ]
this . options . prefix && i . push ( this . options . prefix ) ,
t . length && i . push ( t . join ( ', ' ) ) ,
( this . _container . innerHTML = i . join ( ' | ' ) )
}
} ,
_onLayerAdd : function ( t ) {
t . layer . getAttribution &&
this . addAttribution ( t . layer . getAttribution ( ) )
} ,
_onLayerRemove : function ( t ) {
t . layer . getAttribution &&
this . removeAttribution ( t . layer . getAttribution ( ) )
}
} ) ) ,
o . Map . mergeOptions ( { attributionControl : ! 0 } ) ,
o . Map . addInitHook ( function ( ) {
this . options . attributionControl &&
( this . attributionControl = new o . Control . Attribution ( ) . addTo ( this ) )
} ) ,
( o . control . attribution = function ( t ) {
return new o . Control . Attribution ( t )
} ) ,
( o . Control . Scale = o . Control . extend ( {
options : {
position : 'bottomleft' ,
maxWidth : 100 ,
metric : ! 0 ,
imperial : ! 0 ,
updateWhenIdle : ! 1
} ,
onAdd : function ( t ) {
this . _map = t
var e = 'leaflet-control-scale' ,
i = o . DomUtil . create ( 'div' , e ) ,
n = this . options
return (
this . _addScales ( n , e , i ) ,
t . on ( n . updateWhenIdle ? 'moveend' : 'move' , this . _update , this ) ,
t . whenReady ( this . _update , this ) ,
i
)
} ,
onRemove : function ( t ) {
t . off (
this . options . updateWhenIdle ? 'moveend' : 'move' ,
this . _update ,
this
)
} ,
_addScales : function ( t , e , i ) {
t . metric &&
( this . _mScale = o . DomUtil . create ( 'div' , e + '-line' , i ) ) ,
t . imperial &&
( this . _iScale = o . DomUtil . create ( 'div' , e + '-line' , i ) )
} ,
_update : function ( ) {
var t = this . _map . getBounds ( ) ,
e = t . getCenter ( ) . lat ,
i = 6378137 * Math . PI * Math . cos ( ( e * Math . PI ) / 180 ) ,
n = ( i * ( t . getNorthEast ( ) . lng - t . getSouthWest ( ) . lng ) ) / 180 ,
o = this . _map . getSize ( ) ,
s = this . options ,
a = 0
o . x > 0 && ( a = n * ( s . maxWidth / o . x ) ) , this . _updateScales ( s , a )
} ,
_updateScales : function ( t , e ) {
t . metric && e && this . _updateMetric ( e ) ,
t . imperial && e && this . _updateImperial ( e )
} ,
_updateMetric : function ( t ) {
var e = this . _getRoundNum ( t )
; ( this . _mScale . style . width = this . _getScaleWidth ( e / t ) + 'px' ) ,
( this . _mScale . innerHTML = 1e3 > e ? e + ' m' : e / 1e3 + ' km' )
} ,
_updateImperial : function ( t ) {
var e ,
i ,
n ,
o = 3.2808399 * t ,
s = this . _iScale
o > 5280
? ( ( e = o / 5280 ) ,
( i = this . _getRoundNum ( e ) ) ,
( s . style . width = this . _getScaleWidth ( i / e ) + 'px' ) ,
( s . innerHTML = i + ' mi' ) )
: ( ( n = this . _getRoundNum ( o ) ) ,
( s . style . width = this . _getScaleWidth ( n / o ) + 'px' ) ,
( s . innerHTML = n + ' ft' ) )
} ,
_getScaleWidth : function ( t ) {
return Math . round ( this . options . maxWidth * t ) - 10
} ,
_getRoundNum : function ( t ) {
var e = Math . pow ( 10 , ( Math . floor ( t ) + '' ) . length - 1 ) ,
i = t / e
return (
( i = i >= 10 ? 10 : i >= 5 ? 5 : i >= 3 ? 3 : i >= 2 ? 2 : 1 ) ,
e * i
)
}
} ) ) ,
( o . control . scale = function ( t ) {
return new o . Control . Scale ( t )
} ) ,
( o . Control . Layers = o . Control . extend ( {
options : { collapsed : ! 0 , position : 'topright' , autoZIndex : ! 0 } ,
initialize : function ( t , e , i ) {
o . setOptions ( this , i ) ,
( this . _layers = { } ) ,
( this . _lastZIndex = 0 ) ,
( this . _handlingClick = ! 1 )
for ( var n in t ) this . _addLayer ( t [ n ] , n )
for ( n in e ) this . _addLayer ( e [ n ] , n , ! 0 )
} ,
onAdd : function ( t ) {
return (
this . _initLayout ( ) ,
this . _update ( ) ,
t
. on ( 'layeradd' , this . _onLayerChange , this )
. on ( 'layerremove' , this . _onLayerChange , this ) ,
this . _container
)
} ,
onRemove : function ( t ) {
t . off ( 'layeradd' , this . _onLayerChange , this ) . off (
'layerremove' ,
this . _onLayerChange ,
this
)
} ,
addBaseLayer : function ( t , e ) {
return this . _addLayer ( t , e ) , this . _update ( ) , this
} ,
addOverlay : function ( t , e ) {
return this . _addLayer ( t , e , ! 0 ) , this . _update ( ) , this
} ,
removeLayer : function ( t ) {
var e = o . stamp ( t )
return delete this . _layers [ e ] , this . _update ( ) , this
} ,
_initLayout : function ( ) {
var t = 'leaflet-control-layers' ,
e = ( this . _container = o . DomUtil . create ( 'div' , t ) )
e . setAttribute ( 'aria-haspopup' , ! 0 ) ,
o . Browser . touch
? o . DomEvent . on ( e , 'click' , o . DomEvent . stopPropagation )
: o . DomEvent . disableClickPropagation (
e
) . disableScrollPropagation ( e )
var i = ( this . _form = o . DomUtil . create ( 'form' , t + '-list' ) )
if ( this . options . collapsed ) {
o . Browser . android ||
o . DomEvent . on ( e , 'mouseover' , this . _expand , this ) . on (
e ,
'mouseout' ,
this . _collapse ,
this
)
var n = ( this . _layersLink = o . DomUtil . create (
'a' ,
t + '-toggle' ,
e
) )
; ( n . href = '#' ) ,
( n . title = 'Layers' ) ,
o . Browser . touch
? o . DomEvent . on ( n , 'click' , o . DomEvent . stop ) . on (
n ,
'click' ,
this . _expand ,
this
)
: o . DomEvent . on ( n , 'focus' , this . _expand , this ) ,
o . DomEvent . on (
i ,
'click' ,
function ( ) {
setTimeout ( o . bind ( this . _onInputClick , this ) , 0 )
} ,
this
) ,
this . _map . on ( 'click' , this . _collapse , this )
} else this . _expand ( )
; ( this . _baseLayersList = o . DomUtil . create ( 'div' , t + '-base' , i ) ) ,
( this . _separator = o . DomUtil . create ( 'div' , t + '-separator' , i ) ) ,
( this . _overlaysList = o . DomUtil . create (
'div' ,
t + '-overlays' ,
i
) ) ,
e . appendChild ( i )
} ,
_addLayer : function ( t , e , i ) {
var n = o . stamp ( t )
; ( this . _layers [ n ] = {
layer : t ,
name : e ,
overlay : i
} ) ,
this . options . autoZIndex &&
t . setZIndex &&
( this . _lastZIndex ++ , t . setZIndex ( this . _lastZIndex ) )
} ,
_update : function ( ) {
if ( this . _container ) {
; ( this . _baseLayersList . innerHTML = '' ) ,
( this . _overlaysList . innerHTML = '' )
var t ,
e ,
i = ! 1 ,
n = ! 1
for ( t in this . _layers )
( e = this . _layers [ t ] ) ,
this . _addItem ( e ) ,
( n = n || e . overlay ) ,
( i = i || ! e . overlay )
this . _separator . style . display = n && i ? '' : 'none'
}
} ,
_onLayerChange : function ( t ) {
var e = this . _layers [ o . stamp ( t . layer ) ]
if ( e ) {
this . _handlingClick || this . _update ( )
var i = e . overlay
? 'layeradd' === t . type
? 'overlayadd'
: 'overlayremove'
: 'layeradd' === t . type
? 'baselayerchange'
: null
i && this . _map . fire ( i , e )
}
} ,
_createRadioElement : function ( t , i ) {
var n =
'<input type="radio" class="leaflet-control-layers-selector" name="' +
t +
'"'
i && ( n += ' checked="checked"' ) , ( n += '/>' )
var o = e . createElement ( 'div' )
return ( o . innerHTML = n ) , o . firstChild
} ,
_addItem : function ( t ) {
var i ,
n = e . createElement ( 'label' ) ,
s = this . _map . hasLayer ( t . layer )
t . overlay
? ( ( i = e . createElement ( 'input' ) ) ,
( i . type = 'checkbox' ) ,
( i . className = 'leaflet-control-layers-selector' ) ,
( i . defaultChecked = s ) )
: ( i = this . _createRadioElement ( 'leaflet-base-layers' , s ) ) ,
( i . layerId = o . stamp ( t . layer ) ) ,
o . DomEvent . on ( i , 'click' , this . _onInputClick , this )
var a = e . createElement ( 'span' )
; ( a . innerHTML = ' ' + t . name ) , n . appendChild ( i ) , n . appendChild ( a )
var r = t . overlay ? this . _overlaysList : this . _baseLayersList
return r . appendChild ( n ) , n
} ,
_onInputClick : function ( ) {
var t ,
e ,
i ,
n = this . _form . getElementsByTagName ( 'input' ) ,
o = n . length
for ( this . _handlingClick = ! 0 , t = 0 ; o > t ; t ++ )
( e = n [ t ] ) ,
( i = this . _layers [ e . layerId ] ) ,
e . checked && ! this . _map . hasLayer ( i . layer )
? this . _map . addLayer ( i . layer )
: ! e . checked &&
this . _map . hasLayer ( i . layer ) &&
this . _map . removeLayer ( i . layer )
; ( this . _handlingClick = ! 1 ) , this . _refocusOnMap ( )
} ,
_expand : function ( ) {
o . DomUtil . addClass (
this . _container ,
'leaflet-control-layers-expanded'
)
} ,
_collapse : function ( ) {
this . _container . className = this . _container . className . replace (
' leaflet-control-layers-expanded' ,
''
)
}
} ) ) ,
( o . control . layers = function ( t , e , i ) {
return new o . Control . Layers ( t , e , i )
} ) ,
( o . PosAnimation = o . Class . extend ( {
includes : o . Mixin . Events ,
run : function ( t , e , i , n ) {
this . stop ( ) ,
( this . _el = t ) ,
( this . _inProgress = ! 0 ) ,
( this . _newPos = e ) ,
this . fire ( 'start' ) ,
( t . style [ o . DomUtil . TRANSITION ] =
'all ' +
( i || 0.25 ) +
's cubic-bezier(0,0,' +
( n || 0.5 ) +
',1)' ) ,
o . DomEvent . on (
t ,
o . DomUtil . TRANSITION _END ,
this . _onTransitionEnd ,
this
) ,
o . DomUtil . setPosition ( t , e ) ,
o . Util . falseFn ( t . offsetWidth ) ,
( this . _stepTimer = setInterval ( o . bind ( this . _onStep , this ) , 50 ) )
} ,
stop : function ( ) {
this . _inProgress &&
( o . DomUtil . setPosition ( this . _el , this . _getPos ( ) ) ,
this . _onTransitionEnd ( ) ,
o . Util . falseFn ( this . _el . offsetWidth ) )
} ,
_onStep : function ( ) {
var t = this . _getPos ( )
return t
? ( ( this . _el . _leaflet _pos = t ) , void this . fire ( 'step' ) )
: void this . _onTransitionEnd ( )
} ,
_transformRe : /([-+]?(?:\d*\.)?\d+)\D*, ([-+]?(?:\d*\.)?\d+)\D*\)/ ,
_getPos : function ( ) {
var e ,
i ,
n ,
s = this . _el ,
a = t . getComputedStyle ( s )
if ( o . Browser . any3d ) {
if ( ( ( n = a [ o . DomUtil . TRANSFORM ] . match ( this . _transformRe ) ) , ! n ) )
return
; ( e = parseFloat ( n [ 1 ] ) ) , ( i = parseFloat ( n [ 2 ] ) )
} else ( e = parseFloat ( a . left ) ) , ( i = parseFloat ( a . top ) )
return new o . Point ( e , i , ! 0 )
} ,
_onTransitionEnd : function ( ) {
o . DomEvent . off (
this . _el ,
o . DomUtil . TRANSITION _END ,
this . _onTransitionEnd ,
this
) ,
this . _inProgress &&
( ( this . _inProgress = ! 1 ) ,
( this . _el . style [ o . DomUtil . TRANSITION ] = '' ) ,
( this . _el . _leaflet _pos = this . _newPos ) ,
clearInterval ( this . _stepTimer ) ,
this . fire ( 'step' ) . fire ( 'end' ) )
}
} ) ) ,
o . Map . include ( {
setView : function ( t , e , n ) {
if (
( ( e = e === i ? this . _zoom : this . _limitZoom ( e ) ) ,
( t = this . _limitCenter ( o . latLng ( t ) , e , this . options . maxBounds ) ) ,
( n = n || { } ) ,
this . _panAnim && this . _panAnim . stop ( ) ,
this . _loaded && ! n . reset && n !== ! 0 )
) {
n . animate !== i &&
( ( n . zoom = o . extend ( { animate : n . animate } , n . zoom ) ) ,
( n . pan = o . extend ( { animate : n . animate } , n . pan ) ) )
var s =
this . _zoom !== e
? this . _tryAnimatedZoom && this . _tryAnimatedZoom ( t , e , n . zoom )
: this . _tryAnimatedPan ( t , n . pan )
if ( s ) return clearTimeout ( this . _sizeTimer ) , this
}
return this . _resetView ( t , e ) , this
} ,
panBy : function ( t , e ) {
if ( ( ( t = o . point ( t ) . round ( ) ) , ( e = e || { } ) , ! t . x && ! t . y ) )
return this
if (
( this . _panAnim ||
( ( this . _panAnim = new o . PosAnimation ( ) ) ,
this . _panAnim . on (
{
step : this . _onPanTransitionStep ,
end : this . _onPanTransitionEnd
} ,
this
) ) ,
e . noMoveStart || this . fire ( 'movestart' ) ,
e . animate !== ! 1 )
) {
o . DomUtil . addClass ( this . _mapPane , 'leaflet-pan-anim' )
var i = this . _getMapPanePos ( ) . subtract ( t )
this . _panAnim . run (
this . _mapPane ,
i ,
e . duration || 0.25 ,
e . easeLinearity
)
} else this . _rawPanBy ( t ) , this . fire ( 'move' ) . fire ( 'moveend' )
return this
} ,
_onPanTransitionStep : function ( ) {
this . fire ( 'move' )
} ,
_onPanTransitionEnd : function ( ) {
o . DomUtil . removeClass ( this . _mapPane , 'leaflet-pan-anim' ) ,
this . fire ( 'moveend' )
} ,
_tryAnimatedPan : function ( t , e ) {
var i = this . _getCenterOffset ( t ) . _floor ( )
return ( e && e . animate ) === ! 0 || this . getSize ( ) . contains ( i )
? ( this . panBy ( i , e ) , ! 0 )
: ! 1
}
} ) ,
( o . PosAnimation = o . DomUtil . TRANSITION
? o . PosAnimation
: o . PosAnimation . extend ( {
run : function ( t , e , i , n ) {
this . stop ( ) ,
( this . _el = t ) ,
( this . _inProgress = ! 0 ) ,
( this . _duration = i || 0.25 ) ,
( this . _easeOutPower = 1 / Math . max ( n || 0.5 , 0.2 ) ) ,
( this . _startPos = o . DomUtil . getPosition ( t ) ) ,
( this . _offset = e . subtract ( this . _startPos ) ) ,
( this . _startTime = + new Date ( ) ) ,
this . fire ( 'start' ) ,
this . _animate ( )
} ,
stop : function ( ) {
this . _inProgress && ( this . _step ( ) , this . _complete ( ) )
} ,
_animate : function ( ) {
; ( this . _animId = o . Util . requestAnimFrame ( this . _animate , this ) ) ,
this . _step ( )
} ,
_step : function ( ) {
var t = + new Date ( ) - this . _startTime ,
e = 1e3 * this . _duration
e > t
? this . _runFrame ( this . _easeOut ( t / e ) )
: ( this . _runFrame ( 1 ) , this . _complete ( ) )
} ,
_runFrame : function ( t ) {
var e = this . _startPos . add ( this . _offset . multiplyBy ( t ) )
o . DomUtil . setPosition ( this . _el , e ) , this . fire ( 'step' )
} ,
_complete : function ( ) {
o . Util . cancelAnimFrame ( this . _animId ) ,
( this . _inProgress = ! 1 ) ,
this . fire ( 'end' )
} ,
_easeOut : function ( t ) {
return 1 - Math . pow ( 1 - t , this . _easeOutPower )
}
} ) ) ,
o . Map . mergeOptions ( {
zoomAnimation : ! 0 ,
zoomAnimationThreshold : 4
} ) ,
o . DomUtil . TRANSITION &&
o . Map . addInitHook ( function ( ) {
; ( this . _zoomAnimated =
this . options . zoomAnimation &&
o . DomUtil . TRANSITION &&
o . Browser . any3d &&
! o . Browser . android23 &&
! o . Browser . mobileOpera ) ,
this . _zoomAnimated &&
o . DomEvent . on (
this . _mapPane ,
o . DomUtil . TRANSITION _END ,
this . _catchTransitionEnd ,
this
)
} ) ,
o . Map . include (
o . DomUtil . TRANSITION
? {
_catchTransitionEnd : function ( t ) {
this . _animatingZoom &&
t . propertyName . indexOf ( 'transform' ) >= 0 &&
this . _onZoomTransitionEnd ( )
} ,
_nothingToAnimate : function ( ) {
return ! this . _container . getElementsByClassName (
'leaflet-zoom-animated'
) . length
} ,
_tryAnimatedZoom : function ( t , e , i ) {
if ( this . _animatingZoom ) return ! 0
if (
( ( i = i || { } ) ,
! this . _zoomAnimated ||
i . animate === ! 1 ||
this . _nothingToAnimate ( ) ||
Math . abs ( e - this . _zoom ) >
this . options . zoomAnimationThreshold )
)
return ! 1
var n = this . getZoomScale ( e ) ,
o = this . _getCenterOffset ( t ) . _divideBy ( 1 - 1 / n ) ,
s = this . _getCenterLayerPoint ( ) . _add ( o )
return i . animate === ! 0 || this . getSize ( ) . contains ( o )
? ( this . fire ( 'movestart' ) . fire ( 'zoomstart' ) ,
this . _animateZoom ( t , e , s , n , null , ! 0 ) ,
! 0 )
: ! 1
} ,
_animateZoom : function ( t , e , i , n , s , a , r ) {
r || ( this . _animatingZoom = ! 0 ) ,
o . DomUtil . addClass ( this . _mapPane , 'leaflet-zoom-anim' ) ,
( this . _animateToCenter = t ) ,
( this . _animateToZoom = e ) ,
o . Draggable && ( o . Draggable . _disabled = ! 0 ) ,
o . Util . requestAnimFrame ( function ( ) {
this . fire ( 'zoomanim' , {
center : t ,
zoom : e ,
origin : i ,
scale : n ,
delta : s ,
backwards : a
} ) ,
setTimeout ( o . bind ( this . _onZoomTransitionEnd , this ) , 250 )
} , this )
} ,
_onZoomTransitionEnd : function ( ) {
this . _animatingZoom &&
( ( this . _animatingZoom = ! 1 ) ,
o . DomUtil . removeClass ( this . _mapPane , 'leaflet-zoom-anim' ) ,
o . Util . requestAnimFrame ( function ( ) {
this . _resetView (
this . _animateToCenter ,
this . _animateToZoom ,
! 0 ,
! 0
) ,
o . Draggable && ( o . Draggable . _disabled = ! 1 )
} , this ) )
}
}
: { }
) ,
o . TileLayer . include ( {
_animateZoom : function ( t ) {
this . _animating || ( ( this . _animating = ! 0 ) , this . _prepareBgBuffer ( ) )
var e = this . _bgBuffer ,
i = o . DomUtil . TRANSFORM ,
n = t . delta ? o . DomUtil . getTranslateString ( t . delta ) : e . style [ i ] ,
s = o . DomUtil . getScaleString ( t . scale , t . origin )
e . style [ i ] = t . backwards ? s + ' ' + n : n + ' ' + s
} ,
_endZoomAnim : function ( ) {
var t = this . _tileContainer ,
e = this . _bgBuffer
; ( t . style . visibility = '' ) ,
t . parentNode . appendChild ( t ) ,
o . Util . falseFn ( e . offsetWidth )
var i = this . _map . getZoom ( )
; ( i > this . options . maxZoom || i < this . options . minZoom ) &&
this . _clearBgBuffer ( ) ,
( this . _animating = ! 1 )
} ,
_clearBgBuffer : function ( ) {
var t = this . _map
! t ||
t . _animatingZoom ||
t . touchZoom . _zooming ||
( ( this . _bgBuffer . innerHTML = '' ) ,
( this . _bgBuffer . style [ o . DomUtil . TRANSFORM ] = '' ) )
} ,
_prepareBgBuffer : function ( ) {
var t = this . _tileContainer ,
e = this . _bgBuffer ,
i = this . _getLoadedTilesPercentage ( e ) ,
n = this . _getLoadedTilesPercentage ( t )
return e && i > 0.5 && 0.5 > n
? ( ( t . style . visibility = 'hidden' ) ,
void this . _stopLoadingImages ( t ) )
: ( ( e . style . visibility = 'hidden' ) ,
( e . style [ o . DomUtil . TRANSFORM ] = '' ) ,
( this . _tileContainer = e ) ,
( e = this . _bgBuffer = t ) ,
this . _stopLoadingImages ( e ) ,
void clearTimeout ( this . _clearBgBufferTimer ) )
} ,
_getLoadedTilesPercentage : function ( t ) {
var e ,
i ,
n = t . getElementsByTagName ( 'img' ) ,
o = 0
for ( e = 0 , i = n . length ; i > e ; e ++ ) n [ e ] . complete && o ++
return o / i
} ,
_stopLoadingImages : function ( t ) {
var e ,
i ,
n ,
s = Array . prototype . slice . call ( t . getElementsByTagName ( 'img' ) )
for ( e = 0 , i = s . length ; i > e ; e ++ )
( n = s [ e ] ) ,
n . complete ||
( ( n . onload = o . Util . falseFn ) ,
( n . onerror = o . Util . falseFn ) ,
( n . src = o . Util . emptyImageUrl ) ,
n . parentNode . removeChild ( n ) )
}
} ) ,
o . Map . include ( {
_defaultLocateOptions : {
watch : ! 1 ,
setView : ! 1 ,
maxZoom : 1 / 0 ,
timeout : 1e4 ,
maximumAge : 0 ,
enableHighAccuracy : ! 1
} ,
locate : function ( t ) {
if (
( ( t = this . _locateOptions = o . extend (
this . _defaultLocateOptions ,
t
) ) ,
! navigator . geolocation )
)
return (
this . _handleGeolocationError ( {
code : 0 ,
message : 'Geolocation not supported.'
} ) ,
this
)
var e = o . bind ( this . _handleGeolocationResponse , this ) ,
i = o . bind ( this . _handleGeolocationError , this )
return (
t . watch
? ( this . _locationWatchId = navigator . geolocation . watchPosition (
e ,
i ,
t
) )
: navigator . geolocation . getCurrentPosition ( e , i , t ) ,
this
)
} ,
stopLocate : function ( ) {
return (
navigator . geolocation &&
navigator . geolocation . clearWatch ( this . _locationWatchId ) ,
this . _locateOptions && ( this . _locateOptions . setView = ! 1 ) ,
this
)
} ,
_handleGeolocationError : function ( t ) {
var e = t . code ,
i =
t . message ||
( 1 === e
? 'permission denied'
: 2 === e
? 'position unavailable'
: 'timeout' )
this . _locateOptions . setView && ! this . _loaded && this . fitWorld ( ) ,
this . fire ( 'locationerror' , {
code : e ,
message : 'Geolocation error: ' + i + '.'
} )
} ,
_handleGeolocationResponse : function ( t ) {
var e = t . coords . latitude ,
i = t . coords . longitude ,
n = new o . LatLng ( e , i ) ,
s = ( 180 * t . coords . accuracy ) / 40075017 ,
a = s / Math . cos ( o . LatLng . DEG _TO _RAD * e ) ,
r = o . latLngBounds ( [ e - s , i - a ] , [ e + s , i + a ] ) ,
h = this . _locateOptions
if ( h . setView ) {
var l = Math . min ( this . getBoundsZoom ( r ) , h . maxZoom )
this . setView ( n , l )
}
var u = { latlng : n , bounds : r , timestamp : t . timestamp }
for ( var c in t . coords )
'number' == typeof t . coords [ c ] && ( u [ c ] = t . coords [ c ] )
this . fire ( 'locationfound' , u )
}
} )
} ) ( window , document )
define ( 'ViewModels/DistanceLegendViewModel' , [
'Cesium/Core/defined' ,
'Cesium/Core/DeveloperError' ,
'Cesium/Core/EllipsoidGeodesic' ,
'Cesium/Core/Cartesian2' ,
'Cesium/Core/getTimestamp' ,
'Cesium/Core/EventHelper' ,
'KnockoutES5' ,
'Core/loadView' ,
'leaflet'
] , function (
defined ,
DeveloperError ,
EllipsoidGeodesic ,
Cartesian2 ,
getTimestamp ,
EventHelper ,
Knockout ,
loadView ,
leaflet
) {
'use strict'
var DistanceLegendViewModel = function ( options ) {
if ( ! defined ( options ) || ! defined ( options . terria ) ) {
throw new DeveloperError ( 'options.terria is required.' )
}
this . terria = options . terria
this . _removeSubscription = undefined
this . _lastLegendUpdate = undefined
this . eventHelper = new EventHelper ( )
this . distanceLabel = undefined
this . barWidth = undefined
Knockout . track ( this , [ 'distanceLabel' , 'barWidth' ] )
this . eventHelper . add (
this . terria . afterWidgetChanged ,
function ( ) {
if ( defined ( this . _removeSubscription ) ) {
this . _removeSubscription ( )
this . _removeSubscription = undefined
}
} ,
this
)
var that = this
function addUpdateSubscription ( ) {
if ( defined ( that . terria ) ) {
var scene = that . terria . scene
that . _removeSubscription = scene . postRender . addEventListener (
function ( ) {
updateDistanceLegendCesium ( this , scene )
} ,
that
)
} else if ( defined ( that . terria . leaflet ) ) {
var map = that . terria . leaflet . map
var potentialChangeCallback = function potentialChangeCallback ( ) {
updateDistanceLegendLeaflet ( that , map )
}
that . _removeSubscription = function ( ) {
map . off ( 'zoomend' , potentialChangeCallback )
map . off ( 'moveend' , potentialChangeCallback )
}
map . on ( 'zoomend' , potentialChangeCallback )
map . on ( 'moveend' , potentialChangeCallback )
updateDistanceLegendLeaflet ( that , map )
}
}
addUpdateSubscription ( )
this . eventHelper . add (
this . terria . afterWidgetChanged ,
function ( ) {
addUpdateSubscription ( )
} ,
this
)
}
DistanceLegendViewModel . prototype . destroy = function ( ) {
this . eventHelper . removeAll ( )
}
DistanceLegendViewModel . prototype . show = function ( container ) {
var testing =
'<div class="distance-legend" data-bind="visible: distanceLabel && barWidth">' +
'<div class="distance-legend-label" data-bind="text: distanceLabel"></div>' +
'<div class="distance-legend-scale-bar" data-bind="style: { width: barWidth + \'px\', left: (5 + (125 - barWidth) / 2) + \'px\' }"></div>' +
'</div>'
loadView ( testing , container , this )
}
DistanceLegendViewModel . create = function ( options ) {
var result = new DistanceLegendViewModel ( options )
result . show ( options . container )
return result
}
var geodesic = new EllipsoidGeodesic ( )
var distances = [
1 ,
2 ,
3 ,
5 ,
10 ,
20 ,
30 ,
50 ,
100 ,
200 ,
300 ,
500 ,
1e3 ,
2e3 ,
3e3 ,
5e3 ,
1e4 ,
2e4 ,
3e4 ,
5e4 ,
1e5 ,
2e5 ,
3e5 ,
5e5 ,
1e6 ,
2e6 ,
3e6 ,
5e6 ,
1e7 ,
2e7 ,
3e7 ,
5e7
]
function updateDistanceLegendCesium ( viewModel , scene ) {
var now = getTimestamp ( )
if ( now < viewModel . _lastLegendUpdate + 250 ) {
return
}
viewModel . _lastLegendUpdate = now
var width = scene . canvas . clientWidth
var height = scene . canvas . clientHeight
var left = scene . camera . getPickRay (
new Cartesian2 ( ( width / 2 ) | 0 , height - 1 )
)
var right = scene . camera . getPickRay (
new Cartesian2 ( ( 1 + width / 2 ) | 0 , height - 1 )
)
var globe = scene . globe
var leftPosition = globe . pick ( left , scene )
var rightPosition = globe . pick ( right , scene )
if ( ! defined ( leftPosition ) || ! defined ( rightPosition ) ) {
viewModel . barWidth = undefined
viewModel . distanceLabel = undefined
return
}
var leftCartographic = globe . ellipsoid . cartesianToCartographic (
leftPosition
)
var rightCartographic = globe . ellipsoid . cartesianToCartographic (
rightPosition
)
geodesic . setEndPoints ( leftCartographic , rightCartographic )
var pixelDistance = geodesic . surfaceDistance
var maxBarWidth = 100
var distance
for ( var i = distances . length - 1 ; ! defined ( distance ) && i >= 0 ; -- i ) {
if ( distances [ i ] / pixelDistance < maxBarWidth ) {
distance = distances [ i ]
}
}
if ( defined ( distance ) ) {
var label
if ( distance >= 1e3 ) {
label = ( distance / 1e3 ) . toString ( ) + ' km'
} else {
label = distance . toString ( ) + ' m'
}
viewModel . barWidth = ( distance / pixelDistance ) | 0
viewModel . distanceLabel = label
} else {
viewModel . barWidth = undefined
viewModel . distanceLabel = undefined
}
}
function updateDistanceLegendLeaflet ( viewModel , map ) {
var halfHeight = map . getSize ( ) . y / 2
var maxPixelWidth = 100
var maxMeters = map
. containerPointToLatLng ( [ 0 , halfHeight ] )
. distanceTo ( map . containerPointToLatLng ( [ maxPixelWidth , halfHeight ] ) )
var meters = leaflet . control . scale ( ) . _getRoundNum ( maxMeters )
var label = meters < 1e3 ? meters + ' m' : meters / 1e3 + ' km'
viewModel . barWidth = ( meters / maxMeters ) * maxPixelWidth
viewModel . distanceLabel = label
}
return DistanceLegendViewModel
} )
define ( 'ViewModels/UserInterfaceControl' , [
'Cesium/Core/defined' ,
'Cesium/Core/defineProperties' ,
'Cesium/Core/DeveloperError' ,
'KnockoutES5'
] , function ( defined , defineProperties , DeveloperError , Knockout ) {
'use strict'
var UserInterfaceControl = function ( terria ) {
if ( ! defined ( terria ) ) {
throw new DeveloperError ( 'terria is required' )
}
this . _terria = terria
this . name = 'Unnamed Control'
this . text = undefined
this . svgIcon = undefined
this . svgHeight = undefined
this . svgWidth = undefined
this . cssClass = undefined
this . isActive = false
Knockout . track ( this , [
'name' ,
'svgIcon' ,
'svgHeight' ,
'svgWidth' ,
'cssClass' ,
'isActive'
] )
}
Object . defineProperties ( UserInterfaceControl . prototype , {
terria : {
get : function ( ) {
return this . _terria
}
} ,
hasText : {
get : function ( ) {
return defined ( this . text ) && typeof this . text === 'string'
}
}
} )
UserInterfaceControl . prototype . activate = function ( ) {
throw new DeveloperError (
'activate must be implemented in the derived class.'
)
}
return UserInterfaceControl
} )
define ( 'ViewModels/NavigationControl' , [
'ViewModels/UserInterfaceControl'
] , function ( UserInterfaceControl ) {
'use strict'
var NavigationControl = function ( terria ) {
UserInterfaceControl . apply ( this , arguments )
}
NavigationControl . prototype = Object . create (
UserInterfaceControl . prototype
)
return NavigationControl
} )
define ( 'SvgPaths/svgReset' , [ ] , function ( ) {
'use strict'
return 'M 7.5,0 C 3.375,0 0,3.375 0,7.5 0,11.625 3.375,15 7.5,15 c 3.46875,0 6.375,-2.4375 7.21875,-5.625 l -1.96875,0 C 12,11.53125 9.9375,13.125 7.5,13.125 4.40625,13.125 1.875,10.59375 1.875,7.5 1.875,4.40625 4.40625,1.875 7.5,1.875 c 1.59375,0 2.90625,0.65625 3.9375,1.6875 l -3,3 6.5625,0 L 15,0 12.75,2.25 C 11.4375,0.84375 9.5625,0 7.5,0 z'
} )
define ( 'ViewModels/ResetViewNavigationControl' , [
'Cesium/Core/defined' ,
'Cesium/Scene/Camera' ,
'Cesium/Core/Rectangle' ,
'Cesium/Core/Cartographic' ,
'ViewModels/NavigationControl' ,
'SvgPaths/svgReset'
] , function (
defined ,
Camera ,
Rectangle ,
Cartographic ,
NavigationControl ,
svgReset
) {
'use strict'
var ResetViewNavigationControl = function ( terria ) {
NavigationControl . apply ( this , arguments )
this . name = '重置'
this . svgIcon = svgReset
this . svgHeight = 15
this . svgWidth = 15
this . cssClass = 'navigation-control-icon-reset'
}
ResetViewNavigationControl . prototype = Object . create (
NavigationControl . prototype
)
ResetViewNavigationControl . prototype . resetView = function ( ) {
var scene = this . terria . scene
var sscc = scene . screenSpaceCameraController
if ( ! sscc . enableInputs ) {
return
}
this . isActive = true
var camera = scene . camera
if ( defined ( this . terria . trackedEntity ) ) {
var trackedEntity = this . terria . trackedEntity
this . terria . trackedEntity = undefined
this . terria . trackedEntity = trackedEntity
} else {
if ( this . terria . options && this . terria . options . defaultResetView ) {
if (
this . terria . options . defaultResetView &&
this . terria . options . defaultResetView instanceof Cartographic
) {
camera . flyTo ( {
destination : scene . globe . ellipsoid . cartographicToCartesian (
this . terria . options . defaultResetView
)
} )
} else if (
this . terria . options . defaultResetView &&
this . terria . options . defaultResetView instanceof Rectangle
) {
try {
Rectangle . validate ( this . terria . options . defaultResetView )
camera . flyTo ( {
destination : this . terria . options . defaultResetView
} )
} catch ( e ) {
console . log (
'Cesium-navigation/ResetViewNavigationControl: options.defaultResetView Cesium rectangle is invalid!'
)
}
}
// } else if (this.terria.CAMERA_DEFAULT_VIEW_RECTANGLE) {
// let destination = this.terria.CAMERA_DEFAULT_VIEW_RECTANGLE.destination
// let orientation = this.terria.CAMERA_DEFAULT_VIEW_RECTANGLE.orientation
// camera.flyTo({
// destination: Cesium.Cartesian3.fromDegrees(destination.lng, destination.lat, destination.alt),
// orientation: {
// heading: Cesium.Math.toRadians(orientation.heading || 0),
// pitch: Cesium.Math.toRadians(orientation.pitch || 0),
// roll: Cesium.Math.toRadians(orientation.roll || 0)
// },
// duration: 1
// })
} else if ( typeof camera . flyHome === 'function' ) {
camera . flyHome ( 1 )
} else {
camera . flyTo ( {
destination : Camera . DEFAULT _VIEW _RECTANGLE ,
duration : 1
} )
}
}
this . isActive = false
}
ResetViewNavigationControl . prototype . activate = function ( ) {
this . resetView ( )
}
return ResetViewNavigationControl
} )
define ( 'Core/Utils' , [
'Cesium/Core/defined' ,
'Cesium/Core/Ray' ,
'Cesium/Core/Cartesian3' ,
'Cesium/Core/Cartographic' ,
'Cesium/Core/ReferenceFrame' ,
'Cesium/Scene/SceneMode'
] , function (
defined ,
Ray ,
Cartesian3 ,
Cartographic ,
ReferenceFrame ,
SceneMode
) {
'use strict'
var Utils = { }
var unprojectedScratch = new Cartographic ( )
var rayScratch = new Ray ( )
Utils . getCameraFocus = function ( terria , inWorldCoordinates , result ) {
var scene = terria . scene
var camera = scene . camera
if ( scene . mode == SceneMode . MORPHING ) {
return undefined
}
if ( ! defined ( result ) ) {
result = new Cartesian3 ( )
}
if ( defined ( terria . trackedEntity ) ) {
result = terria . trackedEntity . position . getValue (
terria . clock . currentTime ,
result
)
} else {
rayScratch . origin = camera . positionWC
rayScratch . direction = camera . directionWC
result = scene . globe . pick ( rayScratch , scene , result )
}
if ( ! defined ( result ) ) {
return undefined
}
if (
scene . mode == SceneMode . SCENE2D ||
scene . mode == SceneMode . COLUMBUS _VIEW
) {
result = camera . worldToCameraCoordinatesPoint ( result , result )
if ( inWorldCoordinates ) {
result = scene . globe . ellipsoid . cartographicToCartesian (
scene . mapProjection . unproject ( result , unprojectedScratch ) ,
result
)
}
} else {
if ( ! inWorldCoordinates ) {
result = camera . worldToCameraCoordinatesPoint ( result , result )
}
}
return result
}
return Utils
} )
define ( 'ViewModels/ZoomNavigationControl' , [
'Cesium/Core/defined' ,
'Cesium/Core/Ray' ,
'Cesium/Core/IntersectionTests' ,
'Cesium/Core/Cartesian3' ,
'Cesium/Scene/SceneMode' ,
'ViewModels/NavigationControl' ,
'Core/Utils'
] , function (
defined ,
Ray ,
IntersectionTests ,
Cartesian3 ,
SceneMode ,
NavigationControl ,
Utils
) {
'use strict'
var ZoomNavigationControl = function ( terria , zoomIn ) {
NavigationControl . apply ( this , arguments )
this . name = zoomIn
this . text = zoomIn == '放大' ? '+' : '-'
this . cssClass =
'navigation-control-icon-zoom-' + ( zoomIn == '缩小' ? 'in' : 'out' )
this . relativeAmount = 2
if ( zoomIn == '放大' ) {
this . relativeAmount = 1 / this . relativeAmount
}
}
ZoomNavigationControl . prototype . relativeAmount = 1
ZoomNavigationControl . prototype = Object . create (
NavigationControl . prototype
)
ZoomNavigationControl . prototype . activate = function ( ) {
this . zoom ( this . relativeAmount )
}
var cartesian3Scratch = new Cartesian3 ( )
ZoomNavigationControl . prototype . zoom = function ( relativeAmount ) {
this . isActive = true
if ( defined ( this . terria ) ) {
var scene = this . terria . scene
var sscc = scene . screenSpaceCameraController
if ( ! sscc . enableInputs || ! sscc . enableZoom ) {
return
}
var camera = scene . camera
var orientation
switch ( scene . mode ) {
case SceneMode . MORPHING :
break
case SceneMode . SCENE2D :
camera . zoomIn (
camera . positionCartographic . height * ( 1 - this . relativeAmount )
)
break
default :
var focus
if ( defined ( this . terria . trackedEntity ) ) {
focus = new Cartesian3 ( )
} else {
focus = Utils . getCameraFocus ( this . terria , false )
}
if ( ! defined ( focus ) ) {
var ray = new Ray (
camera . worldToCameraCoordinatesPoint (
scene . globe . ellipsoid . cartographicToCartesian (
camera . positionCartographic
)
) ,
camera . directionWC
)
focus = IntersectionTests . grazingAltitudeLocation (
ray ,
scene . globe . ellipsoid
)
orientation = {
heading : camera . heading ,
pitch : camera . pitch ,
roll : camera . roll
}
} else {
orientation = { direction : camera . direction , up : camera . up }
}
var direction = Cartesian3 . subtract (
camera . position ,
focus ,
cartesian3Scratch
)
var movementVector = Cartesian3 . multiplyByScalar (
direction ,
relativeAmount ,
direction
)
var endPosition = Cartesian3 . add ( focus , movementVector , focus )
if (
defined ( this . terria . trackedEntity ) ||
scene . mode == SceneMode . COLUMBUS _VIEW
) {
camera . position = endPosition
} else {
camera . flyTo ( {
destination : endPosition ,
orientation : orientation ,
duration : 0.5 ,
convert : false
} )
}
}
}
this . isActive = false
}
return ZoomNavigationControl
} )
define ( 'SvgPaths/svgCompassOuterRing' , [ ] , function ( ) {
'use strict'
return 'm 66.5625,0 0,15.15625 3.71875,0 0,-10.40625 5.5,10.40625 4.375,0 0,-15.15625 -3.71875,0 0,10.40625 L 70.9375,0 66.5625,0 z M 72.5,20.21875 c -28.867432,0 -52.28125,23.407738 -52.28125,52.28125 0,28.87351 23.413818,52.3125 52.28125,52.3125 28.86743,0 52.28125,-23.43899 52.28125,-52.3125 0,-28.873512 -23.41382,-52.28125 -52.28125,-52.28125 z m 0,1.75 c 13.842515,0 26.368948,5.558092 35.5,14.5625 l -11.03125,11 0.625,0.625 11.03125,-11 c 8.9199,9.108762 14.4375,21.579143 14.4375,35.34375 0,13.764606 -5.5176,26.22729 -14.4375,35.34375 l -11.03125,-11 -0.625,0.625 11.03125,11 c -9.130866,9.01087 -21.658601,14.59375 -35.5,14.59375 -13.801622,0 -26.321058,-5.53481 -35.4375,-14.5 l 11.125,-11.09375 c 6.277989,6.12179 14.857796,9.90625 24.3125,9.90625 19.241896,0 34.875,-15.629154 34.875,-34.875 0,-19.245847 -15.633104,-34.84375 -34.875,-34.84375 -9.454704,0 -18.034511,3.760884 -24.3125,9.875 L 37.0625,36.4375 C 46.179178,27.478444 58.696991,21.96875 72.5,21.96875 z m -0.875,0.84375 0,13.9375 1.75,0 0,-13.9375 -1.75,0 z M 36.46875,37.0625 47.5625,48.15625 C 41.429794,54.436565 37.65625,63.027539 37.65625,72.5 c 0,9.472461 3.773544,18.055746 9.90625,24.34375 L 36.46875,107.9375 c -8.96721,-9.1247 -14.5,-21.624886 -14.5,-35.4375 0,-13.812615 5.53279,-26.320526 14.5,-35.4375 z M 72.5,39.40625 c 18.297686,0 33.125,14.791695 33.125,33.09375 0,18.302054 -14.827314,33.125 -33.125,33.125 -18.297687,0 -33.09375,-14.822946 -33.09375,-33.125 0,-18.302056 14.796063,-33.09375 33.09375,-33.09375 z M 22.84375,71.625 l 0,1.75 13.96875,0 0,-1.75 -13.96875,0 z m 85.5625,0 0,1.75 14,0 0,-1.75 -14,0 z M 71.75,108.25 l 0,13.9375 1.71875,0 0,-13.9375 -1.71875,0 z'
} )
define ( 'SvgPaths/svgCompassGyro' , [ ] , function ( ) {
'use strict'
return ' m 72.71875 , 54.375 c - 0.476702 , 0 - 0.908208 , 0.245402 - 1.21875 , 0.5625 - 0.310542 , 0.317098 - 0.551189 , 0.701933 - 0.78125 , 1.1875 - 0.172018 , 0.363062 - 0.319101 , 0.791709 - 0.46875 , 1.25 - 6.91615 , 1.075544 - 12.313231 , 6.656514 - 13 , 13.625 - 0.327516 , 0.117495 - 0.661877 , 0.244642 - 0.9375 , 0.375 - 0.485434 , 0.22959 - 0.901634 , 0.471239 - 1.21875 , 0.78125 - 0.317116 , 0.310011 - 0.5625 , 0.742111 - 0.5625 , 1.21875 l 0.03125 , 0 c 0 , 0.476639 0.245384 , 0.877489 0.5625 , 1.1875 0.317116 , 0.310011 0.702066 , 0.58291 1.1875 , 0.8125 0.35554 , 0.168155 0.771616 , 0.32165 1.21875 , 0.46875 1.370803 , 6.10004 6.420817 , 10.834127 12.71875 , 11.8125 0.146999 , 0.447079 0.30025 , 0.863113 0.46875 , 1.21875 0.230061 , 0.485567 0.470708 , 0.870402 0.78125 , 1.1875 0.310542 , 0.317098 0.742048 , 0.5625 1.21875 , 0.5625 0.476702 , 0 0.876958 , - 0.245402 1.1875 , - 0.5625 0.310542 , - 0.317098 0.582439 , - 0.701933 0.8125 , - 1.1875 0.172018 , - 0.363062 0.319101 , - 0.791709 0.46875 , - 1.25 6.249045 , - 1.017063 11.256351 , - 5.7184 12.625 , - 11.78125 0.447134 , - 0.1471 0.86321 , - 0.300595 1.21875 , - 0.46875 0.485434 , - 0.22959 0.901633 , - 0.502489 1.21875 , - 0.8125 0.317117 , - 0.310011 0.5625 , - 0.710861 0.5625 , - 1.1875 l - 0.03125 , 0 c 0 , - 0.476639 - 0.245383 , - 0.908739 - 0.5625 , - 1.21875 C 89.901633 , 71.846239 89.516684 , 71.60459 89.03125 , 71.375 88.755626 , 71.244642 88.456123 , 71.117495 88.125 , 71 87.439949 , 64.078341 82.072807 , 58.503735 75.21875 , 57.375 c - 0.15044 , - 0.461669 - 0.326927 , - 0.884711 - 0.5 , - 1.25 - 0.230061 , - 0.485567 - 0.501958 , - 0.870402 - 0.8125 , - 1.1875 - 0.310542 , - 0.317098 - 0.710798 , - 0.5625 - 1.1875 , - 0.5625 z m - 0.0625 , 1.40625 c 0.03595 , - 0.01283 0.05968 , 0 0.0625 , 0 0.0056 , 0 0.04321 , - 0.02233 0.1875 , 0.125 0.144288 , 0.147334 0.34336 , 0.447188 0.53125 , 0.84375 0.06385 , 0.134761 0.123901 , 0.309578 0.1875 , 0.46875 - 0.320353 , - 0.01957 - 0.643524 , - 0.0625 - 0.96875 , - 0.0625 - 0.289073 , 0 - 0.558569 , 0.04702 - 0.84375 , 0.0625 C 71.8761 , 57.059578 71.936151 , 56.884761 72 , 56.75 c 0.18789 , - 0.396562 0.355712 , - 0.696416 0.5 , - 0.84375 0.07214 , - 0.07367 0.120304 , - 0.112167 0.15625 , - 0.125 z m 0 , 2.40625 c 0.448007 , 0 0.906196 , 0.05436 1.34375 , 0.09375 0.177011 , 0.592256 0.347655 , 1.271044 0.5 , 2.03125 0.475097 , 2.370753 0.807525 , 5.463852 0.9375 , 8.9375 - 0.906869 , - 0.02852 - 1.834463 , - 0.0625 - 2.78125 , - 0.0625 - 0.92298 , 0 - 1.802327 , 0.03537 - 2.6875 , 0.0625 0.138529 , - 3.473648 0.493653 , - 6.566747 0.96875 , - 8.9375 0.154684 , - 0.771878 0.320019 , - 1.463985 0.5 , - 2.0625 0.405568 , - 0.03377 0.804291 , - 0.0625 1.21875 , - 0.0625 z m - 2.71875 , 0.28125 c - 0.129732 , 0.498888 - 0.259782 , 0.987558 - 0.375 , 1.5625 - 0.498513 , 2.487595 - 0.838088 , 5.693299 - 0.96875 , 9.25 - 3.21363 , 0.15162 - 6.119596 , 0.480068 - 8.40625 , 0.9375 - 0.682394 , 0.136509 - 1.275579 , 0.279657 - 1.84375 , 0.4375 0.799068 , - 6.135482 5.504716 , - 11.036454 11.59375 , - 12.1875 z M 75.5 , 58.5 c 6.043169 , 1.18408 10.705093 , 6.052712 11.5 , 12.15625 - 0.569435 , - 0.155806 - 1.200273 , - 0.302525 - 1.875 , - 0.4375 - 2.262525 , - 0.452605 - 5.108535 , - 0.783809 - 8.28125 , - 0.9375 - 0.130662 , - 3.556701 - 0.470237 , - 6.762405 - 0.96875 , - 9.25 C 75.761959 , 59.467174 75.626981 , 58.990925 75.5 , 58.5 z m - 2.84375 , 12.09375 c 0.959338 , 0 1.895843 , 0.03282 2.8125 , 0.0625 C 75.48165 , 71.267751 75.5 , 71.871028 75.5 , 72.5 c 0 , 1.228616 - 0.01449 , 2.438313 - 0.0625 , 3.59375 - 0.897358 , 0.0284 - 1.811972 , 0.0625 - 2.75 , 0.0625 - 0.927373 , 0 - 1.831062 , - 0.03473 - 2.71875 , - 0.0625 - 0.05109 , - 1.155437 - 0.0625 , - 2.365134 - 0.0625 , - 3.59375 0 , - 0.628972 0.01741 , - 1.232249 0.03125 , - 1.84375 0.895269 , - 0.02827 1.783025 , - 0.0625 2.71875 , - 0.0625 z M 68.5625 , 70.6875 c - 0.01243 , 0.60601 - 0.03125 , 1.189946 - 0.03125 , 1.8125 0 , 1.22431 0.01541 , 2.407837 0.0625 , 3.5625 - 3.125243 , - 0.150329 - 5.92077 , - 0.471558 - 8.09375 , - 0.90625 - 0.784983 , - 0.157031 - 1.511491 , - 0.316471 - 2.125 , - 0.5 - 0.107878 , - 0.704096 - 0.1875 , - 1.422089 - 0.1875 , - 2.15625 0 , - 0.115714 0.02849 , - 0.228688 0.03125 , - 0.34375 0.643106 , - 0.20284 1.389577 , - 0.390377 2.25 , - 0.5625 2.166953 , - 0.433487 4.97905 , - 0.75541 8.09375 , - 0.90625 z m 8.3125 , 0.03125 c 3.075121 , 0.15271 5.824455 , 0.446046 7.96875 , 0.875 0.857478 , 0.171534 1.630962 , 0.360416 2.28125 , 0.5625 0.0027 , 0.114659 0 , 0.228443 0 , 0.34375 0 , 0.735827 - 0.07914 , 1.450633 - 0.1875 , 2.15625 - 0.598568 , 0.180148 - 1.29077 , 0.34562 - 2.0625 , 0.5 - 2.158064 , 0.431708 - 4.932088 , 0.754666 - 8.03125 , 0.90625 0.04709 , - 1.15466
} )
define ( 'SvgPaths/svgCompassRotationMarker' , [ ] , function ( ) {
'use strict'
return 'M 72.46875,22.03125 C 59.505873,22.050338 46.521615,27.004287 36.6875,36.875 L 47.84375,47.96875 C 61.521556,34.240041 83.442603,34.227389 97.125,47.90625 l 11.125,-11.125 C 98.401629,26.935424 85.431627,22.012162 72.46875,22.03125 z'
} )
define ( 'ViewModels/NavigationViewModel' , [
'Cesium/Core/defined' ,
'Cesium/Core/Math' ,
'Cesium/Core/getTimestamp' ,
'Cesium/Core/EventHelper' ,
'Cesium/Core/Transforms' ,
'Cesium/Scene/SceneMode' ,
'Cesium/Core/Cartesian2' ,
'Cesium/Core/Cartesian3' ,
'Cesium/Core/Matrix4' ,
'Cesium/Core/BoundingSphere' ,
'Cesium/Core/HeadingPitchRange' ,
'KnockoutES5' ,
'Core/loadView' ,
'ViewModels/ResetViewNavigationControl' ,
'ViewModels/ZoomNavigationControl' ,
'SvgPaths/svgCompassOuterRing' ,
'SvgPaths/svgCompassGyro' ,
'SvgPaths/svgCompassRotationMarker' ,
'Core/Utils'
] , function (
defined ,
CesiumMath ,
getTimestamp ,
EventHelper ,
Transforms ,
SceneMode ,
Cartesian2 ,
Cartesian3 ,
Matrix4 ,
BoundingSphere ,
HeadingPitchRange ,
Knockout ,
loadView ,
ResetViewNavigationControl ,
ZoomNavigationControl ,
svgCompassOuterRing ,
svgCompassGyro ,
svgCompassRotationMarker ,
Utils
) {
'use strict'
var NavigationViewModel = function ( options ) {
this . terria = options . terria
this . eventHelper = new EventHelper ( )
this . controls = options . controls
if ( ! defined ( this . controls ) ) {
this . controls = [
new ZoomNavigationControl ( this . terria , '放大' ) ,
new ResetViewNavigationControl ( this . terria ) ,
new ZoomNavigationControl ( this . terria , '缩小' )
]
}
this . svgCompassOuterRing = svgCompassOuterRing
this . svgCompassGyro = svgCompassGyro
this . svgCompassRotationMarker = svgCompassRotationMarker
this . showCompass = defined ( this . terria )
this . heading = this . showCompass ? this . terria . scene . camera . heading : 0
this . isOrbiting = false
this . orbitCursorAngle = 0
this . orbitCursorOpacity = 0
this . orbitLastTimestamp = 0
this . orbitFrame = undefined
this . orbitIsLook = false
this . orbitMouseMoveFunction = undefined
this . orbitMouseUpFunction = undefined
this . isRotating = false
this . rotateInitialCursorAngle = undefined
this . rotateFrame = undefined
this . rotateIsLook = false
this . rotateMouseMoveFunction = undefined
this . rotateMouseUpFunction = undefined
this . _unsubcribeFromPostRender = undefined
Knockout . track ( this , [
'controls' ,
'showCompass' ,
'heading' ,
'isOrbiting' ,
'orbitCursorAngle' ,
'isRotating'
] )
var that = this
function widgetChange ( ) {
if ( defined ( that . terria ) ) {
if ( that . _unsubcribeFromPostRender ) {
that . _unsubcribeFromPostRender ( )
that . _unsubcribeFromPostRender = undefined
}
that . showCompass = true
that . _unsubcribeFromPostRender = that . terria . scene . postRender . addEventListener (
function ( ) {
that . heading = that . terria . scene . camera . heading
}
)
} else {
if ( that . _unsubcribeFromPostRender ) {
that . _unsubcribeFromPostRender ( )
that . _unsubcribeFromPostRender = undefined
}
that . showCompass = false
}
}
this . eventHelper . add ( this . terria . afterWidgetChanged , widgetChange , this )
widgetChange ( )
}
NavigationViewModel . prototype . destroy = function ( ) {
this . eventHelper . removeAll ( )
}
NavigationViewModel . prototype . show = function ( container ) {
var testing =
'<div class="compass" title="拖动外圈:旋转视图,' +
'拖动内陀螺仪:自由轨道,' +
2025-10-21 18:04:59 +08:00
'双击:重置视图' +
'" data-bind="visible: showCompass, event: { mousedown: handleMouseDown, dblclick: handleDoubleClick }">' +
2025-09-01 16:17:11 +08:00
'<div class="compass-outer-ring-background"></div>' +
" <div class=\"compass-rotation-marker\" data-bind=\"visible: isOrbiting, style: { transform: 'rotate(-' + orbitCursorAngle + 'rad)', '-webkit-transform': 'rotate(-' + orbitCursorAngle + 'rad)', opacity: orbitCursorOpacity }, cesiumSvgPath: { path: svgCompassRotationMarker, width: 145, height: 145 }\"></div>" +
" <div class=\"compass-outer-ring\" title=\"单击并拖动以旋转相机\" data-bind=\"style: { transform: 'rotate(-' + heading + 'rad)', '-webkit-transform': 'rotate(-' + heading + 'rad)' }, cesiumSvgPath: { path: svgCompassOuterRing, width: 145, height: 145 }\"></div>" +
' <div class="compass-gyro-background"></div>' +
' <div class="compass-gyro" data-bind="cesiumSvgPath: { path: svgCompassGyro, width: 145, height: 145 }, css: { \'compass-gyro-active\': isOrbiting }"></div>' +
'</div>' +
'<div class="navigation-controls">' +
'<!-- ko foreach: controls -->' +
"<div data-bind=\"click: activate, attr: { title: $data.name }, css: $root.isLastControl($data) ? 'navigation-control-last' : 'navigation-control' \">" +
' <!-- ko if: $data.hasText -->' +
' <div data-bind="text: $data.text, css: $data.isActive ? \'navigation-control-icon-active \' + $data.cssClass : $data.cssClass"></div>' +
' <!-- /ko -->' +
' <!-- ko ifnot: $data.hasText -->' +
' <div data-bind="cesiumSvgPath: { path: $data.svgIcon, width: $data.svgWidth, height: $data.svgHeight }, css: $data.isActive ? \'navigation-control-icon-active \' + $data.cssClass : $data.cssClass"></div>' +
' <!-- /ko -->' +
' </div>' +
' <!-- /ko -->' +
'</div>'
loadView ( testing , container , this )
}
NavigationViewModel . prototype . add = function ( control ) {
this . controls . push ( control )
}
NavigationViewModel . prototype . remove = function ( control ) {
this . controls . remove ( control )
}
NavigationViewModel . prototype . isLastControl = function ( control ) {
return control === this . controls [ this . controls . length - 1 ]
}
var vectorScratch = new Cartesian2 ( )
NavigationViewModel . prototype . handleMouseDown = function ( viewModel , e ) {
var scene = this . terria . scene
if ( scene . mode == SceneMode . MORPHING ) {
return true
}
var compassElement = e . currentTarget
var compassRectangle = e . currentTarget . getBoundingClientRect ( )
var maxDistance = compassRectangle . width / 2
var center = new Cartesian2 (
( compassRectangle . right - compassRectangle . left ) / 2 ,
( compassRectangle . bottom - compassRectangle . top ) / 2
)
var clickLocation = new Cartesian2 (
e . clientX - compassRectangle . left ,
e . clientY - compassRectangle . top
)
var vector = Cartesian2 . subtract ( clickLocation , center , vectorScratch )
var distanceFromCenter = Cartesian2 . magnitude ( vector )
var distanceFraction = distanceFromCenter / maxDistance
var nominalTotalRadius = 145
var norminalGyroRadius = 50
if ( distanceFraction < norminalGyroRadius / nominalTotalRadius ) {
orbit ( this , compassElement , vector )
} else if ( distanceFraction < 1 ) {
rotate ( this , compassElement , vector )
} else {
return true
}
}
var oldTransformScratch = new Matrix4 ( )
var newTransformScratch = new Matrix4 ( )
var centerScratch = new Cartesian3 ( )
NavigationViewModel . prototype . handleDoubleClick = function ( viewModel , e ) {
var scene = viewModel . terria . scene
var camera = scene . camera
var sscc = scene . screenSpaceCameraController
if ( scene . mode == SceneMode . MORPHING || ! sscc . enableInputs ) {
return true
}
if ( scene . mode == SceneMode . COLUMBUS _VIEW && ! sscc . enableTranslate ) {
return
}
if (
scene . mode == SceneMode . SCENE3D ||
scene . mode == SceneMode . COLUMBUS _VIEW
) {
if ( ! sscc . enableLook ) {
return
}
if ( scene . mode == SceneMode . SCENE3D ) {
if ( ! sscc . enableRotate ) {
return
}
}
}
var center = Utils . getCameraFocus ( viewModel . terria , true , centerScratch )
if ( ! defined ( center ) ) {
this . controls [ 1 ] . resetView ( )
return
}
var cameraPosition = scene . globe . ellipsoid . cartographicToCartesian (
camera . positionCartographic ,
new Cartesian3 ( )
)
var surfaceNormal = scene . globe . ellipsoid . geodeticSurfaceNormal ( center )
var focusBoundingSphere = new BoundingSphere ( center , 0 )
camera . flyToBoundingSphere ( focusBoundingSphere , {
offset : new HeadingPitchRange (
0 ,
CesiumMath . PI _OVER _TWO -
Cartesian3 . angleBetween ( surfaceNormal , camera . directionWC ) ,
Cartesian3 . distance ( cameraPosition , center )
) ,
duration : 1.5
} )
}
NavigationViewModel . create = function ( options ) {
var result = new NavigationViewModel ( options )
result . show ( options . container )
return result
}
function orbit ( viewModel , compassElement , cursorVector ) {
var scene = viewModel . terria . scene
var sscc = scene . screenSpaceCameraController
if ( scene . mode == SceneMode . MORPHING || ! sscc . enableInputs ) {
return
}
switch ( scene . mode ) {
case SceneMode . COLUMBUS _VIEW :
if ( sscc . enableLook ) {
break
}
if ( ! sscc . enableTranslate || ! sscc . enableTilt ) {
return
}
break
case SceneMode . SCENE3D :
if ( sscc . enableLook ) {
break
}
if ( ! sscc . enableTilt || ! sscc . enableRotate ) {
return
}
break
case SceneMode . SCENE2D :
if ( ! sscc . enableTranslate ) {
return
}
break
}
document . removeEventListener (
'mousemove' ,
viewModel . orbitMouseMoveFunction ,
false
)
document . removeEventListener (
'mouseup' ,
viewModel . orbitMouseUpFunction ,
false
)
if ( defined ( viewModel . orbitTickFunction ) ) {
viewModel . terria . clock . onTick . removeEventListener (
viewModel . orbitTickFunction
)
}
viewModel . orbitMouseMoveFunction = undefined
viewModel . orbitMouseUpFunction = undefined
viewModel . orbitTickFunction = undefined
viewModel . isOrbiting = true
viewModel . orbitLastTimestamp = getTimestamp ( )
var camera = scene . camera
if ( defined ( viewModel . terria . trackedEntity ) ) {
viewModel . orbitFrame = undefined
viewModel . orbitIsLook = false
} else {
var center = Utils . getCameraFocus (
viewModel . terria ,
true ,
centerScratch
)
if ( ! defined ( center ) ) {
viewModel . orbitFrame = Transforms . eastNorthUpToFixedFrame (
camera . positionWC ,
scene . globe . ellipsoid ,
newTransformScratch
)
viewModel . orbitIsLook = true
} else {
viewModel . orbitFrame = Transforms . eastNorthUpToFixedFrame (
center ,
scene . globe . ellipsoid ,
newTransformScratch
)
viewModel . orbitIsLook = false
}
}
viewModel . orbitTickFunction = function ( e ) {
var timestamp = getTimestamp ( )
var deltaT = timestamp - viewModel . orbitLastTimestamp
var rate = ( ( viewModel . orbitCursorOpacity - 0.5 ) * 2.5 ) / 1e3
var distance = deltaT * rate
var angle = viewModel . orbitCursorAngle + CesiumMath . PI _OVER _TWO
var x = Math . cos ( angle ) * distance
var y = Math . sin ( angle ) * distance
var oldTransform
if ( defined ( viewModel . orbitFrame ) ) {
oldTransform = Matrix4 . clone ( camera . transform , oldTransformScratch )
camera . lookAtTransform ( viewModel . orbitFrame )
}
if ( scene . mode == SceneMode . SCENE2D ) {
camera . move (
new Cartesian3 ( x , y , 0 ) ,
( Math . max ( scene . canvas . clientWidth , scene . canvas . clientHeight ) /
100 ) *
camera . positionCartographic . height *
distance
)
} else {
if ( viewModel . orbitIsLook ) {
camera . look ( Cartesian3 . UNIT _Z , - x )
camera . look ( camera . right , - y )
} else {
camera . rotateLeft ( x )
camera . rotateUp ( y )
}
}
if ( defined ( viewModel . orbitFrame ) ) {
camera . lookAtTransform ( oldTransform )
}
viewModel . orbitLastTimestamp = timestamp
}
function updateAngleAndOpacity ( vector , compassWidth ) {
var angle = Math . atan2 ( - vector . y , vector . x )
viewModel . orbitCursorAngle = CesiumMath . zeroToTwoPi (
angle - CesiumMath . PI _OVER _TWO
)
var distance = Cartesian2 . magnitude ( vector )
var maxDistance = compassWidth / 2
var distanceFraction = Math . min ( distance / maxDistance , 1 )
var easedOpacity = 0.5 * distanceFraction * distanceFraction + 0.5
viewModel . orbitCursorOpacity = easedOpacity
}
viewModel . orbitMouseMoveFunction = function ( e ) {
var compassRectangle = compassElement . getBoundingClientRect ( )
var center = new Cartesian2 (
( compassRectangle . right - compassRectangle . left ) / 2 ,
( compassRectangle . bottom - compassRectangle . top ) / 2
)
var clickLocation = new Cartesian2 (
e . clientX - compassRectangle . left ,
e . clientY - compassRectangle . top
)
var vector = Cartesian2 . subtract ( clickLocation , center , vectorScratch )
updateAngleAndOpacity ( vector , compassRectangle . width )
}
viewModel . orbitMouseUpFunction = function ( e ) {
viewModel . isOrbiting = false
document . removeEventListener (
'mousemove' ,
viewModel . orbitMouseMoveFunction ,
false
)
document . removeEventListener (
'mouseup' ,
viewModel . orbitMouseUpFunction ,
false
)
if ( defined ( viewModel . orbitTickFunction ) ) {
viewModel . terria . clock . onTick . removeEventListener (
viewModel . orbitTickFunction
)
}
viewModel . orbitMouseMoveFunction = undefined
viewModel . orbitMouseUpFunction = undefined
viewModel . orbitTickFunction = undefined
}
document . addEventListener (
'mousemove' ,
viewModel . orbitMouseMoveFunction ,
false
)
document . addEventListener (
'mouseup' ,
viewModel . orbitMouseUpFunction ,
false
)
viewModel . terria . clock . onTick . addEventListener (
viewModel . orbitTickFunction
)
updateAngleAndOpacity (
cursorVector ,
compassElement . getBoundingClientRect ( ) . width
)
}
function rotate ( viewModel , compassElement , cursorVector ) {
var scene = viewModel . terria . scene
var camera = scene . camera
var sscc = scene . screenSpaceCameraController
if (
scene . mode == SceneMode . MORPHING ||
scene . mode == SceneMode . SCENE2D ||
! sscc . enableInputs
) {
return
}
if (
! sscc . enableLook &&
( scene . mode == SceneMode . COLUMBUS _VIEW ||
( scene . mode == SceneMode . SCENE3D && ! sscc . enableRotate ) )
) {
return
}
document . removeEventListener (
'mousemove' ,
viewModel . rotateMouseMoveFunction ,
false
)
document . removeEventListener (
'mouseup' ,
viewModel . rotateMouseUpFunction ,
false
)
viewModel . rotateMouseMoveFunction = undefined
viewModel . rotateMouseUpFunction = undefined
viewModel . isRotating = true
viewModel . rotateInitialCursorAngle = Math . atan2 (
- cursorVector . y ,
cursorVector . x
)
if ( defined ( viewModel . terria . trackedEntity ) ) {
viewModel . rotateFrame = undefined
viewModel . rotateIsLook = false
} else {
var viewCenter = Utils . getCameraFocus (
viewModel . terria ,
true ,
centerScratch
)
if (
! defined ( viewCenter ) ||
( scene . mode == SceneMode . COLUMBUS _VIEW &&
! sscc . enableLook &&
! sscc . enableTranslate )
) {
viewModel . rotateFrame = Transforms . eastNorthUpToFixedFrame (
camera . positionWC ,
scene . globe . ellipsoid ,
newTransformScratch
)
viewModel . rotateIsLook = true
} else {
viewModel . rotateFrame = Transforms . eastNorthUpToFixedFrame (
viewCenter ,
scene . globe . ellipsoid ,
newTransformScratch
)
viewModel . rotateIsLook = false
}
}
var oldTransform
if ( defined ( viewModel . rotateFrame ) ) {
oldTransform = Matrix4 . clone ( camera . transform , oldTransformScratch )
camera . lookAtTransform ( viewModel . rotateFrame )
}
viewModel . rotateInitialCameraAngle = - camera . heading
if ( defined ( viewModel . rotateFrame ) ) {
camera . lookAtTransform ( oldTransform )
}
viewModel . rotateMouseMoveFunction = function ( e ) {
var compassRectangle = compassElement . getBoundingClientRect ( )
var center = new Cartesian2 (
( compassRectangle . right - compassRectangle . left ) / 2 ,
( compassRectangle . bottom - compassRectangle . top ) / 2
)
var clickLocation = new Cartesian2 (
e . clientX - compassRectangle . left ,
e . clientY - compassRectangle . top
)
var vector = Cartesian2 . subtract ( clickLocation , center , vectorScratch )
var angle = Math . atan2 ( - vector . y , vector . x )
var angleDifference = angle - viewModel . rotateInitialCursorAngle
var newCameraAngle = CesiumMath . zeroToTwoPi (
viewModel . rotateInitialCameraAngle - angleDifference
)
var camera = viewModel . terria . scene . camera
var oldTransform
if ( defined ( viewModel . rotateFrame ) ) {
oldTransform = Matrix4 . clone ( camera . transform , oldTransformScratch )
camera . lookAtTransform ( viewModel . rotateFrame )
}
var currentCameraAngle = - camera . heading
camera . rotateRight ( newCameraAngle - currentCameraAngle )
if ( defined ( viewModel . rotateFrame ) ) {
camera . lookAtTransform ( oldTransform )
}
}
viewModel . rotateMouseUpFunction = function ( e ) {
viewModel . isRotating = false
document . removeEventListener (
'mousemove' ,
viewModel . rotateMouseMoveFunction ,
false
)
document . removeEventListener (
'mouseup' ,
viewModel . rotateMouseUpFunction ,
false
)
viewModel . rotateMouseMoveFunction = undefined
viewModel . rotateMouseUpFunction = undefined
}
document . addEventListener (
'mousemove' ,
viewModel . rotateMouseMoveFunction ,
false
)
document . addEventListener (
'mouseup' ,
viewModel . rotateMouseUpFunction ,
false
)
}
return NavigationViewModel
} )
define ( 'CesiumNavigation' , [
'Cesium/Core/defined' ,
'Cesium/Core/defineProperties' ,
'Cesium/Core/Event' ,
'KnockoutES5' ,
'Core/registerKnockoutBindings' ,
'ViewModels/DistanceLegendViewModel' ,
'ViewModels/NavigationViewModel'
] , function (
defined ,
defineProperties ,
CesiumEvent ,
Knockout ,
registerKnockoutBindings ,
DistanceLegendViewModel ,
NavigationViewModel
) {
'use strict'
var CesiumNavigation = function ( viewerCesiumWidget ) {
initialize . apply ( this , arguments )
this . _onDestroyListeners = [ ]
}
CesiumNavigation . prototype . distanceLegendViewModel = undefined
CesiumNavigation . prototype . navigationViewModel = undefined
CesiumNavigation . prototype . navigationDiv = undefined
CesiumNavigation . prototype . distanceLegendDiv = undefined
CesiumNavigation . prototype . terria = undefined
CesiumNavigation . prototype . container = undefined
CesiumNavigation . prototype . _onDestroyListeners = undefined
CesiumNavigation . prototype . destroy = function ( ) {
if ( defined ( this . navigationViewModel ) ) {
this . navigationViewModel . destroy ( )
}
if ( defined ( this . distanceLegendViewModel ) ) {
this . distanceLegendViewModel . destroy ( )
}
if ( defined ( this . navigationDiv ) ) {
this . navigationDiv . parentNode . removeChild ( this . navigationDiv )
}
delete this . navigationDiv
if ( defined ( this . distanceLegendDiv ) ) {
this . distanceLegendDiv . parentNode . removeChild ( this . distanceLegendDiv )
}
delete this . distanceLegendDiv
if ( defined ( this . container ) ) {
this . container . parentNode . removeChild ( this . container )
}
delete this . container
for ( var i = 0 ; i < this . _onDestroyListeners . length ; i ++ ) {
this . _onDestroyListeners [ i ] ( )
}
}
CesiumNavigation . prototype . addOnDestroyListener = function ( callback ) {
if ( typeof callback === 'function' ) {
this . _onDestroyListeners . push ( callback )
}
}
function initialize ( viewerCesiumWidget , options ) {
if ( ! defined ( viewerCesiumWidget ) ) {
throw new DeveloperError ( 'CesiumWidget or Viewer is required.' )
}
var cesiumWidget = defined ( viewerCesiumWidget . cesiumWidget )
? viewerCesiumWidget . cesiumWidget
: viewerCesiumWidget
var container = document . createElement ( 'div' )
container . className = 'cesium-widget-cesiumNavigationContainer'
cesiumWidget . container . appendChild ( container )
this . terria = viewerCesiumWidget
this . terria . options = options
this . terria . afterWidgetChanged = new CesiumEvent ( )
this . terria . beforeWidgetChanged = new CesiumEvent ( )
this . container = container
this . navigationDiv = document . createElement ( 'div' )
this . navigationDiv . setAttribute ( 'id' , 'navigationDiv' )
this . distanceLegendDiv = document . createElement ( 'div' )
this . navigationDiv . setAttribute ( 'id' , 'distanceLegendDiv' )
container . appendChild ( this . navigationDiv )
container . appendChild ( this . distanceLegendDiv )
registerKnockoutBindings ( )
this . distanceLegendViewModel = DistanceLegendViewModel . create ( {
container : this . distanceLegendDiv ,
terria : this . terria ,
mapElement : container
} )
this . navigationViewModel = NavigationViewModel . create ( {
container : this . navigationDiv ,
terria : this . terria
} )
}
return CesiumNavigation
} )
define ( 'dummy/require-less/less/dummy' , [ ] , function ( ) { } )
define ( 'viewerCesiumNavigationMixin' , [
'Cesium/Core/defined' ,
'Cesium/Core/defineProperties' ,
'Cesium/Core/DeveloperError' ,
'CesiumNavigation' ,
'dummy/require-less/less/dummy'
] , function ( defined , defineProperties , DeveloperError , CesiumNavigation ) {
'use strict'
function viewerCesiumNavigationMixin ( viewer , options ) {
if ( ! defined ( viewer ) ) {
throw new DeveloperError ( 'viewer is required.' )
}
var cesiumNavigation = init ( viewer , options )
cesiumNavigation . addOnDestroyListener (
( function ( viewer ) {
return function ( ) {
delete viewer . cesiumNavigation
}
} ) ( viewer )
)
Object . defineProperties ( viewer , {
cesiumNavigation : {
configurable : true ,
get : function ( ) {
return viewer . cesiumWidget . cesiumNavigation
}
}
} )
}
viewerCesiumNavigationMixin . mixinWidget = function (
cesiumWidget ,
options
) {
return init . apply ( undefined , arguments )
}
var init = function ( viewerCesiumWidget , options ) {
var cesiumNavigation = new CesiumNavigation ( viewerCesiumWidget , options )
var cesiumWidget = defined ( viewerCesiumWidget . cesiumWidget )
? viewerCesiumWidget . cesiumWidget
: viewerCesiumWidget
Object . defineProperties ( cesiumWidget , {
cesiumNavigation : {
configurable : true ,
get : function ( ) {
return cesiumNavigation
}
}
} )
cesiumNavigation . addOnDestroyListener (
( function ( cesiumWidget ) {
return function ( ) {
delete cesiumWidget . cesiumNavigation
}
} ) ( cesiumWidget )
)
return cesiumNavigation
}
return viewerCesiumNavigationMixin
} )
; ( function ( c ) {
var d = document ,
a = 'appendChild' ,
i = 'styleSheet' ,
s = d . createElement ( 'style' )
s . type = 'text/css'
d . getElementsByTagName ( 'head' ) [ 0 ] [ a ] ( s )
s [ i ] ? ( s [ i ] . cssText = c ) : s [ a ] ( d . createTextNode ( c ) )
} ) (
" . full - window { position : absolute ; top : 0 ; left : 0 ; right : 0 ; bottom : 0 ; margin : 0 ; overflow : hidden ; padding : 0 ; - webkit - transition : left . 25 s ease - out ; - moz - transition : left . 25 s ease - out ; - ms - transition : left . 25 s ease - out ; - o - transition : left . 25 s ease - out ; transition : left . 25 s ease - out } . transparent - to - input { pointer - events : none } . opaque - to - input { pointer - events : auto } . clickable { cursor : pointer } . markdown a : hover , . markdown u , a : hover { text - decoration : underline } . modal , . modal - background { top : 0 ; left : 0 ; bottom : 0 ; right : 0 } . modal - background { pointer - events : auto ; background - color : rgba ( 0 , 0 , 0 , . 5 ) ; z - index : 1000 ; position : fixed } . modal { position : absolute ; margin : auto ; background - color : # 2 f353c ; max - height : 100 % ; max - width : 100 % ; font - family : 'Roboto' , sans - serif ; color : # fff } . modal - header { background - color : rgba ( 0 , 0 , 0 , . 2 ) ; border - bottom : 1 px solid rgba ( 100 , 100 , 100 , . 6 ) ; font - size : 15 px ; line - height : 40 px ; margin : 0 } . modal - header h1 { font - size : 15 px ; color : # fff ; margin - left : 15 px } . modal - content { margin - left : 15 px ; margin - right : 15 px ; margin - bottom : 15 px ; padding - top : 15 px ; overflow : auto } . modal - close - button { position : absolute ; right : 15 px ; cursor : pointer ; font - size : 18 px ; color : # fff } # ui { z - index : 2100 } @ media print { . full - window { position : initial } } . markdown img { max - width : 100 % } . markdown svg { max - height : 100 % } . markdown fieldset , . markdown input , . markdown select , . markdown textarea { font - family : inherit ; font - size : 1 rem ; box - sizing : border - box ; margin - top : 0 ; margin - bottom : 0 } . markdown label { vertical - align : middle } . markdown h1 , . markdown h2 , . markdown h3 , . markdown h4 , . markdown h5 , . markdown h6 { font - family : inherit ; font - weight : 700 ; line - height : 1.25 ; margin - top : 1 em ; margin - bottom : . 5 em } . markdown h1 { font - size : 2 rem } . markdown h2 { font - size : 1.5 rem } . markdown h3 { font - size : 1.25 rem } . markdown h4 { font - size : 1 rem } . markdown h5 { font - size : . 875 rem } . markdown h6 { font - size : . 75 rem } . markdown dl , . markdown ol , . markdown p , . markdown ul { margin - top : 0 ; margin - bottom : 1 rem } . markdown strong { font - weight : 700 } . markdown em { font - style : italic } . markdown small { font - size : 80 % } . markdown mark { color : # 000 ; background : # ff0 } . markdown s { text - decoration : line - through } . markdown ol { list - style : decimal inside } . markdown ul { list - style : disc inside } . markdown code , . markdown pre , . markdown samp { font - family : monospace ; font - size : inherit } . markdown pre { margin - top : 0 ; margin - bottom : 1 rem ; overflow - x : scroll } . markdown a { color : # 68 adfe ; text - decoration : none } . markdown code , . markdown pre { background - color : transparent ; border - radius : 3 px } . markdown hr { border : 0 ; border - bottom - style : solid ; border - bottom - width : 1 px ; border - bottom - color : rgba ( 0 , 0 , 0 , . 125 ) } . markdown . left - align { text - align : left } . markdown . center { text - align : center } . markdown . right - align { text - align : right } . markdown . justify { text - align : justify } . markdown . truncate { max - width : 100 % ; overflow : hidden ; text - overflow : ellipsis ; white - space : nowrap } . markdown ol . upper - roman { list - style - type : upper - roman } . markdown ol . lower - alpha { list - style - type : lower - alpha } . markdown ul . circle { list - style - type : circle } . markdown ul . square { list - style - type : square } . markdown . list - reset { list - style : none ; padding - left : 0 } . floating , . floating - horizontal , . floating - vertical { pointer - events : auto ; position : absolute ; border - radius : 15 px ; background - color : rgba ( 47 , 53 , 60 , . 8 ) } . floating - horizontal { padding - left : 5 px ; padding - right : 5 px } . floating - vertical { padding - top : 5 px ; padding - bottom : 5 px } @ media print { . floating { display : none } } . distance - legend { pointer - events : auto ; position : absolute ; border - radius : 15 px ; background - color : rgba ( 47 , 53 , 60 , . 8 ) ; padding - left : 5 px ; padding - right : 5 px ; right : 94 px ; bottom : 30 px ; height : 30 px ; width : 125 px ; border : 1 px solid rgba ( 255 , 255 , 255 , . 1 ) ; box - sizing : content - box } . distance - legend - label { display : inline - block ; font - family : 'Roboto' , sans - serif ; font - size : 14 px ; font - weight : lighter ; line - height : 30 px ; color : # fff ; width : 125 px ; text - align : center } . distance - legend - scale - bar { border - left : 1 px solid # fff ; border - right : 1 px solid # fff ; border - bottom : 1 px solid # fff ; position : absolute ; height : 10 px ; top : 15 px } @ media print { . distance - legend { display : none } } @ media screen and ( max - width : 700 px ) , screen and ( max - height : 420 px ) { . distance - legend { display : none } } . navigation - controls { background : rgb ( 54 , 60 , 66 , 0.4 ) ; transform : scale ( 1.2 ) ; display : flex ; position : absolute ; left : 42 px ; top : 24
)
define ( 'Cesium/Core/defined' , function ( ) {
return Cesium [ 'defined' ]
} )
define ( 'Cesium/Core/defineProperties' , function ( ) {
return Cesium [ 'defineProperties' ]
} )
define ( 'Cesium/Core/defaultValue' , function ( ) {
return Cesium [ 'defaultValue' ]
} )
define ( 'Cesium/Core/Event' , function ( ) {
return Cesium [ 'Event' ]
} )
define ( 'Cesium/Widgets/getElement' , function ( ) {
return Cesium [ 'getElement' ]
} )
define ( 'Cesium/Widgets/SvgPathBindingHandler' , function ( ) {
return Cesium [ 'SvgPathBindingHandler' ]
} )
define ( 'Cesium/Core/Ray' , function ( ) {
return Cesium [ 'Ray' ]
} )
define ( 'Cesium/Core/Cartesian3' , function ( ) {
return Cesium [ 'Cartesian3' ]
} )
define ( 'Cesium/Core/Cartographic' , function ( ) {
return Cesium [ 'Cartographic' ]
} )
define ( 'Cesium/Core/ReferenceFrame' , function ( ) {
return Cesium [ 'ReferenceFrame' ]
} )
define ( 'Cesium/Scene/SceneMode' , function ( ) {
return Cesium [ 'SceneMode' ]
} )
define ( 'Cesium/Core/DeveloperError' , function ( ) {
return Cesium [ 'DeveloperError' ]
} )
define ( 'Cesium/Core/EllipsoidGeodesic' , function ( ) {
return Cesium [ 'EllipsoidGeodesic' ]
} )
define ( 'Cesium/Core/Cartesian2' , function ( ) {
return Cesium [ 'Cartesian2' ]
} )
define ( 'Cesium/Core/getTimestamp' , function ( ) {
return Cesium [ 'getTimestamp' ]
} )
define ( 'Cesium/Core/EventHelper' , function ( ) {
return Cesium [ 'EventHelper' ]
} )
define ( 'Cesium/Core/Math' , function ( ) {
return Cesium [ 'Math' ]
} )
define ( 'Cesium/Core/Transforms' , function ( ) {
return Cesium [ 'Transforms' ]
} )
define ( 'Cesium/Core/Matrix4' , function ( ) {
return Cesium [ 'Matrix4' ]
} )
define ( 'Cesium/Core/BoundingSphere' , function ( ) {
return Cesium [ 'BoundingSphere' ]
} )
define ( 'Cesium/Core/HeadingPitchRange' , function ( ) {
return Cesium [ 'HeadingPitchRange' ]
} )
define ( 'Cesium/Scene/Camera' , function ( ) {
return Cesium [ 'Camera' ]
} )
define ( 'Cesium/Core/Rectangle' , function ( ) {
return Cesium [ 'Rectangle' ]
} )
define ( 'Cesium/Core/IntersectionTests' , function ( ) {
return Cesium [ 'IntersectionTests' ]
} )
return require ( 'viewerCesiumNavigationMixin' )
}
)