mirror of
				https://github.com/Redocly/redoc.git
				synced 2025-10-31 07:47:29 +03:00 
			
		
		
		
	Merge branch 'master' into releases
This commit is contained in:
		
						commit
						3bcedb9ad8
					
				|  | @ -43,14 +43,14 @@ gulp.task('inlineTemplates', ['sass'], function() { | ||||||
| 
 | 
 | ||||||
| var JS_DEV_DEPS = [ | var JS_DEV_DEPS = [ | ||||||
|   'lib/utils/browser-update.js', |   'lib/utils/browser-update.js', | ||||||
|   'node_modules/zone.js/dist/zone-microtask.js', |   'node_modules/zone.js/dist/zone.js', | ||||||
|   'node_modules/reflect-metadata/Reflect.js', |   'node_modules/reflect-metadata/Reflect.js', | ||||||
|   'node_modules/babel-polyfill/dist/polyfill.js' |   'node_modules/babel-polyfill/dist/polyfill.js' | ||||||
| ]; | ]; | ||||||
| 
 | 
 | ||||||
| var JS_DEV_DEPS_MIN = [ | var JS_DEV_DEPS_MIN = [ | ||||||
|   'lib/utils/browser-update.js', |   'lib/utils/browser-update.js', | ||||||
|   'node_modules/zone.js/dist/zone-microtask.min.js', |   'node_modules/zone.js/dist/zone.min.js', | ||||||
|   'node_modules/reflect-metadata/Reflect.js', |   'node_modules/reflect-metadata/Reflect.js', | ||||||
|   'node_modules/babel-polyfill/dist/polyfill.min.js' |   'node_modules/babel-polyfill/dist/polyfill.min.js' | ||||||
| ] | ] | ||||||
|  |  | ||||||
|  | @ -45,9 +45,9 @@ module.exports = function (config) { | ||||||
|         }, |         }, | ||||||
|         //load angular dependencies and browser polyfills
 |         //load angular dependencies and browser polyfills
 | ||||||
|         files: [ |         files: [ | ||||||
|           'node_modules/zone.js/dist/zone-microtask.js', |           'node_modules/zone.js/dist/zone.js', | ||||||
|           'node_modules/zone.js/dist/long-stack-trace-zone.js', |  | ||||||
|           'node_modules/zone.js/dist/jasmine-patch.js', |           'node_modules/zone.js/dist/jasmine-patch.js', | ||||||
|  |           'node_modules/zone.js/dist/long-stack-trace-zone.js', | ||||||
|           'node_modules/babel-polyfill/dist/polyfill.js', |           'node_modules/babel-polyfill/dist/polyfill.js', | ||||||
|           './node_modules/reflect-metadata/Reflect.js' |           './node_modules/reflect-metadata/Reflect.js' | ||||||
|         ], |         ], | ||||||
|  |  | ||||||
|  | @ -1,7 +1,7 @@ | ||||||
| 'use strict'; | 'use strict'; | ||||||
| 
 | 
 | ||||||
| import { getChildDebugElementByType } from 'tests/helpers'; | import { getChildDebugElementByType } from 'tests/helpers'; | ||||||
| import {Component, View, provide} from 'angular2/core'; | import {Component, provide} from 'angular2/core'; | ||||||
| import {BrowserDomAdapter} from 'angular2/platform/browser'; | import {BrowserDomAdapter} from 'angular2/platform/browser'; | ||||||
| 
 | 
 | ||||||
| import { | import { | ||||||
|  | @ -60,8 +60,8 @@ describe('Common components', () => { | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| /** Test component that contains an ApiInfo. */ | /** Test component that contains an ApiInfo. */ | ||||||
| @Component({selector: 'test-app'}) | @Component({ | ||||||
| @View({ |   selector: 'test-app', | ||||||
|   directives: [StickySidebar], |   directives: [StickySidebar], | ||||||
|   template: |   template: | ||||||
|       `<div style="padding-top: 20px">
 |       `<div style="padding-top: 20px">
 | ||||||
|  |  | ||||||
|  | @ -1,13 +1,11 @@ | ||||||
| 'use strict'; | 'use strict'; | ||||||
| 
 | 
 | ||||||
| import {Component, View, EventEmitter} from 'angular2/core'; | import {Component, EventEmitter} from 'angular2/core'; | ||||||
| import {CORE_DIRECTIVES} from 'angular2/common'; | import {CORE_DIRECTIVES} from 'angular2/common'; | ||||||
| 
 | 
 | ||||||
| @Component({ | @Component({ | ||||||
|   selector: 'tabs', |   selector: 'tabs', | ||||||
|   events: ['change'] |   events: ['change'], | ||||||
| }) |  | ||||||
| @View({ |  | ||||||
|   template: ` |   template: ` | ||||||
|     <ul> |     <ul> | ||||||
|       <li *ngFor="#tab of tabs" [ngClass]="{active: tab.active}" (click)="selectTab(tab)" |       <li *ngFor="#tab of tabs" [ngClass]="{active: tab.active}" (click)="selectTab(tab)" | ||||||
|  | @ -61,9 +59,7 @@ export class Tabs { | ||||||
| 
 | 
 | ||||||
| @Component({ | @Component({ | ||||||
|   selector: 'tab', |   selector: 'tab', | ||||||
|   inputs: ['tabTitle', 'tabStatus'] |   inputs: ['tabTitle', 'tabStatus'], | ||||||
| }) |  | ||||||
| @View({ |  | ||||||
|   template: ` |   template: ` | ||||||
|     <div class="tab-wrap" [ngClass]="{ 'active': active }"> |     <div class="tab-wrap" [ngClass]="{ 'active': active }"> | ||||||
|       <ng-content></ng-content> |       <ng-content></ng-content> | ||||||
|  |  | ||||||
|  | @ -1,7 +1,7 @@ | ||||||
| 'use strict'; | 'use strict'; | ||||||
| 
 | 
 | ||||||
| import { getChildDebugElement, getChildDebugElementAll } from 'tests/helpers'; | import { getChildDebugElement, getChildDebugElementAll } from 'tests/helpers'; | ||||||
| import {Component, View} from 'angular2/core'; | import {Component} from 'angular2/core'; | ||||||
| 
 | 
 | ||||||
| import { | import { | ||||||
|   TestComponentBuilder, |   TestComponentBuilder, | ||||||
|  | @ -137,8 +137,8 @@ describe('Common components', () => { | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| /** Test component that contains an ApiInfo. */ | /** Test component that contains an ApiInfo. */ | ||||||
| @Component({selector: 'test-app'}) | @Component({ | ||||||
| @View({ |   selector: 'test-app', | ||||||
|   directives: [Tabs, Tab], |   directives: [Tabs, Tab], | ||||||
|   template: |   template: | ||||||
|       `<tabs (change)="onEvent($event)">
 |       `<tabs (change)="onEvent($event)">
 | ||||||
|  |  | ||||||
|  | @ -1,14 +1,12 @@ | ||||||
| 'use strict'; | 'use strict'; | ||||||
| 
 | 
 | ||||||
| import {Component, View, EventEmitter} from 'angular2/core'; | import {Component, EventEmitter} from 'angular2/core'; | ||||||
| import {CORE_DIRECTIVES} from 'angular2/common'; | import {CORE_DIRECTIVES} from 'angular2/common'; | ||||||
| 
 | 
 | ||||||
| @Component({ | @Component({ | ||||||
|   selector: 'zippy', |   selector: 'zippy', | ||||||
|   events: ['open', 'close'], |   events: ['open', 'close'], | ||||||
|   inputs: ['title', 'visible', 'type', 'empty'] |   inputs: ['title', 'visible', 'type', 'empty'], | ||||||
| }) |  | ||||||
| @View({ |  | ||||||
|   templateUrl: './lib/common/components/Zippy/zippy.html', |   templateUrl: './lib/common/components/Zippy/zippy.html', | ||||||
|   styleUrls: ['./lib/common/components/Zippy/zippy.css'], |   styleUrls: ['./lib/common/components/Zippy/zippy.css'], | ||||||
|   directives: [CORE_DIRECTIVES] |   directives: [CORE_DIRECTIVES] | ||||||
|  |  | ||||||
|  | @ -1,7 +1,7 @@ | ||||||
| 'use strict'; | 'use strict'; | ||||||
| 
 | 
 | ||||||
| import { getChildDebugElement, mouseclick } from 'tests/helpers'; | import { getChildDebugElement, mouseclick } from 'tests/helpers'; | ||||||
| import {Component, View} from 'angular2/core'; | import {Component} from 'angular2/core'; | ||||||
| 
 | 
 | ||||||
| import { | import { | ||||||
|   TestComponentBuilder, |   TestComponentBuilder, | ||||||
|  | @ -94,8 +94,8 @@ describe('Common components', () => { | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| /** Test component that contains an ApiInfo. */ | /** Test component that contains an ApiInfo. */ | ||||||
| @Component({selector: 'test-app'}) | @Component({ | ||||||
| @View({ |   selector: 'test-app', | ||||||
|   directives: [Zippy], |   directives: [Zippy], | ||||||
|   template: |   template: | ||||||
|       `<zippy title="Zippy" type="test" visible="true" empty="true" (open)="open()" (close)="close()">test</zippy>` |       `<zippy title="Zippy" type="test" visible="true" empty="true" (open)="open()" (close)="close()">test</zippy>` | ||||||
|  |  | ||||||
|  | @ -1,7 +1,7 @@ | ||||||
| 'use strict'; | 'use strict'; | ||||||
| 
 | 
 | ||||||
| import { getChildDebugElement } from 'tests/helpers'; | import { getChildDebugElement } from 'tests/helpers'; | ||||||
| import {Component, View, provide} from 'angular2/core'; | import {Component, provide} from 'angular2/core'; | ||||||
| 
 | 
 | ||||||
| import { | import { | ||||||
|   TestComponentBuilder, |   TestComponentBuilder, | ||||||
|  | @ -53,8 +53,8 @@ describe('Redoc components', () => { | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| /** Test component that contains an ApiInfo. */ | /** Test component that contains an ApiInfo. */ | ||||||
| @Component({selector: 'test-app'}) | @Component({ | ||||||
| @View({ |   selector: 'test-app', | ||||||
|   directives: [ApiInfo], |   directives: [ApiInfo], | ||||||
|   template: |   template: | ||||||
|       `<api-info></api-info>` |       `<api-info></api-info>` | ||||||
|  |  | ||||||
|  | @ -1,7 +1,7 @@ | ||||||
| 'use strict'; | 'use strict'; | ||||||
| 
 | 
 | ||||||
| import { getChildDebugElement } from 'tests/helpers'; | import { getChildDebugElement } from 'tests/helpers'; | ||||||
| import {Component, View, provide} from 'angular2/core'; | import {Component, provide} from 'angular2/core'; | ||||||
| 
 | 
 | ||||||
| import { | import { | ||||||
|   TestComponentBuilder, |   TestComponentBuilder, | ||||||
|  | @ -65,8 +65,8 @@ describe('Redoc components', () => { | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| /** Test component that contains an ApiInfo. */ | /** Test component that contains an ApiInfo. */ | ||||||
| @Component({selector: 'test-app'}) | @Component({ | ||||||
| @View({ |   selector: 'test-app', | ||||||
|   directives: [ApiLogo], |   directives: [ApiLogo], | ||||||
|   providers: [SchemaManager], |   providers: [SchemaManager], | ||||||
|   template: |   template: | ||||||
|  |  | ||||||
|  | @ -1,6 +1,6 @@ | ||||||
| 'use strict'; | 'use strict'; | ||||||
| 
 | 
 | ||||||
| import {Component, View, ElementRef} from 'angular2/core'; | import {Component, ElementRef} from 'angular2/core'; | ||||||
| import {CORE_DIRECTIVES} from 'angular2/common'; | import {CORE_DIRECTIVES} from 'angular2/common'; | ||||||
| import {DynamicComponentLoader} from 'angular2/src/core/linker/dynamic_component_loader'; | import {DynamicComponentLoader} from 'angular2/src/core/linker/dynamic_component_loader'; | ||||||
| 
 | 
 | ||||||
|  | @ -14,9 +14,7 @@ var cache = {}; | ||||||
| 
 | 
 | ||||||
| @Component({ | @Component({ | ||||||
|   selector: 'json-schema-lazy', |   selector: 'json-schema-lazy', | ||||||
|   inputs: ['pointer', 'auto'] |   inputs: ['pointer', 'auto'], | ||||||
| }) |  | ||||||
| @View({ |  | ||||||
|   template: '', |   template: '', | ||||||
|   directives: [CORE_DIRECTIVES] |   directives: [CORE_DIRECTIVES] | ||||||
| }) | }) | ||||||
|  | @ -41,6 +39,8 @@ export default class JsonSchemaLazy { | ||||||
|     if (this.pointer) { |     if (this.pointer) { | ||||||
|       this.dcl.loadNextToLocation(JsonSchema, this.elementRef).then((compRef) => { |       this.dcl.loadNextToLocation(JsonSchema, this.elementRef).then((compRef) => { | ||||||
|         compRef.instance.pointer = this.pointer; |         compRef.instance.pointer = this.pointer; | ||||||
|  |         // trigger change detection
 | ||||||
|  |         compRef.hostView.changeDetectorRef.detectChanges(); | ||||||
|       }); |       }); | ||||||
|     } |     } | ||||||
|     this.loaded = true; |     this.loaded = true; | ||||||
|  |  | ||||||
|  | @ -1,7 +1,7 @@ | ||||||
| 'use strict'; | 'use strict'; | ||||||
| 
 | 
 | ||||||
| import { getChildDebugElement } from 'tests/helpers'; | import { getChildDebugElement } from 'tests/helpers'; | ||||||
| import {Component, View, provide} from 'angular2/core'; | import {Component, provide} from 'angular2/core'; | ||||||
| import {DynamicComponentLoader} from 'angular2/src/core/linker/dynamic_component_loader'; | import {DynamicComponentLoader} from 'angular2/src/core/linker/dynamic_component_loader'; | ||||||
| import {BrowserDomAdapter} from 'angular2/platform/browser'; | import {BrowserDomAdapter} from 'angular2/platform/browser'; | ||||||
| 
 | 
 | ||||||
|  | @ -25,7 +25,8 @@ describe('Redoc components', () => { | ||||||
|     let fixture; |     let fixture; | ||||||
|     let loader; |     let loader; | ||||||
|     let appRef = { |     let appRef = { | ||||||
|       instance: {} |       instance: {}, | ||||||
|  |       hostView: {changeDetectorRef: {detectChanges : function() {} }} | ||||||
|     }; |     }; | ||||||
|     beforeEachProviders(() => [ |     beforeEachProviders(() => [ | ||||||
|         provide(SchemaManager, {useValue: schemaMgr}), |         provide(SchemaManager, {useValue: schemaMgr}), | ||||||
|  | @ -80,8 +81,8 @@ describe('Redoc components', () => { | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| /** Test component that contains a Method. */ | /** Test component that contains a Method. */ | ||||||
| @Component({selector: 'test-app'}) | @Component({ | ||||||
| @View({ |   selector: 'test-app', | ||||||
|   directives: [JsonSchemaLazy], |   directives: [JsonSchemaLazy], | ||||||
|   template: |   template: | ||||||
|       `<json-schema-lazy></json-schema-lazy>` |       `<json-schema-lazy></json-schema-lazy>` | ||||||
|  |  | ||||||
|  | @ -1,7 +1,7 @@ | ||||||
| 'use strict'; | 'use strict'; | ||||||
| 
 | 
 | ||||||
| import { getChildDebugElement } from 'tests/helpers'; | import { getChildDebugElement } from 'tests/helpers'; | ||||||
| import {Component, View, provide} from 'angular2/core'; | import {Component, provide} from 'angular2/core'; | ||||||
| import OptionsManager from 'lib/options'; | import OptionsManager from 'lib/options'; | ||||||
| 
 | 
 | ||||||
| import { | import { | ||||||
|  | @ -64,8 +64,8 @@ describe('Redoc components', () => { | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| /** Test component that contains a Method. */ | /** Test component that contains a Method. */ | ||||||
| @Component({selector: 'test-app'}) | @Component({ | ||||||
| @View({ |   selector: 'test-app', | ||||||
|   directives: [JsonSchema], |   directives: [JsonSchema], | ||||||
|   providers: [SchemaManager], |   providers: [SchemaManager], | ||||||
|   template: |   template: | ||||||
|  |  | ||||||
|  | @ -1,7 +1,7 @@ | ||||||
| 'use strict'; | 'use strict'; | ||||||
| 
 | 
 | ||||||
| import { getChildDebugElement } from 'tests/helpers'; | import { getChildDebugElement } from 'tests/helpers'; | ||||||
| import {Component, View, provide} from 'angular2/core'; | import {Component, provide} from 'angular2/core'; | ||||||
| import {BrowserDomAdapter} from 'angular2/platform/browser'; | import {BrowserDomAdapter} from 'angular2/platform/browser'; | ||||||
| 
 | 
 | ||||||
| import { | import { | ||||||
|  | @ -57,8 +57,8 @@ describe('Redoc components', () => { | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| /** Test component that contains a Method. */ | /** Test component that contains a Method. */ | ||||||
| @Component({selector: 'test-app'}) | @Component({ | ||||||
| @View({ |   selector: 'test-app', | ||||||
|   directives: [Method], |   directives: [Method], | ||||||
|   providers: [SchemaManager], |   providers: [SchemaManager], | ||||||
|   template: |   template: | ||||||
|  |  | ||||||
|  | @ -1,7 +1,7 @@ | ||||||
| 'use strict'; | 'use strict'; | ||||||
| 
 | 
 | ||||||
| import { getChildDebugElement } from 'tests/helpers'; | import { getChildDebugElement } from 'tests/helpers'; | ||||||
| import {Component, View, provide} from 'angular2/core'; | import {Component, provide} from 'angular2/core'; | ||||||
| import OptionsManager from 'lib/options'; | import OptionsManager from 'lib/options'; | ||||||
| import {BrowserDomAdapter} from 'angular2/platform/browser'; | import {BrowserDomAdapter} from 'angular2/platform/browser'; | ||||||
| 
 | 
 | ||||||
|  | @ -56,8 +56,8 @@ describe('Redoc components', () => { | ||||||
| }); | }); | ||||||
| 
 | 
 | ||||||
| /** Test component that contains an ApiInfo. */ | /** Test component that contains an ApiInfo. */ | ||||||
| @Component({selector: 'test-app'}) | @Component({ | ||||||
| @View({ |   selector: 'test-app', | ||||||
|   directives: [MethodsList], |   directives: [MethodsList], | ||||||
|   providers: [SchemaManager], |   providers: [SchemaManager], | ||||||
|   template: |   template: | ||||||
|  |  | ||||||
|  | @ -1,6 +1,9 @@ | ||||||
| <h5 class="param-list-header" *ngIf="data.params.length"> Parameters </h5> | <h5 class="param-list-header" *ngIf="data.params.length"> Parameters </h5> | ||||||
| <template ngFor [ngForOf]="data.params" #paramType="$implicit"> | <template ngFor [ngForOf]="data.params" #paramType="$implicit"> | ||||||
|   <header class="paramType"> {{paramType.place}} Parameters </header> |   <header class="paramType"> | ||||||
|  |     {{paramType.place}} Parameters | ||||||
|  |     <span class="hint--top-right hint--large" [attr.data-hint]="paramType.placeHint">?</span> | ||||||
|  |   </header> | ||||||
|   <br> |   <br> | ||||||
|   <div class="params-wrap"> |   <div class="params-wrap"> | ||||||
|     <div *ngFor="#param of paramType.params" class="param"> |     <div *ngFor="#param of paramType.params" class="param"> | ||||||
|  |  | ||||||
|  | @ -42,10 +42,21 @@ export default class ParamsList extends BaseComponent { | ||||||
|     this.data.noParams = !(Object.keys(paramsMap).length || this.data.bodyParam); |     this.data.noParams = !(Object.keys(paramsMap).length || this.data.bodyParam); | ||||||
| 
 | 
 | ||||||
|     let paramsPlaces = ['path', 'query', 'formData', 'header', 'body']; |     let paramsPlaces = ['path', 'query', 'formData', 'header', 'body']; | ||||||
|  |     let placeHint = { | ||||||
|  |       path: `Used together with Path Templating, where the parameter value is actually part
 | ||||||
|  |         of the operation's URL. This does not include the host or base path of the API. | ||||||
|  |         For example, in /items/{itemId}, the path parameter is itemId`,
 | ||||||
|  |       query: `Parameters that are appended to the URL.
 | ||||||
|  |         For example, in /items?id=###, the query parameter is id`, | ||||||
|  |       formData: `Parameters that are submitted through a form.
 | ||||||
|  |         application/x-www-form-urlencoded, multipart/form-data or both are usually | ||||||
|  |         used as the content type of the request`,
 | ||||||
|  |       header: 'Custom headers that are expected as part of the request' | ||||||
|  |     }; | ||||||
|     let params = []; |     let params = []; | ||||||
|     paramsPlaces.forEach(place => { |     paramsPlaces.forEach(place => { | ||||||
|       if (paramsMap[place] && paramsMap[place].length) { |       if (paramsMap[place] && paramsMap[place].length) { | ||||||
|         params.push({place: place, params: paramsMap[place]}); |         params.push({place: place, placeHint: placeHint[place], params: paramsMap[place]}); | ||||||
|       } |       } | ||||||
|     }); |     }); | ||||||
|     this.data.params = params; |     this.data.params = params; | ||||||
|  |  | ||||||
|  | @ -1,5 +1,7 @@ | ||||||
| @import '../../common/styles/variables'; | @import '../../common/styles/variables'; | ||||||
| 
 | 
 | ||||||
|  | $hint-color: #999999; | ||||||
|  | 
 | ||||||
| .param-list-header { | .param-list-header { | ||||||
|   border-bottom: 1px solid rgba($text-color, .3); |   border-bottom: 1px solid rgba($text-color, .3); | ||||||
|   padding: 0.2em 0; |   padding: 0.2em 0; | ||||||
|  | @ -60,3 +62,29 @@ header.paramType { | ||||||
|   background-color: white; |   background-color: white; | ||||||
|   top: 0; |   top: 0; | ||||||
| } | } | ||||||
|  | 
 | ||||||
|  | [data-hint] { | ||||||
|  |   width: 1.2em; | ||||||
|  |   text-align: center; | ||||||
|  |   border-radius: 50%; | ||||||
|  |   vertical-align: middle; | ||||||
|  |   color: $hint-color; | ||||||
|  |   line-height: 1.2; | ||||||
|  |   text-transform: none; | ||||||
|  |   cursor: help; | ||||||
|  |   border: 1px solid $hint-color; | ||||||
|  |   margin-left: 0.5em; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | @media (max-width: 520px) { | ||||||
|  |   [data-hint] { | ||||||
|  |     float: right; | ||||||
|  |   } | ||||||
|  | 
 | ||||||
|  |   [data-hint]:after { | ||||||
|  |     margin-left: 12px; | ||||||
|  |     transform: translateX(-100%) translateY(-8px); | ||||||
|  |     -moz-transform: translateX(-100%) translateY(-8px); | ||||||
|  |     -webkit-transform: translateX(-100%) translateY(-8px); | ||||||
|  |   } | ||||||
|  | } | ||||||
|  |  | ||||||
|  | @ -1,7 +1,7 @@ | ||||||
| 'use strict'; | 'use strict'; | ||||||
| 
 | 
 | ||||||
| import { getChildDebugElement } from 'tests/helpers'; | import { getChildDebugElement } from 'tests/helpers'; | ||||||
| import {Component, View, ViewMetadata, provide} from 'angular2/core'; | import {Component, ViewMetadata, provide} from 'angular2/core'; | ||||||
| import {BrowserDomAdapter} from 'angular2/platform/browser'; | import {BrowserDomAdapter} from 'angular2/platform/browser'; | ||||||
| 
 | 
 | ||||||
| import { | import { | ||||||
|  | @ -224,8 +224,8 @@ describe('Redoc components', () => { | ||||||
| }); | }); | ||||||
| 
 | 
 | ||||||
| /** Test component that contains a Redoc. */ | /** Test component that contains a Redoc. */ | ||||||
| @Component({selector: 'test-app'}) | @Component({ | ||||||
| @View({ |   selector: 'test-app', | ||||||
|   directives: [Redoc], |   directives: [Redoc], | ||||||
|   template: |   template: | ||||||
|       `<redoc disable-lazy-schemas></redoc>` |       `<redoc disable-lazy-schemas></redoc>` | ||||||
|  |  | ||||||
|  | @ -1,6 +1,6 @@ | ||||||
| 'use strict'; | 'use strict'; | ||||||
| 
 | 
 | ||||||
| import {NgZone, ChangeDetectionStrategy, ElementRef} from 'angular2/core'; | import {ChangeDetectorRef, ChangeDetectionStrategy, ElementRef} from 'angular2/core'; | ||||||
| import {document} from 'angular2/src/facade/browser'; | import {document} from 'angular2/src/facade/browser'; | ||||||
| import {BrowserDomAdapter} from 'angular2/platform/browser'; | import {BrowserDomAdapter} from 'angular2/platform/browser'; | ||||||
| import {global} from 'angular2/src/facade/lang'; | import {global} from 'angular2/src/facade/lang'; | ||||||
|  | @ -28,19 +28,16 @@ const INVIEW_POSITION = { | ||||||
|   changeDetection: ChangeDetectionStrategy.Default |   changeDetection: ChangeDetectionStrategy.Default | ||||||
| }) | }) | ||||||
| @Reflect.metadata('parameters', [[SchemaManager], [ElementRef], | @Reflect.metadata('parameters', [[SchemaManager], [ElementRef], | ||||||
|   [BrowserDomAdapter], [NgZone], OptionsManager]) |   [BrowserDomAdapter], [ChangeDetectorRef], [OptionsManager]]) | ||||||
| export default class SideMenu extends BaseComponent { | export default class SideMenu extends BaseComponent { | ||||||
|   constructor(schemaMgr, elementRef, dom, zone, optionsMgr) { |   constructor(schemaMgr, elementRef, dom, changeDetectorRef, optionsMgr) { | ||||||
|     super(schemaMgr); |     super(schemaMgr); | ||||||
|     this.$element = elementRef.nativeElement; |     this.$element = elementRef.nativeElement; | ||||||
|  |     this.changeDetector = changeDetectorRef; | ||||||
|     this.dom = dom; |     this.dom = dom; | ||||||
|     this.options = optionsMgr.options; |     this.options = optionsMgr.options; | ||||||
|     this.$scrollParent = this.options.$scrollParent; |     this.$scrollParent = this.options.$scrollParent; | ||||||
|     // for some reason constructor is not run inside zone
 |     this.bindEvents(); | ||||||
|     // as workaround running it manually
 |  | ||||||
|     zone.run(() => { |  | ||||||
|       this.bindEvents(); |  | ||||||
|     }); |  | ||||||
|     this.activeCatIdx = 0; |     this.activeCatIdx = 0; | ||||||
|     this.activeMethodIdx = -1; |     this.activeMethodIdx = -1; | ||||||
|     this.prevOffsetY = null; |     this.prevOffsetY = null; | ||||||
|  | @ -221,6 +218,7 @@ export default class SideMenu extends BaseComponent { | ||||||
|       } |       } | ||||||
|       stable = true; |       stable = true; | ||||||
|     } |     } | ||||||
|  |     this.changeDetector.detectChanges(); | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|   prepareModel() { |   prepareModel() { | ||||||
|  |  | ||||||
|  | @ -1,7 +1,7 @@ | ||||||
| 'use strict'; | 'use strict'; | ||||||
| 
 | 
 | ||||||
| import { getChildDebugElement, mouseclick} from 'tests/helpers'; | import { getChildDebugElement, mouseclick} from 'tests/helpers'; | ||||||
| import {Component, View, provide, ViewMetadata} from 'angular2/core'; | import {Component, provide, ViewMetadata} from 'angular2/core'; | ||||||
| import {BrowserDomAdapter} from 'angular2/platform/browser'; | import {BrowserDomAdapter} from 'angular2/platform/browser'; | ||||||
| import OptionsManager from 'lib/options'; | import OptionsManager from 'lib/options'; | ||||||
| 
 | 
 | ||||||
|  | @ -196,8 +196,8 @@ describe('Redoc components', () => { | ||||||
| }); | }); | ||||||
| 
 | 
 | ||||||
| /** Test component that contains an ApiInfo. */ | /** Test component that contains an ApiInfo. */ | ||||||
| @Component({selector: 'test-app'}) | @Component({ | ||||||
| @View({ |   selector: 'test-app', | ||||||
|   directives: [MethodsList, SideMenu], |   directives: [MethodsList, SideMenu], | ||||||
|   providers: [SchemaManager], |   providers: [SchemaManager], | ||||||
|   template: |   template: | ||||||
|  |  | ||||||
|  | @ -1,5 +1,5 @@ | ||||||
| 'use strict'; | 'use strict'; | ||||||
| import {Component, View, OnInit, OnDestroy, ChangeDetectionStrategy} from 'angular2/core'; | import {Component, ChangeDetectionStrategy} from 'angular2/core'; | ||||||
| import {CORE_DIRECTIVES, JsonPipe, AsyncPipe} from 'angular2/common'; | import {CORE_DIRECTIVES, JsonPipe, AsyncPipe} from 'angular2/common'; | ||||||
| import SchemaManager from '../utils/SchemaManager'; | import SchemaManager from '../utils/SchemaManager'; | ||||||
| import JsonPointer from '../utils/JsonPointer'; | import JsonPointer from '../utils/JsonPointer'; | ||||||
|  | @ -74,11 +74,8 @@ export function RedocComponent(options) { | ||||||
|       selector: options.selector, |       selector: options.selector, | ||||||
|       inputs: inputs, |       inputs: inputs, | ||||||
|       outputs: options.outputs, |       outputs: options.outputs, | ||||||
|       lifecycle: [OnInit, OnDestroy], |  | ||||||
|       providers: options.providers, |       providers: options.providers, | ||||||
|       changeDetection: options.changeDetection || ChangeDetectionStrategy.Detached |       changeDetection: options.changeDetection || ChangeDetectionStrategy.Detached, | ||||||
|     }); |  | ||||||
|     let viewDecorator = View({ |  | ||||||
|       templateUrl: options.templateUrl, |       templateUrl: options.templateUrl, | ||||||
|       template: options.template, |       template: options.template, | ||||||
|       styles: options.styles, |       styles: options.styles, | ||||||
|  | @ -86,7 +83,7 @@ export function RedocComponent(options) { | ||||||
|       pipes: pipes |       pipes: pipes | ||||||
|     }); |     }); | ||||||
| 
 | 
 | ||||||
|     return componentDecorator(viewDecorator(target) || target) || target; |     return componentDecorator(target) || target; | ||||||
|   }; |   }; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | @ -185,13 +182,13 @@ export class BaseComponent { | ||||||
|           throw new Error(errMessage); |           throw new Error(errMessage); | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
|         into.type = into.type || subSchema.type; |  | ||||||
| 
 | 
 | ||||||
|         if (into.type === 'array') { |         if (into.type === 'array') { | ||||||
|           console.warn('allOf: subschemas with type array are not supported yet'); |           console.warn('allOf: subschemas with type array are not supported yet'); | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
|         // TODO: add check if can be merged correctly (no different properties with the same name)
 |         // TODO: add check if can be merged correctly (no different properties with the same name)
 | ||||||
|  |         into.type = into.type || subSchema.type; | ||||||
|         if (into.type === 'object' && subSchema.properties) { |         if (into.type === 'object' && subSchema.properties) { | ||||||
|           into.properties || (into.properties = {}); |           into.properties || (into.properties = {}); | ||||||
|           Object.assign(into.properties, subSchema.properties); |           Object.assign(into.properties, subSchema.properties); | ||||||
|  |  | ||||||
|  | @ -38,6 +38,7 @@ export default class SchemaManager { | ||||||
| 
 | 
 | ||||||
|   /* calculate common used values */ |   /* calculate common used values */ | ||||||
|   init() { |   init() { | ||||||
|  |     if (!this._schema || !this._schema.schemes) return; | ||||||
|     this.apiUrl = this._schema.schemes[0] + '://' + this._schema.host + this._schema.basePath; |     this.apiUrl = this._schema.schemes[0] + '://' + this._schema.host + this._schema.basePath; | ||||||
|     if (this.apiUrl.endsWith('/')) { |     if (this.apiUrl.endsWith('/')) { | ||||||
|       this.apiUrl = this.apiUrl.substr(0, this.apiUrl.length - 1); |       this.apiUrl = this.apiUrl.substr(0, this.apiUrl.length - 1); | ||||||
|  |  | ||||||
|  | @ -14,20 +14,20 @@ import 'prismjs/components/prism-php.js'; | ||||||
| import 'prismjs/components/prism-coffeescript.js'; | import 'prismjs/components/prism-coffeescript.js'; | ||||||
| import 'prismjs/components/prism-go.js'; | import 'prismjs/components/prism-go.js'; | ||||||
| import 'prismjs/components/prism-haskell.js'; | import 'prismjs/components/prism-haskell.js'; | ||||||
| //import 'prismjs/components/prism-scala.js';
 |  | ||||||
| import 'prismjs/components/prism-java.js'; | import 'prismjs/components/prism-java.js'; | ||||||
| import 'prismjs/components/prism-lua.js'; | import 'prismjs/components/prism-lua.js'; | ||||||
| import 'prismjs/components/prism-matlab.js'; | import 'prismjs/components/prism-matlab.js'; | ||||||
| import 'prismjs/components/prism-objectivec.js'; |  | ||||||
| import 'prismjs/components/prism-perl.js'; | import 'prismjs/components/prism-perl.js'; | ||||||
| import 'prismjs/components/prism-python.js'; | import 'prismjs/components/prism-python.js'; | ||||||
| import 'prismjs/components/prism-r.js'; | import 'prismjs/components/prism-r.js'; | ||||||
| import 'prismjs/components/prism-ruby.js'; | import 'prismjs/components/prism-ruby.js'; | ||||||
| import 'prismjs/components/prism-bash.js'; | import 'prismjs/components/prism-bash.js'; | ||||||
| import 'prismjs/components/prism-swift.js'; | import 'prismjs/components/prism-swift.js'; | ||||||
| import 'prismjs/components/prism-vim.js'; | import 'prismjs/components/prism-objectivec.js'; | ||||||
|  | import 'prismjs/components/prism-scala.js'; | ||||||
| 
 | 
 | ||||||
| import 'prismjs/themes/prism-dark.css!css'; | import 'prismjs/themes/prism-dark.css!css'; | ||||||
|  | import 'hint.css/hint.base.css!css'; | ||||||
| 
 | 
 | ||||||
| import marked from 'marked'; | import marked from 'marked'; | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
							
								
								
									
										17
									
								
								package.json
									
									
									
									
									
								
							
							
						
						
									
										17
									
								
								package.json
									
									
									
									
									
								
							|  | @ -1,7 +1,7 @@ | ||||||
| { | { | ||||||
|   "name": "redoc", |   "name": "redoc", | ||||||
|   "description": "Swagger-generated API Reference Documentation", |   "description": "Swagger-generated API Reference Documentation", | ||||||
|   "version": "0.7.8", |   "version": "0.7.9", | ||||||
|   "repository": { |   "repository": { | ||||||
|     "type": "git", |     "type": "git", | ||||||
|     "url": "git://github.com/Rebilly/ReDoc" |     "url": "git://github.com/Rebilly/ReDoc" | ||||||
|  | @ -32,8 +32,9 @@ | ||||||
|   "jspm": { |   "jspm": { | ||||||
|     "configFile": "system.config.js", |     "configFile": "system.config.js", | ||||||
|     "dependencies": { |     "dependencies": { | ||||||
|       "angular2": "npm:angular2@2.0.0-beta.6", |       "angular2": "npm:angular2@^2.0.0-beta.12", | ||||||
|       "es6-shim": "github:es-shims/es6-shim@^0.33.6", |       "es6-shim": "github:es-shims/es6-shim@^0.33.6", | ||||||
|  |       "hint.css": "npm:hint.css@^2.2.1", | ||||||
|       "json": "github:systemjs/plugin-json@^0.1.0", |       "json": "github:systemjs/plugin-json@^0.1.0", | ||||||
|       "json-formatter-js": "npm:json-formatter-js@^0.2.0", |       "json-formatter-js": "npm:json-formatter-js@^0.2.0", | ||||||
|       "json-pointer": "npm:json-pointer@^0.3.0", |       "json-pointer": "npm:json-pointer@^0.3.0", | ||||||
|  | @ -60,10 +61,10 @@ | ||||||
|     "browser-sync": "^2.10.1", |     "browser-sync": "^2.10.1", | ||||||
|     "del": "^2.2.0", |     "del": "^2.2.0", | ||||||
|     "deploy-to-gh-pages": "^1.0.0", |     "deploy-to-gh-pages": "^1.0.0", | ||||||
|     "gulp": "^3.9.0", |     "gulp": "^3.9.1", | ||||||
|     "gulp-concat": "^2.6.0", |     "gulp-concat": "^2.6.0", | ||||||
|     "gulp-eslint": "^1.1.1", |     "gulp-eslint": "^1.1.1", | ||||||
|     "gulp-inline-ng2-template": "^0.0.9", |     "gulp-inline-ng2-template": "^1.1.2", | ||||||
|     "gulp-protractor": "^2.1.0", |     "gulp-protractor": "^2.1.0", | ||||||
|     "gulp-rename": "^1.2.2", |     "gulp-rename": "^1.2.2", | ||||||
|     "gulp-replace": "^0.5.4", |     "gulp-replace": "^0.5.4", | ||||||
|  | @ -81,13 +82,13 @@ | ||||||
|     "karma-coveralls": "^1.1.2", |     "karma-coveralls": "^1.1.2", | ||||||
|     "karma-jasmine": "^0.3.6", |     "karma-jasmine": "^0.3.6", | ||||||
|     "karma-jspm": "^2.0.2", |     "karma-jspm": "^2.0.2", | ||||||
|     "karma-mocha-reporter": "^1.1.3", |     "karma-mocha-reporter": "^2.0.0", | ||||||
|     "karma-phantomjs-launcher": "^0.2.1", |     "karma-phantomjs-launcher": "^1.0.0", | ||||||
|     "karma-phantomjs-shim": "^1.1.2", |     "karma-phantomjs-shim": "^1.1.2", | ||||||
|     "karma-regex-preprocessor": "github:makern/karma-regex-preprocessor", |     "karma-regex-preprocessor": "github:makern/karma-regex-preprocessor", | ||||||
|     "karma-should": "^1.0.0", |     "karma-should": "^1.0.0", | ||||||
|     "karma-sinon": "^1.0.4", |     "karma-sinon": "^1.0.4", | ||||||
|     "phantomjs": "^1.9.19", |     "phantomjs-prebuilt": "^2.1.7", | ||||||
|     "protractor": "^3.0.0", |     "protractor": "^3.0.0", | ||||||
|     "reflect-metadata": "^0.1.2", |     "reflect-metadata": "^0.1.2", | ||||||
|     "require-dir": "^0.3.0", |     "require-dir": "^0.3.0", | ||||||
|  | @ -96,6 +97,6 @@ | ||||||
|     "sinon": "^1.17.2", |     "sinon": "^1.17.2", | ||||||
|     "systemjs-builder": "^0.15.2", |     "systemjs-builder": "^0.15.2", | ||||||
|     "vinyl-paths": "^2.0.0", |     "vinyl-paths": "^2.0.0", | ||||||
|     "zone.js": "^0.5.10" |     "zone.js": "^0.6.6" | ||||||
|   } |   } | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -37,13 +37,14 @@ System.config({ | ||||||
|   }, |   }, | ||||||
| 
 | 
 | ||||||
|   map: { |   map: { | ||||||
|     "angular2": "npm:angular2@2.0.0-beta.6", |     "angular2": "npm:angular2@2.0.0-beta.12", | ||||||
|     "babel": "npm:babel-core@5.8.34", |     "babel": "npm:babel-core@5.8.34", | ||||||
|     "babel-runtime": "npm:babel-runtime@5.8.34", |     "babel-runtime": "npm:babel-runtime@5.8.34", | ||||||
|     "clean-css": "npm:clean-css@3.4.6", |     "clean-css": "npm:clean-css@3.4.6", | ||||||
|     "core-js": "npm:core-js@1.2.6", |     "core-js": "npm:core-js@1.2.6", | ||||||
|     "css": "github:systemjs/plugin-css@0.1.18", |     "css": "github:systemjs/plugin-css@0.1.18", | ||||||
|     "es6-shim": "github:es-shims/es6-shim@0.33.6", |     "es6-shim": "github:es-shims/es6-shim@0.33.6", | ||||||
|  |     "hint.css": "npm:hint.css@2.2.1", | ||||||
|     "json": "github:systemjs/plugin-json@0.1.0", |     "json": "github:systemjs/plugin-json@0.1.0", | ||||||
|     "json-formatter-js": "npm:json-formatter-js@0.2.0", |     "json-formatter-js": "npm:json-formatter-js@0.2.0", | ||||||
|     "json-pointer": "npm:json-pointer@0.3.0", |     "json-pointer": "npm:json-pointer@0.3.0", | ||||||
|  | @ -135,14 +136,10 @@ System.config({ | ||||||
|       "path": "github:jspm/nodelibs-path@0.1.0", |       "path": "github:jspm/nodelibs-path@0.1.0", | ||||||
|       "process": "github:jspm/nodelibs-process@0.1.2" |       "process": "github:jspm/nodelibs-process@0.1.2" | ||||||
|     }, |     }, | ||||||
|     "npm:angular2@2.0.0-beta.6": { |     "npm:angular2@2.0.0-beta.12": { | ||||||
|       "crypto": "github:jspm/nodelibs-crypto@0.1.0", |       "reflect-metadata": "npm:reflect-metadata@0.1.3", | ||||||
|       "es6-promise": "npm:es6-promise@3.1.2", |       "rxjs": "npm:rxjs@5.0.0-beta.3", | ||||||
|       "es6-shim": "npm:es6-shim@0.33.13", |       "zone.js": "npm:zone.js@0.5.15" | ||||||
|       "process": "github:jspm/nodelibs-process@0.1.2", |  | ||||||
|       "reflect-metadata": "npm:reflect-metadata@0.1.2", |  | ||||||
|       "rxjs": "npm:rxjs@5.0.0-beta.0", |  | ||||||
|       "zone.js": "npm:zone.js@0.5.14" |  | ||||||
|     }, |     }, | ||||||
|     "npm:argparse@1.0.3": { |     "npm:argparse@1.0.3": { | ||||||
|       "assert": "github:jspm/nodelibs-assert@0.1.0", |       "assert": "github:jspm/nodelibs-assert@0.1.0", | ||||||
|  | @ -419,9 +416,6 @@ System.config({ | ||||||
|     "npm:es6-promise@3.1.2": { |     "npm:es6-promise@3.1.2": { | ||||||
|       "process": "github:jspm/nodelibs-process@0.1.2" |       "process": "github:jspm/nodelibs-process@0.1.2" | ||||||
|     }, |     }, | ||||||
|     "npm:es6-shim@0.33.13": { |  | ||||||
|       "process": "github:jspm/nodelibs-process@0.1.2" |  | ||||||
|     }, |  | ||||||
|     "npm:esprima@2.7.1": { |     "npm:esprima@2.7.1": { | ||||||
|       "fs": "github:jspm/nodelibs-fs@0.1.2", |       "fs": "github:jspm/nodelibs-fs@0.1.2", | ||||||
|       "process": "github:jspm/nodelibs-process@0.1.2" |       "process": "github:jspm/nodelibs-process@0.1.2" | ||||||
|  | @ -691,10 +685,6 @@ System.config({ | ||||||
|       "string_decoder": "npm:string_decoder@0.10.31", |       "string_decoder": "npm:string_decoder@0.10.31", | ||||||
|       "util-deprecate": "npm:util-deprecate@1.0.2" |       "util-deprecate": "npm:util-deprecate@1.0.2" | ||||||
|     }, |     }, | ||||||
|     "npm:reflect-metadata@0.1.2": { |  | ||||||
|       "assert": "github:jspm/nodelibs-assert@0.1.0", |  | ||||||
|       "process": "github:jspm/nodelibs-process@0.1.2" |  | ||||||
|     }, |  | ||||||
|     "npm:request@2.67.0": { |     "npm:request@2.67.0": { | ||||||
|       "aws-sign2": "npm:aws-sign2@0.6.0", |       "aws-sign2": "npm:aws-sign2@0.6.0", | ||||||
|       "bl": "npm:bl@1.0.0", |       "bl": "npm:bl@1.0.0", | ||||||
|  | @ -732,7 +722,7 @@ System.config({ | ||||||
|       "buffer": "github:jspm/nodelibs-buffer@0.1.0", |       "buffer": "github:jspm/nodelibs-buffer@0.1.0", | ||||||
|       "process": "github:jspm/nodelibs-process@0.1.2" |       "process": "github:jspm/nodelibs-process@0.1.2" | ||||||
|     }, |     }, | ||||||
|     "npm:rxjs@5.0.0-beta.0": { |     "npm:rxjs@5.0.0-beta.3": { | ||||||
|       "buffer": "github:jspm/nodelibs-buffer@0.1.0", |       "buffer": "github:jspm/nodelibs-buffer@0.1.0", | ||||||
|       "process": "github:jspm/nodelibs-process@0.1.2" |       "process": "github:jspm/nodelibs-process@0.1.2" | ||||||
|     }, |     }, | ||||||
|  | @ -866,10 +856,6 @@ System.config({ | ||||||
|       "systemjs-json": "github:systemjs/plugin-json@0.1.0", |       "systemjs-json": "github:systemjs/plugin-json@0.1.0", | ||||||
|       "util": "github:jspm/nodelibs-util@0.1.0", |       "util": "github:jspm/nodelibs-util@0.1.0", | ||||||
|       "validator": "npm:validator@4.5.0" |       "validator": "npm:validator@4.5.0" | ||||||
|     }, |  | ||||||
|     "npm:zone.js@0.5.14": { |  | ||||||
|       "es6-promise": "npm:es6-promise@3.1.2", |  | ||||||
|       "process": "github:jspm/nodelibs-process@0.1.2" |  | ||||||
|     } |     } | ||||||
|   } |   } | ||||||
| }); | }); | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue
	
	Block a user