Fixes #2155: Adopt latest typedoc themes

This commit is contained in:
Alex Dima 2020-09-25 14:47:31 +02:00
parent 47ffd256b9
commit 7e0afc8f43
No known key found for this signature in database
GPG key ID: 6E58D7B045760DA0
65 changed files with 3650 additions and 1215 deletions

View file

@ -531,12 +531,35 @@ function addPluginThirdPartyNotices() {
// --- website // --- website
function typedocStream() {
const initialCWD = process.cwd();
// TypeDoc is silly and consumes the `exclude` option.
// This option does not make it to typescript compiler, which ends up including /node_modules/ .d.ts files.
// We work around this by changing the cwd... :O
return gulp.src('monaco.d.ts')
.pipe(es.through(undefined, function() {
process.chdir(os.tmpdir());
this.emit('end');
}))
.pipe(typedoc({
mode: 'file',
out: path.join(__dirname, '../monaco-editor-website/api'),
includeDeclarations: true,
theme: path.join(__dirname, 'website/typedoc-theme'),
entryPoint: 'monaco',
name: 'Monaco Editor API v' + MONACO_EDITOR_VERSION,
readme: 'none',
hideGenerator: true
}))
.pipe(es.through(undefined, function() {
process.chdir(initialCWD);
this.emit('end');
}))
};
gulp.task('typedoc', () => typedocStream());
const cleanWebsiteTask = function(cb) { rimraf('../monaco-editor-website', { maxBusyTries: 1 }, cb); }; const cleanWebsiteTask = function(cb) { rimraf('../monaco-editor-website', { maxBusyTries: 1 }, cb); };
const buildWebsiteTask = taskSeries(cleanWebsiteTask, function() { const buildWebsiteTask = taskSeries(cleanWebsiteTask, function() {
const initialCWD = process.cwd();
function replaceWithRelativeResource(dataPath, contents, regex, callback) { function replaceWithRelativeResource(dataPath, contents, regex, callback) {
return contents.replace(regex, function(_, m0) { return contents.replace(regex, function(_, m0) {
var filePath = path.join(path.dirname(dataPath), m0); var filePath = path.join(path.dirname(dataPath), m0);
@ -630,29 +653,7 @@ const buildWebsiteTask = taskSeries(cleanWebsiteTask, function() {
})) }))
.pipe(gulp.dest('../monaco-editor-website')), .pipe(gulp.dest('../monaco-editor-website')),
// TypeDoc is silly and consumes the `exclude` option. typedocStream()
// This option does not make it to typescript compiler, which ends up including /node_modules/ .d.ts files.
// We work around this by changing the cwd... :O
gulp.src('monaco.d.ts')
.pipe(es.through(undefined, function() {
process.chdir(os.tmpdir());
this.emit('end');
}))
.pipe(typedoc({
mode: 'file',
out: path.join(__dirname, '../monaco-editor-website/api'),
includeDeclarations: true,
theme: path.join(__dirname, 'website/typedoc-theme'),
entryPoint: 'monaco',
name: 'Monaco Editor API v' + MONACO_EDITOR_VERSION,
readme: 'none',
hideGenerator: true
}))
.pipe(es.through(undefined, function() {
process.chdir(initialCWD);
this.emit('end');
}))
) )
.pipe(es.through(function(data) { .pipe(es.through(function(data) {

View file

@ -0,0 +1,39 @@
// Fonts
//
$FONT_FAMILY: 'Segoe UI', sans-serif
$FONT_FAMILY_MONO: Menlo, Monaco, Consolas, 'Courier New', monospace
$FONT_SIZE: 16px
$FONT_SIZE_MONO: 14px
$LINE_HEIGHT: 1.333em
// Colors
//
$COLOR_BACKGROUND: #fdfdfd
$COLOR_TEXT: #222
$COLOR_TEXT_ASIDE: #707070
$COLOR_LINK: #4da6ff
$COLOR_MENU_DIVIDER: #eee
$COLOR_MENU_DIVIDER_FOCUS: #000
$COLOR_MENU_LABEL: #707070
$COLOR_PANEL: #fff
$COLOR_PANEL_DIVIDER: #eee
$COLOR_COMMENT_TAG: #707070
$COLOR_COMMENT_TAG_TEXT: #fff
$COLOR_CODE_BACKGROUND: rgba(#000, 0.04)
$COLOR_TS: #9600ff
$COLOR_TS_INTERFACE: #647F1B
$COLOR_TS_ENUM: #937210
$COLOR_TS_CLASS: #0672DE
$COLOR_TS_PRIVATE: #707070
$TOOLBAR_COLOR: #fff
$TOOLBAR_TEXT_COLOR: #333
$TOOLBAR_HEIGHT: 40px

View file

@ -0,0 +1,53 @@
// Displays all regular comment tags
//
// <dl class="tsd-comment-tags">
// <dt>see</dt>
// <dd><p><a href="#">Dispatcher.EVENT_BEGIN</a></p></dd>
// <dt>see</dt>
// <dd><p><a href="#">Dispatcher.EVENT_BEGIN_RESOLVE</a></p></dd>
// <dt>see</dt>
// <dd><p><a href="#">Dispatcher.EVENT_END_RESOLVE</a></p></dd>
// </dl>
//
dl.tsd-comment-tags
overflow: hidden
dt
float: left
padding: 1px 5px
margin: 0 10px 0 0
border-radius: 4px
border: 1px solid $COLOR_COMMENT_TAG
color: $COLOR_COMMENT_TAG
font-size: 0.8em
font-weight: normal
dd
margin: 0 0 10px 0
&:before, &:after
display: table
content: " "
pre, &:after
clear: both
p
margin: 0
// Special formatting for the main reflection on each page.
//
// <section class="tsd-panel tsd-comment">
// <div class="tsd-comment tsd-typography">
// <div class="lead"><p>The default TypeDoc main application class.</p></div>
// <p>This class holds the two main components of TypeDoc, the Dispatcher and the Renderer.</p>
// </div>
// </section>
//
.tsd-panel.tsd-comment .lead
font-size: 1.1em
line-height: $LINE_HEIGHT
margin-bottom: 2em
&:last-child
margin-bottom: 0

View file

@ -0,0 +1,65 @@
// Classes set on the body to control the visible state of the filtered elements
//
.toggle-protected .tsd-is-private
display: none
.toggle-public .tsd-is-private,
.toggle-public .tsd-is-protected,
.toggle-public .tsd-is-private-protected
display: none
.toggle-inherited .tsd-is-inherited
display: none
.toggle-only-exported .tsd-is-not-exported
display: none
.toggle-externals .tsd-is-external
display: none
// Filter Buttons in the toolbar
//
#tsd-filter
position: relative
display: inline-block
height: $TOOLBAR_HEIGHT
vertical-align: bottom
.no-filter &
display: none
.tsd-filter-group
display: inline-block
height: $TOOLBAR_HEIGHT
vertical-align: bottom
white-space: nowrap
input
display: none
+size-xs-sm
.tsd-filter-group
display: block
position: absolute
top: $TOOLBAR_HEIGHT
right: 20px
height: auto
background-color: $COLOR_PANEL
visibility: hidden
transform: translate(50%,0)
box-shadow: 0 0 4px rgba(#000, 0.25)
.has-options &
visibility: visible
.to-has-options &
animation: fade-in 0.2s
.from-has-options &
animation: fade-out 0.2s
label,
.tsd-select
display: block
padding-right: 20px

View file

@ -0,0 +1,21 @@
footer
border-top: 1px solid $COLOR_PANEL_DIVIDER
background-color: $COLOR_PANEL
&.with-border-bottom
border-bottom: 1px solid $COLOR_PANEL_DIVIDER
.tsd-legend-group
font-size: 0
.tsd-legend
display: inline-block
width: 25%
padding: 0
font-size: $FONT_SIZE
list-style: none
line-height: $LINE_HEIGHT
vertical-align: top
+size-xs-sm
width: 50%

View file

@ -0,0 +1,24 @@
// Displays the type hierarchy
//
// <ul class="tsd-hierarchy">
// <li>
// <a href="#" class="tsd-signature-type">Event</a>
// <ul class="tsd-hierarchy">
// <li>
// <span class="target">DispatcherEvent</span>
// <ul class="tsd-hierarchy">
// <li><a href="#" class="tsd-signature-type">BaseState</a></li>
// <li><a href="#" class="tsd-signature-type">ReflectionEvent</a></li>
// </ul>
// </li>
// </ul>
// </li>
// </ul>
//
.tsd-hierarchy
list-style: square
padding: 0 0 0 20px
margin: 0
.target
font-weight: bold

View file

@ -0,0 +1,3 @@
// fixes issue with images in readme
img
max-width: 100%

View file

@ -0,0 +1,79 @@
// Displays an index of grouped links.
//
// <section class="tsd-panel tsd-index-panel">
// <div class="tsd-index-content">
// <div class="tsd-index-section">
// <h3>Constructor methods</h3>
// <ul class="tsd-member-index">
// <li class="tsd-kind-constructor-method tsd-parent-kind-class"><a href="#" class="tsd-kind-icon">constructor</a></li>
// </ul>
// </div>
// <div class="tsd-index-section">
// <h3>Properties</h3>
// <ul class="tsd-member-index">
// <li class="tsd-kind-property tsd-parent-kind-class"><a href="#" class="tsd-kind-icon">EVENT_<wbr>BEGIN</a></li>
// <li class="tsd-kind-property tsd-parent-kind-class"><a href="#" class="tsd-kind-icon">EVENT_<wbr>BEGIN_<wbr>DECLARATION</a></li>
// <li class="tsd-kind-property tsd-parent-kind-class"><a href="#" class="tsd-kind-icon">EVENT_<wbr>BEGIN_<wbr>DOCUMENT</a></li>
// <li class="tsd-kind-property tsd-parent-kind-class"><a href="#" class="tsd-kind-icon">EVENT_<wbr>BEGIN_<wbr>RESOLVE</a></li>
// </ul>
// </div>
// </div>
// </section>
//
.tsd-index-panel
.tsd-index-content
margin-bottom: -30px !important
.tsd-index-section
margin-bottom: 30px !important
h3
@extend h4
margin: 0 -20px 10px -20px
padding: 0 20px 10px 20px
border-bottom: 1px solid $COLOR_PANEL_DIVIDER
ul.tsd-index-list
+vendors(column-count, 3)
+vendors(column-gap, 20px)
padding: 0
list-style: none
line-height: $LINE_HEIGHT
+size-xs-sm
+vendors(column-count, 1)
+size-md
+vendors(column-count, 2)
li
+vendors(page-break-inside, avoid)
a,
.tsd-parent-kind-module a
color: $COLOR_TS
.tsd-parent-kind-interface a
color: $COLOR_TS_INTERFACE
.tsd-parent-kind-enum a
color: $COLOR_TS_ENUM
.tsd-parent-kind-class a
color: $COLOR_TS_CLASS
.tsd-kind-module a
color: $COLOR_TS
.tsd-kind-interface a
color: $COLOR_TS_INTERFACE
.tsd-kind-enum a
color: $COLOR_TS_ENUM
.tsd-kind-class a
color: $COLOR_TS_CLASS
.tsd-is-private a
color: $COLOR_TS_PRIVATE

View file

@ -0,0 +1,21 @@
.tsd-flag
display: inline-block
padding: 1px 5px
border-radius: 4px
color: $COLOR_COMMENT_TAG_TEXT
background-color: $COLOR_COMMENT_TAG
text-indent: 0
font-size: $FONT_SIZE_MONO
font-weight: normal
.tsd-anchor
position: absolute
top: -100px
.tsd-member
position: relative
.tsd-anchor + h3
margin-top: 0
margin-bottom: 0
border-bottom: none

View file

@ -0,0 +1,148 @@
// Base format for the navigation parts.
//
=INDENT($DEPTH, $BASE, $STEP, $PROGRESS:$DEPTH)
@if $PROGRESS > 0
& li
+INDENT($DEPTH, $BASE, $STEP, $PROGRESS - 1)
@else
& a
padding-left: #{($BASE + $STEP * ($DEPTH - 1))}px
=INDENTS($COUNT, $BASE, $STEP)
@for $DEPTH from 1 through $COUNT
+INDENT($DEPTH, $BASE, $STEP)
.tsd-navigation
margin: 0 0 0 40px
a
display: block
padding-top: 2px
padding-bottom: 2px
border-left: 2px solid transparent
color: $COLOR_TEXT
text-decoration: none
transition: border-left-color 0.1s
&:hover
text-decoration: underline
ul
margin: 0
padding: 0
list-style: none
li
padding: 0
// Primary part of the navigation containing the available modules.
//
// <nav class="tsd-navigation primary">
// <ul>
// <li class="globals"><a href="#"><em>Globals</em></a></li>
// <li class="current tsd-kind-container">
// <a href="#">TypeDoc</a>
// <ul>
// <li class="tsd-kind-container tsd-parent-kind-container"><a href="#">Factories</a></li>
// <li class="tsd-kind-container tsd-parent-kind-container"><a href="#">Models</a></li>
// <li class="current tsd-kind-container tsd-parent-kind-container"><a href="#">Output</a></li>
// </ul>
// </li>
// </ul>
// </nav>
//
.tsd-navigation.primary
padding-bottom: 40px
a
display: block
padding-top: 6px
padding-bottom: 6px
ul
+INDENTS(6, 5, 20)
> ul
border-bottom: 1px solid $COLOR_PANEL_DIVIDER
li
border-top: 1px solid $COLOR_PANEL_DIVIDER
&.current > a
font-weight: bold
&.label span
display: block
padding: 20px 0 6px 5px
color: $COLOR_MENU_LABEL
&.globals + li > span,
&.globals + li > a
padding-top: 20px
// Secondary part of the navigation containing the table of contents
// of the current module.
// Can be made sticky by `typedoc.MenuSticky` and will highlight current sticky with `typedoc.MenuHighlight`.
//
// <nav class="tsd-navigation secondary">
// <ul class="before-current">
// <li class="tsd-kind-class tsd-parent-kind-container"><a href="#" class="tsd-kind-icon">AssetsPlugin</a></li>
// <li class="tsd-kind-class tsd-parent-kind-container"><a href="#" class="tsd-kind-icon">BasePlugin</a></li>
// <li class="tsd-kind-class tsd-parent-kind-container"><a href="#" class="tsd-kind-icon">BaseTheme</a></li>
// </ul>
// <ul class="current">
// <li class="current tsd-kind-class tsd-parent-kind-container">
// <a href="#" class="tsd-kind-icon">OutputEvent</a>
// <ul>
// <li class="tsd-kind-property tsd-parent-kind-class tsd-is-inherited"><a href="#" class="tsd-kind-icon">isDefaultPrevented</a></li>
// <li class="tsd-kind-property tsd-parent-kind-class tsd-is-inherited"><a href="#" class="tsd-kind-icon">isPropagationStopped</a></li>
// <li class="tsd-kind-property tsd-parent-kind-class"><a href="#" class="tsd-kind-icon">outputDirectory</a></li>
// <li class="tsd-kind-property tsd-parent-kind-class"><a href="#" class="tsd-kind-icon">project</a></li>
// </ul>
// </li>
// </ul>
// <ul class="after-current">
// <li class="tsd-kind-class tsd-parent-kind-container"><a href="#" class="tsd-kind-icon">OutputPageEvent</a></li>
// <li class="tsd-kind-class tsd-parent-kind-container"><a href="#" class="tsd-kind-icon">PartialsPlugin</a></li>
// </ul>
// </nav>
//
.tsd-navigation.secondary
max-height: calc(100vh - 1rem - #{$TOOLBAR_HEIGHT})
overflow: auto
position: -webkit-sticky
position: sticky
top: calc(.5rem + #{$TOOLBAR_HEIGHT})
transition: .3s
&.tsd-navigation--toolbar-hide
max-height: calc(100vh - 1rem)
top: .5rem
ul
+INDENTS(6, 25, 20)
transition: opacity 0.2s
&.current a
border-left-color: $COLOR_PANEL_DIVIDER
li.focus > a,
ul.current li.focus > a
border-left-color: $COLOR_MENU_DIVIDER_FOCUS
li.current
margin-top: 20px
margin-bottom: 20px
border-left-color: $COLOR_PANEL_DIVIDER
> a
font-weight: bold
// Sticky menu setup
//
.menu-sticky-wrap
+size-md-lg
position: static

View file

@ -0,0 +1,70 @@
// Displays a panel, an organisation unit in TypeDoc used to group single entities
// like a method or a variable.
//
// <div class="tsd-panel">
// <h3>Eirmod tempor invidunt</h3>
// <p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat.</p>
// </div>
//
.tsd-panel
@extend %prevent-children-margin
margin: 20px 0
padding: 20px
background-color: $COLOR_PANEL
box-shadow: 0 0 4px rgba(#000, 0.25)
&:empty
display: none
> h1, > h2, > h3
margin: 1.5em -20px 10px -20px
padding: 0 20px 10px 20px
border-bottom: 1px solid $COLOR_PANEL_DIVIDER
&.tsd-before-signature
margin-bottom: 0
border-bottom: 0
table
display: block
width: 100%
overflow: auto
margin-top: 10px
word-break: normal
word-break: keep-all
th
font-weight: bold
th, td
padding: 6px 13px
border: 1px solid #ddd
tr
background-color: #fff
border-top: 1px solid #ccc
&:nth-child(2n)
background-color: #f8f8f8
// Holds a series of panels with an optional heading.
//
// <div class="tsd-panel-group">
// <h2>Consetetur sadipscing elitr</h2>
// <div class="tsd-panel">
// <h3>Eirmod tempor invidunt</h3>
// <p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat.</p>
// </div>
// <div class="tsd-panel">
// <h3>Eirmod tempor invidunt</h3>
// <p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat.</p>
// </div>
// </div>
//
.tsd-panel-group
margin: 60px 0
> h1, > h2, > h3
padding-left: 20px
padding-right: 20px

View file

@ -0,0 +1,89 @@
#tsd-search
transition: background-color 0.2s
.title
position: relative
z-index: 2
.field
position: absolute
left: 0
top: 0
right: 40px
height: 40px
input
box-sizing: border-box
position: relative
top: -50px
z-index: 1
width: 100%
padding: 0 10px
opacity: 0
outline: 0
border: 0
background: transparent
color: $COLOR_TEXT
label
position: absolute
overflow: hidden
right: -40px
.field input,
.title
transition: opacity 0.2s
.results
position: absolute
visibility: hidden
top: 40px
width: 100%
margin: 0
padding: 0
list-style: none
box-shadow: 0 0 4px rgba(#000, 0.25)
li
padding: 0 10px
background-color: $COLOR_BACKGROUND
li:nth-child(even)
background-color: $COLOR_PANEL
li.state
display: none
li.current,
li:hover
background-color: $COLOR_PANEL_DIVIDER
a
display: block
&:before
top: 10px
span.parent
color: $COLOR_TEXT_ASIDE
font-weight: normal
&.has-focus
background-color: $COLOR_PANEL_DIVIDER
.field input
top: 0
opacity: 1
.title
z-index: 0
opacity: 0
.results
visibility: visible
&.loading .results li.state.loading
display: block
&.failure .results li.state.failure
display: block

View file

@ -0,0 +1,152 @@
// Wraps a function signature.
// Changes its appearance when directly placed inside a `tsd-panel`.
// Can be combined with class `tsd-kind-icon` to display an icon in front of the signature.
//
// <div class="tsd-kind-method">
// <div class="tsd-signature tsd-kind-icon">
// get<wbr>Child<wbr>ByName<span class="tsd-signature-symbol">(</span>
// name<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span>
// <span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span>
// <a href="# class="tsd-signature-type">DeclarationReflection</a>
// </div>
// </div>
//
.tsd-signature
margin: 0 0 1em 0
padding: 10px
border: 1px solid $COLOR_PANEL_DIVIDER
font-family: $FONT_FAMILY_MONO
font-size: $FONT_SIZE_MONO
overflow-x: auto
&.tsd-kind-icon
padding-left: 30px
&:before
top: 10px
left: 10px
.tsd-panel > &
margin-left: -20px
margin-right: -20px
border-width: 1px 0
&.tsd-kind-icon
padding-left: 40px
&:before
left: 20px
.tsd-signature-symbol
color: $COLOR_TEXT_ASIDE
font-weight: normal
.tsd-signature-type
font-style: italic
font-weight: normal
// Displays a list of signatures.
// Changes its appearance when directly placed inside a `tsd-panel`.
// Made interactive by JavaScript at `typedoc.Signature`.
//
// <ul class="tsd-signatures tsd-kind-method">
// <li class="tsd-signature tsd-kind-icon current">getChildByName(name: string): DeclarationReflection</li>
// <li class="tsd-signature tsd-kind-icon">getChildByName(names: Array&lt;string&gt;): DeclarationReflection</li>
// </ul>
//
.tsd-signatures
padding: 0
margin: 0 0 1em 0
border: 1px solid $COLOR_PANEL_DIVIDER
.tsd-signature
margin: 0
border-width: 1px 0 0 0
transition: background-color 0.1s
&:first-child
border-top-width: 0
&.current
background-color: $COLOR_PANEL_DIVIDER
&.active > .tsd-signature
cursor: pointer
.tsd-panel > &
margin-left: -20px
margin-right: -20px
border-width: 1px 0
.tsd-signature.tsd-kind-icon
padding-left: 40px
&:before
left: 20px
.tsd-panel > a.anchor + &
border-top-width: 0
margin-top: -20px
// Holds the descriptions related to a list of signatures.
// Made interactive by JavaScript at `typedoc.Signature`.
//
// <ul class="tsd-descriptions active">
// <li class="tsd-description current">
// <p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat.</p>
// </li>
// <li class="tsd-description">
// <p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat.</p>
// </li>
// </ul>
//
ul.tsd-descriptions
position: relative
overflow: hidden
padding: 0
list-style: none
> li
@extend %prevent-children-margin
&.active > .tsd-description
display: none
&.current
display: block
&.fade-in
animation: fade-in-delayed 0.3s
&.fade-out
animation: fade-out-delayed 0.3s
position: absolute
display: block
top: 0
left: 0
right: 0
opacity: 0
visibility: hidden
h4
font-size: $FONT_SIZE
margin: 1em 0 0.5em 0
ul.tsd-parameters,
ul.tsd-type-parameters
list-style: square
margin: 0
padding-left: 20px
> li.tsd-parameter-signature
list-style: none
margin-left: -20px
h5
font-size: $FONT_SIZE
margin: 1em 0 0.5em 0
.tsd-comment
margin-top: -0.5em

View file

@ -0,0 +1,24 @@
// Displays the source and inheritance information
//
// <aside class="tsd-sources">
// <p>Overrides <a href="#">BaseHandler</a>.<a href="#">constructor</a></p>
// <ul>
// <li>Defined in src/typedoc/factories/handlers/DynamicModuleHandler.ts:37</li>
// </ul>
// </aside>
//
.tsd-sources
font-size: $FONT_SIZE_MONO
color: $COLOR_TEXT_ASIDE
margin: 0 0 1em 0
a
color: $COLOR_TEXT_ASIDE
text-decoration: underline
ul, p
margin: 0 !important
ul
list-style: none
padding: 0

View file

@ -0,0 +1,175 @@
// Displays the toolbar at the top of the page.
//
// <div class="tsd-page-toolbar">
// <div class="container">
// <div class="table-wrap">
// <div class="table-cell">
// <a href="../index.html" class="title">TypeDoc Documentation</a>
// </div>
// </div>
// </div>
// </div>
//
.tsd-page-toolbar
position: fixed
z-index: 1
top: 0
left: 0
width: 100%
height: $TOOLBAR_HEIGHT
color: $TOOLBAR_TEXT_COLOR
background: $TOOLBAR_COLOR
border-bottom: 1px solid $COLOR_PANEL_DIVIDER
transition: transform .3s linear
a
color: $TOOLBAR_TEXT_COLOR
text-decoration: none
&.title
font-weight: bold
&.title:hover
text-decoration: underline
.table-wrap
display: table
width: 100%
height: $TOOLBAR_HEIGHT
.table-cell
display: table-cell
position: relative
white-space: nowrap
line-height: $TOOLBAR_HEIGHT
&:first-child
width: 100%
.tsd-page-toolbar--hide
transform: translateY(-100%)
%TSD_WIDGET_ICON
&:before
content: ''
display: inline-block
width: 40px
height: 40px
margin: 0 -8px 0 0
background-image: url(../../images/widgets.png)
background-repeat: no-repeat
text-indent: -1024px
vertical-align: bottom
+retina
background-image: url(../../images/widgets@2x.png)
background-size: 320px 40px
.tsd-widget
@extend %TSD_WIDGET_ICON
display: inline-block
overflow: hidden
opacity: 0.6
height: $TOOLBAR_HEIGHT
transition: opacity 0.1s, background-color 0.2s
vertical-align: bottom
cursor: pointer
&:hover
opacity: 0.8
&.active
opacity: 1
background-color: $COLOR_PANEL_DIVIDER
&.no-caption
width: 40px
&:before
margin: 0
&.search:before
background-position: 0 0
&.menu:before
background-position: -40px 0
&.options:before
background-position: -80px 0
&.options,
&.menu
display: none
+size-xs-sm
display: inline-block
input[type=checkbox] + &:before
background-position: -120px 0
input[type=checkbox]:checked + &:before
background-position: -160px 0
.tsd-select
position: relative
display: inline-block
height: $TOOLBAR_HEIGHT
transition: opacity 0.1s, background-color 0.2s
vertical-align: bottom
cursor: pointer
.tsd-select-label
@extend %TSD_WIDGET_ICON
opacity: 0.6
transition: opacity 0.2s
&:before
background-position: -240px 0
&.active
.tsd-select-label
opacity: 0.8
.tsd-select-list
visibility: visible
opacity: 1
transition-delay: 0s
.tsd-select-list
position: absolute
visibility: hidden
top: $TOOLBAR_HEIGHT
left: 0
margin: 0
padding: 0
opacity: 0
list-style: none
box-shadow: 0 0 4px rgba(#000, 0.25)
transition: visibility 0s 0.2s, opacity 0.2s
li
@extend %TSD_WIDGET_ICON
padding: 0 20px 0 0
background-color: $COLOR_BACKGROUND
&:before
background-position: 40px 0
&:nth-child(even)
background-color: $COLOR_PANEL
&:hover
background-color: $COLOR_PANEL_DIVIDER
&.selected:before
background-position: -200px 0
+size-xs-sm
.tsd-select-list
top: 0
left: auto
right: 100%
margin-right: -5px
.tsd-select-label:before
background-position: -280px 0

View file

@ -0,0 +1,113 @@
html.default
+size-md
.col-content
width: 72%
.col-menu
width: 28%
.tsd-navigation
padding-left: 10px
+size-xs-sm
.col-content
float: none
width: 100%
.col-menu
position: fixed !important
overflow: auto
-webkit-overflow-scrolling: touch
z-index: 1024
top: 0 !important
bottom: 0 !important
left: auto !important
right: 0 !important
width: 100%
padding: 20px 20px 0 0
max-width: 450px
visibility: hidden
background-color: $COLOR_PANEL
transform: translate(100%,0)
> *:last-child
padding-bottom: 20px
.overlay
content: ''
display: block
position: fixed
z-index: 1023
top: 0
left: 0
right: 0
bottom: 0
background-color: rgba(#000, 0.75)
visibility: hidden
&.to-has-menu
.overlay
animation: fade-in 0.4s
header,
footer,
.col-content
animation: shift-to-left 0.4s
.col-menu
animation: pop-in-from-right 0.4s
&.from-has-menu
.overlay
animation: fade-out 0.4s
header,
footer,
.col-content
animation: unshift-to-left 0.4s
.col-menu
animation: pop-out-to-right 0.4s
&.has-menu
body
overflow: hidden
.overlay
visibility: visible
header,
footer,
.col-content
transform: translate(-25%, 0)
.col-menu
visibility: visible
transform: translate(0,0)
.tsd-page-title
padding: 70px 0 20px 0
margin: 0 0 40px 0
background: $COLOR_PANEL
box-shadow: 0 0 5px rgba(#000, 0.35)
h1
margin: 0
.tsd-breadcrumb
margin: 0
padding: 0
color: $COLOR_TEXT_ASIDE
a
color: $COLOR_TEXT_ASIDE
text-decoration: none
&:hover
text-decoration: underline
li
display: inline
&:after
content: ' / '

View file

@ -0,0 +1,49 @@
html.minimal
.container
margin: 0
.container-main
padding-top: 50px
padding-bottom: 0
.content-wrap
padding-left: 300px
.tsd-navigation
position: fixed !important
overflow: auto
-webkit-overflow-scrolling: touch
box-sizing: border-box
z-index: 1
left: 0
top: 40px
bottom: 0
width: 300px
padding: 20px
margin: 0
.tsd-member .tsd-member
margin-left: 0
.tsd-page-toolbar
position: fixed
z-index: 2
#tsd-filter .tsd-filter-group
right: 0
transform: none
footer
background-color: transparent
.container
padding: 0
.tsd-generator
padding: 0
+size-xs-sm
.tsd-navigation
display: none
.content-wrap
padding-left: 0

View file

@ -1,873 +0,0 @@
/*! normalize.css v1.1.3 | MIT License | git.io/normalize */
/* ========================================================================== HTML5 display definitions ========================================================================== */
/** Correct `block` display not defined in IE 6/7/8/9 and Firefox 3. */
article, aside, details, figcaption, figure, footer, header, hgroup, main, nav, section, summary { display: block; }
/** Correct `inline-block` display not defined in IE 6/7/8/9 and Firefox 3. */
audio, canvas, video { display: inline-block; *display: inline; *zoom: 1; }
/** Prevent modern browsers from displaying `audio` without controls. Remove excess height in iOS 5 devices. */
audio:not([controls]) { display: none; height: 0; }
/** Address styling not present in IE 7/8/9, Firefox 3, and Safari 4. Known issue: no IE 6 support. */
[hidden] { display: none; }
/* ========================================================================== Base ========================================================================== */
/** 1. Correct text resizing oddly in IE 6/7 when body `font-size` is set using `em` units. 2. Prevent iOS text size adjust after orientation change, without disabling user zoom. */
html { font-size: 100%; /* 1 */ -ms-text-size-adjust: 100%; /* 2 */ -webkit-text-size-adjust: 100%; /* 2 */ font-family: sans-serif; }
/** Address `font-family` inconsistency between `textarea` and other form elements. */
button, input, select, textarea { font-family: sans-serif; }
/** Address margins handled incorrectly in IE 6/7. */
body { margin: 0; }
/* ========================================================================== Links ========================================================================== */
/** Address `outline` inconsistency between Chrome and other browsers. */
a:focus { outline: thin dotted; }
a:active, a:hover { outline: 0; }
/** Improve readability when focused and also mouse hovered in all browsers. */
/* ========================================================================== Typography ========================================================================== */
/** Address font sizes and margins set differently in IE 6/7. Address font sizes within `section` and `article` in Firefox 4+, Safari 5, and Chrome. */
h1 { font-size: 2em; margin: 0.67em 0; }
h2 { font-size: 1.5em; margin: 0.83em 0; }
h3 { font-size: 1.17em; margin: 1em 0; }
h4, .tsd-index-panel h3 { font-size: 1em; margin: 1.33em 0; }
h5 { font-size: 0.83em; margin: 1.67em 0; }
h6 { font-size: 0.67em; margin: 2.33em 0; }
/** Address styling not present in IE 7/8/9, Safari 5, and Chrome. */
abbr[title] { border-bottom: 1px dotted; }
/** Address style set to `bolder` in Firefox 3+, Safari 4/5, and Chrome. */
b, strong { font-weight: bold; }
blockquote { margin: 1em 40px; }
/** Address styling not present in Safari 5 and Chrome. */
dfn { font-style: italic; }
/** Address differences between Firefox and other browsers. Known issue: no IE 6/7 normalization. */
hr { box-sizing: content-box; height: 0; }
/** Address styling not present in IE 6/7/8/9. */
mark { background: #ff0; color: #000; }
/** Address margins set differently in IE 6/7. */
p, pre { margin: 1em 0; }
/** Correct font family set oddly in IE 6, Safari 4/5, and Chrome. */
code, kbd, pre, samp { font-family: monospace, serif; _font-family: "courier new", monospace; font-size: 1em; }
/** Improve readability of pre-formatted text in all browsers. */
pre { white-space: pre; white-space: pre-wrap; word-wrap: break-word; }
/** Address CSS quotes not supported in IE 6/7. */
q { quotes: none; }
q:before, q:after { content: ""; content: none; }
/** Address `quotes` property not supported in Safari 4. */
/** Address inconsistent and variable font size in all browsers. */
small { font-size: 80%; }
/** Prevent `sub` and `sup` affecting `line-height` in all browsers. */
sub { font-size: 75%; line-height: 0; position: relative; vertical-align: baseline; }
sup { font-size: 75%; line-height: 0; position: relative; vertical-align: baseline; top: -0.5em; }
sub { bottom: -0.25em; }
/* ========================================================================== Lists ========================================================================== */
/** Address margins set differently in IE 6/7. */
dl, menu, ol, ul { margin: 1em 0; }
dd { margin: 0 0 0 40px; }
/** Address paddings set differently in IE 6/7. */
menu, ol, ul { padding: 0 0 0 40px; }
/** Correct list images handled incorrectly in IE 7. */
nav ul, nav ol { list-style: none; list-style-image: none; }
/* ========================================================================== Embedded content ========================================================================== */
/** 1. Remove border when inside `a` element in IE 6/7/8/9 and Firefox 3. 2. Improve image quality when scaled in IE 7. */
img { border: 0; /* 1 */ -ms-interpolation-mode: bicubic; }
/* 2 */
/** Correct overflow displayed oddly in IE 9. */
svg:not(:root) { overflow: hidden; }
/* ========================================================================== Figures ========================================================================== */
/** Address margin not present in IE 6/7/8/9, Safari 5, and Opera 11. */
figure, form { margin: 0; }
/* ========================================================================== Forms ========================================================================== */
/** Correct margin displayed oddly in IE 6/7. */
/** Define consistent border, margin, and padding. */
fieldset { border: 1px solid #c0c0c0; margin: 0 2px; padding: 0.35em 0.625em 0.75em; }
/** 1. Correct color not being inherited in IE 6/7/8/9. 2. Correct text not wrapping in Firefox 3. 3. Correct alignment displayed oddly in IE 6/7. */
legend { border: 0; /* 1 */ padding: 0; white-space: normal; /* 2 */ *margin-left: -7px; }
/* 3 */
/** 1. Correct font size not being inherited in all browsers. 2. Address margins set differently in IE 6/7, Firefox 3+, Safari 5, and Chrome. 3. Improve appearance and consistency in all browsers. */
button, input, select, textarea { font-size: 100%; /* 1 */ margin: 0; /* 2 */ vertical-align: baseline; /* 3 */ *vertical-align: middle; }
/* 3 */
/** Address Firefox 3+ setting `line-height` on `input` using `!important` in the UA stylesheet. */
button, input { line-height: normal; }
/** Address inconsistent `text-transform` inheritance for `button` and `select`. All other form control elements do not inherit `text-transform` values. Correct `button` style inheritance in Chrome, Safari 5+, and IE 6+. Correct `select` style inheritance in Firefox 4+ and Opera. */
button, select { text-transform: none; }
/** 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio` and `video` controls. 2. Correct inability to style clickable `input` types in iOS. 3. Improve usability and consistency of cursor style between image-type `input` and others. 4. Remove inner spacing in IE 7 without affecting normal text inputs. Known issue: inner spacing remains in IE 6. */
button, html input[type="button"] { -webkit-appearance: button; /* 2 */ cursor: pointer; /* 3 */ *overflow: visible; }
/* 4 */
input[type="reset"], input[type="submit"] { -webkit-appearance: button; /* 2 */ cursor: pointer; /* 3 */ *overflow: visible; }
/* 4 */
/** Re-set default cursor for disabled elements. */
button[disabled], html input[disabled] { cursor: default; }
/** 1. Address box sizing set to content-box in IE 8/9. 2. Remove excess padding in IE 8/9. 3. Remove excess padding in IE 7. Known issue: excess padding remains in IE 6. */
input { /* 3 */ }
input[type="checkbox"], input[type="radio"] { box-sizing: border-box; /* 1 */ padding: 0; /* 2 */ *height: 13px; /* 3 */ *width: 13px; }
input[type="search"] { -webkit-appearance: textfield; /* 1 */ /* 2 */ box-sizing: content-box; }
input[type="search"]::-webkit-search-cancel-button, input[type="search"]::-webkit-search-decoration { -webkit-appearance: none; }
/** 1. Address `appearance` set to `searchfield` in Safari 5 and Chrome. 2. Address `box-sizing` set to `border-box` in Safari 5 and Chrome (include `-moz` to future-proof). */
/** Remove inner padding and search cancel button in Safari 5 and Chrome on OS X. */
/** Remove inner padding and border in Firefox 3+. */
button::-moz-focus-inner, input::-moz-focus-inner { border: 0; padding: 0; }
/** 1. Remove default vertical scrollbar in IE 6/7/8/9. 2. Improve readability and alignment in all browsers. */
textarea { overflow: auto; /* 1 */ vertical-align: top; }
/* 2 */
/* ========================================================================== Tables ========================================================================== */
/** Remove most spacing between table cells. */
table { border-collapse: collapse; border-spacing: 0; }
/* Visual Studio-like style based on original C# coloring by Jason Diamond <jason@diamond.name> */
.hljs { display: inline-block; padding: 0.5em; background: white; color: black; }
.hljs-comment, .hljs-annotation, .hljs-template_comment, .diff .hljs-header, .hljs-chunk, .apache .hljs-cbracket { color: #008000; }
.hljs-keyword, .hljs-id, .hljs-built_in, .css .smalltalk .hljs-class, .hljs-winutils, .bash .hljs-variable, .tex .hljs-command, .hljs-request, .hljs-status, .nginx .hljs-title { color: #00f; }
.xml .hljs-tag { color: #00f; }
.xml .hljs-tag .hljs-value { color: #00f; }
.hljs-string, .hljs-title, .hljs-parent, .hljs-tag .hljs-value, .hljs-rules .hljs-value { color: #a31515; }
.ruby .hljs-symbol { color: #a31515; }
.ruby .hljs-symbol .hljs-string { color: #a31515; }
.hljs-template_tag, .django .hljs-variable, .hljs-addition, .hljs-flow, .hljs-stream, .apache .hljs-tag, .hljs-date, .tex .hljs-formula, .coffeescript .hljs-attribute { color: #a31515; }
.ruby .hljs-string, .hljs-decorator, .hljs-filter .hljs-argument, .hljs-localvars, .hljs-array, .hljs-attr_selector, .hljs-pseudo, .hljs-pi, .hljs-doctype, .hljs-deletion, .hljs-envvar, .hljs-shebang, .hljs-preprocessor, .hljs-pragma, .userType, .apache .hljs-sqbracket, .nginx .hljs-built_in, .tex .hljs-special, .hljs-prompt { color: #2b91af; }
.hljs-phpdoc, .hljs-javadoc, .hljs-xmlDocTag { color: #808080; }
.vhdl .hljs-typename { font-weight: bold; }
.vhdl .hljs-string { color: #666666; }
.vhdl .hljs-literal { color: #a31515; }
.vhdl .hljs-attribute { color: #00b0e8; }
.xml .hljs-attribute { color: #f00; }
.col > :first-child, .col-1 > :first-child, .col-2 > :first-child, .col-3 > :first-child, .col-4 > :first-child, .col-5 > :first-child, .col-6 > :first-child, .col-7 > :first-child, .col-8 > :first-child, .col-9 > :first-child, .col-10 > :first-child, .col-11 > :first-child, .tsd-panel > :first-child, ul.tsd-descriptions > li > :first-child, .col > :first-child > :first-child, .col-1 > :first-child > :first-child, .col-2 > :first-child > :first-child, .col-3 > :first-child > :first-child, .col-4 > :first-child > :first-child, .col-5 > :first-child > :first-child, .col-6 > :first-child > :first-child, .col-7 > :first-child > :first-child, .col-8 > :first-child > :first-child, .col-9 > :first-child > :first-child, .col-10 > :first-child > :first-child, .col-11 > :first-child > :first-child, .tsd-panel > :first-child > :first-child, ul.tsd-descriptions > li > :first-child > :first-child, .col > :first-child > :first-child > :first-child, .col-1 > :first-child > :first-child > :first-child, .col-2 > :first-child > :first-child > :first-child, .col-3 > :first-child > :first-child > :first-child, .col-4 > :first-child > :first-child > :first-child, .col-5 > :first-child > :first-child > :first-child, .col-6 > :first-child > :first-child > :first-child, .col-7 > :first-child > :first-child > :first-child, .col-8 > :first-child > :first-child > :first-child, .col-9 > :first-child > :first-child > :first-child, .col-10 > :first-child > :first-child > :first-child, .col-11 > :first-child > :first-child > :first-child, .tsd-panel > :first-child > :first-child > :first-child, ul.tsd-descriptions > li > :first-child > :first-child > :first-child { margin-top: 0; }
.col > :last-child, .col-1 > :last-child, .col-2 > :last-child, .col-3 > :last-child, .col-4 > :last-child, .col-5 > :last-child, .col-6 > :last-child, .col-7 > :last-child, .col-8 > :last-child, .col-9 > :last-child, .col-10 > :last-child, .col-11 > :last-child, .tsd-panel > :last-child, ul.tsd-descriptions > li > :last-child, .col > :last-child > :last-child, .col-1 > :last-child > :last-child, .col-2 > :last-child > :last-child, .col-3 > :last-child > :last-child, .col-4 > :last-child > :last-child, .col-5 > :last-child > :last-child, .col-6 > :last-child > :last-child, .col-7 > :last-child > :last-child, .col-8 > :last-child > :last-child, .col-9 > :last-child > :last-child, .col-10 > :last-child > :last-child, .col-11 > :last-child > :last-child, .tsd-panel > :last-child > :last-child, ul.tsd-descriptions > li > :last-child > :last-child, .col > :last-child > :last-child > :last-child, .col-1 > :last-child > :last-child > :last-child, .col-2 > :last-child > :last-child > :last-child, .col-3 > :last-child > :last-child > :last-child, .col-4 > :last-child > :last-child > :last-child, .col-5 > :last-child > :last-child > :last-child, .col-6 > :last-child > :last-child > :last-child, .col-7 > :last-child > :last-child > :last-child, .col-8 > :last-child > :last-child > :last-child, .col-9 > :last-child > :last-child > :last-child, .col-10 > :last-child > :last-child > :last-child, .col-11 > :last-child > :last-child > :last-child, .tsd-panel > :last-child > :last-child > :last-child, ul.tsd-descriptions > li > :last-child > :last-child > :last-child { margin-bottom: 0; }
.container { max-width: 1200px; margin: 0 auto; padding: 0 40px; }
@media (max-width: 640px) { .container { padding: 0 20px; } }
.container-main { padding-bottom: 200px; }
.row { position: relative; margin: 0 -10px; }
.row:after { visibility: hidden; display: block; content: ""; clear: both; height: 0; }
.col, .col-1, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-10, .col-11 { box-sizing: border-box; float: left; padding: 0 10px; }
.col-1 { width: 8.33333%; }
.offset-1 { margin-left: 8.33333%; }
.col-2 { width: 16.66667%; }
.offset-2 { margin-left: 16.66667%; }
.col-3 { width: 25%; }
.offset-3 { margin-left: 25%; }
.col-4 { width: 33.33333%; }
.offset-4 { margin-left: 33.33333%; }
.col-5 { width: 41.66667%; }
.offset-5 { margin-left: 41.66667%; }
.col-6 { width: 50%; }
.offset-6 { margin-left: 50%; }
.col-7 { width: 58.33333%; }
.offset-7 { margin-left: 58.33333%; }
.col-8 { width: 66.66667%; }
.offset-8 { margin-left: 66.66667%; }
.col-9 { width: 75%; }
.offset-9 { margin-left: 75%; }
.col-10 { width: 83.33333%; }
.offset-10 { margin-left: 83.33333%; }
.col-11 { width: 91.66667%; }
.offset-11 { margin-left: 91.66667%; }
.tsd-kind-icon { display: block; position: relative; padding-left: 20px; text-indent: -20px; }
.tsd-kind-icon:before { content: ''; display: inline-block; vertical-align: middle; width: 17px; height: 17px; margin: 0 3px 2px 0; background-image: url(../images/icons.png); }
@media (-webkit-min-device-pixel-ratio: 1.5), (min-device-pixel-ratio: 1.5), (min-resolution: 144dpi) { .tsd-kind-icon:before { background-image: url(../images/icons@2x.png); background-size: 238px 204px; } }
.tsd-signature.tsd-kind-icon:before { background-position: 0 -153px; }
.tsd-kind-object-literal > .tsd-kind-icon:before { background-position: 0px -17px; }
.tsd-kind-object-literal.tsd-is-protected > .tsd-kind-icon:before { background-position: -17px -17px; }
.tsd-kind-object-literal.tsd-is-private > .tsd-kind-icon:before { background-position: -34px -17px; }
.tsd-kind-class > .tsd-kind-icon:before { background-position: 0px -34px; }
.tsd-kind-class.tsd-is-protected > .tsd-kind-icon:before { background-position: -17px -34px; }
.tsd-kind-class.tsd-is-private > .tsd-kind-icon:before { background-position: -34px -34px; }
.tsd-kind-class.tsd-has-type-parameter > .tsd-kind-icon:before { background-position: 0px -51px; }
.tsd-kind-class.tsd-has-type-parameter.tsd-is-protected > .tsd-kind-icon:before { background-position: -17px -51px; }
.tsd-kind-class.tsd-has-type-parameter.tsd-is-private > .tsd-kind-icon:before { background-position: -34px -51px; }
.tsd-kind-interface > .tsd-kind-icon:before { background-position: 0px -68px; }
.tsd-kind-interface.tsd-is-protected > .tsd-kind-icon:before { background-position: -17px -68px; }
.tsd-kind-interface.tsd-is-private > .tsd-kind-icon:before { background-position: -34px -68px; }
.tsd-kind-interface.tsd-has-type-parameter > .tsd-kind-icon:before { background-position: 0px -85px; }
.tsd-kind-interface.tsd-has-type-parameter.tsd-is-protected > .tsd-kind-icon:before { background-position: -17px -85px; }
.tsd-kind-interface.tsd-has-type-parameter.tsd-is-private > .tsd-kind-icon:before { background-position: -34px -85px; }
.tsd-kind-module > .tsd-kind-icon:before { background-position: 0px -102px; }
.tsd-kind-module.tsd-is-protected > .tsd-kind-icon:before { background-position: -17px -102px; }
.tsd-kind-module.tsd-is-private > .tsd-kind-icon:before { background-position: -34px -102px; }
.tsd-kind-external-module > .tsd-kind-icon:before { background-position: 0px -102px; }
.tsd-kind-external-module.tsd-is-protected > .tsd-kind-icon:before { background-position: -17px -102px; }
.tsd-kind-external-module.tsd-is-private > .tsd-kind-icon:before { background-position: -34px -102px; }
.tsd-kind-enum > .tsd-kind-icon:before { background-position: 0px -119px; }
.tsd-kind-enum.tsd-is-protected > .tsd-kind-icon:before { background-position: -17px -119px; }
.tsd-kind-enum.tsd-is-private > .tsd-kind-icon:before { background-position: -34px -119px; }
.tsd-kind-enum-member > .tsd-kind-icon:before { background-position: 0px -136px; }
.tsd-kind-enum-member.tsd-is-protected > .tsd-kind-icon:before { background-position: -17px -136px; }
.tsd-kind-enum-member.tsd-is-private > .tsd-kind-icon:before { background-position: -34px -136px; }
.tsd-kind-signature > .tsd-kind-icon:before { background-position: 0px -153px; }
.tsd-kind-signature.tsd-is-protected > .tsd-kind-icon:before { background-position: -17px -153px; }
.tsd-kind-signature.tsd-is-private > .tsd-kind-icon:before { background-position: -34px -153px; }
.tsd-kind-type-alias > .tsd-kind-icon:before { background-position: 0px -170px; }
.tsd-kind-type-alias.tsd-is-protected > .tsd-kind-icon:before { background-position: -17px -170px; }
.tsd-kind-type-alias.tsd-is-private > .tsd-kind-icon:before { background-position: -34px -170px; }
.tsd-kind-variable > .tsd-kind-icon:before { background-position: -136px -0px; }
.tsd-kind-variable.tsd-is-protected > .tsd-kind-icon:before { background-position: -153px -0px; }
.tsd-kind-variable.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -0px; }
.tsd-kind-variable.tsd-parent-kind-class > .tsd-kind-icon:before { background-position: -51px -0px; }
.tsd-kind-variable.tsd-parent-kind-class.tsd-is-inherited > .tsd-kind-icon:before { background-position: -68px -0px; }
.tsd-kind-variable.tsd-parent-kind-class.tsd-is-protected > .tsd-kind-icon:before { background-position: -85px -0px; }
.tsd-kind-variable.tsd-parent-kind-class.tsd-is-protected.tsd-is-inherited > .tsd-kind-icon:before { background-position: -102px -0px; }
.tsd-kind-variable.tsd-parent-kind-class.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -0px; }
.tsd-kind-variable.tsd-parent-kind-enum > .tsd-kind-icon:before { background-position: -170px -0px; }
.tsd-kind-variable.tsd-parent-kind-enum.tsd-is-protected > .tsd-kind-icon:before { background-position: -187px -0px; }
.tsd-kind-variable.tsd-parent-kind-enum.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -0px; }
.tsd-kind-variable.tsd-parent-kind-interface > .tsd-kind-icon:before { background-position: -204px -0px; }
.tsd-kind-variable.tsd-parent-kind-interface.tsd-is-inherited > .tsd-kind-icon:before { background-position: -221px -0px; }
.tsd-kind-property > .tsd-kind-icon:before { background-position: -136px -0px; }
.tsd-kind-property.tsd-is-protected > .tsd-kind-icon:before { background-position: -153px -0px; }
.tsd-kind-property.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -0px; }
.tsd-kind-property.tsd-parent-kind-class > .tsd-kind-icon:before { background-position: -51px -0px; }
.tsd-kind-property.tsd-parent-kind-class.tsd-is-inherited > .tsd-kind-icon:before { background-position: -68px -0px; }
.tsd-kind-property.tsd-parent-kind-class.tsd-is-protected > .tsd-kind-icon:before { background-position: -85px -0px; }
.tsd-kind-property.tsd-parent-kind-class.tsd-is-protected.tsd-is-inherited > .tsd-kind-icon:before { background-position: -102px -0px; }
.tsd-kind-property.tsd-parent-kind-class.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -0px; }
.tsd-kind-property.tsd-parent-kind-enum > .tsd-kind-icon:before { background-position: -170px -0px; }
.tsd-kind-property.tsd-parent-kind-enum.tsd-is-protected > .tsd-kind-icon:before { background-position: -187px -0px; }
.tsd-kind-property.tsd-parent-kind-enum.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -0px; }
.tsd-kind-property.tsd-parent-kind-interface > .tsd-kind-icon:before { background-position: -204px -0px; }
.tsd-kind-property.tsd-parent-kind-interface.tsd-is-inherited > .tsd-kind-icon:before { background-position: -221px -0px; }
.tsd-kind-get-signature > .tsd-kind-icon:before { background-position: -136px -17px; }
.tsd-kind-get-signature.tsd-is-protected > .tsd-kind-icon:before { background-position: -153px -17px; }
.tsd-kind-get-signature.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -17px; }
.tsd-kind-get-signature.tsd-parent-kind-class > .tsd-kind-icon:before { background-position: -51px -17px; }
.tsd-kind-get-signature.tsd-parent-kind-class.tsd-is-inherited > .tsd-kind-icon:before { background-position: -68px -17px; }
.tsd-kind-get-signature.tsd-parent-kind-class.tsd-is-protected > .tsd-kind-icon:before { background-position: -85px -17px; }
.tsd-kind-get-signature.tsd-parent-kind-class.tsd-is-protected.tsd-is-inherited > .tsd-kind-icon:before { background-position: -102px -17px; }
.tsd-kind-get-signature.tsd-parent-kind-class.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -17px; }
.tsd-kind-get-signature.tsd-parent-kind-enum > .tsd-kind-icon:before { background-position: -170px -17px; }
.tsd-kind-get-signature.tsd-parent-kind-enum.tsd-is-protected > .tsd-kind-icon:before { background-position: -187px -17px; }
.tsd-kind-get-signature.tsd-parent-kind-enum.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -17px; }
.tsd-kind-get-signature.tsd-parent-kind-interface > .tsd-kind-icon:before { background-position: -204px -17px; }
.tsd-kind-get-signature.tsd-parent-kind-interface.tsd-is-inherited > .tsd-kind-icon:before { background-position: -221px -17px; }
.tsd-kind-set-signature > .tsd-kind-icon:before { background-position: -136px -34px; }
.tsd-kind-set-signature.tsd-is-protected > .tsd-kind-icon:before { background-position: -153px -34px; }
.tsd-kind-set-signature.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -34px; }
.tsd-kind-set-signature.tsd-parent-kind-class > .tsd-kind-icon:before { background-position: -51px -34px; }
.tsd-kind-set-signature.tsd-parent-kind-class.tsd-is-inherited > .tsd-kind-icon:before { background-position: -68px -34px; }
.tsd-kind-set-signature.tsd-parent-kind-class.tsd-is-protected > .tsd-kind-icon:before { background-position: -85px -34px; }
.tsd-kind-set-signature.tsd-parent-kind-class.tsd-is-protected.tsd-is-inherited > .tsd-kind-icon:before { background-position: -102px -34px; }
.tsd-kind-set-signature.tsd-parent-kind-class.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -34px; }
.tsd-kind-set-signature.tsd-parent-kind-enum > .tsd-kind-icon:before { background-position: -170px -34px; }
.tsd-kind-set-signature.tsd-parent-kind-enum.tsd-is-protected > .tsd-kind-icon:before { background-position: -187px -34px; }
.tsd-kind-set-signature.tsd-parent-kind-enum.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -34px; }
.tsd-kind-set-signature.tsd-parent-kind-interface > .tsd-kind-icon:before { background-position: -204px -34px; }
.tsd-kind-set-signature.tsd-parent-kind-interface.tsd-is-inherited > .tsd-kind-icon:before { background-position: -221px -34px; }
.tsd-kind-accessor > .tsd-kind-icon:before { background-position: -136px -51px; }
.tsd-kind-accessor.tsd-is-protected > .tsd-kind-icon:before { background-position: -153px -51px; }
.tsd-kind-accessor.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -51px; }
.tsd-kind-accessor.tsd-parent-kind-class > .tsd-kind-icon:before { background-position: -51px -51px; }
.tsd-kind-accessor.tsd-parent-kind-class.tsd-is-inherited > .tsd-kind-icon:before { background-position: -68px -51px; }
.tsd-kind-accessor.tsd-parent-kind-class.tsd-is-protected > .tsd-kind-icon:before { background-position: -85px -51px; }
.tsd-kind-accessor.tsd-parent-kind-class.tsd-is-protected.tsd-is-inherited > .tsd-kind-icon:before { background-position: -102px -51px; }
.tsd-kind-accessor.tsd-parent-kind-class.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -51px; }
.tsd-kind-accessor.tsd-parent-kind-enum > .tsd-kind-icon:before { background-position: -170px -51px; }
.tsd-kind-accessor.tsd-parent-kind-enum.tsd-is-protected > .tsd-kind-icon:before { background-position: -187px -51px; }
.tsd-kind-accessor.tsd-parent-kind-enum.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -51px; }
.tsd-kind-accessor.tsd-parent-kind-interface > .tsd-kind-icon:before { background-position: -204px -51px; }
.tsd-kind-accessor.tsd-parent-kind-interface.tsd-is-inherited > .tsd-kind-icon:before { background-position: -221px -51px; }
.tsd-kind-function > .tsd-kind-icon:before { background-position: -136px -68px; }
.tsd-kind-function.tsd-is-protected > .tsd-kind-icon:before { background-position: -153px -68px; }
.tsd-kind-function.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -68px; }
.tsd-kind-function.tsd-parent-kind-class > .tsd-kind-icon:before { background-position: -51px -68px; }
.tsd-kind-function.tsd-parent-kind-class.tsd-is-inherited > .tsd-kind-icon:before { background-position: -68px -68px; }
.tsd-kind-function.tsd-parent-kind-class.tsd-is-protected > .tsd-kind-icon:before { background-position: -85px -68px; }
.tsd-kind-function.tsd-parent-kind-class.tsd-is-protected.tsd-is-inherited > .tsd-kind-icon:before { background-position: -102px -68px; }
.tsd-kind-function.tsd-parent-kind-class.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -68px; }
.tsd-kind-function.tsd-parent-kind-enum > .tsd-kind-icon:before { background-position: -170px -68px; }
.tsd-kind-function.tsd-parent-kind-enum.tsd-is-protected > .tsd-kind-icon:before { background-position: -187px -68px; }
.tsd-kind-function.tsd-parent-kind-enum.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -68px; }
.tsd-kind-function.tsd-parent-kind-interface > .tsd-kind-icon:before { background-position: -204px -68px; }
.tsd-kind-function.tsd-parent-kind-interface.tsd-is-inherited > .tsd-kind-icon:before { background-position: -221px -68px; }
.tsd-kind-method > .tsd-kind-icon:before { background-position: -136px -68px; }
.tsd-kind-method.tsd-is-protected > .tsd-kind-icon:before { background-position: -153px -68px; }
.tsd-kind-method.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -68px; }
.tsd-kind-method.tsd-parent-kind-class > .tsd-kind-icon:before { background-position: -51px -68px; }
.tsd-kind-method.tsd-parent-kind-class.tsd-is-inherited > .tsd-kind-icon:before { background-position: -68px -68px; }
.tsd-kind-method.tsd-parent-kind-class.tsd-is-protected > .tsd-kind-icon:before { background-position: -85px -68px; }
.tsd-kind-method.tsd-parent-kind-class.tsd-is-protected.tsd-is-inherited > .tsd-kind-icon:before { background-position: -102px -68px; }
.tsd-kind-method.tsd-parent-kind-class.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -68px; }
.tsd-kind-method.tsd-parent-kind-enum > .tsd-kind-icon:before { background-position: -170px -68px; }
.tsd-kind-method.tsd-parent-kind-enum.tsd-is-protected > .tsd-kind-icon:before { background-position: -187px -68px; }
.tsd-kind-method.tsd-parent-kind-enum.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -68px; }
.tsd-kind-method.tsd-parent-kind-interface > .tsd-kind-icon:before { background-position: -204px -68px; }
.tsd-kind-method.tsd-parent-kind-interface.tsd-is-inherited > .tsd-kind-icon:before { background-position: -221px -68px; }
.tsd-kind-call-signature > .tsd-kind-icon:before { background-position: -136px -68px; }
.tsd-kind-call-signature.tsd-is-protected > .tsd-kind-icon:before { background-position: -153px -68px; }
.tsd-kind-call-signature.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -68px; }
.tsd-kind-call-signature.tsd-parent-kind-class > .tsd-kind-icon:before { background-position: -51px -68px; }
.tsd-kind-call-signature.tsd-parent-kind-class.tsd-is-inherited > .tsd-kind-icon:before { background-position: -68px -68px; }
.tsd-kind-call-signature.tsd-parent-kind-class.tsd-is-protected > .tsd-kind-icon:before { background-position: -85px -68px; }
.tsd-kind-call-signature.tsd-parent-kind-class.tsd-is-protected.tsd-is-inherited > .tsd-kind-icon:before { background-position: -102px -68px; }
.tsd-kind-call-signature.tsd-parent-kind-class.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -68px; }
.tsd-kind-call-signature.tsd-parent-kind-enum > .tsd-kind-icon:before { background-position: -170px -68px; }
.tsd-kind-call-signature.tsd-parent-kind-enum.tsd-is-protected > .tsd-kind-icon:before { background-position: -187px -68px; }
.tsd-kind-call-signature.tsd-parent-kind-enum.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -68px; }
.tsd-kind-call-signature.tsd-parent-kind-interface > .tsd-kind-icon:before { background-position: -204px -68px; }
.tsd-kind-call-signature.tsd-parent-kind-interface.tsd-is-inherited > .tsd-kind-icon:before { background-position: -221px -68px; }
.tsd-kind-function.tsd-has-type-parameter > .tsd-kind-icon:before { background-position: -136px -85px; }
.tsd-kind-function.tsd-has-type-parameter.tsd-is-protected > .tsd-kind-icon:before { background-position: -153px -85px; }
.tsd-kind-function.tsd-has-type-parameter.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -85px; }
.tsd-kind-function.tsd-has-type-parameter.tsd-parent-kind-class > .tsd-kind-icon:before { background-position: -51px -85px; }
.tsd-kind-function.tsd-has-type-parameter.tsd-parent-kind-class.tsd-is-inherited > .tsd-kind-icon:before { background-position: -68px -85px; }
.tsd-kind-function.tsd-has-type-parameter.tsd-parent-kind-class.tsd-is-protected > .tsd-kind-icon:before { background-position: -85px -85px; }
.tsd-kind-function.tsd-has-type-parameter.tsd-parent-kind-class.tsd-is-protected.tsd-is-inherited > .tsd-kind-icon:before { background-position: -102px -85px; }
.tsd-kind-function.tsd-has-type-parameter.tsd-parent-kind-class.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -85px; }
.tsd-kind-function.tsd-has-type-parameter.tsd-parent-kind-enum > .tsd-kind-icon:before { background-position: -170px -85px; }
.tsd-kind-function.tsd-has-type-parameter.tsd-parent-kind-enum.tsd-is-protected > .tsd-kind-icon:before { background-position: -187px -85px; }
.tsd-kind-function.tsd-has-type-parameter.tsd-parent-kind-enum.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -85px; }
.tsd-kind-function.tsd-has-type-parameter.tsd-parent-kind-interface > .tsd-kind-icon:before { background-position: -204px -85px; }
.tsd-kind-function.tsd-has-type-parameter.tsd-parent-kind-interface.tsd-is-inherited > .tsd-kind-icon:before { background-position: -221px -85px; }
.tsd-kind-method.tsd-has-type-parameter > .tsd-kind-icon:before { background-position: -136px -85px; }
.tsd-kind-method.tsd-has-type-parameter.tsd-is-protected > .tsd-kind-icon:before { background-position: -153px -85px; }
.tsd-kind-method.tsd-has-type-parameter.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -85px; }
.tsd-kind-method.tsd-has-type-parameter.tsd-parent-kind-class > .tsd-kind-icon:before { background-position: -51px -85px; }
.tsd-kind-method.tsd-has-type-parameter.tsd-parent-kind-class.tsd-is-inherited > .tsd-kind-icon:before { background-position: -68px -85px; }
.tsd-kind-method.tsd-has-type-parameter.tsd-parent-kind-class.tsd-is-protected > .tsd-kind-icon:before { background-position: -85px -85px; }
.tsd-kind-method.tsd-has-type-parameter.tsd-parent-kind-class.tsd-is-protected.tsd-is-inherited > .tsd-kind-icon:before { background-position: -102px -85px; }
.tsd-kind-method.tsd-has-type-parameter.tsd-parent-kind-class.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -85px; }
.tsd-kind-method.tsd-has-type-parameter.tsd-parent-kind-enum > .tsd-kind-icon:before { background-position: -170px -85px; }
.tsd-kind-method.tsd-has-type-parameter.tsd-parent-kind-enum.tsd-is-protected > .tsd-kind-icon:before { background-position: -187px -85px; }
.tsd-kind-method.tsd-has-type-parameter.tsd-parent-kind-enum.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -85px; }
.tsd-kind-method.tsd-has-type-parameter.tsd-parent-kind-interface > .tsd-kind-icon:before { background-position: -204px -85px; }
.tsd-kind-method.tsd-has-type-parameter.tsd-parent-kind-interface.tsd-is-inherited > .tsd-kind-icon:before { background-position: -221px -85px; }
.tsd-kind-constructor > .tsd-kind-icon:before { background-position: -136px -102px; }
.tsd-kind-constructor.tsd-is-protected > .tsd-kind-icon:before { background-position: -153px -102px; }
.tsd-kind-constructor.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -102px; }
.tsd-kind-constructor.tsd-parent-kind-class > .tsd-kind-icon:before { background-position: -51px -102px; }
.tsd-kind-constructor.tsd-parent-kind-class.tsd-is-inherited > .tsd-kind-icon:before { background-position: -68px -102px; }
.tsd-kind-constructor.tsd-parent-kind-class.tsd-is-protected > .tsd-kind-icon:before { background-position: -85px -102px; }
.tsd-kind-constructor.tsd-parent-kind-class.tsd-is-protected.tsd-is-inherited > .tsd-kind-icon:before { background-position: -102px -102px; }
.tsd-kind-constructor.tsd-parent-kind-class.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -102px; }
.tsd-kind-constructor.tsd-parent-kind-enum > .tsd-kind-icon:before { background-position: -170px -102px; }
.tsd-kind-constructor.tsd-parent-kind-enum.tsd-is-protected > .tsd-kind-icon:before { background-position: -187px -102px; }
.tsd-kind-constructor.tsd-parent-kind-enum.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -102px; }
.tsd-kind-constructor.tsd-parent-kind-interface > .tsd-kind-icon:before { background-position: -204px -102px; }
.tsd-kind-constructor.tsd-parent-kind-interface.tsd-is-inherited > .tsd-kind-icon:before { background-position: -221px -102px; }
.tsd-kind-constructor-signature > .tsd-kind-icon:before { background-position: -136px -102px; }
.tsd-kind-constructor-signature.tsd-is-protected > .tsd-kind-icon:before { background-position: -153px -102px; }
.tsd-kind-constructor-signature.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -102px; }
.tsd-kind-constructor-signature.tsd-parent-kind-class > .tsd-kind-icon:before { background-position: -51px -102px; }
.tsd-kind-constructor-signature.tsd-parent-kind-class.tsd-is-inherited > .tsd-kind-icon:before { background-position: -68px -102px; }
.tsd-kind-constructor-signature.tsd-parent-kind-class.tsd-is-protected > .tsd-kind-icon:before { background-position: -85px -102px; }
.tsd-kind-constructor-signature.tsd-parent-kind-class.tsd-is-protected.tsd-is-inherited > .tsd-kind-icon:before { background-position: -102px -102px; }
.tsd-kind-constructor-signature.tsd-parent-kind-class.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -102px; }
.tsd-kind-constructor-signature.tsd-parent-kind-enum > .tsd-kind-icon:before { background-position: -170px -102px; }
.tsd-kind-constructor-signature.tsd-parent-kind-enum.tsd-is-protected > .tsd-kind-icon:before { background-position: -187px -102px; }
.tsd-kind-constructor-signature.tsd-parent-kind-enum.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -102px; }
.tsd-kind-constructor-signature.tsd-parent-kind-interface > .tsd-kind-icon:before { background-position: -204px -102px; }
.tsd-kind-constructor-signature.tsd-parent-kind-interface.tsd-is-inherited > .tsd-kind-icon:before { background-position: -221px -102px; }
.tsd-kind-index-signature > .tsd-kind-icon:before { background-position: -136px -119px; }
.tsd-kind-index-signature.tsd-is-protected > .tsd-kind-icon:before { background-position: -153px -119px; }
.tsd-kind-index-signature.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -119px; }
.tsd-kind-index-signature.tsd-parent-kind-class > .tsd-kind-icon:before { background-position: -51px -119px; }
.tsd-kind-index-signature.tsd-parent-kind-class.tsd-is-inherited > .tsd-kind-icon:before { background-position: -68px -119px; }
.tsd-kind-index-signature.tsd-parent-kind-class.tsd-is-protected > .tsd-kind-icon:before { background-position: -85px -119px; }
.tsd-kind-index-signature.tsd-parent-kind-class.tsd-is-protected.tsd-is-inherited > .tsd-kind-icon:before { background-position: -102px -119px; }
.tsd-kind-index-signature.tsd-parent-kind-class.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -119px; }
.tsd-kind-index-signature.tsd-parent-kind-enum > .tsd-kind-icon:before { background-position: -170px -119px; }
.tsd-kind-index-signature.tsd-parent-kind-enum.tsd-is-protected > .tsd-kind-icon:before { background-position: -187px -119px; }
.tsd-kind-index-signature.tsd-parent-kind-enum.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -119px; }
.tsd-kind-index-signature.tsd-parent-kind-interface > .tsd-kind-icon:before { background-position: -204px -119px; }
.tsd-kind-index-signature.tsd-parent-kind-interface.tsd-is-inherited > .tsd-kind-icon:before { background-position: -221px -119px; }
.tsd-kind-event > .tsd-kind-icon:before { background-position: -136px -136px; }
.tsd-kind-event.tsd-is-protected > .tsd-kind-icon:before { background-position: -153px -136px; }
.tsd-kind-event.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -136px; }
.tsd-kind-event.tsd-parent-kind-class > .tsd-kind-icon:before { background-position: -51px -136px; }
.tsd-kind-event.tsd-parent-kind-class.tsd-is-inherited > .tsd-kind-icon:before { background-position: -68px -136px; }
.tsd-kind-event.tsd-parent-kind-class.tsd-is-protected > .tsd-kind-icon:before { background-position: -85px -136px; }
.tsd-kind-event.tsd-parent-kind-class.tsd-is-protected.tsd-is-inherited > .tsd-kind-icon:before { background-position: -102px -136px; }
.tsd-kind-event.tsd-parent-kind-class.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -136px; }
.tsd-kind-event.tsd-parent-kind-enum > .tsd-kind-icon:before { background-position: -170px -136px; }
.tsd-kind-event.tsd-parent-kind-enum.tsd-is-protected > .tsd-kind-icon:before { background-position: -187px -136px; }
.tsd-kind-event.tsd-parent-kind-enum.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -136px; }
.tsd-kind-event.tsd-parent-kind-interface > .tsd-kind-icon:before { background-position: -204px -136px; }
.tsd-kind-event.tsd-parent-kind-interface.tsd-is-inherited > .tsd-kind-icon:before { background-position: -221px -136px; }
.tsd-is-static > .tsd-kind-icon:before { background-position: -136px -153px; }
.tsd-is-static.tsd-is-protected > .tsd-kind-icon:before { background-position: -153px -153px; }
.tsd-is-static.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -153px; }
.tsd-is-static.tsd-parent-kind-class > .tsd-kind-icon:before { background-position: -51px -153px; }
.tsd-is-static.tsd-parent-kind-class.tsd-is-inherited > .tsd-kind-icon:before { background-position: -68px -153px; }
.tsd-is-static.tsd-parent-kind-class.tsd-is-protected > .tsd-kind-icon:before { background-position: -85px -153px; }
.tsd-is-static.tsd-parent-kind-class.tsd-is-protected.tsd-is-inherited > .tsd-kind-icon:before { background-position: -102px -153px; }
.tsd-is-static.tsd-parent-kind-class.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -153px; }
.tsd-is-static.tsd-parent-kind-enum > .tsd-kind-icon:before { background-position: -170px -153px; }
.tsd-is-static.tsd-parent-kind-enum.tsd-is-protected > .tsd-kind-icon:before { background-position: -187px -153px; }
.tsd-is-static.tsd-parent-kind-enum.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -153px; }
.tsd-is-static.tsd-parent-kind-interface > .tsd-kind-icon:before { background-position: -204px -153px; }
.tsd-is-static.tsd-parent-kind-interface.tsd-is-inherited > .tsd-kind-icon:before { background-position: -221px -153px; }
.tsd-is-static.tsd-kind-function > .tsd-kind-icon:before { background-position: -136px -170px; }
.tsd-is-static.tsd-kind-function.tsd-is-protected > .tsd-kind-icon:before { background-position: -153px -170px; }
.tsd-is-static.tsd-kind-function.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -170px; }
.tsd-is-static.tsd-kind-function.tsd-parent-kind-class > .tsd-kind-icon:before { background-position: -51px -170px; }
.tsd-is-static.tsd-kind-function.tsd-parent-kind-class.tsd-is-inherited > .tsd-kind-icon:before { background-position: -68px -170px; }
.tsd-is-static.tsd-kind-function.tsd-parent-kind-class.tsd-is-protected > .tsd-kind-icon:before { background-position: -85px -170px; }
.tsd-is-static.tsd-kind-function.tsd-parent-kind-class.tsd-is-protected.tsd-is-inherited > .tsd-kind-icon:before { background-position: -102px -170px; }
.tsd-is-static.tsd-kind-function.tsd-parent-kind-class.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -170px; }
.tsd-is-static.tsd-kind-function.tsd-parent-kind-enum > .tsd-kind-icon:before { background-position: -170px -170px; }
.tsd-is-static.tsd-kind-function.tsd-parent-kind-enum.tsd-is-protected > .tsd-kind-icon:before { background-position: -187px -170px; }
.tsd-is-static.tsd-kind-function.tsd-parent-kind-enum.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -170px; }
.tsd-is-static.tsd-kind-function.tsd-parent-kind-interface > .tsd-kind-icon:before { background-position: -204px -170px; }
.tsd-is-static.tsd-kind-function.tsd-parent-kind-interface.tsd-is-inherited > .tsd-kind-icon:before { background-position: -221px -170px; }
.tsd-is-static.tsd-kind-method > .tsd-kind-icon:before { background-position: -136px -170px; }
.tsd-is-static.tsd-kind-method.tsd-is-protected > .tsd-kind-icon:before { background-position: -153px -170px; }
.tsd-is-static.tsd-kind-method.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -170px; }
.tsd-is-static.tsd-kind-method.tsd-parent-kind-class > .tsd-kind-icon:before { background-position: -51px -170px; }
.tsd-is-static.tsd-kind-method.tsd-parent-kind-class.tsd-is-inherited > .tsd-kind-icon:before { background-position: -68px -170px; }
.tsd-is-static.tsd-kind-method.tsd-parent-kind-class.tsd-is-protected > .tsd-kind-icon:before { background-position: -85px -170px; }
.tsd-is-static.tsd-kind-method.tsd-parent-kind-class.tsd-is-protected.tsd-is-inherited > .tsd-kind-icon:before { background-position: -102px -170px; }
.tsd-is-static.tsd-kind-method.tsd-parent-kind-class.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -170px; }
.tsd-is-static.tsd-kind-method.tsd-parent-kind-enum > .tsd-kind-icon:before { background-position: -170px -170px; }
.tsd-is-static.tsd-kind-method.tsd-parent-kind-enum.tsd-is-protected > .tsd-kind-icon:before { background-position: -187px -170px; }
.tsd-is-static.tsd-kind-method.tsd-parent-kind-enum.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -170px; }
.tsd-is-static.tsd-kind-method.tsd-parent-kind-interface > .tsd-kind-icon:before { background-position: -204px -170px; }
.tsd-is-static.tsd-kind-method.tsd-parent-kind-interface.tsd-is-inherited > .tsd-kind-icon:before { background-position: -221px -170px; }
.tsd-is-static.tsd-kind-call-signature > .tsd-kind-icon:before { background-position: -136px -170px; }
.tsd-is-static.tsd-kind-call-signature.tsd-is-protected > .tsd-kind-icon:before { background-position: -153px -170px; }
.tsd-is-static.tsd-kind-call-signature.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -170px; }
.tsd-is-static.tsd-kind-call-signature.tsd-parent-kind-class > .tsd-kind-icon:before { background-position: -51px -170px; }
.tsd-is-static.tsd-kind-call-signature.tsd-parent-kind-class.tsd-is-inherited > .tsd-kind-icon:before { background-position: -68px -170px; }
.tsd-is-static.tsd-kind-call-signature.tsd-parent-kind-class.tsd-is-protected > .tsd-kind-icon:before { background-position: -85px -170px; }
.tsd-is-static.tsd-kind-call-signature.tsd-parent-kind-class.tsd-is-protected.tsd-is-inherited > .tsd-kind-icon:before { background-position: -102px -170px; }
.tsd-is-static.tsd-kind-call-signature.tsd-parent-kind-class.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -170px; }
.tsd-is-static.tsd-kind-call-signature.tsd-parent-kind-enum > .tsd-kind-icon:before { background-position: -170px -170px; }
.tsd-is-static.tsd-kind-call-signature.tsd-parent-kind-enum.tsd-is-protected > .tsd-kind-icon:before { background-position: -187px -170px; }
.tsd-is-static.tsd-kind-call-signature.tsd-parent-kind-enum.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -170px; }
.tsd-is-static.tsd-kind-call-signature.tsd-parent-kind-interface > .tsd-kind-icon:before { background-position: -204px -170px; }
.tsd-is-static.tsd-kind-call-signature.tsd-parent-kind-interface.tsd-is-inherited > .tsd-kind-icon:before { background-position: -221px -170px; }
.tsd-is-static.tsd-kind-event > .tsd-kind-icon:before { background-position: -136px -187px; }
.tsd-is-static.tsd-kind-event.tsd-is-protected > .tsd-kind-icon:before { background-position: -153px -187px; }
.tsd-is-static.tsd-kind-event.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -187px; }
.tsd-is-static.tsd-kind-event.tsd-parent-kind-class > .tsd-kind-icon:before { background-position: -51px -187px; }
.tsd-is-static.tsd-kind-event.tsd-parent-kind-class.tsd-is-inherited > .tsd-kind-icon:before { background-position: -68px -187px; }
.tsd-is-static.tsd-kind-event.tsd-parent-kind-class.tsd-is-protected > .tsd-kind-icon:before { background-position: -85px -187px; }
.tsd-is-static.tsd-kind-event.tsd-parent-kind-class.tsd-is-protected.tsd-is-inherited > .tsd-kind-icon:before { background-position: -102px -187px; }
.tsd-is-static.tsd-kind-event.tsd-parent-kind-class.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -187px; }
.tsd-is-static.tsd-kind-event.tsd-parent-kind-enum > .tsd-kind-icon:before { background-position: -170px -187px; }
.tsd-is-static.tsd-kind-event.tsd-parent-kind-enum.tsd-is-protected > .tsd-kind-icon:before { background-position: -187px -187px; }
.tsd-is-static.tsd-kind-event.tsd-parent-kind-enum.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -187px; }
.tsd-is-static.tsd-kind-event.tsd-parent-kind-interface > .tsd-kind-icon:before { background-position: -204px -187px; }
.tsd-is-static.tsd-kind-event.tsd-parent-kind-interface.tsd-is-inherited > .tsd-kind-icon:before { background-position: -221px -187px; }
.no-transition { -webkit-transition: none !important; transition: none !important; }
@-webkit-keyframes fade-in { from { opacity: 0; }
to { opacity: 1; } }
@keyframes fade-in { from { opacity: 0; }
to { opacity: 1; } }
@-webkit-keyframes fade-out { from { opacity: 1; visibility: visible; }
to { opacity: 0; } }
@keyframes fade-out { from { opacity: 1; visibility: visible; }
to { opacity: 0; } }
@-webkit-keyframes fade-in-delayed { 0% { opacity: 0; }
33% { opacity: 0; }
100% { opacity: 1; } }
@keyframes fade-in-delayed { 0% { opacity: 0; }
33% { opacity: 0; }
100% { opacity: 1; } }
@-webkit-keyframes fade-out-delayed { 0% { opacity: 1; visibility: visible; }
66% { opacity: 0; }
100% { opacity: 0; } }
@keyframes fade-out-delayed { 0% { opacity: 1; visibility: visible; }
66% { opacity: 0; }
100% { opacity: 0; } }
@-webkit-keyframes shift-to-left { from { -webkit-transform: translate(0, 0); transform: translate(0, 0); }
to { -webkit-transform: translate(-25%, 0); transform: translate(-25%, 0); } }
@keyframes shift-to-left { from { -webkit-transform: translate(0, 0); transform: translate(0, 0); }
to { -webkit-transform: translate(-25%, 0); transform: translate(-25%, 0); } }
@-webkit-keyframes unshift-to-left { from { -webkit-transform: translate(-25%, 0); transform: translate(-25%, 0); }
to { -webkit-transform: translate(0, 0); transform: translate(0, 0); } }
@keyframes unshift-to-left { from { -webkit-transform: translate(-25%, 0); transform: translate(-25%, 0); }
to { -webkit-transform: translate(0, 0); transform: translate(0, 0); } }
@-webkit-keyframes pop-in-from-right { from { -webkit-transform: translate(100%, 0); transform: translate(100%, 0); }
to { -webkit-transform: translate(0, 0); transform: translate(0, 0); } }
@keyframes pop-in-from-right { from { -webkit-transform: translate(100%, 0); transform: translate(100%, 0); }
to { -webkit-transform: translate(0, 0); transform: translate(0, 0); } }
@-webkit-keyframes pop-out-to-right { from { -webkit-transform: translate(0, 0); transform: translate(0, 0); visibility: visible; }
to { -webkit-transform: translate(100%, 0); transform: translate(100%, 0); } }
@keyframes pop-out-to-right { from { -webkit-transform: translate(0, 0); transform: translate(0, 0); visibility: visible; }
to { -webkit-transform: translate(100%, 0); transform: translate(100%, 0); } }
body { background: #fdfdfd; font-family: "Segoe UI", sans-serif; font-size: 16px; color: #222; }
a { color: #4da6ff; text-decoration: none; }
a:hover { text-decoration: underline; }
code, pre { font-family: Menlo, Monaco, Consolas, "Courier New", monospace; padding: 0.2em; margin: 0; font-size: 14px; background-color: rgba(0, 0, 0, 0.04); }
pre { padding: 10px; }
pre code { padding: 0; font-size: 100%; background-color: transparent; }
.tsd-typography { line-height: 1.333em; }
.tsd-typography ul { list-style: square; padding: 0 0 0 20px; margin: 0; }
.tsd-typography h4, .tsd-typography .tsd-index-panel h3, .tsd-index-panel .tsd-typography h3, .tsd-typography h5, .tsd-typography h6 { font-size: 1em; margin: 0; }
.tsd-typography h5, .tsd-typography h6 { font-weight: normal; }
.tsd-typography p, .tsd-typography ul, .tsd-typography ol { margin: 1em 0; }
@media (min-width: 901px) and (max-width: 1024px) { html.default .col-content { width: 72%; }
html.default .col-menu { width: 28%; }
html.default .tsd-navigation { padding-left: 10px; } }
@media (max-width: 900px) { html.default .col-content { float: none; width: 100%; }
html.default .col-menu { position: fixed !important; overflow: auto; -webkit-overflow-scrolling: touch; overflow-scrolling: touch; z-index: 1024; top: 0 !important; bottom: 0 !important; left: auto !important; right: 0 !important; width: 100%; padding: 20px 20px 0 0; max-width: 450px; visibility: hidden; background-color: #fff; -webkit-transform: translate(100%, 0); transform: translate(100%, 0); }
html.default .col-menu > *:last-child { padding-bottom: 20px; }
html.default .overlay { content: ""; display: block; position: fixed; z-index: 1023; top: 0; left: 0; right: 0; bottom: 0; background-color: rgba(0, 0, 0, 0.75); visibility: hidden; }
html.default.to-has-menu .overlay { -webkit-animation: fade-in 0.4s; animation: fade-in 0.4s; }
html.default.to-has-menu header, html.default.to-has-menu footer, html.default.to-has-menu .col-content { -webkit-animation: shift-to-left 0.4s; animation: shift-to-left 0.4s; }
html.default.to-has-menu .col-menu { -webkit-animation: pop-in-from-right 0.4s; animation: pop-in-from-right 0.4s; }
html.default.from-has-menu .overlay { -webkit-animation: fade-out 0.4s; animation: fade-out 0.4s; }
html.default.from-has-menu header, html.default.from-has-menu footer, html.default.from-has-menu .col-content { -webkit-animation: unshift-to-left 0.4s; animation: unshift-to-left 0.4s; }
html.default.from-has-menu .col-menu { -webkit-animation: pop-out-to-right 0.4s; animation: pop-out-to-right 0.4s; }
html.default.has-menu body { overflow: hidden; }
html.default.has-menu .overlay { visibility: visible; }
html.default.has-menu header, html.default.has-menu footer, html.default.has-menu .col-content { -webkit-transform: translate(-25%, 0); transform: translate(-25%, 0); }
html.default.has-menu .col-menu { visibility: visible; -webkit-transform: translate(0, 0); transform: translate(0, 0); } }
.tsd-page-title { padding: 70px 0 20px 0; margin: 0 0 40px 0; background: #fff; box-shadow: 0 0 5px rgba(0, 0, 0, 0.35); }
.tsd-page-title h1 { margin: 0; }
.tsd-breadcrumb { margin: 0; padding: 0; color: #808080; }
.tsd-breadcrumb a { color: #808080; text-decoration: none; }
.tsd-breadcrumb a:hover { text-decoration: underline; }
.tsd-breadcrumb li { display: inline; }
.tsd-breadcrumb li:after { content: " / "; }
html.minimal .container { margin: 0; }
html.minimal .container-main { padding-top: 50px; padding-bottom: 0; }
html.minimal .content-wrap { padding-left: 300px; }
html.minimal .tsd-navigation { position: fixed !important; overflow: auto; -webkit-overflow-scrolling: touch; overflow-scrolling: touch; box-sizing: border-box; z-index: 1; left: 0; top: 40px; bottom: 0; width: 300px; padding: 20px; margin: 0; }
html.minimal .tsd-member .tsd-member { margin-left: 0; }
html.minimal .tsd-page-toolbar { position: fixed; z-index: 2; }
html.minimal #tsd-filter .tsd-filter-group { right: 0; -webkit-transform: none; transform: none; }
html.minimal footer { background-color: transparent; }
html.minimal footer .container { padding: 0; }
html.minimal .tsd-generator { padding: 0; }
@media (max-width: 900px) { html.minimal .tsd-navigation { display: none; }
html.minimal .content-wrap { padding-left: 0; } }
dl.tsd-comment-tags { overflow: hidden; }
dl.tsd-comment-tags dt { clear: both; float: left; padding: 1px 5px; margin: 0 10px 0 0; border-radius: 4px; border: 1px solid #808080; color: #808080; font-size: 0.8em; font-weight: normal; }
dl.tsd-comment-tags dd { margin: 0 0 10px 0; }
dl.tsd-comment-tags p { margin: 0; }
.tsd-panel.tsd-comment .lead { font-size: 1.1em; line-height: 1.333em; margin-bottom: 2em; }
.tsd-panel.tsd-comment .lead:last-child { margin-bottom: 0; }
.toggle-protected .tsd-is-private { display: none; }
.toggle-public .tsd-is-private, .toggle-public .tsd-is-protected, .toggle-public .tsd-is-private-protected { display: none; }
.toggle-inherited .tsd-is-inherited { display: none; }
.toggle-only-exported .tsd-is-not-exported { display: none; }
.toggle-externals .tsd-is-external { display: none; }
#tsd-filter { position: relative; display: inline-block; height: 40px; vertical-align: bottom; }
.no-filter #tsd-filter { display: none; }
#tsd-filter .tsd-filter-group { display: inline-block; height: 40px; vertical-align: bottom; white-space: nowrap; }
#tsd-filter input { display: none; }
@media (max-width: 900px) { #tsd-filter .tsd-filter-group { display: block; position: absolute; top: 40px; right: 20px; height: auto; background-color: #fff; visibility: hidden; -webkit-transform: translate(50%, 0); transform: translate(50%, 0); box-shadow: 0 0 4px rgba(0, 0, 0, 0.25); }
.has-options #tsd-filter .tsd-filter-group { visibility: visible; }
.to-has-options #tsd-filter .tsd-filter-group { -webkit-animation: fade-in 0.2s; animation: fade-in 0.2s; }
.from-has-options #tsd-filter .tsd-filter-group { -webkit-animation: fade-out 0.2s; animation: fade-out 0.2s; }
#tsd-filter label, #tsd-filter .tsd-select { display: block; padding-right: 20px; } }
footer { border-top: 1px solid #eee; background-color: #fff; }
footer.with-border-bottom { border-bottom: 1px solid #eee; }
footer .tsd-legend-group { font-size: 0; }
footer .tsd-legend { display: inline-block; width: 25%; padding: 0; font-size: 16px; list-style: none; line-height: 1.333em; vertical-align: top; }
@media (max-width: 900px) { footer .tsd-legend { width: 50%; } }
.tsd-hierarchy { list-style: square; padding: 0 0 0 20px; margin: 0; }
.tsd-hierarchy .target { font-weight: bold; }
.tsd-index-panel .tsd-index-content { margin-bottom: -30px !important; }
.tsd-index-panel .tsd-index-section { margin-bottom: 30px !important; }
.tsd-index-panel h3 { margin: 0 -20px 10px -20px; padding: 0 20px 10px 20px; border-bottom: 1px solid #eee; }
.tsd-index-panel ul.tsd-index-list { -webkit-column-count: 3; -moz-column-count: 3; -ms-column-count: 3; -o-column-count: 3; column-count: 3; -webkit-column-gap: 20px; -moz-column-gap: 20px; -ms-column-gap: 20px; -o-column-gap: 20px; column-gap: 20px; padding: 0; list-style: none; line-height: 1.333em; }
@media (max-width: 900px) { .tsd-index-panel ul.tsd-index-list { -webkit-column-count: 1; -moz-column-count: 1; -ms-column-count: 1; -o-column-count: 1; column-count: 1; } }
@media (min-width: 901px) and (max-width: 1024px) { .tsd-index-panel ul.tsd-index-list { -webkit-column-count: 2; -moz-column-count: 2; -ms-column-count: 2; -o-column-count: 2; column-count: 2; } }
.tsd-index-panel ul.tsd-index-list li { -webkit-column-break-inside: avoid; -moz-column-break-inside: avoid; -ms-column-break-inside: avoid; -o-column-break-inside: avoid; column-break-inside: avoid; -webkit-page-break-inside: avoid; -moz-page-break-inside: avoid; -ms-page-break-inside: avoid; -o-page-break-inside: avoid; page-break-inside: avoid; }
.tsd-index-panel a, .tsd-index-panel .tsd-parent-kind-module a { color: #9600ff; }
.tsd-index-panel .tsd-parent-kind-interface a { color: #7da01f; }
.tsd-index-panel .tsd-parent-kind-enum a { color: #cc9900; }
.tsd-index-panel .tsd-parent-kind-class a { color: #4da6ff; }
.tsd-index-panel .tsd-kind-module a { color: #9600ff; }
.tsd-index-panel .tsd-kind-interface a { color: #7da01f; }
.tsd-index-panel .tsd-kind-enum a { color: #cc9900; }
.tsd-index-panel .tsd-kind-class a { color: #4da6ff; }
.tsd-index-panel .tsd-is-private a { color: #808080; }
.tsd-flag { display: inline-block; padding: 1px 5px; border-radius: 4px; color: #fff; background-color: #808080; text-indent: 0; font-size: 14px; font-weight: normal; }
.tsd-anchor { position: absolute; top: -100px; }
.tsd-member { position: relative; }
.tsd-member .tsd-anchor + h3 { margin-top: 0; margin-bottom: 0; border-bottom: none; }
.tsd-navigation { padding: 0 0 0 40px; }
.tsd-navigation a { display: block; padding-top: 2px; padding-bottom: 2px; border-left: 2px solid transparent; color: #222; text-decoration: none; -webkit-transition: border-left-color 0.1s; transition: border-left-color 0.1s; }
.tsd-navigation a:hover { text-decoration: underline; }
.tsd-navigation ul { margin: 0; padding: 0; list-style: none; }
.tsd-navigation li { padding: 0; }
.tsd-navigation.primary { padding-bottom: 40px; }
.tsd-navigation.primary a { display: block; padding-top: 6px; padding-bottom: 6px; }
.tsd-navigation.primary ul li a { padding-left: 5px; }
.tsd-navigation.primary ul li li a { padding-left: 25px; }
.tsd-navigation.primary ul li li li a { padding-left: 45px; }
.tsd-navigation.primary ul li li li li a { padding-left: 65px; }
.tsd-navigation.primary ul li li li li li a { padding-left: 85px; }
.tsd-navigation.primary ul li li li li li li a { padding-left: 105px; }
.tsd-navigation.primary > ul { border-bottom: 1px solid #eee; }
.tsd-navigation.primary li { border-top: 1px solid #eee; }
.tsd-navigation.primary li.current > a { font-weight: bold; }
.tsd-navigation.primary li.label span { display: block; padding: 20px 0 6px 5px; color: #808080; }
.tsd-navigation.primary li.globals + li > span, .tsd-navigation.primary li.globals + li > a { padding-top: 20px; }
.tsd-navigation.secondary ul { -webkit-transition: opacity 0.2s; transition: opacity 0.2s; }
.tsd-navigation.secondary ul li a { padding-left: 25px; }
.tsd-navigation.secondary ul li li a { padding-left: 45px; }
.tsd-navigation.secondary ul li li li a { padding-left: 65px; }
.tsd-navigation.secondary ul li li li li a { padding-left: 85px; }
.tsd-navigation.secondary ul li li li li li a { padding-left: 105px; }
.tsd-navigation.secondary ul li li li li li li a { padding-left: 125px; }
.tsd-navigation.secondary ul.current a { border-left-color: #eee; }
.tsd-navigation.secondary li.focus > a, .tsd-navigation.secondary ul.current li.focus > a { border-left-color: #000; }
.tsd-navigation.secondary li.current { margin-top: 20px; margin-bottom: 20px; border-left-color: #eee; }
.tsd-navigation.secondary li.current > a { font-weight: bold; }
@media (min-width: 901px) { .menu-sticky-wrap { position: static; }
.no-csspositionsticky .menu-sticky-wrap.sticky { position: fixed; }
.no-csspositionsticky .menu-sticky-wrap.sticky-current { position: fixed; }
.no-csspositionsticky .menu-sticky-wrap.sticky-current ul.before-current, .no-csspositionsticky .menu-sticky-wrap.sticky-current ul.after-current { opacity: 0; }
.no-csspositionsticky .menu-sticky-wrap.sticky-bottom { position: absolute; top: auto !important; left: auto !important; bottom: 0; right: 0; }
.csspositionsticky .menu-sticky-wrap.sticky { position: -webkit-sticky; position: sticky; }
.csspositionsticky .menu-sticky-wrap.sticky-current { position: -webkit-sticky; position: sticky; } }
.tsd-panel { margin: 20px 0; padding: 20px; background-color: #fff; box-shadow: 0 0 4px rgba(0, 0, 0, 0.25); }
.tsd-panel:empty { display: none; }
.tsd-panel > h1, .tsd-panel > h2, .tsd-panel > h3 { margin: 1.5em -20px 10px -20px; padding: 0 20px 10px 20px; border-bottom: 1px solid #eee; }
.tsd-panel > h1.tsd-before-signature, .tsd-panel > h2.tsd-before-signature, .tsd-panel > h3.tsd-before-signature { margin-bottom: 0; border-bottom: 0; }
.tsd-panel table { display: block; width: 100%; overflow: auto; margin-top: 10px; word-break: normal; word-break: keep-all; }
.tsd-panel table th { font-weight: bold; }
.tsd-panel table th, .tsd-panel table td { padding: 6px 13px; border: 1px solid #ddd; }
.tsd-panel table tr { background-color: #fff; border-top: 1px solid #ccc; }
.tsd-panel table tr:nth-child(2n) { background-color: #f8f8f8; }
.tsd-panel-group { margin: 60px 0; }
.tsd-panel-group > h1, .tsd-panel-group > h2, .tsd-panel-group > h3 { padding-left: 20px; padding-right: 20px; }
#tsd-search { -webkit-transition: background-color 0.2s; transition: background-color 0.2s; }
#tsd-search .title { position: relative; z-index: 2; }
#tsd-search .field { position: absolute; left: 0; top: 0; right: 40px; height: 40px; }
#tsd-search .field input { box-sizing: border-box; position: relative; top: -50px; z-index: 1; width: 100%; padding: 0 10px; opacity: 0; outline: 0; border: 0; background: transparent; color: #222; }
#tsd-search .field label { position: absolute; overflow: hidden; right: -40px; }
#tsd-search .field input, #tsd-search .title { -webkit-transition: opacity 0.2s; transition: opacity 0.2s; }
#tsd-search .results { position: absolute; visibility: hidden; top: 40px; width: 100%; margin: 0; padding: 0; list-style: none; box-shadow: 0 0 4px rgba(0, 0, 0, 0.25); }
#tsd-search .results li { padding: 0 10px; background-color: #fdfdfd; }
#tsd-search .results li:nth-child(even) { background-color: #fff; }
#tsd-search .results li.state { display: none; }
#tsd-search .results li.current, #tsd-search .results li:hover { background-color: #eee; }
#tsd-search .results a { display: block; }
#tsd-search .results a:before { top: 10px; }
#tsd-search .results span.parent { color: #808080; font-weight: normal; }
#tsd-search.has-focus { background-color: #eee; }
#tsd-search.has-focus .field input { top: 0; opacity: 1; }
#tsd-search.has-focus .title { z-index: 0; opacity: 0; }
#tsd-search.has-focus .results { visibility: visible; }
#tsd-search.loading .results li.state.loading { display: block; }
#tsd-search.failure .results li.state.failure { display: block; }
.tsd-signature { margin: 0 0 1em 0; padding: 10px; border: 1px solid #eee; font-family: Menlo, Monaco, Consolas, "Courier New", monospace; font-size: 14px; }
.tsd-signature.tsd-kind-icon { padding-left: 30px; }
.tsd-signature.tsd-kind-icon:before { top: 10px; left: 10px; }
.tsd-panel > .tsd-signature { margin-left: -20px; margin-right: -20px; border-width: 1px 0; }
.tsd-panel > .tsd-signature.tsd-kind-icon { padding-left: 40px; }
.tsd-panel > .tsd-signature.tsd-kind-icon:before { left: 20px; }
.tsd-signature-symbol { color: #808080; font-weight: normal; }
.tsd-signature-type { font-style: italic; font-weight: normal; }
.tsd-signatures { padding: 0; margin: 0 0 1em 0; border: 1px solid #eee; }
.tsd-signatures .tsd-signature { margin: 0; border-width: 1px 0 0 0; -webkit-transition: background-color 0.1s; transition: background-color 0.1s; }
.tsd-signatures .tsd-signature:first-child { border-top-width: 0; }
.tsd-signatures .tsd-signature.current { background-color: #eee; }
.tsd-signatures.active > .tsd-signature { cursor: pointer; }
.tsd-panel > .tsd-signatures { margin-left: -20px; margin-right: -20px; border-width: 1px 0; }
.tsd-panel > .tsd-signatures .tsd-signature.tsd-kind-icon { padding-left: 40px; }
.tsd-panel > .tsd-signatures .tsd-signature.tsd-kind-icon:before { left: 20px; }
.tsd-panel > a.anchor + .tsd-signatures { border-top-width: 0; margin-top: -20px; }
ul.tsd-descriptions { position: relative; overflow: hidden; -webkit-transition: height 0.3s; transition: height 0.3s; padding: 0; list-style: none; }
ul.tsd-descriptions.active > .tsd-description { display: none; }
ul.tsd-descriptions.active > .tsd-description.current { display: block; }
ul.tsd-descriptions.active > .tsd-description.fade-in { -webkit-animation: fade-in-delayed 0.3s; animation: fade-in-delayed 0.3s; }
ul.tsd-descriptions.active > .tsd-description.fade-out { -webkit-animation: fade-out-delayed 0.3s; animation: fade-out-delayed 0.3s; position: absolute; display: block; top: 0; left: 0; right: 0; opacity: 0; visibility: hidden; }
ul.tsd-descriptions h4, ul.tsd-descriptions .tsd-index-panel h3, .tsd-index-panel ul.tsd-descriptions h3 { font-size: 16px; margin: 1em 0 0.5em 0; }
ul.tsd-parameters, ul.tsd-type-parameters { list-style: square; margin: 0; padding-left: 20px; }
ul.tsd-parameters > li.tsd-parameter-siganture, ul.tsd-type-parameters > li.tsd-parameter-siganture { list-style: none; margin-left: -20px; }
ul.tsd-parameters h5, ul.tsd-type-parameters h5 { font-size: 16px; margin: 1em 0 0.5em 0; }
ul.tsd-parameters .tsd-comment, ul.tsd-type-parameters .tsd-comment { margin-top: -0.5em; }
.tsd-sources { font-size: 14px; color: #808080; margin: 0 0 1em 0; }
.tsd-sources a { color: #808080; text-decoration: underline; }
.tsd-sources ul, .tsd-sources p { margin: 0 !important; }
.tsd-sources ul { list-style: none; padding: 0; }
.tsd-page-toolbar { position: absolute; z-index: 1; top: 0; left: 0; width: 100%; height: 40px; color: #333; background: #fff; border-bottom: 1px solid #eee; }
.tsd-page-toolbar a { color: #333; text-decoration: none; }
.tsd-page-toolbar a.title { font-weight: bold; }
.tsd-page-toolbar a.title:hover { text-decoration: underline; }
.tsd-page-toolbar .table-wrap { display: table; width: 100%; height: 40px; }
.tsd-page-toolbar .table-cell { display: table-cell; position: relative; white-space: nowrap; line-height: 40px; }
.tsd-page-toolbar .table-cell:first-child { width: 100%; }
.tsd-widget:before, .tsd-select .tsd-select-label:before, .tsd-select .tsd-select-list li:before { content: ""; display: inline-block; width: 40px; height: 40px; margin: 0 -8px 0 0; background-image: url(../images/widgets.png); background-repeat: no-repeat; text-indent: -1024px; vertical-align: bottom; }
@media (-webkit-min-device-pixel-ratio: 1.5), (min-device-pixel-ratio: 1.5), (min-resolution: 144dpi) { .tsd-widget:before, .tsd-select .tsd-select-label:before, .tsd-select .tsd-select-list li:before { background-image: url(../images/widgets@2x.png); background-size: 320px 40px; } }
.tsd-widget { display: inline-block; overflow: hidden; opacity: 0.6; height: 40px; -webkit-transition: opacity 0.1s, background-color 0.2s; transition: opacity 0.1s, background-color 0.2s; vertical-align: bottom; cursor: pointer; }
.tsd-widget:hover { opacity: 0.8; }
.tsd-widget.active { opacity: 1; background-color: #eee; }
.tsd-widget.no-caption { width: 40px; }
.tsd-widget.no-caption:before { margin: 0; }
.tsd-widget.search:before { background-position: 0 0; }
.tsd-widget.menu:before { background-position: -40px 0; }
.tsd-widget.options:before { background-position: -80px 0; }
.tsd-widget.options, .tsd-widget.menu { display: none; }
@media (max-width: 900px) { .tsd-widget.options, .tsd-widget.menu { display: inline-block; } }
input[type=checkbox] + .tsd-widget:before { background-position: -120px 0; }
input[type=checkbox]:checked + .tsd-widget:before { background-position: -160px 0; }
.tsd-select { position: relative; display: inline-block; height: 40px; -webkit-transition: opacity 0.1s, background-color 0.2s; transition: opacity 0.1s, background-color 0.2s; vertical-align: bottom; cursor: pointer; }
.tsd-select .tsd-select-label { opacity: 0.6; -webkit-transition: opacity 0.2s; transition: opacity 0.2s; }
.tsd-select .tsd-select-label:before { background-position: -240px 0; }
.tsd-select.active .tsd-select-label { opacity: 0.8; }
.tsd-select.active .tsd-select-list { visibility: visible; opacity: 1; -webkit-transition-delay: 0s; transition-delay: 0s; }
.tsd-select .tsd-select-list { position: absolute; visibility: hidden; top: 40px; left: 0; margin: 0; padding: 0; opacity: 0; list-style: none; box-shadow: 0 0 4px rgba(0, 0, 0, 0.25); -webkit-transition: visibility 0s 0.2s, opacity 0.2s; transition: visibility 0s 0.2s, opacity 0.2s; }
.tsd-select .tsd-select-list li { padding: 0 20px 0 0; background-color: #fdfdfd; }
.tsd-select .tsd-select-list li:before { background-position: 40px 0; }
.tsd-select .tsd-select-list li:nth-child(even) { background-color: #fff; }
.tsd-select .tsd-select-list li:hover { background-color: #eee; }
.tsd-select .tsd-select-list li.selected:before { background-position: -200px 0; }
@media (max-width: 900px) { .tsd-select .tsd-select-list { top: 0; left: auto; right: 100%; margin-right: -5px; }
.tsd-select .tsd-select-label:before { background-position: -280px 0; } }
img { max-width: 100%; }
/* MONACO_CHANGE */
.tsd-breadcrumb li:after {
content: ".";
}
.tsd-breadcrumb li:last-of-type:after {
content: "";
}

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1,27 @@
@import constants
@import vendors/normalize
@import vendors/highlight.js
@import setup/mixins
@import setup/grid
@import setup/icons
@import setup/animations
@import setup/typography
@import layouts/default
@import layouts/minimal
@import elements/comment
@import elements/filter
@import elements/footer
@import elements/hierarchy
@import elements/index
@import elements/member
@import elements/navigation
@import elements/panel
@import elements/search
@import elements/signatures
@import elements/sources
@import elements/toolbar
@import elements/images

View file

@ -0,0 +1,54 @@
@keyframes fade-in
from
opacity: 0
to
opacity: 1
@keyframes fade-out
from
opacity: 1
visibility: visible
to
opacity: 0
@keyframes fade-in-delayed
0%
opacity: 0
33%
opacity: 0
100%
opacity: 1
@keyframes fade-out-delayed
0%
opacity: 1
visibility: visible
66%
opacity: 0
100%
opacity: 0
@keyframes shift-to-left
from
transform: translate(0,0)
to
transform: translate(-25%,0)
@keyframes unshift-to-left
from
transform: translate(-25%,0)
to
transform: translate(0,0)
@keyframes pop-in-from-right
from
transform: translate(100%,0)
to
transform: translate(0,0)
@keyframes pop-out-to-right
from
transform: translate(0,0)
visibility: visible
to
transform: translate(100%,0)

View file

@ -0,0 +1,60 @@
=size-xs
@media (max-width: 640px)
&
@content
=size-sm
@media (min-width: 641px) and (max-width: 900px)
&
@content
=size-md
@media (min-width: 901px) and (max-width: 1024px)
&
@content
=size-lg
@media (min-width: 1025px)
&
@content
=size-xs-sm
@media (max-width: 900px)
&
@content
=size-md-lg
@media (min-width: 901px)
&
@content
.container
max-width: 1200px
margin: 0 auto
padding: 0 40px
+size-xs
padding: 0 20px
.container-main
padding-bottom: 200px
.row
+clearfix
display: flex
position: relative
margin: 0 -10px
.col
@extend %prevent-children-margin
box-sizing: border-box
float: left
padding: 0 10px
@for $width from 1 to 12
.col-#{$width}
@extend .col
width: $width / 12 * 100%
.offset-#{$width}
margin-left: $width / 12 * 100%

View file

@ -0,0 +1,166 @@
$type-icons:
(object-literal),
(class),
('class.tsd-has-type-parameter'),
(interface),
('interface.tsd-has-type-parameter'),
(namespace, module),
(enum),
(enum-member),
(signature),
(type-alias),
('type-alias.tsd-has-type-parameter');
$member-icons:
(variable, property),
(get-signature),
(set-signature),
(accessor),
(function, method, call-signature),
('function.tsd-has-type-parameter', 'method.tsd-has-type-parameter'),
(constructor, constructor-signature),
(index-signature),
(event),
(property),
(function, method, call-signature),
(event);
// parameter
// type-literal
// type-parameter
.tsd-kind-icon {
display: block;
position: relative;
padding-left: 20px;
text-indent: -20px;
&:before {
content: '';
display: inline-block;
vertical-align: middle;
width: 17px;
height: 17px;
margin: 0 3px 2px 0;
background-image: url(../../images/icons.png);
@include retina {
background-image: url(../../images/icons@2x.png);
background-size: 238px 204px;
}
}
}
.tsd-signature.tsd-kind-icon:before {
background-position: 0 -153px;
}
$icon-size: 17px;
$type: -0 * $icon-size;
$type-protected: -1 * $icon-size;
$type-private: -2 * $icon-size;
$member-class-public: -3 * $icon-size;
$member-class-public-inherited: -4 * $icon-size;
$member-class-protected: -5 * $icon-size;
$member-class-protected-inherited: -6 * $icon-size;
$member-private: -7 * $icon-size;
$member: -8 * $icon-size;
$member-protected: -9 * $icon-size;
$member-enum: -10 * $icon-size;
$member-enum-protected: -11 * $icon-size;
$member-interface: -12 * $icon-size;
$member-interface-inherited: -13 * $icon-size;
@for $index from 1 through length($type-icons) {
@each $kind in nth($type-icons, $index) {
$selector: '.tsd-kind-' + $kind;
$offset: -#{17 * ($index)}px;
#{$selector} {
> .tsd-kind-icon:before {
background-position: $type $offset;
}
&.tsd-is-protected > .tsd-kind-icon:before {
background-position: $type-protected $offset;
}
&.tsd-is-private > .tsd-kind-icon:before {
background-position: $type-private $offset;
}
}
}
}
@for $index from 1 through length($member-icons) {
@each $kind in nth($member-icons, $index) {
$offset: -#{17 * ($index - 1)}px;
$selector: '.tsd-kind-' + $kind;
@if $index == 10 {
$selector: '.tsd-is-static';
} @else if $index > 10 {
$selector: '.tsd-is-static.tsd-kind-' + $kind;
}
#{$selector} {
> .tsd-kind-icon:before {
background-position: $member $offset;
}
&.tsd-is-protected > .tsd-kind-icon:before {
background-position: $member-protected $offset;
}
&.tsd-is-private > .tsd-kind-icon:before {
background-position: $member-private $offset;
}
&.tsd-parent-kind-class {
> .tsd-kind-icon:before {
background-position: $member-class-public $offset;
}
&.tsd-is-inherited > .tsd-kind-icon:before {
background-position: $member-class-public-inherited $offset;
}
&.tsd-is-protected > .tsd-kind-icon:before {
background-position: $member-class-protected $offset;
}
&.tsd-is-protected.tsd-is-inherited > .tsd-kind-icon:before {
background-position: $member-class-protected-inherited $offset;
}
&.tsd-is-private > .tsd-kind-icon:before {
background-position: $member-private $offset;
}
}
&.tsd-parent-kind-enum {
> .tsd-kind-icon:before {
background-position: $member-enum $offset;
}
&.tsd-is-protected > .tsd-kind-icon:before {
background-position: $member-enum-protected $offset;
}
&.tsd-is-private > .tsd-kind-icon:before {
background-position: $member-private $offset;
}
}
&.tsd-parent-kind-interface {
> .tsd-kind-icon:before {
background-position: $member-interface $offset;
}
&.tsd-is-inherited > .tsd-kind-icon:before {
background-position: $member-interface-inherited $offset;
}
}
}
}
}

View file

@ -0,0 +1,30 @@
@mixin vendors($property, $value...)
-webkit-#{$property}: $value
-moz-#{$property}: $value
-ms-#{$property}: $value
-o-#{$property}: $value
#{$property}: $value
@mixin clearfix
&:after
visibility: hidden
display: block
content: ""
clear: both
height: 0
@mixin retina
@media (-webkit-min-device-pixel-ratio: 1.5), (min-resolution: 144dpi)
&
@content
%prevent-children-margin
> :first-child,
> :first-child > :first-child,
> :first-child > :first-child > :first-child
margin-top: 0
> :last-child,
> :last-child > :last-child,
> :last-child > :last-child > :last-child
margin-bottom: 0

View file

@ -0,0 +1,45 @@
body
background: $COLOR_BACKGROUND
font-family: $FONT_FAMILY
font-size: $FONT_SIZE
color: $COLOR_TEXT
a
color: $COLOR_LINK
text-decoration: none
&:hover
text-decoration: underline
code, pre
font-family: $FONT_FAMILY_MONO
padding: 0.2em
margin: 0
font-size: $FONT_SIZE_MONO
background-color: $COLOR_CODE_BACKGROUND
pre
padding: 10px
code
padding: 0
font-size: 100%
background-color: transparent
.tsd-typography
line-height: $LINE_HEIGHT
ul
list-style: square
padding: 0 0 0 20px
margin: 0
h4, h5, h6
font-size: 1em
margin: 0
h5, h6
font-weight: normal
p, ul, ol
margin: 1em 0

View file

@ -0,0 +1,50 @@
/*
*
*Visual Studio-like style based on original C# coloring by Jason Diamond <jason@diamond.name>
.hljs
display: inline-block
padding: 0.5em
background: white
color: black
.hljs-comment, .hljs-annotation, .hljs-template_comment, .diff .hljs-header, .hljs-chunk, .apache .hljs-cbracket
color: #008000
.hljs-keyword, .hljs-id, .hljs-built_in, .css .smalltalk .hljs-class, .hljs-winutils, .bash .hljs-variable, .tex .hljs-command, .hljs-request, .hljs-status, .nginx .hljs-title
color: #00f
.xml .hljs-tag
color: #00f
.hljs-value
color: #00f
.hljs-string, .hljs-title, .hljs-parent, .hljs-tag .hljs-value, .hljs-rules .hljs-value
color: #a31515
.ruby .hljs-symbol
color: #a31515
.hljs-string
color: #a31515
.hljs-template_tag, .django .hljs-variable, .hljs-addition, .hljs-flow, .hljs-stream, .apache .hljs-tag, .hljs-date, .tex .hljs-formula, .coffeescript .hljs-attribute
color: #a31515
.ruby .hljs-string, .hljs-decorator, .hljs-filter .hljs-argument, .hljs-localvars, .hljs-array, .hljs-attr_selector, .hljs-pseudo, .hljs-pi, .hljs-doctype, .hljs-deletion, .hljs-envvar, .hljs-shebang, .hljs-preprocessor, .hljs-pragma, .userType, .apache .hljs-sqbracket, .nginx .hljs-built_in, .tex .hljs-special, .hljs-prompt
color: #2b91af
.hljs-phpdoc, .hljs-javadoc, .hljs-xmlDocTag
color: #808080
.vhdl
.hljs-typename
font-weight: bold
.hljs-string
color: #666666
.hljs-literal
color: #a31515
.hljs-attribute
color: #00b0e8
.xml .hljs-attribute
color: #f00

View file

@ -0,0 +1,424 @@
/*! normalize.css v1.1.3 | MIT License | git.io/normalize
/* ==========================================================================
* HTML5 display definitions
* ==========================================================================
/**
* Correct `block` display not defined in IE 6/7/8/9 and Firefox 3.
article, aside, details, figcaption, figure, footer, header, hgroup, main, nav, section, summary
display: block
/**
* Correct `inline-block` display not defined in IE 6/7/8/9 and Firefox 3.
audio, canvas, video
display: inline-block
*display: inline
*zoom: 1
/**
* Prevent modern browsers from displaying `audio` without controls.
* Remove excess height in iOS 5 devices.
audio:not([controls])
display: none
height: 0
/**
* Address styling not present in IE 7/8/9, Firefox 3, and Safari 4.
* Known issue: no IE 6 support.
[hidden]
display: none
/* ==========================================================================
* Base
* ==========================================================================
/**
* 1. Correct text resizing oddly in IE 6/7 when body `font-size` is set using
* `em` units.
* 2. Prevent iOS text size adjust after orientation change, without disabling
* user zoom.
html
font-size: 100%
/* 1
-ms-text-size-adjust: 100%
/* 2
-webkit-text-size-adjust: 100%
/* 2
font-family: sans-serif
/**
* Address `font-family` inconsistency between `textarea` and other form
* elements.
button, input, select, textarea
font-family: sans-serif
/**
* Address margins handled incorrectly in IE 6/7.
body
margin: 0
/* ==========================================================================
* Links
* ==========================================================================
/**
* Address `outline` inconsistency between Chrome and other browsers.
a
&:focus
outline: thin dotted
&:active, &:hover
outline: 0
/**
* Improve readability when focused and also mouse hovered in all browsers.
/* ==========================================================================
* Typography
* ==========================================================================
/**
* Address font sizes and margins set differently in IE 6/7.
* Address font sizes within `section` and `article` in Firefox 4+, Safari 5,
* and Chrome.
h1
font-size: 2em
margin: 0.67em 0
h2
font-size: 1.5em
margin: 0.83em 0
h3
font-size: 1.17em
margin: 1em 0
h4
font-size: 1em
margin: 1.33em 0
h5
font-size: 0.83em
margin: 1.67em 0
h6
font-size: 0.67em
margin: 2.33em 0
/**
* Address styling not present in IE 7/8/9, Safari 5, and Chrome.
abbr[title]
border-bottom: 1px dotted
/**
* Address style set to `bolder` in Firefox 3+, Safari 4/5, and Chrome.
b, strong
font-weight: bold
blockquote
margin: 1em 40px
/**
* Address styling not present in Safari 5 and Chrome.
dfn
font-style: italic
/**
* Address differences between Firefox and other browsers.
* Known issue: no IE 6/7 normalization.
hr
-moz-box-sizing: content-box
box-sizing: content-box
height: 0
/**
* Address styling not present in IE 6/7/8/9.
mark
background: #ff0
color: #000
/**
* Address margins set differently in IE 6/7.
p, pre
margin: 1em 0
/**
* Correct font family set oddly in IE 6, Safari 4/5, and Chrome.
code, kbd, pre, samp
font-family: monospace, serif
_font-family: 'courier new', monospace
font-size: 1em
/**
* Improve readability of pre-formatted text in all browsers.
pre
white-space: pre
white-space: pre-wrap
word-wrap: break-word
/**
* Address CSS quotes not supported in IE 6/7.
q
quotes: none
&:before, &:after
content: ''
content: none
/**
* Address `quotes` property not supported in Safari 4.
/**
* Address inconsistent and variable font size in all browsers.
small
font-size: 80%
/**
* Prevent `sub` and `sup` affecting `line-height` in all browsers.
sub
font-size: 75%
line-height: 0
position: relative
vertical-align: baseline
sup
font-size: 75%
line-height: 0
position: relative
vertical-align: baseline
top: -0.5em
sub
bottom: -0.25em
/* ==========================================================================
* Lists
* ==========================================================================
/**
* Address margins set differently in IE 6/7.
dl, menu, ol, ul
margin: 1em 0
dd
margin: 0 0 0 40px
/**
* Address paddings set differently in IE 6/7.
menu, ol, ul
padding: 0 0 0 40px
/**
* Correct list images handled incorrectly in IE 7.
nav
ul, ol
list-style: none
list-style-image: none
/* ==========================================================================
* Embedded content
* ==========================================================================
/**
* 1. Remove border when inside `a` element in IE 6/7/8/9 and Firefox 3.
* 2. Improve image quality when scaled in IE 7.
img
border: 0
/* 1
-ms-interpolation-mode: bicubic
/* 2
/**
* Correct overflow displayed oddly in IE 9.
svg:not(:root)
overflow: hidden
/* ==========================================================================
* Figures
* ==========================================================================
/**
* Address margin not present in IE 6/7/8/9, Safari 5, and Opera 11.
figure, form
margin: 0
/* ==========================================================================
* Forms
* ==========================================================================
/**
* Correct margin displayed oddly in IE 6/7.
/**
* Define consistent border, margin, and padding.
fieldset
border: 1px solid #c0c0c0
margin: 0 2px
padding: 0.35em 0.625em 0.75em
/**
* 1. Correct color not being inherited in IE 6/7/8/9.
* 2. Correct text not wrapping in Firefox 3.
* 3. Correct alignment displayed oddly in IE 6/7.
legend
border: 0
/* 1
padding: 0
white-space: normal
/* 2
*margin-left: -7px
/* 3
/**
* 1. Correct font size not being inherited in all browsers.
* 2. Address margins set differently in IE 6/7, Firefox 3+, Safari 5,
* and Chrome.
* 3. Improve appearance and consistency in all browsers.
button, input, select, textarea
font-size: 100%
/* 1
margin: 0
/* 2
vertical-align: baseline
/* 3
*vertical-align: middle
/* 3
/**
* Address Firefox 3+ setting `line-height` on `input` using `!important` in
* the UA stylesheet.
button, input
line-height: normal
/**
* Address inconsistent `text-transform` inheritance for `button` and `select`.
* All other form control elements do not inherit `text-transform` values.
* Correct `button` style inheritance in Chrome, Safari 5+, and IE 6+.
* Correct `select` style inheritance in Firefox 4+ and Opera.
button, select
text-transform: none
/**
* 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`
* and `video` controls.
* 2. Correct inability to style clickable `input` types in iOS.
* 3. Improve usability and consistency of cursor style between image-type
* `input` and others.
* 4. Remove inner spacing in IE 7 without affecting normal text inputs.
* Known issue: inner spacing remains in IE 6.
button, html input[type="button"]
-webkit-appearance: button
/* 2
cursor: pointer
/* 3
*overflow: visible
/* 4
input
&[type="reset"], &[type="submit"]
-webkit-appearance: button
/* 2
cursor: pointer
/* 3
*overflow: visible
/* 4
/**
* Re-set default cursor for disabled elements.
button[disabled], html input[disabled]
cursor: default
/**
* 1. Address box sizing set to content-box in IE 8/9.
* 2. Remove excess padding in IE 8/9.
* 3. Remove excess padding in IE 7.
* Known issue: excess padding remains in IE 6.
input
&[type="checkbox"], &[type="radio"]
box-sizing: border-box
/* 1
padding: 0
/* 2
*height: 13px
/* 3
*width: 13px
/* 3
&[type="search"]
-webkit-appearance: textfield
/* 1
-moz-box-sizing: content-box
-webkit-box-sizing: content-box
/* 2
box-sizing: content-box
&::-webkit-search-cancel-button, &::-webkit-search-decoration
-webkit-appearance: none
/**
* 1. Address `appearance` set to `searchfield` in Safari 5 and Chrome.
* 2. Address `box-sizing` set to `border-box` in Safari 5 and Chrome
* (include `-moz` to future-proof).
/**
* Remove inner padding and search cancel button in Safari 5 and Chrome
* on OS X.
/**
* Remove inner padding and border in Firefox 3+.
button::-moz-focus-inner, input::-moz-focus-inner
border: 0
padding: 0
/**
* 1. Remove default vertical scrollbar in IE 6/7/8/9.
* 2. Improve readability and alignment in all browsers.
textarea
overflow: auto
/* 1
vertical-align: top
/* 2
/* ==========================================================================
* Tables
* ==========================================================================
/**
* Remove most spacing between table cells.
table
border-collapse: collapse
border-spacing: 0

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.3 KiB

After

Width:  |  Height:  |  Size: 9.4 KiB

Before After
Before After

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 27 KiB

After

Width:  |  Height:  |  Size: 28 KiB

Before After
Before After

Binary file not shown.

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1,24 @@
import {Application, registerComponent} from "./typedoc/Application";
import {Search} from "./typedoc/components/Search";
import {MenuHighlight} from "./typedoc/components/MenuHighlight";
import {Signature} from "./typedoc/components/Signature";
import {Toggle} from "./typedoc/components/Toggle";
import {Filter} from "./typedoc/components/Filter";
import '../../css/main.sass'
registerComponent(Search, '#tsd-search');
registerComponent(MenuHighlight, '.menu-highlight');
registerComponent(Signature, '.tsd-signatures');
registerComponent(Toggle, 'a[data-toggle]');
if (Filter.isSupported()) {
registerComponent(Filter, '#tsd-filter');
} else {
document.documentElement.classList.add('no-filter');
}
const app: Application = new Application();
Object.defineProperty(window, 'app', {value: app});

View file

@ -0,0 +1,51 @@
import {IComponentOptions} from "./Component";
/**
* Component definition.
*/
export interface IComponent {
constructor: new (options: IComponentOptions) => unknown;
selector: string;
}
/**
* List of all known components.
*/
const components: IComponent[] = [];
/**
* Register a new component.
*/
export function registerComponent(constructor: IComponent['constructor'], selector: string) {
components.push({
selector: selector,
constructor: constructor,
});
}
/**
* TypeDoc application class.
*/
export class Application {
/**
* Create a new Application instance.
*/
constructor() {
this.createComponents(document.body);
}
/**
* Create all components beneath the given jQuery element.
*/
public createComponents(context: HTMLElement) {
components.forEach((c) => {
context.querySelectorAll<HTMLElement>(c.selector).forEach((el) => {
if (!el.dataset.hasInstance) {
new c.constructor({el: el});
el.dataset.hasInstance = String(true);
}
});
});
}
}

View file

@ -0,0 +1,14 @@
export interface IComponentOptions {
el: HTMLElement;
}
/**
* TypeDoc component class.
*/
export class Component {
protected el: HTMLElement;
constructor(options: IComponentOptions) {
this.el = options.el;
}
}

View file

@ -0,0 +1,42 @@
export interface IEventListener<T> {
(evt: CustomEvent<T>): void;
}
/**
* TypeDoc event target class.
*/
export class EventTarget {
private listeners: Record<string, IEventListener<any>[]> = {};
public addEventListener<T>(type: string, callback: IEventListener<T>) {
if (!(type in this.listeners)) {
this.listeners[type] = [];
}
this.listeners[type].push(callback);
};
public removeEventListener<T>(type: string, callback: IEventListener<T>) {
if (!(type in this.listeners)) {
return;
}
const stack = this.listeners[type];
for (let i = 0, l = stack.length; i < l; i++) {
if (stack[i] === callback) {
stack.splice(i, 1);
return;
}
}
};
public dispatchEvent<T>(event: CustomEvent<T>) {
if (!(event.type in this.listeners)) {
return true;
}
const stack = this.listeners[event.type].slice();
for (let i = 0, l = stack.length; i < l; i++) {
stack[i].call(this, event);
}
return !event.defaultPrevented;
};
}

View file

@ -0,0 +1,172 @@
import {Component, IComponentOptions} from "../Component";
import {pointerDown, pointerUp} from "../utils/pointer";
abstract class FilterItem<T> {
protected key: string;
protected value: T;
protected defaultValue: T;
constructor(key: string, value: T) {
this.key = key;
this.value = value;
this.defaultValue = value;
this.initialize();
if (window.localStorage[this.key]) {
this.setValue(this.fromLocalStorage(window.localStorage[this.key]));
}
}
protected initialize() {
}
protected abstract handleValueChange(oldValue: T, newValue: T): void;
protected abstract fromLocalStorage(value: string): T;
protected abstract toLocalStorage(value: T): string;
protected setValue(value: T) {
if (this.value == value) return;
const oldValue = this.value;
this.value = value;
window.localStorage[this.key] = this.toLocalStorage(value);
this.handleValueChange(oldValue, value);
}
}
class FilterItemCheckbox extends FilterItem<boolean> {
private checkbox!: HTMLInputElement;
protected initialize() {
const checkbox = document.querySelector<HTMLInputElement>('#tsd-filter-' + this.key);
if (!checkbox) return;
this.checkbox = checkbox;
this.checkbox.addEventListener('change', () => {
this.setValue(this.checkbox.checked);
});
}
protected handleValueChange(oldValue: boolean, newValue: boolean) {
if (!this.checkbox) return;
this.checkbox.checked = this.value;
document.documentElement.classList.toggle('toggle-' + this.key, this.value != this.defaultValue);
}
protected fromLocalStorage(value: string): boolean {
return value == 'true';
}
protected toLocalStorage(value: boolean): string {
return value ? 'true' : 'false';
}
}
class FilterItemSelect extends FilterItem<string> {
private select!: HTMLElement;
protected initialize() {
document.documentElement.classList.add('toggle-' + this.key + this.value);
const select = document.querySelector<HTMLElement>('#tsd-filter-' + this.key);
if (!select) return;
this.select = select;
const onActivate = () => {
this.select.classList.add('active');
};
const onDeactivate = () => {
this.select.classList.remove('active');
};
this.select.addEventListener(pointerDown, onActivate);
this.select.addEventListener('mouseover', onActivate);
this.select.addEventListener('mouseleave', onDeactivate);
this.select.querySelectorAll('li').forEach(el => {
el.addEventListener(pointerUp, (e) => {
select.classList.remove('active');
this.setValue((e.target as HTMLElement).dataset.value || '');
})
});
document.addEventListener(pointerDown, (e) => {
if (this.select.contains(e.target as HTMLElement)) return;
this.select.classList.remove('active');
});
}
protected handleValueChange(oldValue: string, newValue: string) {
this.select.querySelectorAll('li.selected').forEach(el => {
el.classList.remove('selected')
});
const selected = this.select.querySelector<HTMLElement>('li[data-value="' + newValue + '"]');
const label = this.select.querySelector<HTMLElement>('.tsd-select-label');
if (selected && label) {
selected.classList.add('selected');
label.textContent = selected.textContent;
}
document.documentElement.classList.remove('toggle-' + oldValue);
document.documentElement.classList.add('toggle-' + newValue);
}
protected fromLocalStorage(value: string): string {
return value;
}
protected toLocalStorage(value: string): string {
return value;
}
}
export class Filter extends Component {
private optionVisibility: FilterItemSelect;
private optionInherited: FilterItemCheckbox;
private optionOnlyExported: FilterItemCheckbox;
private optionExternals: FilterItemCheckbox;
constructor(options: IComponentOptions) {
super(options);
this.optionVisibility = new FilterItemSelect('visibility', 'private');
this.optionInherited = new FilterItemCheckbox('inherited', true);
this.optionExternals = new FilterItemCheckbox('externals', true);
this.optionOnlyExported = new FilterItemCheckbox('only-exported', false);
}
static isSupported(): boolean {
try {
return typeof window.localStorage != 'undefined';
} catch (e) {
return false;
}
}
}

View file

@ -0,0 +1,135 @@
import {Component, IComponentOptions} from "../Component";
import {Viewport} from "../services/Viewport";
/**
* Stored element and position data of a single anchor.
*/
interface IAnchorInfo {
/**
* The anchor element.
*/
anchor: HTMLElement;
/**
* The link element in the navigation representing this anchor.
*/
link: HTMLElement;
/**
* The vertical offset of the anchor on the page.
*/
position: number;
}
/**
* Manages the sticky state of the navigation and moves the highlight
* to the current navigation item.
*/
export class MenuHighlight extends Component {
/**
* List of all discovered anchors.
*/
private anchors: IAnchorInfo[] = [];
/**
* Index of the currently highlighted anchor.
*/
private index: number = -1;
/**
* Create a new MenuHighlight instance.
*
* @param options Backbone view constructor options.
*/
constructor(options: IComponentOptions) {
super(options);
Viewport.instance.addEventListener('resize', () => this.onResize());
Viewport.instance.addEventListener<{ scrollTop: number }>('scroll', e => this.onScroll(e));
this.createAnchors();
}
/**
* Find all anchors on the current page.
*/
private createAnchors() {
let base = window.location.href;
if (base.indexOf('#') != -1) {
base = base.substr(0, base.indexOf('#'));
}
this.el.querySelectorAll('a').forEach(el => {
const href = el.href;
if (href.indexOf('#') == -1) return;
if (href.substr(0, base.length) != base) return;
const hash = href.substr(href.indexOf('#') + 1);
const anchor = document.querySelector<HTMLElement>('a.tsd-anchor[name=' + hash + ']');
const link = el.parentNode;
if (!anchor || !link) return;
this.anchors.push({
link: link as HTMLElement,
anchor: anchor,
position: 0
});
});
this.onResize();
}
/**
* Triggered after the viewport was resized.
*/
private onResize() {
let anchor: IAnchorInfo;
for (let index = 0, count = this.anchors.length; index < count; index++) {
anchor = this.anchors[index];
const rect = anchor.anchor.getBoundingClientRect();
anchor.position = rect.top + document.body.scrollTop;
}
this.anchors.sort((a, b) => {
return a.position - b.position;
});
const event = new CustomEvent('scroll', {
detail: {
scrollTop: Viewport.instance.scrollTop,
}
});
this.onScroll(event);
}
/**
* Triggered after the viewport was scrolled.
*
* @param event The custom event with the current vertical scroll position.
*/
private onScroll(event: CustomEvent<{ scrollTop: number }>) {
const scrollTop = event.detail.scrollTop + 5;
const anchors = this.anchors;
const count = anchors.length - 1;
let index = this.index;
while (index > -1 && anchors[index].position > scrollTop) {
index -= 1;
}
while (index < count && anchors[index + 1].position < scrollTop) {
index += 1;
}
if (this.index != index) {
if (this.index > -1) this.anchors[this.index].link.classList.remove('focus');
this.index = index;
if (this.index > -1) this.anchors[this.index].link.classList.add('focus');
}
}
}

View file

@ -0,0 +1,327 @@
import {Component, IComponentOptions} from "../Component";
import {Index} from 'lunr';
interface IDocument {
id: number;
kind: number;
name: string;
url: string;
classes: string;
parent?: string;
}
interface IData {
kinds: { [kind: number]: string };
rows: IDocument[];
index: object;
}
/**
* Loading state definitions.
*/
enum SearchLoadingState {
Idle, Loading, Ready, Failure
}
/**
* Provides an indexed search on generated documentation
*/
export class Search extends Component {
/**
* The input field of the search widget.
*/
private field: HTMLInputElement;
/**
* The result list wrapper.
*/
private results: HTMLElement;
/**
* The base url that must be prepended to the indexed urls.
*/
private base: string;
/**
* The current query string.
*/
private query: string = '';
/**
* The state the search is currently in.
*/
private loadingState: SearchLoadingState = SearchLoadingState.Idle;
/**
* Is the input field focused?
*/
private hasFocus: boolean = false;
/**
* Should the next key press be prevents?
*/
private preventPress: boolean = false;
/**
* The search data
*/
private data: IData | null = null;
/**
* The lunr index used to search the documentation.
*/
private index: Index | null = null;
/**
* Has a search result been clicked?
* Used to stop the results hiding before a user can fully click on a result.
*/
private resultClicked: boolean = false;
constructor(options: IComponentOptions) {
super(options);
const field = document.querySelector<HTMLInputElement>('#tsd-search-field');
const results = document.querySelector<HTMLElement>('.results');
if (!field || !results) {
throw new Error('The input field or the result list wrapper are not found');
}
this.field = field;
this.results = results;
this.base = this.el.dataset.base + '/';
this.bindEvents();
}
/**
* Lazy load the search index and parse it.
*/
private loadIndex() {
if (this.loadingState != SearchLoadingState.Idle || this.data) return;
setTimeout(() => {
if (this.loadingState == SearchLoadingState.Idle) {
this.setLoadingState(SearchLoadingState.Loading);
}
}, 500);
const url = this.el.dataset.index;
if (!url) {
this.setLoadingState(SearchLoadingState.Failure);
return;
}
fetch(url)
.then(response => {
if (!response.ok) {
throw new Error('The search index is missing');
}
return response.json();
})
.then((source: IData) => {
this.data = source;
this.index = Index.load(source.index);
this.setLoadingState(SearchLoadingState.Ready);
})
.catch((error) => {
console.error(error);
this.setLoadingState(SearchLoadingState.Failure);
});
}
/**
* Update the visible state of the search control.
*/
private updateResults() {
// Don't clear results, if loading state is not ready,
// because loading or error message can be removed.
if (this.loadingState != SearchLoadingState.Ready) return;
this.results.textContent = '';
if (!this.query || !this.index || !this.data) return;
// Perform a wildcard search
let res = this.index.search(`*${this.query}*`);
// If still no results, try a fuzzy match search
if (res.length === 0) {
res = this.index.search(`*${this.query}~1*`);
}
for (let i = 0, c = Math.min(10, res.length); i < c; i++) {
const row = this.data.rows[Number(res[i].ref)];
// Bold the matched part of the query in the search results
let name = row.name.replace(new RegExp(this.query, 'i'), (match: string) => `<b>${match}</b>`);
let parent = row.parent || '';
parent = parent.replace(new RegExp(this.query, 'i'), (match: string) => `<b>${match}</b>`);
if (parent) name = '<span class="parent">' + parent + '.</span>' + name;
const item = document.createElement('li');
item.classList.value = row.classes;
item.innerHTML = `
<a href="${this.base + row.url}" class="tsd-kind-icon">${name}</a>
`;
this.results.appendChild(item);
}
}
/**
* Set the loading state and update the visual state accordingly.
*/
private setLoadingState(value: SearchLoadingState) {
if (this.loadingState == value) return;
this.el.classList.remove(SearchLoadingState[this.loadingState].toLowerCase());
this.loadingState = value;
this.el.classList.add(SearchLoadingState[this.loadingState].toLowerCase());
this.updateResults();
}
/**
* Set the focus state and update the visual state accordingly.
*/
private setHasFocus(value: boolean) {
if (this.hasFocus == value) return;
this.hasFocus = value;
this.el.classList.toggle('has-focus');
if (!value) {
this.field.value = this.query;
} else {
this.setQuery('');
this.field.value = '';
}
}
/**
* Set the query string and update the results.
*/
private setQuery(value: string) {
this.query = value.trim();
this.updateResults();
}
/**
* Move the highlight within the result set.
*/
private setCurrentResult(dir: number) {
let current = this.results.querySelector('.current');
if (!current) {
current = this.results.querySelector(dir == 1 ? 'li:first-child' : 'li:last-child');
if (current) {
current.classList.add('current')
}
} else {
const rel = dir == 1 ? current.nextElementSibling : current.previousElementSibling;
if (rel) {
current.classList.remove('current');
rel.classList.add('current');
}
}
}
/**
* Navigate to the highlighted result.
*/
private gotoCurrentResult() {
let current = this.results.querySelector('.current');
if (!current) {
current = this.results.querySelector('li:first-child');
}
if (current) {
const link = current.querySelector('a');
if (link) {
window.location.href = link.href;
}
this.field.blur();
}
}
/**
* Bind events on result list wrapper, input field and document body.
*/
private bindEvents() {
/**
* Intercept mousedown and mouseup events so we can correctly
* handle clicking on search results.
*/
this.results.addEventListener('mousedown', () => {
this.resultClicked = true;
});
this.results.addEventListener('mouseup', () => {
this.resultClicked = false;
this.setHasFocus(false);
});
/**
* Bind all required events on the input field.
*/
this.field.addEventListener('focusin', () => {
this.setHasFocus(true);
this.loadIndex();
});
this.field.addEventListener('focusout', () => {
// If the user just clicked on a search result, then
// don't lose the focus straight away, as this prevents
// them from clicking the result and following the link
if (this.resultClicked) {
this.resultClicked = false;
return;
}
setTimeout(() => this.setHasFocus(false), 100);
});
this.field.addEventListener('input', () => {
this.setQuery(this.field.value);
});
this.field.addEventListener('keydown', (e) => {
if (e.keyCode == 13 || e.keyCode == 27 || e.keyCode == 38 || e.keyCode == 40) {
this.preventPress = true;
e.preventDefault();
if (e.keyCode == 13) {
this.gotoCurrentResult();
} else if (e.keyCode == 27) {
this.field.blur();
} else if (e.keyCode == 38) {
this.setCurrentResult(-1);
} else if (e.keyCode == 40) {
this.setCurrentResult(1);
}
} else {
this.preventPress = false;
}
});
this.field.addEventListener('keypress', (e) => {
if (this.preventPress) e.preventDefault();
});
/**
* Start searching by pressing a key on the body.
*/
document.body.addEventListener('keydown', e => {
if (e.altKey || e.ctrlKey || e.metaKey) return;
if (!this.hasFocus && e.keyCode > 47 && e.keyCode < 112) {
this.field.focus();
}
});
}
}

View file

@ -0,0 +1,160 @@
import {Component, IComponentOptions} from "../Component";
import {Viewport} from "../services/Viewport";
/**
* Holds a signature and its description.
*/
class SignatureGroup {
/**
* The target signature.
*/
signature: Element;
/**
* The description for the signature.
*/
description: Element;
/**
* Create a new SignatureGroup instance.
*
* @param signature The target signature.
* @param description The description for the signature.
*/
constructor(signature: Element, description: Element) {
this.signature = signature;
this.description = description;
}
/**
* Add the given class to all elements of the group.
*
* @param className The class name to add.
*/
addClass(className: string): SignatureGroup {
this.signature.classList.add(className);
this.description.classList.add(className);
return this;
}
/**
* Remove the given class from all elements of the group.
*
* @param className The class name to remove.
*/
removeClass(className: string): SignatureGroup {
this.signature.classList.remove(className);
this.description.classList.remove(className);
return this;
}
}
/**
* Controls the tab like behaviour of methods and functions with multiple signatures.
*/
export class Signature extends Component {
/**
* List of found signature groups.
*/
private groups: SignatureGroup[] = [];
/**
* The container holding all the descriptions.
*/
private container?: HTMLElement;
/**
* The index of the currently displayed signature.
*/
private index: number = -1;
/**
* Create a new Signature instance.
*
* @param options Backbone view constructor options.
*/
constructor(options: IComponentOptions) {
super(options);
this.createGroups();
if (this.container) {
this.el.classList.add('active');
Array.from(this.el.children).forEach(signature => {
signature.addEventListener('touchstart', (event) => this.onClick(event));
signature.addEventListener('click', (event) => this.onClick(event));
});
this.container.classList.add('active');
this.setIndex(0);
}
}
/**
* Set the index of the active signature.
*
* @param index The index of the signature to activate.
*/
private setIndex(index: number) {
if (index < 0) index = 0;
if (index > this.groups.length - 1) index = this.groups.length - 1;
if (this.index == index) return;
const to = this.groups[index];
if (this.index > -1) {
const from = this.groups[this.index];
from.removeClass('current').addClass('fade-out');
to.addClass('current');
to.addClass('fade-in');
Viewport.instance.triggerResize();
setTimeout(() => {
from.removeClass('fade-out');
to.removeClass('fade-in');
}, 300);
} else {
to.addClass('current');
Viewport.instance.triggerResize();
}
this.index = index;
}
/**
* Find all signature/description groups.
*/
private createGroups() {
const signatures = this.el.children;
if (signatures.length < 2) return;
this.container = this.el.nextElementSibling as HTMLElement;
const descriptions = this.container.children;
this.groups = [];
for (let index = 0; index < signatures.length; index++) {
this.groups.push(new SignatureGroup(signatures[index], descriptions[index]));
}
}
/**
* Triggered when the user clicks onto a signature header.
*
* @param e The related event object.
*/
private onClick(e: Event) {
this.groups.forEach((group, index) => {
if (group.signature === e.currentTarget) {
this.setIndex(index);
}
});
}
}

View file

@ -0,0 +1,65 @@
import {Component, IComponentOptions} from "../Component";
import {hasPointerMoved, pointerDown, pointerUp} from "../utils/pointer";
export class Toggle extends Component {
active?: boolean;
className: string;
constructor(options: IComponentOptions) {
super(options);
this.className = this.el.dataset.toggle || '';
this.el.addEventListener(pointerUp, (e) => this.onPointerUp(e));
this.el.addEventListener('click', (e) => e.preventDefault());
document.addEventListener(pointerDown, (e) => this.onDocumentPointerDown(e));
document.addEventListener(pointerUp, (e) => this.onDocumentPointerUp(e));
}
setActive(value: boolean) {
if (this.active == value) return;
this.active = value;
document.documentElement.classList.toggle('has-' + this.className, value);
this.el.classList.toggle('active', value);
const transition = (this.active ? 'to-has-' : 'from-has-') + this.className;
document.documentElement.classList.add(transition);
setTimeout(() => document.documentElement.classList.remove(transition), 500);
}
onPointerUp(event: Event) {
if (hasPointerMoved) return;
this.setActive(true);
event.preventDefault();
}
onDocumentPointerDown(e: Event) {
if (this.active) {
if ((e.target as HTMLElement).closest('.col-menu, .tsd-filter-group')) {
return;
}
this.setActive(false);
}
}
onDocumentPointerUp(e: Event) {
if (hasPointerMoved) return;
if (this.active) {
if ((e.target as HTMLElement).closest('.col-menu')) {
const link = (e.target as HTMLElement).closest('a');
if (link) {
let href = window.location.href;
if (href.indexOf('#') != -1) {
href = href.substr(0, href.indexOf('#'));
}
if (link.href.substr(0, href.length) == href) {
setTimeout(() => this.setActive(false), 250);
}
}
}
}
}
}

View file

@ -0,0 +1,126 @@
import {EventTarget} from "../EventTarget";
import {throttle} from "../utils/trottle";
/**
* A global service that monitors the window size and scroll position.
*/
export class Viewport extends EventTarget {
public static readonly instance = new Viewport()
/**
* The current scroll position.
*/
scrollTop: number = 0;
/**
* The previous scrollTop.
*/
lastY: number = 0;
/**
* The width of the window.
*/
width: number = 0;
/**
* The height of the window.
*/
height: number = 0;
/**
* The toolbar (contains the search input).
*/
toolbar: HTMLDivElement;
/**
* Boolean indicating whether the toolbar is shown.
*/
showToolbar: boolean = true;
/**
* The sticky side nav that contains members of the current page.
*/
secondaryNav: HTMLElement;
/**
* Create new Viewport instance.
*/
constructor() {
super();
this.toolbar = <HTMLDivElement>document.querySelector('.tsd-page-toolbar');
this.secondaryNav = <HTMLElement>document.querySelector('.tsd-navigation.secondary');
window.addEventListener('scroll', throttle(() => this.onScroll(), 10));
window.addEventListener('resize', throttle(() => this.onResize(), 10));
this.onResize();
this.onScroll();
}
/**
* Trigger a resize event.
*/
triggerResize() {
const event = new CustomEvent('resize', {
detail: {
width: this.width,
height: this.height,
}
});
this.dispatchEvent(event);
}
/**
* Triggered when the size of the window has changed.
*/
onResize() {
this.width = window.innerWidth || 0;
this.height = window.innerHeight || 0;
const event = new CustomEvent('resize', {
detail: {
width: this.width,
height: this.height,
}
});
this.dispatchEvent(event);
}
/**
* Triggered when the user scrolled the viewport.
*/
onScroll() {
this.scrollTop = window.scrollY || 0;
const event = new CustomEvent('scroll', {
detail: {
scrollTop: this.scrollTop,
}
});
this.dispatchEvent(event);
this.hideShowToolbar();
}
/**
* Handle hiding/showing of the toolbar.
*/
hideShowToolbar() {
const isShown = this.showToolbar;
this.showToolbar = this.lastY >= this.scrollTop || this.scrollTop === 0;
if (isShown !== this.showToolbar) {
this.toolbar.classList.toggle('tsd-page-toolbar--hide');
this.secondaryNav.classList.toggle('tsd-navigation--toolbar-hide');
}
this.lastY = this.scrollTop;
}
}

View file

@ -0,0 +1,91 @@
/**
* Simple point interface.
*/
export interface Point {
x: number;
y: number;
}
/**
* Event name of the pointer down event.
*/
export let pointerDown: string = 'mousedown';
/**
* Event name of the pointer move event.
*/
export let pointerMove: string = 'mousemove';
/**
* Event name of the pointer up event.
*/
export let pointerUp: string = 'mouseup';
/**
* Position the pointer was pressed at.
*/
export const pointerDownPosition: Point = {x: 0, y: 0};
/**
* Should the next click on the document be supressed?
*/
export let preventNextClick: boolean = false;
/**
* Is the pointer down?
*/
export let isPointerDown: boolean = false;
/**
* Is the pointer a touch point?
*/
export let isPointerTouch: boolean = false;
/**
* Did the pointer move since the last down event?
*/
export let hasPointerMoved: boolean = false;
/**
* Is the user agent a mobile agent?
*/
export const isMobile: boolean = /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);
document.documentElement.classList.add(isMobile ? 'is-mobile' : 'not-mobile');
if (isMobile && 'ontouchstart' in document.documentElement) {
isPointerTouch = true;
pointerDown = 'touchstart';
pointerMove = 'touchmove';
pointerUp = 'touchend';
}
document.addEventListener(pointerDown, (e) => {
isPointerDown = true;
hasPointerMoved = false;
const t = (pointerDown == 'touchstart' ? (e as TouchEvent).targetTouches[0] : (e as MouseEvent));
pointerDownPosition.y = t.pageY || 0;
pointerDownPosition.x = t.pageX || 0;
});
document.addEventListener(pointerMove, (e) => {
if (!isPointerDown) return;
if (!hasPointerMoved) {
const t = (pointerDown == 'touchstart' ? (e as TouchEvent).targetTouches[0] : (e as MouseEvent));
const x = pointerDownPosition.x - (t.pageX || 0);
const y = pointerDownPosition.y - (t.pageY || 0);
hasPointerMoved = (Math.sqrt(x * x + y * y) > 10);
}
});
document.addEventListener(pointerUp, () => {
isPointerDown = false;
});
document.addEventListener('click', (e) => {
if (preventNextClick) {
e.preventDefault();
e.stopImmediatePropagation();
preventNextClick = false;
}
});

View file

@ -0,0 +1,9 @@
export const throttle = <A extends any[]>(fn: (...args: A) => void, wait = 100) => {
let time = Date.now();
return (...args: A) => {
if ((time + wait - Date.now()) < 0) {
fn(...args);
time = Date.now();
}
}
}

View file

@ -1,78 +0,0 @@
// https://github.com/TypeStrong/typedoc/blob/master/src/lib/models/reflections/abstract.ts#L37
var ReflectionKind = {
Global: 0,
ExternalModule: 1,
Module: 2,
Enum: 4,
EnumMember: 16,
Variable: 32,
Function: 64,
Class: 128,
Interface: 256,
Constructor: 512,
Property: 1024,
Method: 2048,
CallSignature: 4096,
IndexSignature: 8192,
ConstructorSignature: 16384,
Parameter: 32768,
TypeLiteral: 65536,
TypeParameter: 131072,
Accessor: 262144,
GetSignature: 524288,
SetSignature: 1048576,
ObjectLiteral: 2097152,
TypeAlias: 4194304,
Event: 8388608,
}
// https://github.com/TypeStrong/typedoc/blob/master/src/lib/converter/plugins/GroupPlugin.ts#L20
var WEIGHTS = [
ReflectionKind.Global,
ReflectionKind.ExternalModule,
ReflectionKind.Module,
ReflectionKind.Function,
ReflectionKind.Variable,
ReflectionKind.Enum,
ReflectionKind.EnumMember,
ReflectionKind.Class,
ReflectionKind.Interface,
ReflectionKind.TypeAlias,
ReflectionKind.Constructor,
ReflectionKind.Event,
ReflectionKind.Property,
ReflectionKind.Accessor,
ReflectionKind.Method,
ReflectionKind.ObjectLiteral,
ReflectionKind.Parameter,
ReflectionKind.TypeParameter,
ReflectionKind.TypeLiteral,
ReflectionKind.CallSignature,
ReflectionKind.ConstructorSignature,
ReflectionKind.IndexSignature,
ReflectionKind.GetSignature,
ReflectionKind.SetSignature,
];
// https://github.com/TypeStrong/typedoc/blob/master/src/lib/converter/plugins/GroupPlugin.ts#L235
function sortFunc(a, b) {
var aWeight = WEIGHTS.indexOf(a.kind);
var bWeight = WEIGHTS.indexOf(b.kind);
if (aWeight == bWeight) {
if (a.flags.isStatic && !b.flags.isStatic) return 1;
if (!a.flags.isStatic && b.flags.isStatic) return -1;
if (a.name == b.name) return 0;
return a.name > b.name ? 1 : -1;
} else return aWeight - bWeight;
}
module.exports = {
sortModelGroups: function ( model ) {
if (model.groups) {
model.groups.sort(sortFunc);
}
}
}

View file

@ -2,14 +2,12 @@
<html class="default no-js"> <html class="default no-js">
<head> <head>
<meta charset="utf-8"> <meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>{{#ifCond model.name '==' project.name}}{{project.name}}{{else}}{{model.name}} | {{project.name}}{{/ifCond}}</title> <title>{{#ifCond model.name '==' project.name}}{{project.name}}{{else}}{{model.name}} | {{project.name}}{{/ifCond}}</title>
<meta name="description" content=""> <meta name="description" content="Documentation for {{project.name}}">
<meta name="viewport" content="width=device-width, initial-scale=1"> <meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="{{relativeURL "assets/css/main.css"}}"> <link rel="stylesheet" href="{{relativeURL "assets/css/main.css"}}">
{{!--MONACO_CHANGE
<script src="{{relativeURL "assets/js/modernizr.js"}}"></script>
MONACO_CHANGE--}}
</head> </head>
<body> <body>
@ -44,7 +42,6 @@
<div class="overlay"></div> <div class="overlay"></div>
<script src="{{relativeURL "assets/js/main.js"}}"></script> <script src="{{relativeURL "assets/js/main.js"}}"></script>
<script>if (location.protocol == 'file:') document.write('<script src="{{relativeURL "assets/js/search.js"}}"><' + '/script>');</script>
{{> analytics}} {{> analytics}}

View file

@ -3,64 +3,19 @@
<div class="container"> <div class="container">
<h2>Legend</h2> <h2>Legend</h2>
<div class="tsd-legend-group"> <div class="tsd-legend-group">
{{#each legend}}
<ul class="tsd-legend"> <ul class="tsd-legend">
<li class="tsd-kind-module"><span class="tsd-kind-icon">Module</span></li> {{#each .}}
<li class="tsd-kind-object-literal"><span class="tsd-kind-icon">Object literal</span></li> <li class="{{#compact}}{{#each classes}} {{.}}{{/each}}{{/compact}}"><span class="tsd-kind-icon">{{name}}</span></li>
<li class="tsd-kind-variable"><span class="tsd-kind-icon">Variable</span></li> {{/each}}
<li class="tsd-kind-function"><span class="tsd-kind-icon">Function</span></li>
<li class="tsd-kind-function tsd-has-type-parameter"><span class="tsd-kind-icon">Function with type parameter</span></li>
<li class="tsd-kind-index-signature"><span class="tsd-kind-icon">Index signature</span></li>
<li class="tsd-kind-type-alias"><span class="tsd-kind-icon">Type alias</span></li>
</ul>
<ul class="tsd-legend">
<li class="tsd-kind-enum"><span class="tsd-kind-icon">Enumeration</span></li>
<li class="tsd-kind-enum-member"><span class="tsd-kind-icon">Enumeration member</span></li>
<li class="tsd-kind-property tsd-parent-kind-enum"><span class="tsd-kind-icon">Property</span></li>
<li class="tsd-kind-method tsd-parent-kind-enum"><span class="tsd-kind-icon">Method</span></li>
</ul>
<ul class="tsd-legend">
<li class="tsd-kind-interface"><span class="tsd-kind-icon">Interface</span></li>
<li class="tsd-kind-interface tsd-has-type-parameter"><span class="tsd-kind-icon">Interface with type parameter</span></li>
<li class="tsd-kind-constructor tsd-parent-kind-interface"><span class="tsd-kind-icon">Constructor</span></li>
<li class="tsd-kind-property tsd-parent-kind-interface"><span class="tsd-kind-icon">Property</span></li>
<li class="tsd-kind-method tsd-parent-kind-interface"><span class="tsd-kind-icon">Method</span></li>
<li class="tsd-kind-index-signature tsd-parent-kind-interface"><span class="tsd-kind-icon">Index signature</span></li>
</ul>
<ul class="tsd-legend">
<li class="tsd-kind-class"><span class="tsd-kind-icon">Class</span></li>
<li class="tsd-kind-class tsd-has-type-parameter"><span class="tsd-kind-icon">Class with type parameter</span></li>
<li class="tsd-kind-constructor tsd-parent-kind-class"><span class="tsd-kind-icon">Constructor</span></li>
<li class="tsd-kind-property tsd-parent-kind-class"><span class="tsd-kind-icon">Property</span></li>
<li class="tsd-kind-method tsd-parent-kind-class"><span class="tsd-kind-icon">Method</span></li>
<li class="tsd-kind-accessor tsd-parent-kind-class"><span class="tsd-kind-icon">Accessor</span></li>
<li class="tsd-kind-index-signature tsd-parent-kind-class"><span class="tsd-kind-icon">Index signature</span></li>
</ul>
<ul class="tsd-legend">
<li class="tsd-kind-constructor tsd-parent-kind-class tsd-is-inherited"><span class="tsd-kind-icon">Inherited constructor</span></li>
<li class="tsd-kind-property tsd-parent-kind-class tsd-is-inherited"><span class="tsd-kind-icon">Inherited property</span></li>
<li class="tsd-kind-method tsd-parent-kind-class tsd-is-inherited"><span class="tsd-kind-icon">Inherited method</span></li>
<li class="tsd-kind-accessor tsd-parent-kind-class tsd-is-inherited"><span class="tsd-kind-icon">Inherited accessor</span></li>
</ul>
<ul class="tsd-legend">
<li class="tsd-kind-property tsd-parent-kind-class tsd-is-protected"><span class="tsd-kind-icon">Protected property</span></li>
<li class="tsd-kind-method tsd-parent-kind-class tsd-is-protected"><span class="tsd-kind-icon">Protected method</span></li>
<li class="tsd-kind-accessor tsd-parent-kind-class tsd-is-protected"><span class="tsd-kind-icon">Protected accessor</span></li>
</ul>
<ul class="tsd-legend">
<li class="tsd-kind-property tsd-parent-kind-class tsd-is-private"><span class="tsd-kind-icon">Private property</span></li>
<li class="tsd-kind-method tsd-parent-kind-class tsd-is-private"><span class="tsd-kind-icon">Private method</span></li>
<li class="tsd-kind-accessor tsd-parent-kind-class tsd-is-private"><span class="tsd-kind-icon">Private accessor</span></li>
</ul>
<ul class="tsd-legend">
<li class="tsd-kind-property tsd-parent-kind-class tsd-is-static"><span class="tsd-kind-icon">Static property</span></li>
<li class="tsd-kind-call-signature tsd-parent-kind-class tsd-is-static"><span class="tsd-kind-icon">Static method</span></li>
</ul> </ul>
{{/each}}
</div> </div>
</div> </div>
</footer> </footer>
{{#unless settings.hideGenerator}} {{#unless settings.hideGenerator}}
<div class="container tsd-generator"> <div class="container tsd-generator">
<p>Generated using <a href="http://typedoc.io" target="_blank">TypeDoc</a></p> <p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p>
</div> </div>
{{/unless}} {{/unless}}

View file

@ -2,7 +2,7 @@
<div class="tsd-page-toolbar"> <div class="tsd-page-toolbar">
<div class="container"> <div class="container">
<div class="table-wrap"> <div class="table-wrap">
<div class="table-cell" id="tsd-search" data-index="{{relativeURL "assets/js/search.js"}}" data-base="{{relativeURL "./"}}"> <div class="table-cell" id="tsd-search" data-index="{{relativeURL "assets/js/search.json"}}" data-base="{{relativeURL "./"}}">
<div class="field"> <div class="field">
<label for="tsd-search-field" class="tsd-widget search no-caption">Search</label> <label for="tsd-search-field" class="tsd-widget search no-caption">Search</label>
<input id="tsd-search-field" type="text" /> <input id="tsd-search-field" type="text" />

View file

@ -4,7 +4,7 @@
{{#if ../isTarget}} {{#if ../isTarget}}
<span class="target">{{this}}</span> <span class="target">{{this}}</span>
{{else}} {{else}}
{{> type}} {{#compact}}{{> type}}{{/compact}}
{{/if}} {{/if}}
{{#if @last}} {{#if @last}}

View file

@ -1,10 +1,10 @@
{{#if groups}} {{#if categories}}
<section class="tsd-panel-group tsd-index-group"> <section class="tsd-panel-group tsd-index-group">
<h2>Index</h2> <h2>Index</h2>
<section class="tsd-panel tsd-index-panel"> <section class="tsd-panel tsd-index-panel">
<div class="tsd-index-content"> <div class="tsd-index-content">
{{#each groups}} {{#each categories}}
<section class="tsd-index-section {{cssClasses}}"> <section class="tsd-index-section">
<h3>{{title}}</h3> <h3>{{title}}</h3>
<ul class="tsd-index-list"> <ul class="tsd-index-list">
{{#each children}} {{#each children}}
@ -15,5 +15,36 @@
{{/each}} {{/each}}
</div> </div>
</section> </section>
</section> </section>
{{else}}
{{#if groups}}
<section class="tsd-panel-group tsd-index-group">
<h2>Index</h2>
<section class="tsd-panel tsd-index-panel">
<div class="tsd-index-content">
{{#each groups}}
<section class="tsd-index-section {{cssClasses}}">
{{#if categories}}
{{#each categories}}
<h3>{{#if title}}{{title}} {{/if}}{{../title}}</h3>
<ul class="tsd-index-list">
{{#each children}}
<li class="{{cssClasses}}"><a href="{{relativeURL url}}" class="tsd-kind-icon">{{#if name}}{{{wbr name}}}{{else}}<em>{{{wbr kindString}}}</em>{{/if}}</a></li>
{{/each}}
</ul>
{{/each}}
{{else}}
<h3>{{title}}</h3>
<ul class="tsd-index-list">
{{#each children}}
<li class="{{cssClasses}}"><a href="{{relativeURL url}}" class="tsd-kind-icon">{{#if name}}{{{wbr name}}}{{else}}<em>{{{wbr kindString}}}</em>{{/if}}</a></li>
{{/each}}
</ul>
{{/if}}
</section>
{{/each}}
</div>
</section>
</section>
{{/if}}
{{/if}} {{/if}}

View file

@ -1,5 +1,14 @@
<div class="tsd-signature tsd-kind-icon">{{#compact}} <div class="tsd-signature tsd-kind-icon">{{#compact}}
{{{wbr name}}}<span class="tsd-signature-symbol">{{#if isOptional}}?{{/if}}:</span>&nbsp;{{#with type}}{{>type}}{{/with}} {{{wbr name}}}
{{#if typeParameters}}
&lt;
{{#each typeParameters}}
{{#if @index}},&nbsp;{{/if}}
{{name}}
{{/each}}
&gt;
{{/if}}
<span class="tsd-signature-symbol">{{#if isOptional}}?{{/if}}:</span>&nbsp;{{#with type}}{{>type}}{{/with}}
{{#if defaultValue}} {{#if defaultValue}}
<span class="tsd-signature-symbol"> <span class="tsd-signature-symbol">
&nbsp;=&nbsp; &nbsp;=&nbsp;
@ -12,6 +21,11 @@
{{> comment}} {{> comment}}
{{#if typeParameters}}
<h4 class="tsd-type-parameters-title">Type parameters</h4>
{{> typeParameters}}
{{/if}}
{{#if type.declaration}} {{#if type.declaration}}
<div class="tsd-type-declaration"> <div class="tsd-type-declaration">
<h4>Type declaration</h4> <h4>Type declaration</h4>

View file

@ -8,9 +8,11 @@
{{> member.signatures}} {{> member.signatures}}
{{else}}{{#if hasGetterOrSetter}} {{else}}{{#if hasGetterOrSetter}}
{{> member.getterSetter}} {{> member.getterSetter}}
{{else}}{{#if isReference}}
{{> member.reference}}
{{else}} {{else}}
{{> member.declaration}} {{> member.declaration}}
{{/if}}{{/if}} {{/if}}{{/if}}{{/if}}
{{#each groups}} {{#each groups}}
{{#each children}} {{#each children}}

View file

@ -0,0 +1,11 @@
{{#with tryGetTargetReflectionDeep}}
{{#ifCond ../name '===' name}}
Re-exports <a href="{{relativeURL url}}">{{name}}</a>
{{else if flags.isExported}}
Renames and re-exports <a href="{{relativeURL url}}">{{name}}</a>
{{else}}
Renames and exports <a href="{{relativeURL url}}">{{name}}</a>
{{/ifCond}}
{{else}}
Re-exports {{name}}
{{/with}}

View file

@ -42,7 +42,7 @@
{{/if}} {{/if}}
{{#if type}} {{#if type}}
<h4 class="tsd-returns-title">Returns {{#with type}}{{>type}}{{/with}}</h4> <h4 class="tsd-returns-title">Returns {{#compact}}{{#with type}}{{>type}}{{/with}}{{/compact}}</h4>
{{#if comment.returns}} {{#if comment.returns}}
{{#markdown}}{{{comment.returns}}}{{/markdown}} {{#markdown}}{{{comment.returns}}}{{/markdown}}

View file

@ -1,15 +1,14 @@
{{#compact}} {{#unless hideName}}{{{wbr name}}}{{/unless}}
{{#unless hideName}}{{{wbr name}}}{{/unless}} {{#if typeParameters}}
{{#if typeParameters}}
&lt; &lt;
{{#each typeParameters}} {{#each typeParameters}}
{{#if @index}},&nbsp;{{/if}} {{#if @index}},&nbsp;{{/if}}
{{name}} {{name}}
{{/each}} {{/each}}
&gt; &gt;
{{/if}} {{/if}}
<span class="tsd-signature-symbol">(</span> <span class="tsd-signature-symbol">(</span>
{{#each parameters}} {{#each parameters}}
{{#if @index}},&nbsp;{{/if}} {{#if @index}},&nbsp;{{/if}}
{{#if flags.isRest}}<span class="tsd-signature-symbol">...</span>{{/if}} {{#if flags.isRest}}<span class="tsd-signature-symbol">...</span>{{/if}}
{{name}} {{name}}
@ -19,10 +18,15 @@
:&nbsp; :&nbsp;
</span> </span>
{{#with type}}{{>type}}{{/with}} {{#with type}}{{>type}}{{/with}}
{{/each}} {{/each}}
<span class="tsd-signature-symbol">)</span> <span class="tsd-signature-symbol">)</span>
{{#if type}} {{#if type}}
<span class="tsd-signature-symbol">:&nbsp;</span> {{#if arrowStyle}}
{{#with type}}{{>type}}{{/with}} <span class="tsd-signature-symbol"> =&gt; </span>
{{else}}
<span class="tsd-signature-symbol">: </span>
{{/if}} {{/if}}
{{/compact}} {{#with type}}
{{>type}}
{{/with}}
{{/if}}

View file

@ -1,6 +1,6 @@
<ul class="tsd-signatures {{cssClasses}}"> <ul class="tsd-signatures {{cssClasses}}">
{{#each signatures}} {{#each signatures}}
<li class="tsd-signature tsd-kind-icon">{{> member.signature.title }}</li> <li class="tsd-signature tsd-kind-icon">{{#compact}}{{> member.signature.title }}{{/compact}}</li>
{{/each}} {{/each}}
</ul> </ul>

View file

@ -6,7 +6,7 @@
<p>Inherited from {{#with inheritedFrom}}{{> typeAndParent}}{{/with}}</p> <p>Inherited from {{#with inheritedFrom}}{{> typeAndParent}}{{/with}}</p>
{{/if}} {{/if}}
{{#if overwrites}} {{#if overwrites}}
<p>Overwrites {{#with overwrites}}{{> typeAndParent}}{{/with}}</p> <p>Overrides {{#with overwrites}}{{> typeAndParent}}{{/with}}</p>
{{/if}} {{/if}}
{{#if sources}} {{#if sources}}
<ul> <ul>

View file

@ -1,8 +1,21 @@
<section class="tsd-panel-group tsd-member-group {{cssClasses}}"> {{#if categories}}
{{#each categories}}
<section class="tsd-panel-group tsd-member-group {{cssClasses}}">
<h2>{{#if title}}{{title}} {{/if}}{{../title}}</h2>
{{#each children}}
{{#unless hasOwnDocument}}
{{> member}}
{{/unless}}
{{/each}}
</section>
{{/each}}
{{else}}
<section class="tsd-panel-group tsd-member-group {{cssClasses}}">
<h2>{{title}}</h2> <h2>{{title}}</h2>
{{#each children}} {{#each children}}
{{#unless hasOwnDocument}} {{#unless hasOwnDocument}}
{{> member}} {{> member}}
{{/unless}} {{/unless}}
{{/each}} {{/each}}
</section> </section>
{{/if}}

View file

@ -1,5 +1,20 @@
{{#each groups}} {{#if categories}}
{{#each categories}}
{{#unless allChildrenHaveOwnDocument}}
<section class="tsd-panel-group tsd-member-group {{cssClasses}}">
<h2>{{title}}</h2>
{{#each children}}
{{#unless hasOwnDocument}}
{{> member}}
{{/unless}}
{{/each}}
</section>
{{/unless}}
{{/each}}
{{else}}
{{#each groups}}
{{#unless allChildrenHaveOwnDocument}} {{#unless allChildrenHaveOwnDocument}}
{{> members.group}} {{> members.group}}
{{/unless}} {{/unless}}
{{/each}} {{/each}}
{{/if}}

View file

@ -1,9 +1,11 @@
<ul class="tsd-parameters"> <ul class="tsd-parameters">
{{#if signatures}} {{#if signatures}}
<li class="tsd-parameter-siganture"> <li class="tsd-parameter-signature">
<ul class="tsd-signatures {{cssClasses}}"> <ul class="tsd-signatures {{cssClasses}}">
{{#each signatures}} {{#each signatures}}
<li class="tsd-signature tsd-kind-icon">{{> member.signature.title hideName=true }}</li> <li class="tsd-signature tsd-kind-icon">{{#compact}}
{{> member.signature.title hideName=true }}
{{/compact}}</li>
{{/each}} {{/each}}
</ul> </ul>

View file

@ -1,71 +1,223 @@
{{#if this}} {{! Each type gets its own inline helper to determine how it is rendered. }}
{{! The name of the helper is the value of the 'type' property on the type.}}
{{!
The type helper accepts an optional needsParens parameter that is checked
if an inner type may result in invalid output without them. For example:
1 | 2[] !== (1 | 2)[]
() => 1 | 2 !== (() => 1) | 2
}}
{{#*inline 'array'}}
{{#with elementType}}
{{> type needsParens=true}}
<span class="tsd-signature-symbol">[]</span>
{{/with}}
{{/inline}}
{{#*inline 'conditional'}}
{{#if needsParens}}
<span class="tsd-signature-symbol">(</span>
{{/if}}
{{#with checkType}}
{{> type needsParens=true}}
{{/with}}
<span class="tsd-signature-symbol"> extends </span>
{{#with extendsType}}
{{> type}}
{{/with}}
<span class="tsd-signature-symbol"> ? </span>
{{#with trueType}}
{{> type}}
{{/with}}
<span class="tsd-signature-symbol"> : </span>
{{#with falseType}}
{{> type}}
{{/with}}
{{#if needsParens}}
<span class="tsd-signature-symbol">)</span>
{{/if}}
{{/inline}}
{{#*inline 'indexedAccess'}}
{{#with objectType}}
{{> type}}
{{/with}}
<span class="tsd-signature-symbol">[</span>
{{#with indexType}}
{{> type}}
{{/with}}
<span class="tsd-signature-symbol">]</span>
{{/inline}}
{{#*inline 'inferred'}}
<span class="tsd-signature-symbol">infer </span> {{name}}
{{/inline}}
{{#*inline 'intersection'}}
{{#if needsParens}}
<span class="tsd-signature-symbol">(</span>
{{/if}}
{{#each types}}
{{#unless @first}}
<span class="tsd-signature-symbol"> &amp; </span>
{{/unless}}
{{> type}}
{{/each}}
{{#if needsParens}}
<span class="tsd-signature-symbol">)</span>
{{/if}}
{{/inline}}
{{#*inline 'intrinsic'}}
<span class="tsd-signature-type">{{name}}</span>
{{/inline}}
{{#*inline 'predicate'}}
{{#if asserts}}
<span class="tsd-signature-symbol">asserts</span>
{{/if}}
<span class="tsd-signature-type">{{name}}</span>
{{#if targetType}}
<span class="tsd-signature-symbol"> is </span>
{{#with targetType}}
{{>type}}
{{/with}}
{{/if}}
{{/inline}}
{{#*inline 'query'}}
<span class="tsd-signature-symbol">typeof </span>
{{#with queryType}}
{{> type}}
{{/with}}
{{/inline}}
{{#*inline 'reference'}}
{{#if reflection}} {{#if reflection}}
{{#compact}}
<a href="{{relativeURL reflection.url}}" class="tsd-signature-type"> <a href="{{relativeURL reflection.url}}" class="tsd-signature-type">
{{reflection.name}} {{reflection.name}}
</a> </a>
{{else}}
<span class="tsd-signature-type">{{name}}</span>
{{/if}}
{{#if typeArguments}} {{#if typeArguments}}
<span class="tsd-signature-symbol">&lt;</span> <span class="tsd-signature-symbol">&lt;</span>
{{#each typeArguments}} {{#each typeArguments}}
{{#if @index}} {{#unless @first}}
<span class="tsd-signature-symbol">, </span> <span class="tsd-signature-symbol">, </span>
{{/if}}{{> type}} {{/unless}}
{{> type}}
{{/each}} {{/each}}
<span class="tsd-signature-symbol">&gt;</span> <span class="tsd-signature-symbol">&gt;</span>
{{/if}} {{/if}}
{{#if isArray}}<span class="tsd-signature-symbol">[]</span>{{/if}} {{/inline}}
{{/compact}}
{{else}}
{{#if types}}
{{#each types}}
{{#if @index}}
<span class="tsd-signature-symbol"> | </span>
{{/if}}{{> type}}
{{/each}}
{{else}}
{{#if elements}}
{{#compact}}
<span class="tsd-signature-symbol">[</span>
{{#each elements}} {{#*inline 'reflection'}}
{{#if @index}} {{#if declaration.children}} {{! object literal }}
<span class="tsd-signature-symbol">, </span> <span class="tsd-signature-symbol">{ </span>
{{/if}}{{> type}} {{#each declaration.children}}
{{/each}} {{#unless @first}}
<span class="tsd-signature-symbol">; </span>
<span class="tsd-signature-symbol">]</span> {{/unless}}
{{/compact}}
{{else}}
{{#compact}}
<span class="tsd-signature-type">
{{#if name}}
{{name}} {{name}}
{{#if flags.isOptional }}
<span class="tsd-signature-symbol">?: </span>
{{else}} {{else}}
{{#if value}} <span class="tsd-signature-symbol">: </span>
"{{value}}" {{/if}}
{{#with type}}
{{> type}}
{{else}} {{else}}
{{this}} <span class="tsd-signature-type">any</span>
{{/if}} {{/with}}
{{/if}}
</span>
{{#if typeArguments}}
<span class="tsd-signature-symbol">&lt;</span>
{{#each typeArguments}}
{{#if @index}}
<span class="tsd-signature-symbol">, </span>
{{/if}}{{> type}}
{{/each}} {{/each}}
<span class="tsd-signature-symbol"> }</span>
{{else if declaration.signatures}}
{{#if (lookup declaration.signatures 1) }} {{! more than one signature}}
<span class="tsd-signature-symbol">{ </span>
{{#each declaration.signatures}}
{{> member.signature.title hideName=true}}
{{#unless @last}}
<span class="tsd-signature-symbol">; </span>
{{/unless}}
{{/each}}
<span class="tsd-signature-symbol"> }</span>
{{else}}
{{#if needsParens}}
<span class="tsd-signature-symbol">(</span>
{{/if}}
{{#with (lookup declaration.signatures '0') }}
{{> member.signature.title hideName=true arrowStyle=true}}
{{/with}}
{{#if needsParens}}
<span class="tsd-signature-symbol">)</span>
{{/if}}
{{/if}}
{{else}}
<span class="tsd-signature-symbol">{}</span>
{{/if}}
{{/inline}}
<span class="tsd-signature-symbol">&gt;</span> {{#*inline 'stringLiteral'}}
{{/if}} <span class="tsd-signature-type">"{{value}}"</span>
{{#if isArray}}<span class="tsd-signature-symbol">[]</span>{{/if}} {{/inline}}
{{/compact}}
{{#*inline 'tuple'}}
<span class="tsd-signature-symbol">[</span>
{{#each elements}}
{{#unless @first}}
<span class="tsd-signature-symbol">, </span>
{{/unless}}
{{> type}}
{{/each}}
<span class="tsd-signature-symbol">]</span>
{{/inline}}
{{#*inline 'typeOperator'}}
<span class="tsd-signature-symbol">{{operator}} </span>
{{#with target}}
{{> type}}
{{/with}}
{{/inline}}
{{#*inline 'typeParameter'}}
<span class="tsd-signature-type">{{name}}</span>
{{/inline}}
{{#*inline 'union'}}
{{#if needsParens}}
<span class="tsd-signature-symbol">(</span>
{{/if}} {{/if}}
{{#each types}}
{{#unless @first}}
<span class="tsd-signature-symbol"> | </span>
{{/unless}}
{{> type needsParens=true}}
{{/each}}
{{#if needsParens}}
<span class="tsd-signature-symbol">)</span>
{{/if}} {{/if}}
{{/inline}}
{{#*inline 'unknown'}}
<span class="tsd-signature-type">{{name}}</span>
{{/inline}}
{{#*inline 'named-tuple-member'}}
{{name}}
{{#if isOptional}}
<span class="tsd-signature-symbol">?: </span>
{{else}}
<span class="tsd-signature-symbol">: </span>
{{/if}} {{/if}}
{{#with element}}
{{> type}}
{{/with}}
{{/inline}}
{{#if this}}
{{> (lookup . 'type') }}
{{else}} {{else}}
<span class="tsd-signature-type">void</span> <span class="tsd-signature-type">void</span>
{{/if}} {{/if}}

View file

@ -1,5 +1,11 @@
{{#compact}} {{#compact}}
{{#if this}} {{#if this}}
{{#if elementType}}
{{#with elementType}}
{{> typeAndParent}}
{{/with}}
[]
{{else}}
{{#if reflection}} {{#if reflection}}
{{#ifSignature reflection}} {{#ifSignature reflection}}
{{#if reflection.parent.parent.url}} {{#if reflection.parent.parent.url}}
@ -26,12 +32,10 @@
{{reflection.name}} {{reflection.name}}
{{/if}} {{/if}}
{{/ifSignature}} {{/ifSignature}}
{{#if isArray}}
[]
{{/if}}
{{else}} {{else}}
{{this}} {{this}}
{{/if}} {{/if}}
{{/if}}
{{else}} {{else}}
void void
{{/if}} {{/if}}

View file

@ -7,6 +7,9 @@
<span class="tsd-signature-symbol">:&nbsp;</span> <span class="tsd-signature-symbol">:&nbsp;</span>
{{#with type}}{{> type}}{{/with}} {{#with type}}{{> type}}{{/with}}
{{/if}} {{/if}}
{{#if default}}
&nbsp;=&nbsp;{{#with default}}{{> type}}{{/with}}
{{/if}}
{{/compact}}</h4> {{/compact}}</h4>
{{> comment}} {{> comment}}
</li> </li>

View file

@ -25,7 +25,7 @@
<h3>Implements</h3> <h3>Implements</h3>
<ul class="tsd-hierarchy"> <ul class="tsd-hierarchy">
{{#each model.implementedTypes}} {{#each model.implementedTypes}}
<li>{{> type}}</li> <li>{{#compact}}{{> type}}{{/compact}}</li>
{{/each}} {{/each}}
</ul> </ul>
</section> </section>
@ -36,7 +36,7 @@
<h3>Implemented by</h3> <h3>Implemented by</h3>
<ul class="tsd-hierarchy"> <ul class="tsd-hierarchy">
{{#each model.implementedBy}} {{#each model.implementedBy}}
<li>{{> type}}</li> <li>{{#compact}}{{> type}}{{/compact}}</li>
{{/each}} {{/each}}
</ul> </ul>
</section> </section>
@ -73,9 +73,6 @@
</section> </section>
{{/if}} {{/if}}
{{!--MONACO_CHANGE--}}
{{sortModelGroups model}}
{{!--MONACO_CHANGE--}}
{{#with model}} {{#with model}}
{{> index}} {{> index}}
{{> members}} {{> members}}