eed91ba84d
* add storybook
* add storybook files
* add ToggleButton and AlertBanner stories
* add knobs addon
* add notes addon
* add ToggleButton and AlertsBanner notes
* move panel to right
* add ICon
* create story blueprint
* add header to blueprint
* upgrade to storybook 5.0.1
* add confirm-action stories
* move addon panel to bottom
* update ConfirmAction
* add jsdoc comments to alert banner component
* add AlertInline
* set showPanel to true in blueprint
* include newly generated markdown for stories
* adjust code example for toggle button
* add json-to-markdown to package.json
* update AuthForm
* add Storybook readme
* add AlertPopup
* add story markdown custom template
* make storybook dependencies optional
* center all stories
* use message-types helper to dynamically render alerts
* hide panel
* nest alert stories
* move icons into table
* separate homelink into multiple stories
* add homelink with nav example
* remove see links from alert-banner
* add script to autogenerate markdown from component and add it to stories
* add viewport addon and remove centered addon
* update README to include markdown generation
* remove @see links from jsdoc comments
* update README to include jsdoc example
* update alert banner md
* get rid of trailing ######
* update jsdoc and regenerate notes files
* update i-con md
* Update ui/scripts/gen-story-md.js
Co-Authored-By: noelledaley <noelledaley@users.noreply.github.com>
* Update ui/scripts/gen-story-md.js
Co-Authored-By: noelledaley <noelledaley@users.noreply.github.com>
* add storybook docs to vault ui readme
* add jsdoc comments to component blueprint, automatically import md file in story blueprint
* add template template to component blueprint override
* apply basic theme to storybook
* remove comment
* make sure all stories are using auto generated md
* storybook: show optional props in brackets
* storybook: 🔪 HomeLink
* storybook: show AuthConfigForm stories with knobs
84 lines
2.2 KiB
JavaScript
84 lines
2.2 KiB
JavaScript
'use strict';
|
|
|
|
const path = require('path');
|
|
const stringUtil = require('ember-cli-string-utils');
|
|
const pathUtil = require('ember-cli-path-utils');
|
|
const validComponentName = require('ember-cli-valid-component-name');
|
|
const getPathOption = require('ember-cli-get-component-path-option');
|
|
const normalizeEntityName = require('ember-cli-normalize-entity-name');
|
|
|
|
module.exports = {
|
|
description: 'Generates a component. Name must contain a hyphen.',
|
|
|
|
availableOptions: [
|
|
{
|
|
name: 'path',
|
|
type: String,
|
|
default: 'components',
|
|
aliases: [{ 'no-path': '' }],
|
|
},
|
|
],
|
|
|
|
filesPath: function() {
|
|
let filesDirectory = 'files';
|
|
|
|
return path.join(this.path, filesDirectory);
|
|
},
|
|
|
|
fileMapTokens: function() {
|
|
return {
|
|
__path__: function(options) {
|
|
if (options.pod) {
|
|
return path.join(options.podPath, options.locals.path, options.dasherizedModuleName);
|
|
} else {
|
|
return 'components';
|
|
}
|
|
},
|
|
__templatepath__: function(options) {
|
|
if (options.pod) {
|
|
return path.join(options.podPath, options.locals.path, options.dasherizedModuleName);
|
|
}
|
|
return 'templates/components';
|
|
},
|
|
__templatename__: function(options) {
|
|
if (options.pod) {
|
|
return 'template';
|
|
}
|
|
return options.dasherizedModuleName;
|
|
},
|
|
};
|
|
},
|
|
|
|
normalizeEntityName: function(entityName) {
|
|
entityName = normalizeEntityName(entityName);
|
|
|
|
return validComponentName(entityName);
|
|
},
|
|
|
|
locals: function(options) {
|
|
let templatePath = '';
|
|
let importTemplate = '';
|
|
let contents = '';
|
|
|
|
// if we're in an addon, build import statement
|
|
if (options.project.isEmberCLIAddon() || (options.inRepoAddon && !options.inDummy)) {
|
|
if (options.pod) {
|
|
templatePath = './template';
|
|
} else {
|
|
templatePath =
|
|
pathUtil.getRelativeParentPath(options.entity.name) +
|
|
'templates/components/' +
|
|
stringUtil.dasherize(options.entity.name);
|
|
}
|
|
importTemplate = "import layout from '" + templatePath + "';\n";
|
|
contents = '\n layout';
|
|
}
|
|
|
|
return {
|
|
importTemplate: importTemplate,
|
|
contents: contents,
|
|
path: getPathOption(options),
|
|
};
|
|
},
|
|
};
|