UNPKG

@storybook/angular

Version:

Storybook for Angular: Develop Angular components in isolation with hot reloading.

41 lines (40 loc) 1.66 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.DocsRenderer = void 0; const preview_api_1 = require("@storybook/preview-api"); const core_events_1 = require("@storybook/core-events"); const AbstractRenderer_1 = require("./AbstractRenderer"); class DocsRenderer extends AbstractRenderer_1.AbstractRenderer { async render(options) { const channel = preview_api_1.addons.getChannel(); /** * Destroy and recreate the PlatformBrowserDynamic of angular * For several stories to be rendered in the same docs we should * not destroy angular between each rendering but do it when the * rendered stories are not needed anymore. * * Note for improvement: currently there is one event per story * rendered in the doc. But one event could be enough for the whole docs * */ channel.once(core_events_1.STORY_CHANGED, async () => { await DocsRenderer.resetApplications(); }); /** * Destroy and recreate the PlatformBrowserDynamic of angular * when doc re render. Allows to call ngOnDestroy of angular * for previous component */ channel.once(core_events_1.DOCS_RENDERED, async () => { await DocsRenderer.resetApplications(); }); await super.render({ ...options, forced: false }); } async beforeFullRender(domNode) { DocsRenderer.resetApplications(domNode); } async afterFullRender() { await AbstractRenderer_1.AbstractRenderer.resetCompiledComponents(); } } exports.DocsRenderer = DocsRenderer;