diff --git a/packages/core/src/lib/loaduikits.js b/packages/core/src/lib/loaduikits.js index dc152ae3d..0cc882501 100644 --- a/packages/core/src/lib/loaduikits.js +++ b/packages/core/src/lib/loaduikits.js @@ -37,36 +37,42 @@ const readModuleFile = (kit, subPath) => { /** * Loads uikits, connecting configuration and installed modules * [1] Looks in node_modules for uikits. - * [2] Filter out our uikit-polyfills package. - * [3] Only continue if uikit is enabled in patternlab-config.json - * [4] Reads files from uikit that apply to every template + * [2] Map them to enabled uikit's in patternlab-config.json + * [3] Reads files from uikit that apply to every template * @param {object} patternlab */ module.exports = patternlab => { const paths = patternlab.config.paths; - const uikits = findModules(nodeModulesPath, isUIKitModule) // [1] - .filter(kit => kit.name !== 'polyfills'); // [2] - uikits.forEach(kit => { - const configEntry = _.find(_.filter(patternlab.config.uikits, 'enabled'), { - name: `uikit-${kit.name}`, - }); // [3] + const uikitModules = findModules(nodeModulesPath, isUIKitModule); // [1] - if (!configEntry) { + _.filter(patternlab.config.uikits, 'enabled').forEach(uikit => { + const kit = _.find(uikitModules, { + name: uikit.name.replace('uikit-', ''), + }); // [2] + + if (!kit) { logger.warning( - `Could not find uikit with name uikit-${kit.name} defined within patternlab-config.json, or it is not enabled.` + `Could not find uikit plugin with name uikit-${kit.name} defined within patternlab-config.json.` ); return; } + if (!uikit.id) { + logger.warning( + `ID for ${uikit.name} is missing, ${uikit.name} will be used instead. Caution, this can cause uikit's using the same package to malfunction.` + ); + uikit.id = uikit.name; + } + try { - patternlab.uikits[`uikit-${kit.name}`] = { - name: `uikit-${kit.name}`, + patternlab.uikits[uikit.id] = { + name: uikit.name, modulePath: kit.modulePath, enabled: true, - outputDir: configEntry.outputDir, - excludedPatternStates: configEntry.excludedPatternStates, - excludedTags: configEntry.excludedTags, + outputDir: uikit.outputDir, + excludedPatternStates: uikit.excludedPatternStates, + excludedTags: uikit.excludedTags, header: readModuleFile( kit, paths.source.patternlabFiles['general-header'] diff --git a/packages/core/test/loaduitkits_tests.js b/packages/core/test/loaduitkits_tests.js index 23bdcd656..d9ca18c33 100644 --- a/packages/core/test/loaduitkits_tests.js +++ b/packages/core/test/loaduitkits_tests.js @@ -78,6 +78,7 @@ tap.test('loaduikits - maps fields correctly', function(test) { const uikitFoo = { name: 'uikit-foo', + id: 'foo', enabled: true, outputDir: 'foo', excludedPatternStates: ['legacy'], @@ -148,3 +149,39 @@ tap.test('loaduikits - only adds files for enabled uikits', function(test) { test.end(); }); }); + +tap.test('loaduikits - reuse uikit-plugin for diffrent ui kits', function( + test +) { + //arrange + const patternlab = { + config: testConfig, + uikits: [], + }; + + patternlab.config.uikits = [ + { + name: 'uikit-foo', + enabled: true, + outputDir: 'foo', + excludedPatternStates: ['legacy'], + excludedTags: ['baz'], + }, + { + name: 'uikit-foo', + id: 'alternative-foo', + enabled: true, + outputDir: 'bar', + excludedPatternStates: ['development'], + excludedTags: ['baz', 'foo'], + }, + ]; + + //act + loaduikits(patternlab).then(() => { + //assert + test.ok(patternlab.uikits['uikit-foo']); + test.ok(patternlab.uikits['alternative-foo']); + test.end(); + }); +}); diff --git a/packages/docs/php-docs/viewing-patterns.html b/packages/docs/php-docs/viewing-patterns.html index ebc7461d4..ebbaab455 100644 --- a/packages/docs/php-docs/viewing-patterns.html +++ b/packages/docs/php-docs/viewing-patterns.html @@ -4,14 +4,9 @@ - docs --- - - -Pattern Lab utilizes PHP's [built-in web server](http://php.net/manual/en/features.commandline.webserver.php) to let you browse your generated patterns. To start the server do the following: - -1. In a terminal window navigate to the root of your project -2. Type `php core/console --server` - -Your local Pattern Lab install should now be available for browsing at [http://localhost:8080](http://localhost:8080). - - - +Pattern Lab utilizes PHP's [built-in web +server](http://php.net/manual/en/features.commandline.webserver.php) to let you browse +your generated patterns. To start the server do the following: 1. In a terminal window +navigate to the root of your project 2. Type `php core/console --server` Your local +Pattern Lab install should now be available for browsing at +[http://localhost:8080](http://localhost:8080). diff --git a/packages/docs/rollup.config.js b/packages/docs/rollup.config.js index 7f62e07f4..8d516669e 100644 --- a/packages/docs/rollup.config.js +++ b/packages/docs/rollup.config.js @@ -4,16 +4,11 @@ const nodeResolve = require('rollup-plugin-node-resolve'); const json = require('rollup-plugin-json'); export default { - input: 'src/admin/util', - output: { - file: 'dist/admin/util.js', - format: 'iife', - name: 'previewUtil', - }, - plugins: [ - builtins(), - nodeResolve(), - commonjs(), - json(), - ] + input: 'src/admin/util', + output: { + file: 'dist/admin/util.js', + format: 'iife', + name: 'previewUtil' + }, + plugins: [builtins(), nodeResolve(), commonjs(), json()] }; diff --git a/packages/docs/src/_data/global.js b/packages/docs/src/_data/global.js index 683a0a332..15f4f9ded 100644 --- a/packages/docs/src/_data/global.js +++ b/packages/docs/src/_data/global.js @@ -1,9 +1,9 @@ module.exports = { - random() { - const segment = () => { - return (((1 + Math.random()) * 0x10000) | 0).toString(16).substring(1); - }; - return `${segment()}-${segment()}-${segment()}`; - }, - now: Date.now() + random() { + const segment = () => { + return (((1 + Math.random()) * 0x10000) | 0).toString(16).substring(1); + }; + return `${segment()}-${segment()}-${segment()}`; + }, + now: Date.now() }; diff --git a/packages/docs/src/_data/helpers.js b/packages/docs/src/_data/helpers.js index 9ae9b7883..c12bea921 100644 --- a/packages/docs/src/_data/helpers.js +++ b/packages/docs/src/_data/helpers.js @@ -1,10 +1,10 @@ module.exports = { - getNextHeadingLevel(currentLevel) { - return parseInt(currentLevel, 10) + 1; - }, - getReadingTime(text) { - const wordsPerMinute = 200; - const numberOfWords = text.split(/\s/g).length; - return Math.ceil(numberOfWords / wordsPerMinute); - } + getNextHeadingLevel(currentLevel) { + return parseInt(currentLevel, 10) + 1; + }, + getReadingTime(text) { + const wordsPerMinute = 200; + const numberOfWords = text.split(/\s/g).length; + return Math.ceil(numberOfWords / wordsPerMinute); + } }; diff --git a/packages/docs/src/_data/styleguide.js b/packages/docs/src/_data/styleguide.js index 4969bec39..f3ff8c3ec 100644 --- a/packages/docs/src/_data/styleguide.js +++ b/packages/docs/src/_data/styleguide.js @@ -1,28 +1,28 @@ const tokens = require('./tokens.json'); module.exports = { - colors() { - let response = []; + colors() { + let response = []; - Object.keys(tokens.colors).forEach(key => { - response.push({ - value: tokens.colors[key], - key - }); - }); + Object.keys(tokens.colors).forEach(key => { + response.push({ + value: tokens.colors[key], + key + }); + }); - return response; - }, - sizes() { - let response = []; + return response; + }, + sizes() { + let response = []; - Object.keys(tokens['size-scale']).forEach(key => { - response.push({ - value: tokens['size-scale'][key], - key - }); - }); + Object.keys(tokens['size-scale']).forEach(key => { + response.push({ + value: tokens['size-scale'][key], + key + }); + }); - return response; - } + return response; + } }; diff --git a/packages/docs/src/admin/previews.js b/packages/docs/src/admin/previews.js index 82dcd1f2c..8f2eddd54 100644 --- a/packages/docs/src/admin/previews.js +++ b/packages/docs/src/admin/previews.js @@ -7,82 +7,82 @@ env.addFilter('markdownFilter', markdownFilter); env.addFilter('dateFilter', dateFilter); const Preview = ({entry, path, context}) => { - const data = context(entry.get('data').toJS()); - const html = env.render(path, {...data, helpers}); - return
; + const data = context(entry.get('data').toJS()); + const html = env.render(path, {...data, helpers}); + return
; }; const Home = ({entry}) => ( - ({ - title, - content: markdownFilter(body), - postsHeading, - archiveButtonText, - collections: { - postFeed: [ - { - url: 'javascript:void(0)', - date: new Date(), - data: { - title: 'Sample Post' - } - } - ] - } - })} - /> + ({ + title, + content: markdownFilter(body), + postsHeading, + archiveButtonText, + collections: { + postFeed: [ + { + url: 'javascript:void(0)', + date: new Date(), + data: { + title: 'Sample Post' + } + } + ] + } + })} + /> ); const Post = ({entry}) => ( - ({ - title, - date, - content: markdownFilter(body || '') - })} - /> + ({ + title, + date, + content: markdownFilter(body || '') + })} + /> ); const Page = ({entry}) => ( - ({ - title, - content: markdownFilter(body || '') - })} - /> + ({ + title, + content: markdownFilter(body || '') + })} + /> ); const SiteData = ({entry}) => ( - ({ - site: { - name, - shortDesc, - showThemeCredit - } - })} - /> + ({ + site: { + name, + shortDesc, + showThemeCredit + } + })} + /> ); const Nav = ({entry}) => ( - ({ - navigation: { - items - } - })} - /> + ({ + navigation: { + items + } + })} + /> ); CMS.registerPreviewTemplate('home', Home); diff --git a/packages/docs/src/admin/util.js b/packages/docs/src/admin/util.js index 302b159cf..53db2e8ec 100644 --- a/packages/docs/src/admin/util.js +++ b/packages/docs/src/admin/util.js @@ -3,9 +3,4 @@ import dateFilter from '../filters/date-filter'; import markdownFilter from '../filters/markdown-filter'; import w3DateFilter from '../filters/w3-date-filter'; -export { - helpers, - dateFilter, - markdownFilter, - w3DateFilter, -}; +export {helpers, dateFilter, markdownFilter, w3DateFilter}; diff --git a/packages/docs/src/filters/date-filter.js b/packages/docs/src/filters/date-filter.js index 5206da52f..bc9378aa9 100644 --- a/packages/docs/src/filters/date-filter.js +++ b/packages/docs/src/filters/date-filter.js @@ -1,15 +1,28 @@ // Stolen from https://stackoverflow.com/a/31615643 const appendSuffix = n => { - var s = ['th', 'st', 'nd', 'rd'], - v = n % 100; - return n + (s[(v - 20) % 10] || s[v] || s[0]); + var s = ['th', 'st', 'nd', 'rd'], + v = n % 100; + return n + (s[(v - 20) % 10] || s[v] || s[0]); }; module.exports = function dateFilter(value) { - const dateObject = new Date(value); + const dateObject = new Date(value); - const months = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']; - const dayWithSuffix = appendSuffix(dateObject.getDate()); + const months = [ + 'January', + 'February', + 'March', + 'April', + 'May', + 'June', + 'July', + 'August', + 'September', + 'October', + 'November', + 'December' + ]; + const dayWithSuffix = appendSuffix(dateObject.getDate()); - return `${dayWithSuffix} ${months[dateObject.getMonth()]} ${dateObject.getFullYear()}`; + return `${dayWithSuffix} ${months[dateObject.getMonth()]} ${dateObject.getFullYear()}`; }; diff --git a/packages/docs/src/filters/markdown-filter.js b/packages/docs/src/filters/markdown-filter.js index 530c2f571..9a0cc89b9 100644 --- a/packages/docs/src/filters/markdown-filter.js +++ b/packages/docs/src/filters/markdown-filter.js @@ -1,9 +1,9 @@ const markdownIt = require('markdown-it')({ - html: true, - breaks: true, - linkify: true + html: true, + breaks: true, + linkify: true }); module.exports = function markdown(value) { - return markdownIt.render(value); + return markdownIt.render(value); }; diff --git a/packages/docs/src/filters/w3-date-filter.js b/packages/docs/src/filters/w3-date-filter.js index d31538da4..39c0f7ca8 100644 --- a/packages/docs/src/filters/w3-date-filter.js +++ b/packages/docs/src/filters/w3-date-filter.js @@ -1,5 +1,5 @@ module.exports = function w3cDate(value) { - const dateObject = new Date(value); + const dateObject = new Date(value); - return dateObject.toISOString(); + return dateObject.toISOString(); }; diff --git a/packages/docs/src/js/components/theme-toggle.js b/packages/docs/src/js/components/theme-toggle.js index 7e93571a2..3f6358b37 100644 --- a/packages/docs/src/js/components/theme-toggle.js +++ b/packages/docs/src/js/components/theme-toggle.js @@ -2,97 +2,97 @@ const html = String.raw; class ThemeToggle extends HTMLElement { - constructor() { - super(); - - this.STORAGE_KEY = 'user-color-scheme'; - this.COLOR_MODE_KEY = '--color-mode'; - } - - connectedCallback() { - this.render(); - } - - getCSSCustomProp(propKey) { - let response = getComputedStyle(document.documentElement).getPropertyValue(propKey); - - // Tidy up the string if there’s something to work with - if (response.length) { - response = response.replace(/\'|"/g, '').trim(); - } - - // Return the string response by default - return response; - } - - applySetting(passedSetting) { - let currentSetting = passedSetting || localStorage.getItem(this.STORAGE_KEY); - - if (currentSetting) { - document.documentElement.setAttribute('data-user-color-scheme', currentSetting); - this.setButtonLabelAndStatus(currentSetting); - } else { - this.setButtonLabelAndStatus(this.getCSSCustomProp(this.COLOR_MODE_KEY)); - } - } - - toggleSetting() { - let currentSetting = localStorage.getItem(this.STORAGE_KEY); - - switch (currentSetting) { - case null: - currentSetting = - this.getCSSCustomProp(this.COLOR_MODE_KEY) === 'dark' ? 'light' : 'dark'; - break; - case 'light': - currentSetting = 'dark'; - break; - case 'dark': - currentSetting = 'light'; - break; - } - - localStorage.setItem(this.STORAGE_KEY, currentSetting); - - return currentSetting; - } - - setButtonLabelAndStatus(currentSetting) { - this.modeToggleButton.innerText = `${ - currentSetting === 'dark' ? 'Light' : 'Dark' - } theme`; - this.modeStatusElement.innerText = `Color mode is now "${currentSetting}"`; - } - - render() { - this.innerHTML = html` -
-
- -
- `; - - this.afterRender(); - } - - afterRender() { - this.modeToggleButton = document.querySelector('.js-mode-toggle'); - this.modeStatusElement = document.querySelector('.js-mode-status'); - - this.modeToggleButton.addEventListener('click', evt => { - evt.preventDefault(); - - this.applySetting(this.toggleSetting()); - }); - - this.applySetting(); - } + constructor() { + super(); + + this.STORAGE_KEY = 'user-color-scheme'; + this.COLOR_MODE_KEY = '--color-mode'; + } + + connectedCallback() { + this.render(); + } + + getCSSCustomProp(propKey) { + let response = getComputedStyle(document.documentElement).getPropertyValue(propKey); + + // Tidy up the string if there’s something to work with + if (response.length) { + response = response.replace(/\'|"/g, '').trim(); + } + + // Return the string response by default + return response; + } + + applySetting(passedSetting) { + let currentSetting = passedSetting || localStorage.getItem(this.STORAGE_KEY); + + if (currentSetting) { + document.documentElement.setAttribute('data-user-color-scheme', currentSetting); + this.setButtonLabelAndStatus(currentSetting); + } else { + this.setButtonLabelAndStatus(this.getCSSCustomProp(this.COLOR_MODE_KEY)); + } + } + + toggleSetting() { + let currentSetting = localStorage.getItem(this.STORAGE_KEY); + + switch (currentSetting) { + case null: + currentSetting = + this.getCSSCustomProp(this.COLOR_MODE_KEY) === 'dark' ? 'light' : 'dark'; + break; + case 'light': + currentSetting = 'dark'; + break; + case 'dark': + currentSetting = 'light'; + break; + } + + localStorage.setItem(this.STORAGE_KEY, currentSetting); + + return currentSetting; + } + + setButtonLabelAndStatus(currentSetting) { + this.modeToggleButton.innerText = `${ + currentSetting === 'dark' ? 'Light' : 'Dark' + } theme`; + this.modeStatusElement.innerText = `Color mode is now "${currentSetting}"`; + } + + render() { + this.innerHTML = html` +
+
+ +
+ `; + + this.afterRender(); + } + + afterRender() { + this.modeToggleButton = document.querySelector('.js-mode-toggle'); + this.modeStatusElement = document.querySelector('.js-mode-status'); + + this.modeToggleButton.addEventListener('click', evt => { + evt.preventDefault(); + + this.applySetting(this.toggleSetting()); + }); + + this.applySetting(); + } } if ('customElements' in window) { - customElements.define('theme-toggle', ThemeToggle); + customElements.define('theme-toggle', ThemeToggle); } export default ThemeToggle; diff --git a/packages/docs/src/transforms/html-min-transform.js b/packages/docs/src/transforms/html-min-transform.js index 7d0c8f99b..aec1a5676 100644 --- a/packages/docs/src/transforms/html-min-transform.js +++ b/packages/docs/src/transforms/html-min-transform.js @@ -1,14 +1,14 @@ const htmlmin = require('html-minifier'); module.exports = function htmlMinTransform(value, outputPath) { - if (outputPath.indexOf('.html') > -1) { - let minified = htmlmin.minify(value, { - useShortDoctype: true, - removeComments: true, - collapseWhitespace: true, - minifyCSS: true - }); - return minified; - } - return value; + if (outputPath.indexOf('.html') > -1) { + let minified = htmlmin.minify(value, { + useShortDoctype: true, + removeComments: true, + collapseWhitespace: true, + minifyCSS: true + }); + return minified; + } + return value; }; diff --git a/packages/docs/src/transforms/parse-transform.js b/packages/docs/src/transforms/parse-transform.js index 541f04cf7..a7d75788c 100644 --- a/packages/docs/src/transforms/parse-transform.js +++ b/packages/docs/src/transforms/parse-transform.js @@ -4,76 +4,75 @@ const minify = require('../utils/minify.js'); const slugify = require('slugify'); module.exports = function(value, outputPath) { - if (outputPath.endsWith('.html')) { - const DOM = new JSDOM(value, { - resources: 'usable' - }); - - const document = DOM.window.document; - const articleImages = [...document.querySelectorAll('main article img')]; - const articleHeadings = [ - ...document.querySelectorAll('main article h2, main article h3') - ]; - const articleEmbeds = [...document.querySelectorAll('main article iframe')]; - - if (articleImages.length) { - articleImages.forEach(image => { - image.setAttribute('loading', 'lazy'); - - // If an image has a title it means that the user added a caption - // so replace the image with a figure containing that image and a caption - if (image.hasAttribute('title')) { - const figure = document.createElement('figure'); - const figCaption = document.createElement('figcaption'); - - figCaption.innerHTML = image.getAttribute('title'); - - image.removeAttribute('title'); - - figure.appendChild(image.cloneNode(true)); - figure.appendChild(figCaption); - - image.replaceWith(figure); - } - - }); - } - - if (articleHeadings.length) { - // Loop each heading and add a little anchor and an ID to each one - articleHeadings.forEach(heading => { - const headingSlug = slugify(heading.textContent.toLowerCase()); - const anchor = document.createElement('a'); - - anchor.setAttribute('href', `#heading-${headingSlug}`); - anchor.classList.add('heading-permalink'); - anchor.innerHTML = minify(` + if (outputPath.endsWith('.html')) { + const DOM = new JSDOM(value, { + resources: 'usable' + }); + + const document = DOM.window.document; + const articleImages = [...document.querySelectorAll('main article img')]; + const articleHeadings = [ + ...document.querySelectorAll('main article h2, main article h3') + ]; + const articleEmbeds = [...document.querySelectorAll('main article iframe')]; + + if (articleImages.length) { + articleImages.forEach(image => { + image.setAttribute('loading', 'lazy'); + + // If an image has a title it means that the user added a caption + // so replace the image with a figure containing that image and a caption + if (image.hasAttribute('title')) { + const figure = document.createElement('figure'); + const figCaption = document.createElement('figcaption'); + + figCaption.innerHTML = image.getAttribute('title'); + + image.removeAttribute('title'); + + figure.appendChild(image.cloneNode(true)); + figure.appendChild(figCaption); + + image.replaceWith(figure); + } + }); + } + + if (articleHeadings.length) { + // Loop each heading and add a little anchor and an ID to each one + articleHeadings.forEach(heading => { + const headingSlug = slugify(heading.textContent.toLowerCase()); + const anchor = document.createElement('a'); + + anchor.setAttribute('href', `#heading-${headingSlug}`); + anchor.classList.add('heading-permalink'); + anchor.innerHTML = minify(` permalink `); - heading.setAttribute('id', `heading-${headingSlug}`); - heading.appendChild(anchor); - }); - } + heading.setAttribute('id', `heading-${headingSlug}`); + heading.appendChild(anchor); + }); + } - // Look for videos are wrap them in a container element - if (articleEmbeds.length) { - articleEmbeds.forEach(embed => { - if (embed.hasAttribute('allowfullscreen')) { - const player = document.createElement('div'); + // Look for videos are wrap them in a container element + if (articleEmbeds.length) { + articleEmbeds.forEach(embed => { + if (embed.hasAttribute('allowfullscreen')) { + const player = document.createElement('div'); - player.classList.add('video-player'); + player.classList.add('video-player'); - player.appendChild(embed.cloneNode(true)); + player.appendChild(embed.cloneNode(true)); - embed.replaceWith(player); - } - }); - } + embed.replaceWith(player); + } + }); + } - return '\r\n' + document.documentElement.outerHTML; - } - return value; + return '\r\n' + document.documentElement.outerHTML; + } + return value; }; diff --git a/packages/docs/src/utils/minify.js b/packages/docs/src/utils/minify.js index dd80e240c..19248c5d8 100644 --- a/packages/docs/src/utils/minify.js +++ b/packages/docs/src/utils/minify.js @@ -1,3 +1,3 @@ module.exports = function minify(input) { - return input.replace(/\s{2,}/g, '').replace(/\'/g, '"'); + return input.replace(/\s{2,}/g, '').replace(/\'/g, '"'); }; diff --git a/packages/engine-twig-php/lib/engine_twig_php.js b/packages/engine-twig-php/lib/engine_twig_php.js index f675e94d1..cb3149f35 100644 --- a/packages/engine-twig-php/lib/engine_twig_php.js +++ b/packages/engine-twig-php/lib/engine_twig_php.js @@ -45,7 +45,12 @@ const engine_twig_php = { process.exit(1); } - const { namespaces, alterTwigEnv, relativeFrom, ...rest } = config.engines.twig; + const { + namespaces, + alterTwigEnv, + relativeFrom, + ...rest + } = config.engines.twig; // Schema on config object being passed in: // https://github.com/basaltinc/twig-renderer/blob/master/config.schema.json diff --git a/packages/plugin-tab/src/snippet.js b/packages/plugin-tab/src/snippet.js index 337f00fec..968ae163f 100644 --- a/packages/plugin-tab/src/snippet.js +++ b/packages/plugin-tab/src/snippet.js @@ -1,13 +1,15 @@ window.patternlab.panels.add({ id: 'sg-panel-<>', name: '<>', - default: window.config.defaultPatternInfoPanelCode && window.config.defaultPatternInfoPanelCode === "<>", + default: + window.config.defaultPatternInfoPanelCode && + window.config.defaultPatternInfoPanelCode === '<>', templateID: 'pl-panel-template-code', httpRequest: true, httpRequestReplace: '.<>', httpRequestCompleted: false, prismHighlight: true, - language: '<>'//, + language: '<>', //, /* TODO: We would need to find a way to enable keyCombo for multiple panels keyCombo: 'ctrl+shift+z',*/ }); diff --git a/packages/uikit-workshop/src/scripts/components/panels.js b/packages/uikit-workshop/src/scripts/components/panels.js index 5c5739870..f4ad404a2 100644 --- a/packages/uikit-workshop/src/scripts/components/panels.js +++ b/packages/uikit-workshop/src/scripts/components/panels.js @@ -68,9 +68,10 @@ function init(event) { Panels.add({ id: 'pl-panel-pattern', name: window.config.patternExtension.toUpperCase(), - default: !window.config.defaultPatternInfoPanelCode || - window.config.defaultPatternInfoPanelCode === - window.config.patternExtension, + default: + !window.config.defaultPatternInfoPanelCode || + window.config.defaultPatternInfoPanelCode === + window.config.patternExtension, templateID: 'pl-panel-template-code', httpRequest: true, httpRequestReplace: fileSuffixPattern,