diff --git a/.eslintrc b/.eslintrc
index fdacb7f1..4876b92f 100644
--- a/.eslintrc
+++ b/.eslintrc
@@ -9,7 +9,8 @@
"globals": {
"should": true,
"expect": true,
- "sinon": true
+ "sinon": true,
+ "Reflect": true
},
"rules": {
"quotes": [2, "single"],
diff --git a/lib/common/components/StickySidebar/sticky-sidebar.js b/lib/common/components/StickySidebar/sticky-sidebar.js
index ad99a264..4ac1010e 100644
--- a/lib/common/components/StickySidebar/sticky-sidebar.js
+++ b/lib/common/components/StickySidebar/sticky-sidebar.js
@@ -7,6 +7,7 @@ import {BrowserDomAdapter} from 'angular2/platform/browser';
selector: '[sticky-sidebar]',
inputs: ['scrollParent', 'scrollYOffset']
})
+@Reflect.metadata('parameters', [[ElementRef], [BrowserDomAdapter]])
export default class StickySidebar {
constructor(elementRef, dom) {
this.element = elementRef.nativeElement;
@@ -59,5 +60,3 @@ export default class StickySidebar {
this.unbind();
}
}
-
-StickySidebar.parameters = [ [ElementRef], [BrowserDomAdapter] ];
diff --git a/lib/common/components/Tabs/tabs.js b/lib/common/components/Tabs/tabs.js
index 5345f282..c73f3745 100644
--- a/lib/common/components/Tabs/tabs.js
+++ b/lib/common/components/Tabs/tabs.js
@@ -65,16 +65,24 @@ export class Tabs {
})
@View({
template: `
-
+
- `
+ `,
+ styles: [`
+ .tab-wrap {
+ display: none;
+ }
+
+ .tab-wrap.active {
+ display: block;
+ }`
+ ]
})
+@Reflect.metadata('parameters', [ [Tabs] ])
export class Tab {
constructor(tabs) {
this.active = false;
tabs.addTab(this);
}
}
-
-Tab.parameters = [ [ Tabs ] ];
diff --git a/lib/common/styles/_variables.scss b/lib/common/styles/_variables.scss
index 9df2da78..2252ed9a 100644
--- a/lib/common/styles/_variables.scss
+++ b/lib/common/styles/_variables.scss
@@ -15,6 +15,6 @@ $samples-panel-width: 40%;
$sample-panel-headers-color: #8A9094;
$sample-panel-color: #CFD2D3;
-$tree-lines-color: #7D97CE;
+$tree-lines-color: #CDD9F3;//#7D97CE;
$side-menu-mobile-breakpoint: 1000px;
diff --git a/lib/components/JsonSchema/json-schema-common.scss b/lib/components/JsonSchema/json-schema-common.scss
index 7276e414..e3e7ce97 100644
--- a/lib/components/JsonSchema/json-schema-common.scss
+++ b/lib/components/JsonSchema/json-schema-common.scss
@@ -30,6 +30,8 @@ $sub-schema-offset: ($bullet-size/2) + $bullet-margin;
}
.param-name {
+ flex-grow: 0;
+ -ms-flex-grow: 0;
display: inline-block;
font-size: 14px;
padding: $cell-padding 0 $cell-padding 0;
@@ -47,7 +49,9 @@ $sub-schema-offset: ($bullet-size/2) + $bullet-margin;
}
.param-info {
- width: 100%;
+ //width: 100%;
+ flex-grow: 1;
+ -ms-flex-grow: 1;
padding: $cell-padding 0;
box-sizing: border-box;
border-bottom: 1px solid #ccc;
@@ -56,6 +60,7 @@ $sub-schema-offset: ($bullet-size/2) + $bullet-margin;
.param {
display: flex;
+ display: -ms-flexbox;
}
.param-required {
diff --git a/lib/components/JsonSchema/json-schema-lazy.js b/lib/components/JsonSchema/json-schema-lazy.js
index bda6261e..83bd4577 100644
--- a/lib/components/JsonSchema/json-schema-lazy.js
+++ b/lib/components/JsonSchema/json-schema-lazy.js
@@ -2,8 +2,9 @@
import {Component, View, ElementRef} from 'angular2/core';
import {CORE_DIRECTIVES} from 'angular2/common';
-import JsonSchema from './json-schema';
import {DynamicComponentLoader} from 'angular2/src/core/linker/dynamic_component_loader';
+
+import JsonSchema from './json-schema';
import OptionsManager from '../../options';
import SchemaManager from '../../utils/SchemaManager';
@@ -19,6 +20,7 @@ var cache = {};
template: '',
directives: [CORE_DIRECTIVES]
})
+@Reflect.metadata('parameters', [[ElementRef], [DynamicComponentLoader]])
export default class JsonSchemaLazy {
constructor(elementRef, dcl) {
@@ -79,5 +81,3 @@ export default class JsonSchemaLazy {
function insertAfter(newNode, referenceNode) {
referenceNode.parentNode.insertBefore(newNode, referenceNode.nextSibling);
}
-
-JsonSchemaLazy.parameters = [[ElementRef], [DynamicComponentLoader]];
diff --git a/lib/components/JsonSchema/json-schema.js b/lib/components/JsonSchema/json-schema.js
index 5fc7734d..192c64e2 100644
--- a/lib/components/JsonSchema/json-schema.js
+++ b/lib/components/JsonSchema/json-schema.js
@@ -1,8 +1,9 @@
'use strict';
-import {RedocComponent, BaseComponent} from '../base';
-import {Tabs, Tab} from '../../common/components/Tabs/tabs';
import {ElementRef} from 'angular2/core';
+
+import {RedocComponent, BaseComponent, SchemaManager} from '../base';
+import {Tabs, Tab} from '../../common/components/Tabs/tabs';
import JsonPointer from '../../utils/JsonPointer';
@RedocComponent({
@@ -12,6 +13,7 @@ import JsonPointer from '../../utils/JsonPointer';
directives: [JsonSchema, Tabs, Tab],
inputs: ['isArray', 'final']
})
+@Reflect.metadata('parameters', [[SchemaManager], [ElementRef]])
export default class JsonSchema extends BaseComponent {
constructor(schemaMgr, elementRef) {
super(schemaMgr);
@@ -152,4 +154,3 @@ export default class JsonSchema extends BaseComponent {
}
}
}
-JsonSchema.parameters = JsonSchema.parameters.concat([[ElementRef]]);
diff --git a/lib/components/Method/method.js b/lib/components/Method/method.js
index 3ab6f066..fdad9d66 100644
--- a/lib/components/Method/method.js
+++ b/lib/components/Method/method.js
@@ -2,6 +2,7 @@
import {JsonPointer} from '../../utils/JsonPointer';
import {RedocComponent, BaseComponent} from '../base';
+
import ParamsList from '../ParamsList/params-list';
import ResponsesList from '../ResponsesList/responses-list';
import ResponsesSamples from '../ResponsesSamples/responses-samples';
diff --git a/lib/components/Redoc/redoc.js b/lib/components/Redoc/redoc.js
index 827a0b8e..0c81d626 100644
--- a/lib/components/Redoc/redoc.js
+++ b/lib/components/Redoc/redoc.js
@@ -1,5 +1,12 @@
'use strict';
+import {ChangeDetectionStrategy} from 'angular2/core';
+import {ElementRef} from 'angular2/core';
+import {BrowserDomAdapter, bootstrap} from 'angular2/platform/browser';
+import detectScollParent from 'scrollparent';
+
+import {isFunction, isString} from 'angular2/src/facade/lang';
+
import {RedocComponent, BaseComponent} from '../base';
import SchemaManager from '../../utils/SchemaManager';
@@ -11,13 +18,6 @@ import StickySidebar from '../../common/components/StickySidebar/sticky-sidebar'
import OptionsManager from '../../options';
import {redocEvents} from '../../events';
-import {ChangeDetectionStrategy} from 'angular2/core';
-import {ElementRef} from 'angular2/core';
-import {BrowserDomAdapter, bootstrap} from 'angular2/platform/browser';
-import detectScollParent from 'scrollparent';
-
-import {isFunction, isString} from 'angular2/src/facade/lang';
-
let optionNames = new Set(['scrollYOffset', 'disableLazySchemas']);
let dom = new BrowserDomAdapter();
@@ -30,6 +30,7 @@ let dom = new BrowserDomAdapter();
directives: [ApiInfo, ApiLogo, MethodsList, SideMenu, StickySidebar],
changeDetection: ChangeDetectionStrategy.Default
})
+@Reflect.metadata('parameters', [[SchemaManager], [OptionsManager], [ElementRef], [BrowserDomAdapter]])
export default class Redoc extends BaseComponent {
constructor(schemaMgr, optionsMgr, elementRef, dom) {
super(schemaMgr);
@@ -100,6 +101,7 @@ export default class Redoc extends BaseComponent {
25% {transform: translateY(0px)}
50% {transform: translateY(10px)}
75% {transform: translateY(20px)}
+ 100% {transform: translateY(10px)}
}
redoc.loading:before {
@@ -200,4 +202,3 @@ export default class Redoc extends BaseComponent {
}
}
}
-Redoc.parameters = Redoc.parameters.concat([[OptionsManager], [ElementRef], [BrowserDomAdapter]]);
diff --git a/lib/components/RequestSamples/request-samples.js b/lib/components/RequestSamples/request-samples.js
index f193c033..032c0f98 100644
--- a/lib/components/RequestSamples/request-samples.js
+++ b/lib/components/RequestSamples/request-samples.js
@@ -1,12 +1,12 @@
'use strict';
-import {RedocComponent, BaseComponent} from '../base';
+import {ViewChildren, QueryList, ChangeDetectorRef, ChangeDetectionStrategy} from 'angular2/core';
+
+import {RedocComponent, BaseComponent, SchemaManager} from '../base';
import JsonPointer from '../../utils/JsonPointer';
import {Tabs, Tab} from '../../common/components/Tabs/tabs';
import SchemaSample from '../SchemaSample/schema-sample';
import {PrismPipe} from '../../utils/pipes';
-
-import {ViewChildren, QueryList, ChangeDetectorRef, ChangeDetectionStrategy} from 'angular2/core';
import {redocEvents} from '../../events';
@RedocComponent({
@@ -18,6 +18,7 @@ import {redocEvents} from '../../events';
pipes: [PrismPipe],
changeDetection: ChangeDetectionStrategy.OnPush
})
+@Reflect.metadata('parameters', [[SchemaManager], [new ViewChildren(Tabs), QueryList], [ChangeDetectorRef]])
export default class RequestSamples extends BaseComponent {
constructor(schemaMgr, tabs, changeDetector) {
super(schemaMgr);
@@ -46,5 +47,3 @@ export default class RequestSamples extends BaseComponent {
this.data.samples = this.componentSchema['x-code-samples'] || [];
}
}
-
-RequestSamples.parameters = RequestSamples.parameters.concat([ [new ViewChildren(Tabs), QueryList], [ChangeDetectorRef] ]);
diff --git a/lib/components/SchemaSample/schema-sample.js b/lib/components/SchemaSample/schema-sample.js
index 43a014a7..c0555c60 100644
--- a/lib/components/SchemaSample/schema-sample.js
+++ b/lib/components/SchemaSample/schema-sample.js
@@ -1,11 +1,11 @@
'use strict';
-import {RedocComponent, BaseComponent} from '../base';
+import {ElementRef} from 'angular2/core';
import SchemaSampler from 'json-schema-instantiator';
import {JsonFormatter} from '../../utils/JsonFormatterPipe';
-import {ElementRef} from 'angular2/core';
+import {RedocComponent, BaseComponent, SchemaManager} from '../base';
@RedocComponent({
selector: 'schema-sample',
@@ -13,6 +13,7 @@ import {ElementRef} from 'angular2/core';
pipes: [JsonFormatter],
styleUrls: ['./lib/components/SchemaSample/schema-sample.css']
})
+@Reflect.metadata('parameters', [[SchemaManager], [ElementRef]])
export default class SchemaSample extends BaseComponent {
constructor(schemaMgr, elementRef) {
super(schemaMgr);
@@ -54,4 +55,3 @@ export default class SchemaSample extends BaseComponent {
});
}
}
-SchemaSample.parameters = SchemaSample.parameters.concat([[ElementRef]]);
diff --git a/lib/components/SideMenu/side-menu.js b/lib/components/SideMenu/side-menu.js
index fe050c8f..d03c85d5 100644
--- a/lib/components/SideMenu/side-menu.js
+++ b/lib/components/SideMenu/side-menu.js
@@ -1,14 +1,14 @@
'use strict';
-import {RedocComponent, BaseComponent} from '../base';
-import {redocEvents} from '../../events';
-
import {NgZone, ChangeDetectionStrategy, ElementRef, forwardRef} from 'angular2/core';
import Redoc from '../Redoc/redoc';
import {document} from 'angular2/src/facade/browser';
import {BrowserDomAdapter} from 'angular2/platform/browser';
import {global} from 'angular2/src/facade/lang';
+import {RedocComponent, BaseComponent, SchemaManager} from '../base';
+import {redocEvents} from '../../events';
+
const CHANGE = {
NEXT : 1,
BACK : -1,
@@ -27,6 +27,8 @@ const INVIEW_POSITION = {
styleUrls: ['./lib/components/SideMenu/side-menu.css'],
changeDetection: ChangeDetectionStrategy.Default
})
+@Reflect.metadata('parameters', [[SchemaManager], [ElementRef],
+ [BrowserDomAdapter], [NgZone], [forwardRef(() => Redoc)]])
export default class SideMenu extends BaseComponent {
constructor(schemaMgr, elementRef, adapter, zone, redoc) {
super(schemaMgr);
@@ -254,5 +256,5 @@ export default class SideMenu extends BaseComponent {
this.changeActive(CHANGE.INITIAL);
}
}
-SideMenu.parameters = SideMenu.parameters.concat([[ElementRef],
- [BrowserDomAdapter], [NgZone], [forwardRef(() => Redoc)] ]);
+//SideMenu.parameters = SideMenu.parameters.concat([[ElementRef],
+// [BrowserDomAdapter], [NgZone], [forwardRef(() => Redoc)] ]);
diff --git a/lib/components/base.js b/lib/components/base.js
index c27c7049..c8e7146a 100644
--- a/lib/components/base.js
+++ b/lib/components/base.js
@@ -5,6 +5,8 @@ import SchemaManager from '../utils/SchemaManager';
import JsonPointer from '../utils/JsonPointer';
import {MarkedPipe, JsonPointerEscapePipe} from '../utils/pipes';
+export { SchemaManager };
+
// common inputs for all components
let commonInputs = ['pointer']; // json pointer to the schema chunk
@@ -77,6 +79,7 @@ export function RedocComponent(options) {
* Generic Component
* @class
*/
+@Reflect.metadata('parameters', [[SchemaManager]])
export class BaseComponent {
constructor(schemaMgr) {
this.schemaMgr = schemaMgr;
@@ -208,4 +211,3 @@ export class BaseComponent {
*/
destroy() {}
}
-BaseComponent.parameters = [[SchemaManager]];
diff --git a/lib/utils/JsonPointer.js b/lib/utils/JsonPointer.js
index 165bcffd..8dd8fc90 100644
--- a/lib/utils/JsonPointer.js
+++ b/lib/utils/JsonPointer.js
@@ -63,4 +63,6 @@ export class JsonPointer extends JsonPointerLib {
JsonPointerLib._origParse = JsonPointerLib.parse;
JsonPointerLib.parse = JsonPointer.parse;
+
+Object.assign(JsonPointer, JsonPointerLib);
export default JsonPointer;
diff --git a/lib/utils/pipes.js b/lib/utils/pipes.js
index df4bd4e2..32c23fbc 100644
--- a/lib/utils/pipes.js
+++ b/lib/utils/pipes.js
@@ -5,6 +5,7 @@ import {isString, stringify, isBlank} from 'angular2/src/facade/lang';
import {BaseException} from 'angular2/src/facade/exceptions';
import {JsonPointer} from './JsonPointer';
import marked from 'marked';
+
import Prism from 'prismjs';
import 'prismjs/components/prism-actionscript.js';
import 'prismjs/components/prism-c.js';