diff --git a/src/components.js b/src/components.js index 8d4f581..fd03dca 100644 --- a/src/components.js +++ b/src/components.js @@ -13,6 +13,7 @@ // limitations under the License. import { Controller } from './controller'; +import { domContentLoaded } from './helpers/domContentLoaded.js'; /* Transforms */ import { makeStyleTag } from './styles/styles'; @@ -55,13 +56,13 @@ const distillMain = function() { throw new Error('Runlevel 1: Distill Template is getting loaded more than once, aborting!'); } else { window.distillTemplateIsLoading = true; - console.info('Runlevel 1: Distill Template has started loading.'); + console.debug('Runlevel 1: Distill Template has started loading.'); } /* 2. Add styles if they weren't added during prerendering */ makeStyleTag(document); - console.info('Runlevel 1: Static Distill styles have been added.'); - console.info('Runlevel 1->2.'); + console.debug('Runlevel 1: Static Distill styles have been added.'); + console.debug('Runlevel 1->2.'); window.distillRunlevel += 1; /* 3. Register Controller listener functions */ @@ -73,8 +74,8 @@ const distillMain = function() { console.error('Runlevel 2: Controller listeners need to be functions!'); } } - console.info('Runlevel 2: We can now listen to controller events.'); - console.info('Runlevel 2->3.'); + console.debug('Runlevel 2: We can now listen to controller events.'); + console.debug('Runlevel 2->3.'); window.distillRunlevel += 1; /* 4. Register components */ @@ -93,29 +94,31 @@ const distillMain = function() { } const allComponents = components.concat(distillComponents); for (const component of allComponents) { - console.info('Runlevel 2: Registering custom element: ' + component.is); + console.debug('Runlevel 2: Registering custom element: ' + component.is); customElements.define(component.is, component); } - console.info('Runlevel 3: Distill Template finished registering custom elements.'); - console.info('Runlevel 3->4.'); + console.debug('Runlevel 3: Distill Template finished registering custom elements.'); + console.debug('Runlevel 3->4.'); window.distillRunlevel += 1; // If template was added after DOMContentLoaded we may have missed that event. // Controller will check for that case, so trigger the event explicitly: - Controller.listeners.DOMContentLoaded(); + if (domContentLoaded()) { + Controller.listeners.DOMContentLoaded(); + } - console.info('Runlevel 4: Distill Template initialisation complete.'); + console.debug('Runlevel 4: Distill Template initialisation complete.'); }; window.distillRunlevel = 0; /* 0. Check browser feature support; synchronously polyfill if needed */ if (Polyfills.browserSupportsAllFeatures()) { - console.info('Runlevel 0: No need for polyfills.'); - console.info('Runlevel 0->1.'); + console.debug('Runlevel 0: No need for polyfills.'); + console.debug('Runlevel 0->1.'); window.distillRunlevel += 1; distillMain(); } else { - console.info('Runlevel 0: Distill Template is loading polyfills.'); + console.debug('Runlevel 0: Distill Template is loading polyfills.'); Polyfills.load(distillMain); } diff --git a/src/controller.js b/src/controller.js index c0cfcb1..ec41d17 100644 --- a/src/controller.js +++ b/src/controller.js @@ -15,14 +15,12 @@ import { FrontMatter, mergeFromYMLFrontmatter } from './front-matter'; import { DMath } from './components/d-math'; import { collect_citations } from './helpers/citation.js'; +import { domContentLoaded } from './helpers/domContentLoaded.js'; import { parseFrontmatter } from './components/d-front-matter'; import optionalComponents from './transforms/optional-components'; const frontMatter = new FrontMatter(); -function domContentLoaded() { - return ['interactive', 'complete'].indexOf(document.readyState) !== -1; -} export const Controller = { @@ -109,7 +107,7 @@ export const Controller = { if (citationListTag.hasAttribute('distill-prerendered')) { - console.info('Citation list was prerendered; not updating it.'); + console.debug('Citation list was prerendered; not updating it.'); } else { const entries = new Map(frontMatter.citations.map( citationKey => { return [citationKey, frontMatter.bibliography.get(citationKey)]; @@ -167,11 +165,11 @@ export const Controller = { console.warn('Controller received DOMContentLoaded but was already loaded!'); return; } else if (!domContentLoaded()) { - console.warn('Controller received DOMContentLoaded before appropriate document.readyState!'); + console.warn('Controller received DOMContentLoaded at document.readyState: ' + document.readyState + '!'); return; } else { Controller.loaded = true; - console.log('Runlevel 4: Controller running DOMContentLoaded'); + console.debug('Runlevel 4: Controller running DOMContentLoaded'); } const frontMatterTag = document.querySelector('d-front-matter'); diff --git a/src/helpers/domContentLoaded.js b/src/helpers/domContentLoaded.js new file mode 100644 index 0000000..b514d2e --- /dev/null +++ b/src/helpers/domContentLoaded.js @@ -0,0 +1,3 @@ +export function domContentLoaded() { + return ['interactive', 'complete'].indexOf(document.readyState) !== -1; +} diff --git a/src/helpers/polyfills.js b/src/helpers/polyfills.js index d8db300..133bf95 100644 --- a/src/helpers/polyfills.js +++ b/src/helpers/polyfills.js @@ -13,7 +13,7 @@ // limitations under the License. export function addPolyfill(polyfill, polyfillLoadedCallback) { - console.info('Runlevel 0: Polyfill required: ' + polyfill.name); + console.debug('Runlevel 0: Polyfill required: ' + polyfill.name); const script = document.createElement('script'); script.src = polyfill.url; script.async = false; @@ -58,11 +58,11 @@ export class Polyfills { // Define an intermediate callback that checks if all is loaded. const polyfillLoaded = function(polyfill) { polyfill.loaded = true; - console.info('Runlevel 0: Polyfill has finished loading: ' + polyfill.name); - // console.info(window[polyfill.name]); + console.debug('Runlevel 0: Polyfill has finished loading: ' + polyfill.name); + // console.debug(window[polyfill.name]); if (Polyfills.neededPolyfills.every((poly) => poly.loaded)) { - console.info('Runlevel 0: All required polyfills have finished loading.'); - console.info('Runlevel 0->1.'); + console.debug('Runlevel 0: All required polyfills have finished loading.'); + console.debug('Runlevel 0->1.'); window.distillRunlevel = 1; callback(); } diff --git a/src/transforms/polyfills.js b/src/transforms/polyfills.js index f5b4696..9beb31e 100644 --- a/src/transforms/polyfills.js +++ b/src/transforms/polyfills.js @@ -67,7 +67,7 @@ export default function render(dom) { if (templateTag) { templateTag.parentNode.removeChild(templateTag); } else { - console.info('FYI: Did not find template tag when trying to remove it. You may not have added it. Be aware that our polyfills will add it.') + console.debug('FYI: Did not find template tag when trying to remove it. You may not have added it. Be aware that our polyfills will add it.') } // add loader