ngx-showdown-angular-latest
Version:
An Angular 17 integration for Showdown
64 lines • 5.67 kB
JavaScript
import { Injectable, Optional } from '@angular/core';
import * as Showdown from 'showdown';
import * as i0 from "@angular/core";
import * as i1 from "./showdown-config.provider";
/**
* @internal
*/
let { hasOwnProperty } = {};
/**
* ### Example
*
* Setup as standalone
* ```typescript
* import { NgModule } from '@angular/core';
* import { ShowdownConverter } from 'ngx-showdown';
*
* @NgModule({
* providers: [ ShowdownConverter ];
* })
* export class AppModule {}
* ```
*
* Use the converter instance.
* ```typescript
* import { Injectable } from '@angular/core';
* import { ShowdownConverter } from 'ngx-showdown';
*
* @Injectable()
* export class SomeService {
* constructor(showdownConverter: ShowdownConverter) {
* let markdown: string = "**Some**";
* let html: string = showdownConverter.makeHtml(markdown);
* console.log(`some:\nmarkdown: ${markdown)\nhtml: ${html}\n`);
* }
* }
* ```
*/
export class ShowdownConverter extends Showdown.Converter {
constructor(config) {
super(config && { extensions: config.extensions });
this.setFlavor((config && config.flavor) || 'vanilla');
this.setOptions(config);
}
/**
* Set options to the converter.
*
* @param options - A options object to set.
*/
setOptions(options) {
for (let key in options) {
if (hasOwnProperty.call(options, key)) {
this.setOption(key, options[key]);
}
}
}
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: ShowdownConverter, deps: [{ token: i1.ShowdownConfig, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: ShowdownConverter });
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: ShowdownConverter, decorators: [{
type: Injectable
}], ctorParameters: () => [{ type: i1.ShowdownConfig, decorators: [{
type: Optional
}] }] });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hvd2Rvd24tY29udmVydGVyLnByb3ZpZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3Nob3dkb3duLWNvbnZlcnRlci5wcm92aWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNyRCxPQUFPLEtBQUssUUFBUSxNQUFNLFVBQVUsQ0FBQzs7O0FBR3JDOztHQUVHO0FBQ0gsSUFBSSxFQUFDLGNBQWMsRUFBQyxHQUFHLEVBQUUsQ0FBQztBQUUxQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTRCRztBQUVILE1BQU0sT0FBTyxpQkFBa0IsU0FBUSxRQUFRLENBQUMsU0FBUztJQUV2RCxZQUF3QixNQUF1QjtRQUM3QyxLQUFLLENBQUMsTUFBTSxJQUFJLEVBQUMsVUFBVSxFQUFFLE1BQU0sQ0FBQyxVQUFVLEVBQUMsQ0FBQyxDQUFDO1FBQ2pELElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxNQUFNLElBQUksTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLFNBQVMsQ0FBQyxDQUFDO1FBQ3ZELElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDMUIsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxVQUFVLENBQUMsT0FBaUM7UUFDakQsS0FBSyxJQUFJLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztZQUN4QixJQUFJLGNBQWMsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBQ3RDLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQ3BDLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQzt1R0FuQlUsaUJBQWlCOzJHQUFqQixpQkFBaUI7OzJGQUFqQixpQkFBaUI7a0JBRDdCLFVBQVU7OzBCQUdJLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgKiBhcyBTaG93ZG93biBmcm9tICdzaG93ZG93bic7XHJcbmltcG9ydCB7IFNob3dkb3duQ29uZmlnIH0gZnJvbSAnLi9zaG93ZG93bi1jb25maWcucHJvdmlkZXInO1xyXG5cclxuLyoqXHJcbiAqIEBpbnRlcm5hbFxyXG4gKi9cclxubGV0IHtoYXNPd25Qcm9wZXJ0eX0gPSB7fTtcclxuXHJcbi8qKlxyXG4gKiAjIyMgRXhhbXBsZVxyXG4gKlxyXG4gKiBTZXR1cCBhcyBzdGFuZGFsb25lXHJcbiAqIGBgYHR5cGVzY3JpcHRcclxuICogaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuICogaW1wb3J0IHsgU2hvd2Rvd25Db252ZXJ0ZXIgfSBmcm9tICduZ3gtc2hvd2Rvd24nO1xyXG4gKlxyXG4gKiBATmdNb2R1bGUoe1xyXG4gKiAgIHByb3ZpZGVyczogWyBTaG93ZG93bkNvbnZlcnRlciBdO1xyXG4gKiB9KVxyXG4gKiBleHBvcnQgY2xhc3MgQXBwTW9kdWxlIHt9XHJcbiAqIGBgYFxyXG4gKlxyXG4gKiBVc2UgdGhlIGNvbnZlcnRlciBpbnN0YW5jZS5cclxuICogYGBgdHlwZXNjcmlwdFxyXG4gKiBpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbiAqIGltcG9ydCB7IFNob3dkb3duQ29udmVydGVyIH0gZnJvbSAnbmd4LXNob3dkb3duJztcclxuICpcclxuICogQEluamVjdGFibGUoKVxyXG4gKiBleHBvcnQgY2xhc3MgU29tZVNlcnZpY2Uge1xyXG4gKiAgIGNvbnN0cnVjdG9yKHNob3dkb3duQ29udmVydGVyOiBTaG93ZG93bkNvbnZlcnRlcikge1xyXG4gKiAgICAgbGV0IG1hcmtkb3duOiBzdHJpbmcgPSBcIioqU29tZSoqXCI7XHJcbiAqICAgICBsZXQgaHRtbDogc3RyaW5nID0gc2hvd2Rvd25Db252ZXJ0ZXIubWFrZUh0bWwobWFya2Rvd24pO1xyXG4gKiAgICAgY29uc29sZS5sb2coYHNvbWU6XFxubWFya2Rvd246ICR7bWFya2Rvd24pXFxuaHRtbDogJHtodG1sfVxcbmApO1xyXG4gKiAgIH1cclxuICogfVxyXG4gKiBgYGBcclxuICovXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIFNob3dkb3duQ29udmVydGVyIGV4dGVuZHMgU2hvd2Rvd24uQ29udmVydGVyIHtcclxuXHJcbiAgY29uc3RydWN0b3IoQE9wdGlvbmFsKCkgY29uZmlnPzogU2hvd2Rvd25Db25maWcpIHtcclxuICAgIHN1cGVyKGNvbmZpZyAmJiB7ZXh0ZW5zaW9uczogY29uZmlnLmV4dGVuc2lvbnN9KTtcclxuICAgIHRoaXMuc2V0Rmxhdm9yKChjb25maWcgJiYgY29uZmlnLmZsYXZvcikgfHwgJ3ZhbmlsbGEnKTtcclxuICAgIHRoaXMuc2V0T3B0aW9ucyhjb25maWcpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2V0IG9wdGlvbnMgdG8gdGhlIGNvbnZlcnRlci5cclxuICAgKlxyXG4gICAqIEBwYXJhbSBvcHRpb25zIC0gQSBvcHRpb25zIG9iamVjdCB0byBzZXQuXHJcbiAgICovXHJcbiAgcHVibGljIHNldE9wdGlvbnMob3B0aW9uczogU2hvd2Rvd24uU2hvd2Rvd25PcHRpb25zKTogdm9pZCB7XHJcbiAgICBmb3IgKGxldCBrZXkgaW4gb3B0aW9ucykge1xyXG4gICAgICBpZiAoaGFzT3duUHJvcGVydHkuY2FsbChvcHRpb25zLCBrZXkpKSB7XHJcbiAgICAgICAgdGhpcy5zZXRPcHRpb24oa2V5LCBvcHRpb25zW2tleV0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxufVxyXG4iXX0=