1 | "use strict";
|
2 | Object.defineProperty(exports, "__esModule", { value: true });
|
3 | const Path = require("path");
|
4 | const component_1 = require("../utils/component");
|
5 | exports.Component = component_1.Component;
|
6 | const index_1 = require("../models/reflections/index");
|
7 | const events_1 = require("./events");
|
8 | class RendererComponent extends component_1.AbstractComponent {
|
9 | }
|
10 | exports.RendererComponent = RendererComponent;
|
11 | class ContextAwareRendererComponent extends RendererComponent {
|
12 | constructor() {
|
13 | super(...arguments);
|
14 | this.urlPrefix = /^(http|ftp)s?:\/\//;
|
15 | }
|
16 | initialize() {
|
17 | this.listenTo(this.owner, {
|
18 | [events_1.RendererEvent.BEGIN]: this.onBeginRenderer,
|
19 | [events_1.PageEvent.BEGIN]: this.onBeginPage
|
20 | });
|
21 | }
|
22 | getRelativeUrl(absolute) {
|
23 | if (this.urlPrefix.test(absolute)) {
|
24 | return absolute;
|
25 | }
|
26 | else {
|
27 | const relative = Path.relative(Path.dirname(this.location), Path.dirname(absolute));
|
28 | return Path.join(relative, Path.basename(absolute)).replace(/\\/g, '/');
|
29 | }
|
30 | }
|
31 | onBeginRenderer(event) {
|
32 | this.project = event.project;
|
33 | }
|
34 | onBeginPage(page) {
|
35 | this.location = page.url;
|
36 | this.reflection = page.model instanceof index_1.DeclarationReflection ? page.model : undefined;
|
37 | }
|
38 | }
|
39 | exports.ContextAwareRendererComponent = ContextAwareRendererComponent;
|
40 |
|
\ | No newline at end of file |