diff --git a/src/code_manager/model/HtmlGenerator.js b/src/code_manager/model/HtmlGenerator.ts similarity index 69% rename from src/code_manager/model/HtmlGenerator.js rename to src/code_manager/model/HtmlGenerator.ts index 6206c6ec7..38cd30fd7 100644 --- a/src/code_manager/model/HtmlGenerator.js +++ b/src/code_manager/model/HtmlGenerator.ts @@ -1,21 +1,29 @@ import { Model } from '../../common'; +import Component from '../../dom_components/model/Component'; +import EditorModel from '../../editor/model/Editor'; + +type HTMLGeneratorBuildOptions = { + em?: EditorModel; + cleanId?: boolean; + attributes?: Record | ((component: Component, attr: Record) => Record); +}; export default class HTMLGenerator extends Model { - build(model, opts = {}) { + build(model: Component, opts: HTMLGeneratorBuildOptions = {}) { const { em, ...restOpts } = opts; const htmlOpts = restOpts; // Remove unnecessary IDs if (opts.cleanId && em) { - const rules = em.get('CssComposer').getAll(); + const rules = em.Css.getAll(); const idRules = rules .toJSON() - .map(rule => { + .map((rule: any) => { const sels = rule.selectors; const sel = sels && sels.length === 1 && sels.models[0]; return sel && sel.isId() && sel.get('name'); }) - .filter(i => i); + .filter(Boolean); if (!htmlOpts.attributes) { htmlOpts.attributes = (mod, attrs) => { diff --git a/src/css_composer/model/CssRules.ts b/src/css_composer/model/CssRules.ts index 6e6aab5f1..67ce5f471 100644 --- a/src/css_composer/model/CssRules.ts +++ b/src/css_composer/model/CssRules.ts @@ -17,7 +17,7 @@ export default class CssRules extends Collection { }); } - toJSON(opts: any) { + toJSON(opts?: any) { const result = Collection.prototype.toJSON.call(this, opts); return result.filter((rule: CssRuleProperties) => rule.style && !rule.shallow); }