I am trying to split a Polymer 3 component into separated files so for example:
import { html, PolymerElement } from '@polymer/polymer/polymer-element';
export default class TestSplit extends PolymerElement {
static get template() {
return html`
<style>
p {
color: blue;
}
</style>
<p>Hello from component</p>
`;
}
}
customElements.define('test-split', TestSplit);
would look like something like:
index.js:
import { PolymerElement, html } from '@polymer/polymer/polymer-element';
import css from './style.css';
import template from './template.html';
export default class TestSplit extends PolymerElement {
static get template() {
return html`
<style>${css}</style>
${template}
`;
}
}
customElements.define('test-split', TestSplit);
style.css:
p {
color: blue;
}
template.html:
<p>Hello from component</p>
Edit1:
I tried out the following code with the same template.html and style.css files:
import-test.js:
import { html, PolymerElement } from '@polymer/polymer/polymer-element';
import CssHtmlLoader from './cssHtmlLoader';
export default class ImportTest extends PolymerElement {
static get template() {
let htmlTemplate = CssHtmlLoader.prototype.getHtmlTemplate('template.html');
console.log(htmlTemplate)
return htmlTemplate.then(function (file) {
return html`
<link rel="stylesheet" href="style.css">
${file}
`;
});
}
}
}
customElements.define('import-test', ImportTest);
I am getting the right file from the promise:
But I also get the following errors:
Is there any idea what is wrong with the code?