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);
}