| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 | 
							- "format cjs";
 
- var wrap = require('word-wrap');
 
- var map = require('lodash.map');
 
- var longest = require('longest');
 
- var rightPad = require('right-pad');
 
- // This can be any kind of SystemJS compatible module.
 
- // We use Commonjs here, but ES6 or AMD would do just
 
- // fine.
 
- module.exports = function (options) {
 
-   var types = options.types;
 
-   var length = longest(Object.keys(types)).length + 1;
 
-   var choices = map(types, function (type, key) {
 
-     return {
 
-       name: rightPad(key + ':', length) + ' ' + type.description,
 
-       value: key
 
-     };
 
-   });
 
-   return {
 
-     // When a user runs `git cz`, prompter will
 
-     // be executed. We pass you cz, which currently
 
-     // is just an instance of inquirer.js. Using
 
-     // this you can ask questions and get answers.
 
-     //
 
-     // The commit callback should be executed when
 
-     // you're ready to send back a commit template
 
-     // to git.
 
-     //
 
-     // By default, we'll de-indent your commit
 
-     // template and will keep empty lines.
 
-     prompter: function(cz, commit) {
 
-       console.log('\nLine 1 will be cropped at 100 characters. All other lines will be wrapped after 100 characters.\n');
 
-       // Let's ask some questions of the user
 
-       // so that we can populate our commit
 
-       // template.
 
-       //
 
-       // See inquirer.js docs for specifics.
 
-       // You can also opt to use another input
 
-       // collection library if you prefer.
 
-       cz.prompt([
 
-         {
 
-           type: 'list',
 
-           name: 'type',
 
-           message: 'Select the type of change that you\'re committing:',
 
-           choices: choices
 
-         }, {
 
-           type: 'input',
 
-           name: 'scope',
 
-           message: 'Denote the scope of this change ($location, $browser, $compile, etc.):\n'
 
-         }, {
 
-           type: 'input',
 
-           name: 'subject',
 
-           message: 'Write a short, imperative tense description of the change:\n'
 
-         }, {
 
-           type: 'input',
 
-           name: 'body',
 
-           message: 'Provide a longer description of the change:\n'
 
-         }, {
 
-           type: 'input',
 
-           name: 'footer',
 
-           message: 'List any breaking changes or issues closed by this change:\n'
 
-         }
 
-       ]).then(function(answers) {
 
-         var maxLineWidth = 100;
 
-         var wrapOptions = {
 
-           trim: true,
 
-           newline: '\n',
 
-           indent:'',
 
-           width: maxLineWidth
 
-         };
 
-         // parentheses are only needed when a scope is present
 
-         var scope = answers.scope.trim();
 
-         scope = scope ? '(' + answers.scope.trim() + ')' : '';
 
-         // Hard limit this line
 
-         var head = (answers.type + scope + ': ' + answers.subject.trim()).slice(0, maxLineWidth);
 
-         // Wrap these lines at 100 characters
 
-         var body = wrap(answers.body, wrapOptions);
 
-         var footer = wrap(answers.footer, wrapOptions);
 
-         commit(head + '\n\n' + body + '\n\n' + footer);
 
-       });
 
-     }
 
-   };
 
- };
 
 
  |