Updated the files.
This commit is contained in:
parent
1553e6b971
commit
753967d4f5
23418 changed files with 3784666 additions and 0 deletions
945
my-app/node_modules/reflect-metadata/docs/ecmarkup.css
generated
vendored
Executable file
945
my-app/node_modules/reflect-metadata/docs/ecmarkup.css
generated
vendored
Executable file
|
@ -0,0 +1,945 @@
|
|||
body {
|
||||
display: flex;
|
||||
font-size: 18px;
|
||||
line-height: 1.5;
|
||||
font-family: Cambria, Palatino Linotype, Palatino, Liberation Serif, serif;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
color: #111;
|
||||
}
|
||||
|
||||
#spec-container {
|
||||
padding: 0 20px;
|
||||
flex-grow: 1;
|
||||
flex-basis: 66%;
|
||||
box-sizing: border-box;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
body.oldtoc {
|
||||
margin: 0 auto;
|
||||
}
|
||||
|
||||
a {
|
||||
text-decoration: none;
|
||||
color: #206ca7;
|
||||
}
|
||||
|
||||
a:visited {
|
||||
color: #206ca7;
|
||||
}
|
||||
|
||||
a:hover {
|
||||
text-decoration: underline;
|
||||
color: #239dee;
|
||||
}
|
||||
|
||||
|
||||
code {
|
||||
font-weight: bold;
|
||||
font-family: Consolas, Monaco, monospace;
|
||||
white-space: pre;
|
||||
}
|
||||
|
||||
pre code {
|
||||
font-weight: inherit;
|
||||
}
|
||||
|
||||
pre code.hljs {
|
||||
background-color: #fff;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
ol.toc {
|
||||
list-style: none;
|
||||
padding-left: 0;
|
||||
}
|
||||
|
||||
ol.toc ol.toc {
|
||||
padding-left: 2ex;
|
||||
list-style: none;
|
||||
}
|
||||
|
||||
var {
|
||||
color: #2aa198;
|
||||
transition: background-color 0.25s ease;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
var.referenced {
|
||||
background-color: #ffff33;
|
||||
}
|
||||
|
||||
emu-const {
|
||||
font-family: sans-serif;
|
||||
}
|
||||
|
||||
emu-val {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
/* depth 1 */
|
||||
emu-alg ol,
|
||||
/* depth 4 */
|
||||
emu-alg ol ol ol ol,
|
||||
emu-alg ol.nested-thrice,
|
||||
emu-alg ol.nested-twice ol,
|
||||
emu-alg ol.nested-once ol ol {
|
||||
list-style-type: decimal;
|
||||
}
|
||||
|
||||
/* depth 2 */
|
||||
emu-alg ol ol,
|
||||
emu-alg ol.nested-once,
|
||||
/* depth 5 */
|
||||
emu-alg ol ol ol ol ol,
|
||||
emu-alg ol.nested-four-times,
|
||||
emu-alg ol.nested-thrice ol,
|
||||
emu-alg ol.nested-twice ol ol,
|
||||
emu-alg ol.nested-once ol ol ol {
|
||||
list-style-type: lower-alpha;
|
||||
}
|
||||
|
||||
/* depth 3 */
|
||||
emu-alg ol ol ol,
|
||||
emu-alg ol.nested-twice,
|
||||
emu-alg ol.nested-once ol,
|
||||
/* depth 6 */
|
||||
emu-alg ol ol ol ol ol ol,
|
||||
emu-alg ol.nested-lots,
|
||||
emu-alg ol.nested-four-times ol,
|
||||
emu-alg ol.nested-thrice ol ol,
|
||||
emu-alg ol.nested-twice ol ol ol,
|
||||
emu-alg ol.nested-once ol ol ol ol,
|
||||
/* depth 7+ */
|
||||
emu-alg ol.nested-lots ol {
|
||||
list-style-type: lower-roman;
|
||||
}
|
||||
|
||||
emu-eqn {
|
||||
display: block;
|
||||
margin-left: 4em;
|
||||
}
|
||||
|
||||
emu-eqn.inline {
|
||||
display: inline;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
emu-eqn div:first-child {
|
||||
margin-left: -2em;
|
||||
}
|
||||
|
||||
emu-note {
|
||||
margin: 1em 0;
|
||||
color: #666;
|
||||
border-left: 5px solid #ccc;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
}
|
||||
|
||||
emu-note > span.note {
|
||||
flex-basis: 100px;
|
||||
min-width: 100px;
|
||||
flex-grow: 0;
|
||||
flex-shrink: 1;
|
||||
text-transform: uppercase;
|
||||
padding-left: 5px;
|
||||
}
|
||||
|
||||
emu-note[type=editor] {
|
||||
border-left-color: #faa;
|
||||
}
|
||||
|
||||
emu-note > div.note-contents {
|
||||
flex-grow: 1;
|
||||
flex-shrink: 1;
|
||||
}
|
||||
|
||||
emu-note > div.note-contents > p:first-of-type {
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
emu-note > div.note-contents > p:last-of-type {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
emu-table td code {
|
||||
white-space: normal;
|
||||
}
|
||||
|
||||
emu-figure {
|
||||
display: block;
|
||||
}
|
||||
|
||||
emu-example {
|
||||
display: block;
|
||||
margin: 1em 3em;
|
||||
}
|
||||
|
||||
emu-example figure figcaption {
|
||||
margin-top: 0.5em;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
emu-figure figure,
|
||||
emu-example figure,
|
||||
emu-table figure {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
emu-production {
|
||||
display: block;
|
||||
}
|
||||
|
||||
emu-grammar[type="example"] emu-production,
|
||||
emu-grammar[type="definition"] emu-production {
|
||||
margin-top: 1em;
|
||||
margin-bottom: 1em;
|
||||
margin-left: 5ex;
|
||||
}
|
||||
|
||||
emu-grammar.inline, emu-production.inline,
|
||||
emu-grammar.inline emu-production emu-rhs, emu-production.inline emu-rhs,
|
||||
emu-grammar[collapsed] emu-production emu-rhs, emu-production[collapsed] emu-rhs {
|
||||
display: inline;
|
||||
padding-left: 1ex;
|
||||
margin-left: 0;
|
||||
}
|
||||
|
||||
emu-grammar[collapsed] emu-production, emu-production[collapsed] {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
emu-constraints {
|
||||
font-size: .75em;
|
||||
margin-right: 1ex;
|
||||
}
|
||||
|
||||
emu-gann {
|
||||
margin-right: 1ex;
|
||||
}
|
||||
|
||||
emu-gann emu-t:last-child,
|
||||
emu-gann emu-gprose:last-child,
|
||||
emu-gann emu-nt:last-child {
|
||||
margin-right: 0;
|
||||
}
|
||||
|
||||
emu-geq {
|
||||
margin-left: 1ex;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
emu-oneof {
|
||||
font-weight: bold;
|
||||
margin-left: 1ex;
|
||||
}
|
||||
|
||||
emu-nt {
|
||||
display: inline-block;
|
||||
font-style: italic;
|
||||
white-space: nowrap;
|
||||
text-indent: 0;
|
||||
}
|
||||
|
||||
emu-nt a, emu-nt a:visited {
|
||||
color: #333;
|
||||
}
|
||||
|
||||
emu-rhs emu-nt {
|
||||
margin-right: 1ex;
|
||||
}
|
||||
|
||||
emu-t {
|
||||
display: inline-block;
|
||||
font-family: monospace;
|
||||
font-weight: bold;
|
||||
white-space: nowrap;
|
||||
text-indent: 0;
|
||||
}
|
||||
|
||||
emu-production emu-t {
|
||||
margin-right: 1ex;
|
||||
}
|
||||
|
||||
emu-rhs {
|
||||
display: block;
|
||||
padding-left: 75px;
|
||||
text-indent: -25px;
|
||||
}
|
||||
|
||||
emu-mods {
|
||||
font-size: .85em;
|
||||
vertical-align: sub;
|
||||
font-style: normal;
|
||||
font-weight: normal;
|
||||
}
|
||||
|
||||
emu-params, emu-opt {
|
||||
margin-right: 1ex;
|
||||
font-family: monospace;
|
||||
}
|
||||
|
||||
emu-params, emu-constraints {
|
||||
color: #2aa198;
|
||||
}
|
||||
|
||||
emu-opt {
|
||||
color: #b58900;
|
||||
}
|
||||
|
||||
emu-gprose {
|
||||
font-size: 0.9em;
|
||||
font-family: Helvetica, Arial, sans-serif;
|
||||
}
|
||||
|
||||
emu-production emu-gprose {
|
||||
margin-right: 1ex;
|
||||
}
|
||||
|
||||
h1.shortname {
|
||||
color: #f60;
|
||||
font-size: 1.5em;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
h1.version {
|
||||
color: #f60;
|
||||
font-size: 1.5em;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
h1.title {
|
||||
margin-top: 0;
|
||||
color: #f60;
|
||||
}
|
||||
|
||||
h1.first {
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
h1, h2, h3, h4, h5, h6 {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
h1 .secnum {
|
||||
text-decoration: none;
|
||||
margin-right: 5px;
|
||||
}
|
||||
|
||||
h1 span.title {
|
||||
order: 2;
|
||||
}
|
||||
|
||||
|
||||
h1 { font-size: 2.67em; margin-top: 2em; margin-bottom: 0; line-height: 1em;}
|
||||
h2 { font-size: 2em; }
|
||||
h3 { font-size: 1.56em; }
|
||||
h4 { font-size: 1.25em; }
|
||||
h5 { font-size: 1.11em; }
|
||||
h6 { font-size: 1em; }
|
||||
|
||||
h1:hover span.utils {
|
||||
display: block;
|
||||
}
|
||||
|
||||
span.utils {
|
||||
font-size: 18px;
|
||||
line-height: 18px;
|
||||
display: none;
|
||||
position: absolute;
|
||||
top: 100%;
|
||||
left: 0;
|
||||
right: 0;
|
||||
font-weight: normal;
|
||||
}
|
||||
|
||||
span.utils:before {
|
||||
content: "⤷";
|
||||
display: inline-block;
|
||||
padding: 0 5px;
|
||||
}
|
||||
|
||||
span.utils > * {
|
||||
display: inline-block;
|
||||
margin-right: 20px;
|
||||
}
|
||||
|
||||
h1 span.utils span.anchor a,
|
||||
h2 span.utils span.anchor a,
|
||||
h3 span.utils span.anchor a,
|
||||
h4 span.utils span.anchor a,
|
||||
h5 span.utils span.anchor a,
|
||||
h6 span.utils span.anchor a {
|
||||
text-decoration: none;
|
||||
font-variant: small-caps;
|
||||
}
|
||||
|
||||
h1 span.utils span.anchor a:hover,
|
||||
h2 span.utils span.anchor a:hover,
|
||||
h3 span.utils span.anchor a:hover,
|
||||
h4 span.utils span.anchor a:hover,
|
||||
h5 span.utils span.anchor a:hover,
|
||||
h6 span.utils span.anchor a:hover {
|
||||
color: #333;
|
||||
}
|
||||
|
||||
emu-intro h1, emu-clause h1, emu-annex h1 { font-size: 2em; }
|
||||
emu-intro h2, emu-clause h2, emu-annex h2 { font-size: 1.56em; }
|
||||
emu-intro h3, emu-clause h3, emu-annex h3 { font-size: 1.25em; }
|
||||
emu-intro h4, emu-clause h4, emu-annex h4 { font-size: 1.11em; }
|
||||
emu-intro h5, emu-clause h5, emu-annex h5 { font-size: 1em; }
|
||||
emu-intro h6, emu-clause h6, emu-annex h6 { font-size: 0.9em; }
|
||||
emu-intro emu-intro h1, emu-clause emu-clause h1, emu-annex emu-annex h1 { font-size: 1.56em; }
|
||||
emu-intro emu-intro h2, emu-clause emu-clause h2, emu-annex emu-annex h2 { font-size: 1.25em; }
|
||||
emu-intro emu-intro h3, emu-clause emu-clause h3, emu-annex emu-annex h3 { font-size: 1.11em; }
|
||||
emu-intro emu-intro h4, emu-clause emu-clause h4, emu-annex emu-annex h4 { font-size: 1em; }
|
||||
emu-intro emu-intro h5, emu-clause emu-clause h5, emu-annex emu-annex h5 { font-size: 0.9em; }
|
||||
emu-intro emu-intro emu-intro h1, emu-clause emu-clause emu-clause h1, emu-annex emu-annex emu-annex h1 { font-size: 1.25em; }
|
||||
emu-intro emu-intro emu-intro h2, emu-clause emu-clause emu-clause h2, emu-annex emu-annex emu-annex h2 { font-size: 1.11em; }
|
||||
emu-intro emu-intro emu-intro h3, emu-clause emu-clause emu-clause h3, emu-annex emu-annex emu-annex h3 { font-size: 1em; }
|
||||
emu-intro emu-intro emu-intro h4, emu-clause emu-clause emu-clause h4, emu-annex emu-annex emu-annex h4 { font-size: 0.9em; }
|
||||
emu-intro emu-intro emu-intro emu-intro h1, emu-clause emu-clause emu-clause emu-clause h1, emu-annex emu-annex emu-annex emu-annex h1 { font-size: 1.11em; }
|
||||
emu-intro emu-intro emu-intro emu-intro h2, emu-clause emu-clause emu-clause emu-clause h2, emu-annex emu-annex emu-annex emu-annex h2 { font-size: 1em; }
|
||||
emu-intro emu-intro emu-intro emu-intro h3, emu-clause emu-clause emu-clause emu-clause h3, emu-annex emu-annex emu-annex emu-annex h3 { font-size: 0.9em; }
|
||||
emu-intro emu-intro emu-intro emu-intro emu-intro h1, emu-clause emu-clause emu-clause emu-clause emu-clause h1, emu-annex emu-annex emu-annex emu-annex emu-annex h1 { font-size: 1em; }
|
||||
emu-intro emu-intro emu-intro emu-intro emu-intro h2, emu-clause emu-clause emu-clause emu-clause emu-clause h2, emu-annex emu-annex emu-annex emu-annex emu-annex h2 { font-size: 0.9em; }
|
||||
emu-intro emu-intro emu-intro emu-intro emu-intro emu-intro h1, emu-clause emu-clause emu-clause emu-clause emu-clause emu-clause h1, emu-annex emu-annex emu-annex emu-annex emu-annex emu-annex h1 { font-size: 0.9em }
|
||||
|
||||
emu-clause, emu-intro, emu-annex {
|
||||
display: block;
|
||||
}
|
||||
|
||||
/* Figures and tables */
|
||||
figure { display: block; margin: 1em 0 3em 0; }
|
||||
figure object { display: block; margin: 0 auto; }
|
||||
figure table.real-table { margin: 0 auto; }
|
||||
figure figcaption {
|
||||
display: block;
|
||||
color: #555555;
|
||||
font-weight: bold;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
emu-table table {
|
||||
margin: 0 auto;
|
||||
}
|
||||
|
||||
emu-table table, table.real-table {
|
||||
border-collapse: collapse;
|
||||
}
|
||||
|
||||
emu-table td, emu-table th, table.real-table td, table.real-table th {
|
||||
border: 1px solid black;
|
||||
padding: 0.4em;
|
||||
vertical-align: baseline;
|
||||
}
|
||||
emu-table th, emu-table thead td, table.real-table th {
|
||||
background-color: #eeeeee;
|
||||
}
|
||||
|
||||
/* Note: the left content edges of table.lightweight-table >tbody >tr >td
|
||||
and div.display line up. */
|
||||
table.lightweight-table {
|
||||
border-collapse: collapse;
|
||||
margin: 0 0 0 1.5em;
|
||||
}
|
||||
table.lightweight-table td, table.lightweight-table th {
|
||||
border: none;
|
||||
padding: 0 0.5em;
|
||||
vertical-align: baseline;
|
||||
}
|
||||
|
||||
/* diff styles */
|
||||
ins {
|
||||
background-color: #e0f8e0;
|
||||
text-decoration: none;
|
||||
border-bottom: 1px solid #396;
|
||||
}
|
||||
|
||||
del {
|
||||
background-color: #fee;
|
||||
}
|
||||
|
||||
ins.block, del.block,
|
||||
emu-production > ins, emu-production > del,
|
||||
emu-grammar > ins, emu-grammar > del {
|
||||
display: block;
|
||||
}
|
||||
emu-rhs > ins, emu-rhs > del {
|
||||
display: inline;
|
||||
}
|
||||
|
||||
tr.ins > td > ins {
|
||||
border-bottom: none;
|
||||
}
|
||||
|
||||
tr.ins > td {
|
||||
background-color: #e0f8e0;
|
||||
}
|
||||
|
||||
tr.del > td {
|
||||
background-color: #fee;
|
||||
}
|
||||
|
||||
/* Menu Styles */
|
||||
#menu-toggle {
|
||||
font-size: 2em;
|
||||
|
||||
position: fixed;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 1.5em;
|
||||
height: 1.5em;
|
||||
z-index: 3;
|
||||
visibility: hidden;
|
||||
color: #1567a2;
|
||||
background-color: #fff;
|
||||
|
||||
line-height: 1.5em;
|
||||
text-align: center;
|
||||
-webkit-touch-callout: none;
|
||||
-webkit-user-select: none;
|
||||
-khtml-user-select: none;
|
||||
-moz-user-select: none;
|
||||
-ms-user-select: none;
|
||||
user-select: none;;
|
||||
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
#menu {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
width: 33%; height: 100vh;
|
||||
max-width: 500px;
|
||||
box-sizing: border-box;
|
||||
background-color: #ddd;
|
||||
overflow: hidden;
|
||||
transition: opacity 0.1s linear;
|
||||
padding: 0 5px;
|
||||
position: fixed;
|
||||
left: 0; top: 0;
|
||||
border-right: 2px solid #bbb;
|
||||
|
||||
z-index: 2;
|
||||
}
|
||||
|
||||
#menu-spacer {
|
||||
flex-basis: 33%;
|
||||
max-width: 500px;
|
||||
flex-grow: 0;
|
||||
flex-shrink: 0;
|
||||
}
|
||||
|
||||
#menu a {
|
||||
color: #1567a2;
|
||||
}
|
||||
|
||||
#menu.active {
|
||||
display: flex;
|
||||
opacity: 1;
|
||||
z-index: 2;
|
||||
}
|
||||
|
||||
#menu-pins {
|
||||
flex-grow: 1;
|
||||
display: none;
|
||||
}
|
||||
|
||||
#menu-pins.active {
|
||||
display: block;
|
||||
}
|
||||
|
||||
#menu-pins-list {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
counter-reset: pins-counter;
|
||||
}
|
||||
|
||||
#menu-pins-list > li:before {
|
||||
content: counter(pins-counter);
|
||||
counter-increment: pins-counter;
|
||||
display: inline-block;
|
||||
width: 25px;
|
||||
text-align: center;
|
||||
border: 1px solid #bbb;
|
||||
padding: 2px;
|
||||
margin: 4px;
|
||||
box-sizing: border-box;
|
||||
line-height: 1em;
|
||||
background-color: #ccc;
|
||||
border-radius: 4px;
|
||||
}
|
||||
#menu-toc > ol {
|
||||
padding: 0;
|
||||
flex-grow: 1;
|
||||
}
|
||||
|
||||
#menu-toc > ol li {
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
#menu-toc > ol , #menu-toc > ol ol {
|
||||
list-style-type: none;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
#menu-toc > ol ol {
|
||||
padding-left: 0.75em;
|
||||
}
|
||||
|
||||
#menu-toc li {
|
||||
text-overflow: ellipsis;
|
||||
overflow: hidden;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
#menu-toc .item-toggle {
|
||||
display: inline-block;
|
||||
transform: rotate(-45deg) translate(-5px, -5px);
|
||||
transition: transform 0.1s ease;
|
||||
text-align: center;
|
||||
width: 20px;
|
||||
|
||||
color: #aab;
|
||||
|
||||
-webkit-touch-callout: none;
|
||||
-webkit-user-select: none;
|
||||
-khtml-user-select: none;
|
||||
-moz-user-select: none;
|
||||
-ms-user-select: none;
|
||||
user-select: none;;
|
||||
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
#menu-toc .item-toggle-none {
|
||||
display: inline-block;
|
||||
width: 20px;
|
||||
}
|
||||
|
||||
#menu-toc li.active > .item-toggle {
|
||||
transform: rotate(45deg) translate(-5px, -5px);
|
||||
}
|
||||
|
||||
#menu-toc li > ol {
|
||||
display: none;
|
||||
}
|
||||
|
||||
#menu-toc li.active > ol {
|
||||
display: block;
|
||||
}
|
||||
|
||||
#menu-toc li.revealed > a {
|
||||
background-color: #bbb;
|
||||
font-weight: bold;
|
||||
/*
|
||||
background-color: #222;
|
||||
color: #c6d8e4;
|
||||
*/
|
||||
}
|
||||
|
||||
#menu-toc li.revealed-leaf> a {
|
||||
color: #206ca7;
|
||||
/*
|
||||
background-color: #222;
|
||||
color: #c6d8e4;
|
||||
*/
|
||||
}
|
||||
|
||||
#menu-toc li.revealed > .item-toggle {
|
||||
transform: rotate(45deg) translate(-5px, -5px);
|
||||
}
|
||||
|
||||
#menu-toc li.revealed > ol {
|
||||
display: block;
|
||||
}
|
||||
|
||||
#menu-toc li > a {
|
||||
padding: 2px 5px;
|
||||
}
|
||||
|
||||
#menu > * {
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
|
||||
.menu-pane-header {
|
||||
padding: 0 5px;
|
||||
text-transform: uppercase;
|
||||
background-color: #aaa;
|
||||
color: #335;
|
||||
font-weight: bold;
|
||||
letter-spacing: 2px;
|
||||
flex-grow: 0;
|
||||
flex-shrink: 0;
|
||||
font-size: 0.8em;
|
||||
}
|
||||
|
||||
#menu-toc {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
width: 100%;
|
||||
overflow: hidden;
|
||||
flex-grow: 1;
|
||||
}
|
||||
|
||||
#menu-toc ol.toc {
|
||||
overflow-x: hidden;
|
||||
overflow-y: auto;
|
||||
}
|
||||
|
||||
#menu-search {
|
||||
position: relative;
|
||||
flex-grow: 0;
|
||||
flex-shrink: 0;
|
||||
width: 100%;
|
||||
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
|
||||
max-height: 300px;
|
||||
}
|
||||
|
||||
#menu-trace-list {
|
||||
display: none;
|
||||
}
|
||||
|
||||
#menu-search-box {
|
||||
box-sizing: border-box;
|
||||
display: block;
|
||||
width: 100%;
|
||||
margin: 5px 0 0 0;
|
||||
font-size: 1em;
|
||||
padding: 2px;
|
||||
background-color: #bbb;
|
||||
border: 1px solid #999;
|
||||
}
|
||||
|
||||
#menu-search-results {
|
||||
overflow-x: hidden;
|
||||
overflow-y: auto;
|
||||
}
|
||||
|
||||
li.menu-search-result-clause:before {
|
||||
content: 'clause';
|
||||
width: 40px;
|
||||
display: inline-block;
|
||||
text-align: right;
|
||||
padding-right: 1ex;
|
||||
color: #666;
|
||||
font-size: 75%;
|
||||
}
|
||||
li.menu-search-result-op:before {
|
||||
content: 'op';
|
||||
width: 40px;
|
||||
display: inline-block;
|
||||
text-align: right;
|
||||
padding-right: 1ex;
|
||||
color: #666;
|
||||
font-size: 75%;
|
||||
}
|
||||
|
||||
li.menu-search-result-prod:before {
|
||||
content: 'prod';
|
||||
width: 40px;
|
||||
display: inline-block;
|
||||
text-align: right;
|
||||
padding-right: 1ex;
|
||||
color: #666;
|
||||
font-size: 75%
|
||||
}
|
||||
|
||||
|
||||
li.menu-search-result-term:before {
|
||||
content: 'term';
|
||||
width: 40px;
|
||||
display: inline-block;
|
||||
text-align: right;
|
||||
padding-right: 1ex;
|
||||
color: #666;
|
||||
font-size: 75%
|
||||
}
|
||||
|
||||
#menu-search-results ul {
|
||||
padding: 0 5px;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
#menu-search-results li {
|
||||
white-space: nowrap;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
|
||||
|
||||
#menu-trace-list {
|
||||
counter-reset: item;
|
||||
margin: 0 0 0 20px;
|
||||
padding: 0;
|
||||
}
|
||||
#menu-trace-list li {
|
||||
display: block;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
#menu-trace-list li .secnum:after {
|
||||
content: " ";
|
||||
}
|
||||
#menu-trace-list li:before {
|
||||
content: counter(item) " ";
|
||||
background-color: #222;
|
||||
counter-increment: item;
|
||||
color: #999;
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
line-height: 20px;
|
||||
display: inline-block;
|
||||
text-align: center;
|
||||
margin: 2px 4px 2px 0;
|
||||
}
|
||||
|
||||
@media (max-width: 1000px) {
|
||||
body {
|
||||
margin: 0;
|
||||
display: block;
|
||||
}
|
||||
|
||||
#menu {
|
||||
display: none;
|
||||
padding-top: 3em;
|
||||
width: 450px;
|
||||
}
|
||||
|
||||
#menu.active {
|
||||
position: fixed;
|
||||
height: 100%;
|
||||
left: 0;
|
||||
top: 0;
|
||||
right: 300px;
|
||||
}
|
||||
|
||||
#menu-toggle {
|
||||
visibility: visible;
|
||||
}
|
||||
|
||||
#spec-container {
|
||||
padding: 0 5px;
|
||||
}
|
||||
|
||||
#references-pane-spacer {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
@media only screen and (max-width: 800px) {
|
||||
#menu {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
h1 .secnum:empty {
|
||||
margin: 0; padding: 0;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/* Toolbox */
|
||||
.toolbox {
|
||||
position: absolute;
|
||||
background: #ddd;
|
||||
border: 1px solid #aaa;
|
||||
display: none;
|
||||
color: #eee;
|
||||
padding: 5px;
|
||||
border-radius: 3px;
|
||||
}
|
||||
|
||||
.toolbox.active {
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.toolbox a {
|
||||
text-decoration: none;
|
||||
padding: 0 5px;
|
||||
}
|
||||
|
||||
.toolbox a:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
.toolbox:after, .toolbox:before {
|
||||
top: 100%;
|
||||
left: 15px;
|
||||
border: solid transparent;
|
||||
content: " ";
|
||||
height: 0;
|
||||
width: 0;
|
||||
position: absolute;
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
.toolbox:after {
|
||||
border-color: rgba(0, 0, 0, 0);
|
||||
border-top-color: #ddd;
|
||||
border-width: 10px;
|
||||
margin-left: -10px;
|
||||
}
|
||||
.toolbox:before {
|
||||
border-color: rgba(204, 204, 204, 0);
|
||||
border-top-color: #aaa;
|
||||
border-width: 12px;
|
||||
margin-left: -12px;
|
||||
}
|
||||
|
||||
#references-pane-container {
|
||||
position: fixed;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
height: 250px;
|
||||
display: none;
|
||||
background-color: #ddd;
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
#references-pane-table-container {
|
||||
overflow-x: hidden;
|
||||
overflow-y: auto;
|
||||
}
|
||||
|
||||
#references-pane-spacer {
|
||||
flex-basis: 33%;
|
||||
max-width: 500px;
|
||||
}
|
||||
|
||||
#references-pane {
|
||||
flex-grow: 1;
|
||||
overflow: hidden;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
#references-pane-container.active {
|
||||
display: flex;
|
||||
}
|
||||
|
||||
#references-pane-close:after {
|
||||
content: '✖';
|
||||
float: right;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
#references-pane table tr td:first-child {
|
||||
text-align: right;
|
||||
padding-right: 5px;
|
||||
}
|
||||
|
||||
@media print {
|
||||
#menu-toggle {
|
||||
display: none;
|
||||
}
|
||||
}
|
897
my-app/node_modules/reflect-metadata/docs/ecmarkup.js
generated
vendored
Executable file
897
my-app/node_modules/reflect-metadata/docs/ecmarkup.js
generated
vendored
Executable file
|
@ -0,0 +1,897 @@
|
|||
"use strict";
|
||||
|
||||
function Search(menu) {
|
||||
this.menu = menu;
|
||||
this.$search = document.getElementById('menu-search');
|
||||
this.$searchBox = document.getElementById('menu-search-box');
|
||||
this.$searchResults = document.getElementById('menu-search-results');
|
||||
|
||||
this.loadBiblio();
|
||||
|
||||
document.addEventListener('keydown', this.documentKeydown.bind(this));
|
||||
|
||||
this.$searchBox.addEventListener('keydown', debounce(this.searchBoxKeydown.bind(this), { stopPropagation: true }));
|
||||
this.$searchBox.addEventListener('keyup', debounce(this.searchBoxKeyup.bind(this), { stopPropagation: true }));
|
||||
|
||||
// Perform an initial search if the box is not empty.
|
||||
if (this.$searchBox.value) {
|
||||
this.search(this.$searchBox.value);
|
||||
}
|
||||
}
|
||||
|
||||
Search.prototype.loadBiblio = function () {
|
||||
var $biblio = document.getElementById('menu-search-biblio');
|
||||
if (!$biblio) {
|
||||
this.biblio = [];
|
||||
} else {
|
||||
this.biblio = JSON.parse($biblio.textContent);
|
||||
this.biblio.clauses = this.biblio.filter(function (e) { return e.type === 'clause' });
|
||||
this.biblio.byId = this.biblio.reduce(function (map, entry) {
|
||||
map[entry.id] = entry;
|
||||
return map;
|
||||
}, {});
|
||||
}
|
||||
}
|
||||
|
||||
Search.prototype.documentKeydown = function (e) {
|
||||
if (e.keyCode === 191) {
|
||||
e.preventDefault();
|
||||
e.stopPropagation();
|
||||
this.triggerSearch();
|
||||
}
|
||||
}
|
||||
|
||||
Search.prototype.searchBoxKeydown = function (e) {
|
||||
e.stopPropagation();
|
||||
e.preventDefault();
|
||||
if (e.keyCode === 191 && e.target.value.length === 0) {
|
||||
e.preventDefault();
|
||||
} else if (e.keyCode === 13) {
|
||||
e.preventDefault();
|
||||
this.selectResult();
|
||||
}
|
||||
}
|
||||
|
||||
Search.prototype.searchBoxKeyup = function (e) {
|
||||
if (e.keyCode === 13 || e.keyCode === 9) {
|
||||
return;
|
||||
}
|
||||
|
||||
this.search(e.target.value);
|
||||
}
|
||||
|
||||
|
||||
Search.prototype.triggerSearch = function (e) {
|
||||
if (this.menu.isVisible()) {
|
||||
this._closeAfterSearch = false;
|
||||
} else {
|
||||
this._closeAfterSearch = true;
|
||||
this.menu.show();
|
||||
}
|
||||
|
||||
this.$searchBox.focus();
|
||||
this.$searchBox.select();
|
||||
}
|
||||
// bit 12 - Set if the result starts with searchString
|
||||
// bits 8-11: 8 - number of chunks multiplied by 2 if cases match, otherwise 1.
|
||||
// bits 1-7: 127 - length of the entry
|
||||
// General scheme: prefer case sensitive matches with fewer chunks, and otherwise
|
||||
// prefer shorter matches.
|
||||
function relevance(result, searchString) {
|
||||
var relevance = 0;
|
||||
|
||||
relevance = Math.max(0, 8 - result.match.chunks) << 7;
|
||||
|
||||
if (result.match.caseMatch) {
|
||||
relevance *= 2;
|
||||
}
|
||||
|
||||
if (result.match.prefix) {
|
||||
relevance += 2048
|
||||
}
|
||||
|
||||
relevance += Math.max(0, 255 - result.entry.key.length);
|
||||
|
||||
return relevance;
|
||||
}
|
||||
|
||||
Search.prototype.search = function (searchString) {
|
||||
if (searchString === '') {
|
||||
this.displayResults([]);
|
||||
this.hideSearch();
|
||||
return;
|
||||
} else {
|
||||
this.showSearch();
|
||||
}
|
||||
|
||||
if (searchString.length === 1) {
|
||||
this.displayResults([]);
|
||||
return;
|
||||
}
|
||||
|
||||
var results;
|
||||
|
||||
if (/^[\d\.]*$/.test(searchString)) {
|
||||
results = this.biblio.clauses.filter(function (clause) {
|
||||
return clause.number.substring(0, searchString.length) === searchString;
|
||||
}).map(function (clause) {
|
||||
return { entry: clause };
|
||||
});
|
||||
} else {
|
||||
results = [];
|
||||
|
||||
for (var i = 0; i < this.biblio.length; i++) {
|
||||
var entry = this.biblio[i];
|
||||
if (!entry.key) {
|
||||
// biblio entries without a key aren't searchable
|
||||
continue;
|
||||
}
|
||||
|
||||
var match = fuzzysearch(searchString, entry.key);
|
||||
if (match) {
|
||||
results.push({ entry: entry, match: match });
|
||||
}
|
||||
}
|
||||
|
||||
results.forEach(function (result) {
|
||||
result.relevance = relevance(result, searchString);
|
||||
});
|
||||
|
||||
results = results.sort(function (a, b) { return b.relevance - a.relevance });
|
||||
|
||||
}
|
||||
|
||||
if (results.length > 50) {
|
||||
results = results.slice(0, 50);
|
||||
}
|
||||
|
||||
this.displayResults(results);
|
||||
}
|
||||
Search.prototype.hideSearch = function () {
|
||||
this.$search.classList.remove('active');
|
||||
}
|
||||
|
||||
Search.prototype.showSearch = function () {
|
||||
this.$search.classList.add('active');
|
||||
}
|
||||
|
||||
Search.prototype.selectResult = function () {
|
||||
var $first = this.$searchResults.querySelector('li:first-child a');
|
||||
|
||||
if ($first) {
|
||||
document.location = $first.getAttribute('href');
|
||||
}
|
||||
|
||||
this.$searchBox.value = '';
|
||||
this.$searchBox.blur();
|
||||
this.displayResults([]);
|
||||
this.hideSearch();
|
||||
|
||||
if (this._closeAfterSearch) {
|
||||
this.menu.hide();
|
||||
}
|
||||
}
|
||||
|
||||
Search.prototype.displayResults = function (results) {
|
||||
if (results.length > 0) {
|
||||
this.$searchResults.classList.remove('no-results');
|
||||
|
||||
var html = '<ul>';
|
||||
|
||||
results.forEach(function (result) {
|
||||
var entry = result.entry;
|
||||
var id = entry.id;
|
||||
var cssClass = '';
|
||||
var text = '';
|
||||
|
||||
if (entry.type === 'clause') {
|
||||
var number = entry.number ? entry.number + ' ' : '';
|
||||
text = number + entry.key;
|
||||
cssClass = 'clause';
|
||||
id = entry.id;
|
||||
} else if (entry.type === 'production') {
|
||||
text = entry.key;
|
||||
cssClass = 'prod';
|
||||
id = entry.id;
|
||||
} else if (entry.type === 'op') {
|
||||
text = entry.key;
|
||||
cssClass = 'op';
|
||||
id = entry.id || entry.refId;
|
||||
} else if (entry.type === 'term') {
|
||||
text = entry.key;
|
||||
cssClass = 'term';
|
||||
id = entry.id || entry.refId;
|
||||
}
|
||||
|
||||
if (text) {
|
||||
html += '<li class=menu-search-result-' + cssClass + '><a href="#' + id + '">' + text + '</a></li>';
|
||||
}
|
||||
});
|
||||
|
||||
html += '</ul>'
|
||||
|
||||
this.$searchResults.innerHTML = html;
|
||||
} else {
|
||||
this.$searchResults.innerHTML = '';
|
||||
this.$searchResults.classList.add('no-results');
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function Menu() {
|
||||
this.$toggle = document.getElementById('menu-toggle');
|
||||
this.$menu = document.getElementById('menu');
|
||||
this.$toc = document.querySelector('menu-toc > ol');
|
||||
this.$pins = document.querySelector('#menu-pins');
|
||||
this.$pinList = document.getElementById('menu-pins-list');
|
||||
this.$toc = document.querySelector('#menu-toc > ol');
|
||||
this.$specContainer = document.getElementById('spec-container');
|
||||
this.search = new Search(this);
|
||||
|
||||
this._pinnedIds = {};
|
||||
this.loadPinEntries();
|
||||
|
||||
// toggle menu
|
||||
this.$toggle.addEventListener('click', this.toggle.bind(this));
|
||||
|
||||
// keydown events for pinned clauses
|
||||
document.addEventListener('keydown', this.documentKeydown.bind(this));
|
||||
|
||||
// toc expansion
|
||||
var tocItems = this.$menu.querySelectorAll('#menu-toc li');
|
||||
for (var i = 0; i < tocItems.length; i++) {
|
||||
var $item = tocItems[i];
|
||||
$item.addEventListener('click', function($item, event) {
|
||||
$item.classList.toggle('active');
|
||||
event.stopPropagation();
|
||||
}.bind(null, $item));
|
||||
}
|
||||
|
||||
// close toc on toc item selection
|
||||
var tocLinks = this.$menu.querySelectorAll('#menu-toc li > a');
|
||||
for (var i = 0; i < tocLinks.length; i++) {
|
||||
var $link = tocLinks[i];
|
||||
$link.addEventListener('click', function(event) {
|
||||
this.toggle();
|
||||
event.stopPropagation();
|
||||
}.bind(this));
|
||||
}
|
||||
|
||||
// update active clause on scroll
|
||||
window.addEventListener('scroll', debounce(this.updateActiveClause.bind(this)));
|
||||
this.updateActiveClause();
|
||||
|
||||
// prevent menu scrolling from scrolling the body
|
||||
this.$toc.addEventListener('wheel', function (e) {
|
||||
var target = e.currentTarget;
|
||||
var offTop = e.deltaY < 0 && target.scrollTop === 0;
|
||||
if (offTop) {
|
||||
e.preventDefault();
|
||||
}
|
||||
var offBottom = e.deltaY > 0
|
||||
&& target.offsetHeight + target.scrollTop >= target.scrollHeight;
|
||||
|
||||
if (offBottom) {
|
||||
e.preventDefault();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
Menu.prototype.documentKeydown = function (e) {
|
||||
e.stopPropagation();
|
||||
if (e.keyCode === 80) {
|
||||
this.togglePinEntry();
|
||||
} else if (e.keyCode > 48 && e.keyCode < 58) {
|
||||
this.selectPin(e.keyCode - 49);
|
||||
}
|
||||
}
|
||||
|
||||
Menu.prototype.updateActiveClause = function () {
|
||||
this.setActiveClause(findActiveClause(this.$specContainer))
|
||||
}
|
||||
|
||||
Menu.prototype.setActiveClause = function (clause) {
|
||||
this.$activeClause = clause;
|
||||
this.revealInToc(this.$activeClause);
|
||||
}
|
||||
|
||||
Menu.prototype.revealInToc = function (path) {
|
||||
var current = this.$toc.querySelectorAll('li.revealed');
|
||||
for (var i = 0; i < current.length; i++) {
|
||||
current[i].classList.remove('revealed');
|
||||
current[i].classList.remove('revealed-leaf');
|
||||
}
|
||||
|
||||
var current = this.$toc;
|
||||
var index = 0;
|
||||
while (index < path.length) {
|
||||
var children = current.children;
|
||||
for (var i = 0; i < children.length; i++) {
|
||||
if ('#' + path[index].id === children[i].children[1].getAttribute('href') ) {
|
||||
children[i].classList.add('revealed');
|
||||
if (index === path.length - 1) {
|
||||
children[i].classList.add('revealed-leaf');
|
||||
var rect = children[i].getBoundingClientRect();
|
||||
// this.$toc.getBoundingClientRect().top;
|
||||
var tocRect = this.$toc.getBoundingClientRect();
|
||||
if (rect.top + 10 > tocRect.bottom) {
|
||||
this.$toc.scrollTop = this.$toc.scrollTop + (rect.top - tocRect.bottom) + (rect.bottom - rect.top);
|
||||
} else if (rect.top < tocRect.top) {
|
||||
this.$toc.scrollTop = this.$toc.scrollTop - (tocRect.top - rect.top);
|
||||
}
|
||||
}
|
||||
current = children[i].querySelector('ol');
|
||||
index++;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
function findActiveClause(root, path) {
|
||||
var clauses = new ClauseWalker(root);
|
||||
var $clause;
|
||||
var path = path || [];
|
||||
|
||||
while ($clause = clauses.nextNode()) {
|
||||
var rect = $clause.getBoundingClientRect();
|
||||
var $header = $clause.querySelector("h1");
|
||||
var marginTop = parseInt(getComputedStyle($header)["margin-top"]);
|
||||
|
||||
if ((rect.top - marginTop) <= 0 && rect.bottom > 0) {
|
||||
return findActiveClause($clause, path.concat($clause)) || path;
|
||||
}
|
||||
}
|
||||
|
||||
return path;
|
||||
}
|
||||
|
||||
function ClauseWalker(root) {
|
||||
var previous;
|
||||
var treeWalker = document.createTreeWalker(
|
||||
root,
|
||||
NodeFilter.SHOW_ELEMENT,
|
||||
{
|
||||
acceptNode: function (node) {
|
||||
if (previous === node.parentNode) {
|
||||
return NodeFilter.FILTER_REJECT;
|
||||
} else {
|
||||
previous = node;
|
||||
}
|
||||
if (node.nodeName === 'EMU-CLAUSE' || node.nodeName === 'EMU-INTRO' || node.nodeName === 'EMU-ANNEX') {
|
||||
return NodeFilter.FILTER_ACCEPT;
|
||||
} else {
|
||||
return NodeFilter.FILTER_SKIP;
|
||||
}
|
||||
}
|
||||
},
|
||||
false
|
||||
);
|
||||
|
||||
return treeWalker;
|
||||
}
|
||||
|
||||
Menu.prototype.toggle = function () {
|
||||
this.$menu.classList.toggle('active');
|
||||
}
|
||||
|
||||
Menu.prototype.show = function () {
|
||||
this.$menu.classList.add('active');
|
||||
}
|
||||
|
||||
Menu.prototype.hide = function () {
|
||||
this.$menu.classList.remove('active');
|
||||
}
|
||||
|
||||
Menu.prototype.isVisible = function() {
|
||||
return this.$menu.classList.contains('active');
|
||||
}
|
||||
|
||||
Menu.prototype.showPins = function () {
|
||||
this.$pins.classList.add('active');
|
||||
}
|
||||
|
||||
Menu.prototype.hidePins = function () {
|
||||
this.$pins.classList.remove('active');
|
||||
}
|
||||
|
||||
Menu.prototype.addPinEntry = function (id) {
|
||||
var entry = this.search.biblio.byId[id];
|
||||
if (!entry) {
|
||||
// id was deleted after pin (or something) so remove it
|
||||
delete this._pinnedIds[id];
|
||||
this.persistPinEntries();
|
||||
return;
|
||||
}
|
||||
|
||||
if (entry.type === 'clause') {
|
||||
var prefix;
|
||||
if (entry.number) {
|
||||
prefix = entry.number + ' ';
|
||||
} else {
|
||||
prefix = '';
|
||||
}
|
||||
this.$pinList.innerHTML += '<li><a href="#' + entry.id + '">' + prefix + entry.titleHTML + '</a></li>';
|
||||
} else {
|
||||
this.$pinList.innerHTML += '<li><a href="#' + entry.id + '">' + entry.key + '</a></li>';
|
||||
}
|
||||
|
||||
if (Object.keys(this._pinnedIds).length === 0) {
|
||||
this.showPins();
|
||||
}
|
||||
this._pinnedIds[id] = true;
|
||||
this.persistPinEntries();
|
||||
}
|
||||
|
||||
Menu.prototype.removePinEntry = function (id) {
|
||||
var item = this.$pinList.querySelector('a[href="#' + id + '"]').parentNode;
|
||||
this.$pinList.removeChild(item);
|
||||
delete this._pinnedIds[id];
|
||||
if (Object.keys(this._pinnedIds).length === 0) {
|
||||
this.hidePins();
|
||||
}
|
||||
|
||||
this.persistPinEntries();
|
||||
}
|
||||
|
||||
Menu.prototype.persistPinEntries = function () {
|
||||
try {
|
||||
if (!window.localStorage) return;
|
||||
} catch (e) {
|
||||
return;
|
||||
}
|
||||
|
||||
localStorage.pinEntries = JSON.stringify(Object.keys(this._pinnedIds));
|
||||
}
|
||||
|
||||
Menu.prototype.loadPinEntries = function () {
|
||||
try {
|
||||
if (!window.localStorage) return;
|
||||
} catch (e) {
|
||||
return;
|
||||
}
|
||||
|
||||
var pinsString = window.localStorage.pinEntries;
|
||||
if (!pinsString) return;
|
||||
var pins = JSON.parse(pinsString);
|
||||
for(var i = 0; i < pins.length; i++) {
|
||||
this.addPinEntry(pins[i]);
|
||||
}
|
||||
}
|
||||
|
||||
Menu.prototype.togglePinEntry = function (id) {
|
||||
if (!id) {
|
||||
id = this.$activeClause[this.$activeClause.length - 1].id;
|
||||
}
|
||||
|
||||
if (this._pinnedIds[id]) {
|
||||
this.removePinEntry(id);
|
||||
} else {
|
||||
this.addPinEntry(id);
|
||||
}
|
||||
}
|
||||
|
||||
Menu.prototype.selectPin = function (num) {
|
||||
document.location = this.$pinList.children[num].children[0].href;
|
||||
}
|
||||
|
||||
var menu;
|
||||
function init() {
|
||||
menu = new Menu();
|
||||
var $container = document.getElementById('spec-container');
|
||||
$container.addEventListener('mouseover', debounce(function (e) {
|
||||
Toolbox.activateIfMouseOver(e);
|
||||
}));
|
||||
document.addEventListener('keydown', debounce(function (e) {
|
||||
if (e.code === "Escape" && Toolbox.active) {
|
||||
Toolbox.deactivate();
|
||||
}
|
||||
}));
|
||||
}
|
||||
|
||||
document.addEventListener('DOMContentLoaded', init);
|
||||
|
||||
function debounce(fn, opts) {
|
||||
opts = opts || {};
|
||||
var timeout;
|
||||
return function(e) {
|
||||
if (opts.stopPropagation) {
|
||||
e.stopPropagation();
|
||||
}
|
||||
var args = arguments;
|
||||
if (timeout) {
|
||||
clearTimeout(timeout);
|
||||
}
|
||||
timeout = setTimeout(function() {
|
||||
timeout = null;
|
||||
fn.apply(this, args);
|
||||
}.bind(this), 150);
|
||||
}
|
||||
}
|
||||
|
||||
var CLAUSE_NODES = ['EMU-CLAUSE', 'EMU-INTRO', 'EMU-ANNEX'];
|
||||
function findLocalReferences ($elem) {
|
||||
var name = $elem.innerHTML;
|
||||
var references = [];
|
||||
|
||||
var parentClause = $elem.parentNode;
|
||||
while (parentClause && CLAUSE_NODES.indexOf(parentClause.nodeName) === -1) {
|
||||
parentClause = parentClause.parentNode;
|
||||
}
|
||||
|
||||
if(!parentClause) return;
|
||||
|
||||
var vars = parentClause.querySelectorAll('var');
|
||||
|
||||
for (var i = 0; i < vars.length; i++) {
|
||||
var $var = vars[i];
|
||||
|
||||
if ($var.innerHTML === name) {
|
||||
references.push($var);
|
||||
}
|
||||
}
|
||||
|
||||
return references;
|
||||
}
|
||||
|
||||
function toggleFindLocalReferences($elem) {
|
||||
var references = findLocalReferences($elem);
|
||||
if ($elem.classList.contains('referenced')) {
|
||||
references.forEach(function ($reference) {
|
||||
$reference.classList.remove('referenced');
|
||||
});
|
||||
} else {
|
||||
references.forEach(function ($reference) {
|
||||
$reference.classList.add('referenced');
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
function installFindLocalReferences () {
|
||||
document.addEventListener('click', function (e) {
|
||||
if (e.target.nodeName === 'VAR') {
|
||||
toggleFindLocalReferences(e.target);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
document.addEventListener('DOMContentLoaded', installFindLocalReferences);
|
||||
|
||||
|
||||
|
||||
|
||||
// The following license applies to the fuzzysearch function
|
||||
// The MIT License (MIT)
|
||||
// Copyright © 2015 Nicolas Bevacqua
|
||||
// Copyright © 2016 Brian Terlson
|
||||
// Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||
// this software and associated documentation files (the "Software"), to deal in
|
||||
// the Software without restriction, including without limitation the rights to
|
||||
// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
|
||||
// the Software, and to permit persons to whom the Software is furnished to do so,
|
||||
// subject to the following conditions:
|
||||
|
||||
// The above copyright notice and this permission notice shall be included in all
|
||||
// copies or substantial portions of the Software.
|
||||
|
||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
|
||||
// FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
|
||||
// COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
|
||||
// IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
||||
// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
function fuzzysearch (searchString, haystack, caseInsensitive) {
|
||||
var tlen = haystack.length;
|
||||
var qlen = searchString.length;
|
||||
var chunks = 1;
|
||||
var finding = false;
|
||||
|
||||
if (qlen > tlen) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (qlen === tlen) {
|
||||
if (searchString === haystack) {
|
||||
return { caseMatch: true, chunks: 1, prefix: true };
|
||||
} else if (searchString.toLowerCase() === haystack.toLowerCase()) {
|
||||
return { caseMatch: false, chunks: 1, prefix: true };
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
outer: for (var i = 0, j = 0; i < qlen; i++) {
|
||||
var nch = searchString[i];
|
||||
while (j < tlen) {
|
||||
var targetChar = haystack[j++];
|
||||
if (targetChar === nch) {
|
||||
finding = true;
|
||||
continue outer;
|
||||
}
|
||||
if (finding) {
|
||||
chunks++;
|
||||
finding = false;
|
||||
}
|
||||
}
|
||||
|
||||
if (caseInsensitive) { return false; }
|
||||
|
||||
return fuzzysearch(searchString.toLowerCase(), haystack.toLowerCase(), true);
|
||||
}
|
||||
|
||||
return { caseMatch: !caseInsensitive, chunks: chunks, prefix: j <= qlen };
|
||||
}
|
||||
|
||||
var Toolbox = {
|
||||
init: function () {
|
||||
this.$container = document.createElement('div');
|
||||
this.$container.classList.add('toolbox');
|
||||
this.$permalink = document.createElement('a');
|
||||
this.$permalink.textContent = 'Permalink';
|
||||
this.$pinLink = document.createElement('a');
|
||||
this.$pinLink.textContent = 'Pin';
|
||||
this.$pinLink.setAttribute('href', '#');
|
||||
this.$pinLink.addEventListener('click', function (e) {
|
||||
e.preventDefault();
|
||||
e.stopPropagation();
|
||||
menu.togglePinEntry(this.entry.id);
|
||||
}.bind(this));
|
||||
|
||||
this.$refsLink = document.createElement('a');
|
||||
this.$refsLink.setAttribute('href', '#');
|
||||
this.$refsLink.addEventListener('click', function (e) {
|
||||
e.preventDefault();
|
||||
e.stopPropagation();
|
||||
referencePane.showReferencesFor(this.entry);
|
||||
}.bind(this));
|
||||
this.$container.appendChild(this.$permalink);
|
||||
this.$container.appendChild(this.$pinLink);
|
||||
this.$container.appendChild(this.$refsLink);
|
||||
document.body.appendChild(this.$container);
|
||||
},
|
||||
|
||||
activate: function (el, entry, target) {
|
||||
if (el === this._activeEl) return;
|
||||
this.active = true;
|
||||
this.entry = entry;
|
||||
this.$container.classList.add('active');
|
||||
this.top = el.offsetTop - this.$container.offsetHeight - 10;
|
||||
this.left = el.offsetLeft;
|
||||
this.$container.setAttribute('style', 'left: ' + this.left + 'px; top: ' + this.top + 'px');
|
||||
this.updatePermalink();
|
||||
this.updateReferences();
|
||||
this._activeEl = el;
|
||||
if (this.top < document.body.scrollTop && el === target) {
|
||||
// don't scroll unless it's a small thing (< 200px)
|
||||
this.$container.scrollIntoView();
|
||||
}
|
||||
},
|
||||
|
||||
updatePermalink: function () {
|
||||
this.$permalink.setAttribute('href', '#' + this.entry.id);
|
||||
},
|
||||
|
||||
updateReferences: function () {
|
||||
this.$refsLink.textContent = 'References (' + this.entry.referencingIds.length + ')';
|
||||
},
|
||||
|
||||
activateIfMouseOver: function (e) {
|
||||
var ref = this.findReferenceUnder(e.target);
|
||||
if (ref && (!this.active || e.pageY > this._activeEl.offsetTop)) {
|
||||
var entry = menu.search.biblio.byId[ref.id];
|
||||
this.activate(ref.element, entry, e.target);
|
||||
} else if (this.active && ((e.pageY < this.top) || e.pageY > (this._activeEl.offsetTop + this._activeEl.offsetHeight))) {
|
||||
this.deactivate();
|
||||
}
|
||||
},
|
||||
|
||||
findReferenceUnder: function (el) {
|
||||
while (el) {
|
||||
var parent = el.parentNode;
|
||||
if (el.nodeName === 'H1' && parent.nodeName.match(/EMU-CLAUSE|EMU-ANNEX|EMU-INTRO/) && parent.id) {
|
||||
return { element: el, id: parent.id };
|
||||
} else if (el.nodeName.match(/EMU-(?!CLAUSE|XREF|ANNEX|INTRO)|DFN/) &&
|
||||
el.id && el.id[0] !== '_') {
|
||||
if (el.nodeName === 'EMU-FIGURE' || el.nodeName === 'EMU-TABLE' || el.nodeName === 'EMU-EXAMPLE') {
|
||||
// return the figcaption element
|
||||
return { element: el.children[0].children[0], id: el.id };
|
||||
} else if (el.nodeName === 'EMU-PRODUCTION') {
|
||||
// return the LHS non-terminal element
|
||||
return { element: el.children[0], id: el.id };
|
||||
} else {
|
||||
return { element: el, id: el.id };
|
||||
}
|
||||
}
|
||||
el = parent;
|
||||
}
|
||||
},
|
||||
|
||||
deactivate: function () {
|
||||
this.$container.classList.remove('active');
|
||||
this._activeEl = null;
|
||||
this.activeElBounds = null;
|
||||
this.active = false;
|
||||
}
|
||||
}
|
||||
|
||||
var referencePane = {
|
||||
init: function() {
|
||||
this.$container = document.createElement('div');
|
||||
this.$container.setAttribute('id', 'references-pane-container');
|
||||
|
||||
var $spacer = document.createElement('div');
|
||||
$spacer.setAttribute('id', 'references-pane-spacer');
|
||||
|
||||
this.$pane = document.createElement('div');
|
||||
this.$pane.setAttribute('id', 'references-pane');
|
||||
|
||||
this.$container.appendChild($spacer);
|
||||
this.$container.appendChild(this.$pane);
|
||||
|
||||
this.$header = document.createElement('div');
|
||||
this.$header.classList.add('menu-pane-header');
|
||||
this.$header.textContent = 'References to ';
|
||||
this.$headerRefId = document.createElement('a');
|
||||
this.$header.appendChild(this.$headerRefId);
|
||||
this.$closeButton = document.createElement('span');
|
||||
this.$closeButton.setAttribute('id', 'references-pane-close');
|
||||
this.$closeButton.addEventListener('click', function (e) {
|
||||
this.deactivate();
|
||||
}.bind(this));
|
||||
this.$header.appendChild(this.$closeButton);
|
||||
|
||||
this.$pane.appendChild(this.$header);
|
||||
var tableContainer = document.createElement('div');
|
||||
tableContainer.setAttribute('id', 'references-pane-table-container');
|
||||
|
||||
this.$table = document.createElement('table');
|
||||
this.$table.setAttribute('id', 'references-pane-table');
|
||||
|
||||
this.$tableBody = this.$table.createTBody();
|
||||
|
||||
tableContainer.appendChild(this.$table);
|
||||
this.$pane.appendChild(tableContainer);
|
||||
|
||||
menu.$specContainer.appendChild(this.$container);
|
||||
},
|
||||
|
||||
activate: function () {
|
||||
this.$container.classList.add('active');
|
||||
},
|
||||
|
||||
deactivate: function () {
|
||||
this.$container.classList.remove('active');
|
||||
},
|
||||
|
||||
showReferencesFor(entry) {
|
||||
this.activate();
|
||||
var newBody = document.createElement('tbody');
|
||||
var previousId;
|
||||
var previousCell;
|
||||
var dupCount = 0;
|
||||
this.$headerRefId.textContent = '#' + entry.id;
|
||||
this.$headerRefId.setAttribute('href', '#' + entry.id);
|
||||
entry.referencingIds.map(function (id) {
|
||||
var target = document.getElementById(id);
|
||||
var cid = findParentClauseId(target);
|
||||
var clause = menu.search.biblio.byId[cid];
|
||||
return { id: id, clause: clause }
|
||||
}).sort(function (a, b) {
|
||||
return sortByClauseNumber(a.clause, b.clause);
|
||||
}).forEach(function (record, i) {
|
||||
if (previousId === record.clause.id) {
|
||||
previousCell.innerHTML += ' (<a href="#' + record.id + '">' + (dupCount + 2) + '</a>)';
|
||||
dupCount++;
|
||||
} else {
|
||||
var row = newBody.insertRow();
|
||||
var cell = row.insertCell();
|
||||
cell.innerHTML = record.clause.number;
|
||||
cell = row.insertCell();
|
||||
cell.innerHTML = '<a href="#' + record.id + '">' + record.clause.titleHTML + '</a>';
|
||||
previousCell = cell;
|
||||
previousId = record.clause.id;
|
||||
dupCount = 0;
|
||||
}
|
||||
}, this);
|
||||
this.$table.removeChild(this.$tableBody);
|
||||
this.$tableBody = newBody;
|
||||
this.$table.appendChild(this.$tableBody);
|
||||
}
|
||||
}
|
||||
function findParentClauseId(node) {
|
||||
while (node && node.nodeName !== 'EMU-CLAUSE' && node.nodeName !== 'EMU-INTRO' && node.nodeName !== 'EMU-ANNEX') {
|
||||
node = node.parentNode;
|
||||
}
|
||||
if (!node) return null;
|
||||
return node.getAttribute('id');
|
||||
}
|
||||
|
||||
function sortByClauseNumber(c1, c2) {
|
||||
var c1c = c1.number.split('.');
|
||||
var c2c = c2.number.split('.');
|
||||
|
||||
for (var i = 0; i < c1c.length; i++) {
|
||||
if (i >= c2c.length) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
var c1 = c1c[i];
|
||||
var c2 = c2c[i];
|
||||
var c1cn = Number(c1);
|
||||
var c2cn = Number(c2);
|
||||
|
||||
if (Number.isNaN(c1cn) && Number.isNaN(c2cn)) {
|
||||
if (c1 > c2) {
|
||||
return 1;
|
||||
} else if (c1 < c2) {
|
||||
return -1;
|
||||
}
|
||||
} else if (!Number.isNaN(c1cn) && Number.isNaN(c2cn)) {
|
||||
return -1;
|
||||
} else if (Number.isNaN(c1cn) && !Number.isNaN(c2cn)) {
|
||||
return 1;
|
||||
} else if(c1cn > c2cn) {
|
||||
return 1;
|
||||
} else if (c1cn < c2cn) {
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
||||
if (c1c.length === c2c.length) {
|
||||
return 0;
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
document.addEventListener('DOMContentLoaded', function () {
|
||||
Toolbox.init();
|
||||
referencePane.init();
|
||||
})
|
||||
var CLAUSE_NODES = ['EMU-CLAUSE', 'EMU-INTRO', 'EMU-ANNEX'];
|
||||
function findLocalReferences ($elem) {
|
||||
var name = $elem.innerHTML;
|
||||
var references = [];
|
||||
|
||||
var parentClause = $elem.parentNode;
|
||||
while (parentClause && CLAUSE_NODES.indexOf(parentClause.nodeName) === -1) {
|
||||
parentClause = parentClause.parentNode;
|
||||
}
|
||||
|
||||
if(!parentClause) return;
|
||||
|
||||
var vars = parentClause.querySelectorAll('var');
|
||||
|
||||
for (var i = 0; i < vars.length; i++) {
|
||||
var $var = vars[i];
|
||||
|
||||
if ($var.innerHTML === name) {
|
||||
references.push($var);
|
||||
}
|
||||
}
|
||||
|
||||
return references;
|
||||
}
|
||||
|
||||
function toggleFindLocalReferences($elem) {
|
||||
var references = findLocalReferences($elem);
|
||||
if ($elem.classList.contains('referenced')) {
|
||||
references.forEach(function ($reference) {
|
||||
$reference.classList.remove('referenced');
|
||||
});
|
||||
} else {
|
||||
references.forEach(function ($reference) {
|
||||
$reference.classList.add('referenced');
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
function installFindLocalReferences () {
|
||||
document.addEventListener('click', function (e) {
|
||||
if (e.target.nodeName === 'VAR') {
|
||||
toggleFindLocalReferences(e.target);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
document.addEventListener('DOMContentLoaded', installFindLocalReferences);
|
2103
my-app/node_modules/reflect-metadata/docs/index.html
generated
vendored
Executable file
2103
my-app/node_modules/reflect-metadata/docs/index.html
generated
vendored
Executable file
File diff suppressed because one or more lines are too long
1
my-app/node_modules/reflect-metadata/docs/spec.biblio.json
generated
vendored
Executable file
1
my-app/node_modules/reflect-metadata/docs/spec.biblio.json
generated
vendored
Executable file
File diff suppressed because one or more lines are too long
Loading…
Add table
Add a link
Reference in a new issue