tag:github.com,2008:https://github.com/vue-generators/vue-form-generator/releasesRelease notes from vue-form-generator2019-02-09T15:05:55Ztag:github.com,2008:Repository/57243275/v2.3.42019-02-09T15:10:16Zv2.3.4<p>v2.3.4 (2019-02-07)<br>
<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="336033748" data-permission-text="Title is private" data-url="https://github.com/vue-generators/vue-form-generator/issues/469" data-hovercard-type="issue" data-hovercard-url="/vue-generators/vue-form-generator/issues/469/hovercard" href="https://github.com/vue-generators/vue-form-generator/issues/469">#469</a> - fixes example in README, tested with a fresh vue-cli project (<a class="commit-link" data-hovercard-type="commit" data-hovercard-url="https://github.com/vue-generators/vue-form-generator/commit/b0037c905f99357d177dac9eb6df50a86d0646f2/hovercard" href="https://github.com/vue-generators/vue-form-generator/commit/b0037c905f99357d177dac9eb6df50a86d0646f2"><tt>b0037c9</tt></a>)<br>
<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="386212150" data-permission-text="Title is private" data-url="https://github.com/vue-generators/vue-form-generator/issues/551" data-hovercard-type="issue" data-hovercard-url="/vue-generators/vue-form-generator/issues/551/hovercard" href="https://github.com/vue-generators/vue-form-generator/issues/551">#551</a> - added "is-disabled" class to the radios label (<a class="commit-link" data-hovercard-type="commit" data-hovercard-url="https://github.com/vue-generators/vue-form-generator/commit/1e9db8e01cdf1e9d877fcde629c1ca1e28dfdc39/hovercard" href="https://github.com/vue-generators/vue-form-generator/commit/1e9db8e01cdf1e9d877fcde629c1ca1e28dfdc39"><tt>1e9db8e</tt></a>), closes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="386212150" data-permission-text="Title is private" data-url="https://github.com/vue-generators/vue-form-generator/issues/551" data-hovercard-type="issue" data-hovercard-url="/vue-generators/vue-form-generator/issues/551/hovercard" href="https://github.com/vue-generators/vue-form-generator/issues/551">#551</a><br>
Add vfg-field-matrix into the readme (<a class="commit-link" data-hovercard-type="commit" data-hovercard-url="https://github.com/vue-generators/vue-form-generator/commit/a898201b3381d9199d6718614835cb605b8990bb/hovercard" href="https://github.com/vue-generators/vue-form-generator/commit/a898201b3381d9199d6718614835cb605b8990bb"><tt>a898201</tt></a>)<br>
added optional field property debounceValidateTime which works at the field level, allowing indivi (<a class="commit-link" data-hovercard-type="commit" data-hovercard-url="https://github.com/vue-generators/vue-form-generator/commit/d98fa5089585dd1053a73771fe4f839abc5748a9/hovercard" href="https://github.com/vue-generators/vue-form-generator/commit/d98fa5089585dd1053a73771fe4f839abc5748a9"><tt>d98fa50</tt></a>)<br>
Ref <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="391094709" data-permission-text="Title is private" data-url="https://github.com/vue-generators/vue-form-generator/issues/563" data-hovercard-type="issue" data-hovercard-url="/vue-generators/vue-form-generator/issues/563/hovercard" href="https://github.com/vue-generators/vue-form-generator/issues/563">#563</a> - return unique validation errors (prevents multiple validators from returning "this field (<a class="commit-link" data-hovercard-type="commit" data-hovercard-url="https://github.com/vue-generators/vue-form-generator/commit/f9c699b64bda75cdf4e9007c1b2a78c481ec2af3/hovercard" href="https://github.com/vue-generators/vue-form-generator/commit/f9c699b64bda75cdf4e9007c1b2a78c481ec2af3"><tt>f9c699b</tt></a>), closes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="391094709" data-permission-text="Title is private" data-url="https://github.com/vue-generators/vue-form-generator/issues/563" data-hovercard-type="issue" data-hovercard-url="/vue-generators/vue-form-generator/issues/563/hovercard" href="https://github.com/vue-generators/vue-form-generator/issues/563">#563</a><br>
single-quotes fix (<a class="commit-link" data-hovercard-type="commit" data-hovercard-url="https://github.com/vue-generators/vue-form-generator/commit/57563175a322389c3ff433eccba7f11698d978b0/hovercard" href="https://github.com/vue-generators/vue-form-generator/commit/57563175a322389c3ff433eccba7f11698d978b0"><tt>5756317</tt></a>)<br>
Update validators.js (<a class="commit-link" data-hovercard-type="commit" data-hovercard-url="https://github.com/vue-generators/vue-form-generator/commit/a2829334f4cfe0cf54f43dc460e55097c4541888/hovercard" href="https://github.com/vue-generators/vue-form-generator/commit/a2829334f4cfe0cf54f43dc460e55097c4541888"><tt>a282933</tt></a>)<br>
updated abstractField test, seems the field.formOptions wasn't being updated, the `this.$parent.op (<a class="commit-link" data-hovercard-type="commit" data-hovercard-url="https://github.com/vue-generators/vue-form-generator/commit/8c1f462bf94f77eac5f7a2e9e4bb91c012b36685/hovercard" href="https://github.com/vue-generators/vue-form-generator/commit/8c1f462bf94f77eac5f7a2e9e4bb91c012b36685"><tt>8c1f462</tt></a>)<br>
updated package-lock with latest deps (<a class="commit-link" data-hovercard-type="commit" data-hovercard-url="https://github.com/vue-generators/vue-form-generator/commit/f7d7c71af768f98b8d82762df665555fbf437434/hovercard" href="https://github.com/vue-generators/vue-form-generator/commit/f7d7c71af768f98b8d82762df665555fbf437434"><tt>f7d7c71</tt></a>)</p>zoul0813tag:github.com,2008:Repository/57243275/v2.3.32018-12-14T20:59:10Zv2.3.3<ul>
<li><a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="372548994" data-permission-text="Title is private" data-url="https://github.com/vue-generators/vue-form-generator/issues/535" data-hovercard-type="pull_request" data-hovercard-url="/vue-generators/vue-form-generator/pull/535/hovercard" href="https://github.com/vue-generators/vue-form-generator/pull/535">#535</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="371152354" data-permission-text="Title is private" data-url="https://github.com/vue-generators/vue-form-generator/issues/526" data-hovercard-type="pull_request" data-hovercard-url="/vue-generators/vue-form-generator/pull/526/hovercard" href="https://github.com/vue-generators/vue-form-generator/pull/526">#526</a> - reversed "deep property path" fix (<a href="https://github.com/vue-generators/vue-form-generator/commit/da32bde">da32bde</a>), closes <a href="https://github.com/vue-generators/vue-form-generator/issues/535" data-hovercard-type="pull_request" data-hovercard-url="/vue-generators/vue-form-generator/pull/535/hovercard">#535</a> <a href="https://github.com/vue-generators/vue-form-generator/issues/526" data-hovercard-type="pull_request" data-hovercard-url="/vue-generators/vue-form-generator/pull/526/hovercard">#526</a></li>
<li>added "item.disabled" logic, supporting both boolean values and a function that is passed a referenc (<a href="https://github.com/vue-generators/vue-form-generator/commit/b227eb4">b227eb4</a>)</li>
<li>added "options" to VFG install function, appending custom "validators" to the validators object that (<a href="https://github.com/vue-generators/vue-form-generator/commit/892469e">892469e</a>)</li>
<li>added "type" attribute to inside buttons schema, defaults to "button" when one is not provided (<a href="https://github.com/vue-generators/vue-form-generator/commit/3306893">3306893</a>)</li>
<li>added an optional "unique" flag to "getFieldID" that appends lodash "uniqueId" to the ID when true. (<a href="https://github.com/vue-generators/vue-form-generator/commit/ab1daeb">ab1daeb</a>), closes <a href="https://github.com/vue-generators/vue-form-generator/issues/468" data-hovercard-type="issue" data-hovercard-url="/vue-generators/vue-form-generator/issues/468/hovercard">#468</a></li>
<li>added newline (<a href="https://github.com/vue-generators/vue-form-generator/commit/5813f0a">5813f0a</a>)</li>
<li>Codacy (guard-for-in) fix (<a href="https://github.com/vue-generators/vue-form-generator/commit/4e81d2d">4e81d2d</a>)</li>
<li>code fix (<a href="https://github.com/vue-generators/vue-form-generator/commit/b3a1010">b3a1010</a>)</li>
<li>Fix required number input does not require a value (<a href="https://github.com/vue-generators/vue-form-generator/commit/f95b38c">f95b38c</a>)</li>
<li>fixed code structure (<a href="https://github.com/vue-generators/vue-form-generator/commit/3b750b3">3b750b3</a>)</li>
<li>fixed single-quotes (<a href="https://github.com/vue-generators/vue-form-generator/commit/dfee175">dfee175</a>)</li>
<li>fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="346363390" data-permission-text="Title is private" data-url="https://github.com/vue-generators/vue-form-generator/issues/480" data-hovercard-type="issue" data-hovercard-url="/vue-generators/vue-form-generator/issues/480/hovercard" href="https://github.com/vue-generators/vue-form-generator/issues/480">#480</a> - dates are always passed to "date" and "datetime-local" elements using the standard form (<a href="https://github.com/vue-generators/vue-form-generator/commit/db3413f">db3413f</a>), closes <a href="https://github.com/vue-generators/vue-form-generator/issues/480" data-hovercard-type="issue" data-hovercard-url="/vue-generators/vue-form-generator/issues/480/hovercard">#480</a></li>
<li>fixes an issue with fieldPikaday modifying the field schema and attaching <code>this.$el</code> to it, the pika (<a href="https://github.com/vue-generators/vue-form-generator/commit/2024204">2024204</a>)</li>
<li>listen for model-updated from <code>fields</code>, and fix <code>debounceFormatFunction</code> property to match fieldInpu (<a href="https://github.com/vue-generators/vue-form-generator/commit/7ad1fca">7ad1fca</a>)</li>
<li>migrated VFG docs to newer GitBooks, created GitHub Repo for Docs to allow for easier maintenance, u (<a href="https://github.com/vue-generators/vue-form-generator/commit/d372f5b">d372f5b</a>)</li>
<li>feat: add maxElements slot to fieldVueMultiSelect (<a href="https://github.com/vue-generators/vue-form-generator/commit/2e91a2f">2e91a2f</a>)</li>
</ul>zoul0813tag:github.com,2008:Repository/57243275/v2.3.22018-10-29T13:17:20Zv2.3.2<ul>
<li>Export dist (<a class="commit-link" data-hovercard-type="commit" data-hovercard-url="https://github.com/vue-generators/vue-form-generator/commit/9912b5e6034a072dd1da4047343f6464c7b1d359/hovercard" href="https://github.com/vue-generators/vue-form-generator/commit/9912b5e6034a072dd1da4047343f6464c7b1d359"><tt>9912b5e</tt></a>)</li>
<li>Fix deep property path not working (<a class="commit-link" data-hovercard-type="commit" data-hovercard-url="https://github.com/vue-generators/vue-form-generator/commit/fb02f26e14462dd274a7110d0208b951610640fd/hovercard" href="https://github.com/vue-generators/vue-form-generator/commit/fb02f26e14462dd274a7110d0208b951610640fd"><tt>fb02f26</tt></a>)</li>
<li>Fix fieldSubmit not calling validate method (<a class="commit-link" data-hovercard-type="commit" data-hovercard-url="https://github.com/vue-generators/vue-form-generator/commit/c82c44b342d67b39e3a8a78f9dc13fc594ca3f17/hovercard" href="https://github.com/vue-generators/vue-form-generator/commit/c82c44b342d67b39e3a8a78f9dc13fc594ca3f17"><tt>c82c44b</tt></a>)</li>
<li>Fix Rawgit shut down (<a class="commit-link" data-hovercard-type="commit" data-hovercard-url="https://github.com/vue-generators/vue-form-generator/commit/34e08a6749d517fa4a93942927683b944762b53e/hovercard" href="https://github.com/vue-generators/vue-form-generator/commit/34e08a6749d517fa4a93942927683b944762b53e"><tt>34e08a6</tt></a>)</li>
<li>docs: replace duplicated 2.3.0 with 2.3.1 (<a class="commit-link" data-hovercard-type="commit" data-hovercard-url="https://github.com/vue-generators/vue-form-generator/commit/69bbfcedfb3743c1f7daf290631ece7b96dab2f4/hovercard" href="https://github.com/vue-generators/vue-form-generator/commit/69bbfcedfb3743c1f7daf290631ece7b96dab2f4"><tt>69bbfce</tt></a>)</li>
<li>feat(fields): add required attribute to checkbox component (<a class="commit-link" data-hovercard-type="commit" data-hovercard-url="https://github.com/vue-generators/vue-form-generator/commit/2b3c7e5fdd0e5ebb4d64482c2dec31e3f0870272/hovercard" href="https://github.com/vue-generators/vue-form-generator/commit/2b3c7e5fdd0e5ebb4d64482c2dec31e3f0870272"><tt>2b3c7e5</tt></a>)</li>
<li>feat(fields): add required attribute to radios component (<a class="commit-link" data-hovercard-type="commit" data-hovercard-url="https://github.com/vue-generators/vue-form-generator/commit/8d0425297becfa921f9311c9d9703513183b00de/hovercard" href="https://github.com/vue-generators/vue-form-generator/commit/8d0425297becfa921f9311c9d9703513183b00de"><tt>8d04252</tt></a>)</li>
</ul>zoul0813tag:github.com,2008:Repository/57243275/v2.3.12018-10-17T15:12:53Zv2.3.1<ul>
<li>Use lodash-webpack-plugin for even better size</li>
<li>Added required attribute to textarea</li>
</ul>zoul0813tag:github.com,2008:Repository/57243275/3.0.0-beta.42018-10-03T14:27:16Z3.0.0-beta.4<p>A little bit of cleaning.<br>
No breaking changes since the last beta.<br>
This release can be considered the real start of the beta.</p>lionel-bijaouitag:github.com,2008:Repository/57243275/3.0.0-beta.32018-10-03T14:24:23Z3.0.0-beta.3<p>This is the first version of the v3 that work<br>
It is a major version with lot's of breaking changes (and more to come during the beta phase)<br>
Here is a mini migration guide if you want to test it for yourself.</p>
<h2>Breaking changes</h2>
<h3>Schema</h3>
<p>Read changes here <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="347461349" data-permission-text="Title is private" data-url="https://github.com/vue-generators/vue-form-generator/issues/481" data-hovercard-type="pull_request" data-hovercard-url="/vue-generators/vue-form-generator/pull/481/hovercard" href="https://github.com/vue-generators/vue-form-generator/pull/481">#481</a><br>
TL;DR<br>
Top keys are restricted to this list :</p>
<div class="highlight highlight-source-js notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="const allowedKeys = [
// Minimal
"type",
"model",
// Identity
"id",
"inputName",
// Texts
"label",
"placeholder",
"hint",
"help",
// Modifiers
"featured",
"visible",
"disabled",
"required",
"readonly",
"validator",
// Other options
"styleClasses",
"labelClasses",
"fieldClasses",
"fieldOptions",
"values",
"buttons",
"attributes",
// Getter/Setter
"get",
"set",
// Events
"onChanged",
"onValidated"
];"><pre><span class="pl-k">const</span> <span class="pl-s1">allowedKeys</span> <span class="pl-c1">=</span> <span class="pl-kos">[</span>
<span class="pl-c">// Minimal</span>
<span class="pl-s">"type"</span><span class="pl-kos">,</span>
<span class="pl-s">"model"</span><span class="pl-kos">,</span>
<span class="pl-c">// Identity</span>
<span class="pl-s">"id"</span><span class="pl-kos">,</span>
<span class="pl-s">"inputName"</span><span class="pl-kos">,</span>
<span class="pl-c">// Texts</span>
<span class="pl-s">"label"</span><span class="pl-kos">,</span>
<span class="pl-s">"placeholder"</span><span class="pl-kos">,</span>
<span class="pl-s">"hint"</span><span class="pl-kos">,</span>
<span class="pl-s">"help"</span><span class="pl-kos">,</span>
<span class="pl-c">// Modifiers</span>
<span class="pl-s">"featured"</span><span class="pl-kos">,</span>
<span class="pl-s">"visible"</span><span class="pl-kos">,</span>
<span class="pl-s">"disabled"</span><span class="pl-kos">,</span>
<span class="pl-s">"required"</span><span class="pl-kos">,</span>
<span class="pl-s">"readonly"</span><span class="pl-kos">,</span>
<span class="pl-s">"validator"</span><span class="pl-kos">,</span>
<span class="pl-c">// Other options</span>
<span class="pl-s">"styleClasses"</span><span class="pl-kos">,</span>
<span class="pl-s">"labelClasses"</span><span class="pl-kos">,</span>
<span class="pl-s">"fieldClasses"</span><span class="pl-kos">,</span>
<span class="pl-s">"fieldOptions"</span><span class="pl-kos">,</span>
<span class="pl-s">"values"</span><span class="pl-kos">,</span>
<span class="pl-s">"buttons"</span><span class="pl-kos">,</span>
<span class="pl-s">"attributes"</span><span class="pl-kos">,</span>
<span class="pl-c">// Getter/Setter</span>
<span class="pl-s">"get"</span><span class="pl-kos">,</span>
<span class="pl-s">"set"</span><span class="pl-kos">,</span>
<span class="pl-c">// Events</span>
<span class="pl-s">"onChanged"</span><span class="pl-kos">,</span>
<span class="pl-s">"onValidated"</span>
<span class="pl-kos">]</span><span class="pl-kos">;</span></pre></div>
<p><code>fieldOptions</code> was created to replace <code>***Options</code> (e.g. radiosOptions, selectOptions, pikadayOptions). This mean that any option not in the list must go under this key.</p>
<p><code>inputName</code>, <code>placeholder</code>, <code>disabled</code>, <code>required</code>, <code>readonly</code>, <code>fieldClasses</code>, <code>fieldOptions</code> and <code>values</code> are directly available to field (<code>schema.readonly</code> become <code>readonly</code>). They can also all be defined with a function that return their value if needed.</p>
<p>Lot's of test where updated to reflect the changes.</p>
<h3>Groups</h3>
<p><a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="354219197" data-permission-text="Title is private" data-url="https://github.com/vue-generators/vue-form-generator/issues/484" data-hovercard-type="pull_request" data-hovercard-url="/vue-generators/vue-form-generator/pull/484/hovercard" href="https://github.com/vue-generators/vue-form-generator/pull/484">#484</a><br>
TL;DR<br>
A group is a special type of field.</p>
<div class="highlight highlight-source-js notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="{
type: "group",
legend: "My new group",
styleClasses: "nice-group",
tag: "section",
fields: [...]
}"><pre><span class="pl-kos">{</span>
<span class="pl-c1">type</span>: <span class="pl-s">"group"</span><span class="pl-kos">,</span>
<span class="pl-c1">legend</span>: <span class="pl-s">"My new group"</span><span class="pl-kos">,</span>
<span class="pl-c1">styleClasses</span>: <span class="pl-s">"nice-group"</span><span class="pl-kos">,</span>
<span class="pl-c1">tag</span>: <span class="pl-s">"section"</span><span class="pl-kos">,</span>
<span class="pl-c1">fields</span>: <span class="pl-kos">[</span>...<span class="pl-kos">]</span>
<span class="pl-kos">}</span></pre></div>
<p>Group don't validate.</p>
<p><code>form-group</code> is now <code>form-element</code> and <code>form-group</code> is a recursive component that allow for the flexibility enabled by this new system. So update your CSS if you customized VFG.</p>
<h3>New validation system (internal)</h3>
<p>Still from <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="354219197" data-permission-text="Title is private" data-url="https://github.com/vue-generators/vue-form-generator/issues/484" data-hovercard-type="pull_request" data-hovercard-url="/vue-generators/vue-form-generator/pull/484/hovercard" href="https://github.com/vue-generators/vue-form-generator/pull/484">#484</a><br>
Manual validation return a promise and is asynchronous. Since everything communication through the event bus (and by event), there is no way to fall back toward synchronous validation for the whole form.<br>
It doesn't change the way single validator works as far as I know.</p>
<div class="highlight highlight-text-html-basic notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="<vue-form-generator ... ref="form"><vue-form-generator>"><pre><span class="pl-kos"><</span><span class="pl-ent">vue-form-generator</span> <span class="pl-c1">...</span> <span class="pl-c1">ref</span>="<span class="pl-s">form</span>"<span class="pl-kos">></span><span class="pl-kos"><</span><span class="pl-ent">vue-form-generator</span><span class="pl-kos">></span></pre></div>
<div class="highlight highlight-source-js notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="/* Old way */
myManualValidation() {
let errors = this.$refs.form.validate();
if(errors.length > 0) {
// Validation error
console.warn("Error during validation", error);
} else {
// No validation errors
// ...
}
}
/* New way */
myManualValidation() {
this.$refs.form.validate().then(
() => {
// No validation errors
// ...
},
(error) => {
// Validation error
console.warn("Error during validation", error);
}
);
}"><pre><span class="pl-c">/* Old way */</span>
<span class="pl-en">myManualValidation</span><span class="pl-kos">(</span><span class="pl-kos">)</span><span class="pl-kos"></span> <span class="pl-kos">{</span>
<span class="pl-k">let</span> <span class="pl-s1">errors</span> <span class="pl-c1">=</span> <span class="pl-smi">this</span><span class="pl-kos">.</span><span class="pl-c1">$refs</span><span class="pl-kos">.</span><span class="pl-c1">form</span><span class="pl-kos">.</span><span class="pl-en">validate</span><span class="pl-kos">(</span><span class="pl-kos">)</span><span class="pl-kos">;</span>
<span class="pl-k">if</span><span class="pl-kos">(</span><span class="pl-s1">errors</span><span class="pl-kos">.</span><span class="pl-c1">length</span> <span class="pl-c1">></span> <span class="pl-c1">0</span><span class="pl-kos">)</span> <span class="pl-kos">{</span>
<span class="pl-c">// Validation error</span>
<span class="pl-smi">console</span><span class="pl-kos">.</span><span class="pl-en">warn</span><span class="pl-kos">(</span><span class="pl-s">"Error during validation"</span><span class="pl-kos">,</span> <span class="pl-s1">error</span><span class="pl-kos">)</span><span class="pl-kos">;</span>
<span class="pl-kos">}</span> <span class="pl-k">else</span> <span class="pl-kos">{</span>
<span class="pl-c">// No validation errors</span>
<span class="pl-c">// ...</span>
<span class="pl-kos">}</span>
<span class="pl-kos">}</span>
<span class="pl-c">/* New way */</span>
<span class="pl-en">myManualValidation</span><span class="pl-kos">(</span><span class="pl-kos">)</span><span class="pl-kos"></span> <span class="pl-kos">{</span>
<span class="pl-smi">this</span><span class="pl-kos">.</span><span class="pl-c1">$refs</span><span class="pl-kos">.</span><span class="pl-c1">form</span><span class="pl-kos">.</span><span class="pl-en">validate</span><span class="pl-kos">(</span><span class="pl-kos">)</span><span class="pl-kos">.</span><span class="pl-en">then</span><span class="pl-kos">(</span>
<span class="pl-kos">(</span><span class="pl-kos">)</span> <span class="pl-c1">=></span> <span class="pl-kos">{</span>
<span class="pl-c">// No validation errors</span>
<span class="pl-c">// ...</span>
<span class="pl-kos">}</span><span class="pl-kos">,</span>
<span class="pl-kos">(</span><span class="pl-s1">error</span><span class="pl-kos">)</span> <span class="pl-c1">=></span> <span class="pl-kos">{</span>
<span class="pl-c">// Validation error</span>
<span class="pl-smi">console</span><span class="pl-kos">.</span><span class="pl-en">warn</span><span class="pl-kos">(</span><span class="pl-s">"Error during validation"</span><span class="pl-kos">,</span> <span class="pl-s1">error</span><span class="pl-kos">)</span><span class="pl-kos">;</span>
<span class="pl-kos">}</span>
<span class="pl-kos">)</span><span class="pl-kos">;</span>
<span class="pl-kos">}</span></pre></div>
<h3>Custom label, help, hint and errors block</h3>
<p><a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="363071900" data-permission-text="Title is private" data-url="https://github.com/vue-generators/vue-form-generator/issues/493" data-hovercard-type="pull_request" data-hovercard-url="/vue-generators/vue-form-generator/pull/493/hovercard" href="https://github.com/vue-generators/vue-form-generator/pull/493">#493</a><br>
Label, help, hint, and errors template can be changed with slot (respectively label, help, hint, and errors).</p>
<p>Possibility to use scoped-slot to customize fully how label, help, hint and errors are build.</p>
<p>Expose <code>field</code> object and <code>getValueFromOption</code> function. For errors, <code>errors</code> object is also exposed.</p>
<p>Exemple (taken from <a href="https://github.com/vue-generators/vue-form-generator/blob/v3/dev/projects/custom/app.vue#L6-L47">"custom" dev project</a>)</p>
<div class="highlight highlight-source-vue notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="<vue-form-generator :schema="schema" :model="model" :options="formOptions" tag="section">
<template slot="label" slot-scope="{ field, getValueFromOption }">
<h3><i :class="`fa fa-${getIcon(field, getValueFromOption)}`"></i> {{ field.label }}</h3>
</template>
<template slot="help" slot-scope="{ field }">
<span v-if='field.help' class="help">
<span @click.prevent="testClick(field.help, $event)">Need help</span>
<i class="fa fa-question"></i>
<vue-markdown class="helpText" :source="field.help"></vue-markdown>
</span>
</template>
<template slot="hint" slot-scope="{ field, getValueFromOption }">
<div class="hint hint--info">
<i class="fa fa-info-circle"></i>
<span v-html="getValueFromOption(field, 'hint', undefined)"></span>
</div>
</template>
<template slot="errors" slot-scope="{ errors, field, getValueFromOption }">
<span>Custom errors</span>
<table class="errors help-block">
<tbody>
<thead>
<tr>
<th scope="col" id="">Index</th>
<th scope="col" id="">Error</th>
</tr>
</thead>
<tbody>
<tr v-for="(error, index) in errors" :key="index">
<td>{{index}}</td>
<td v-html="error"></td>
</tr>
</tbody>
</tbody>
</table>
</template>
</vue-form-generator>"><pre><<span class="pl-ent">vue-form-generator</span> :<span class="pl-e">schema</span>=<span class="pl-pds">"</span><span class="pl-s1"><span class="pl-smi">schema</span></span><span class="pl-pds">"</span> :<span class="pl-e">model</span>=<span class="pl-pds">"</span><span class="pl-s1"><span class="pl-smi">model</span></span><span class="pl-pds">"</span> :<span class="pl-e">options</span>=<span class="pl-pds">"</span><span class="pl-s1"><span class="pl-smi">formOptions</span></span><span class="pl-pds">"</span> tag="section">
<template slot="label" slot-scope="{ field, getValueFromOption }">
<h3><i :class="`fa fa-${getIcon(field, getValueFromOption)}`"></i> {{ field.label }}</h3>
</template>
<template slot="help" slot-scope="{ field }">
<span v-if='field.help' class="help">
<span @click.prevent="testClick(field.help, $event)">Need help</span>
<i class="fa fa-question"></i>
<vue-markdown class="helpText" :source="field.help"></vue-markdown>
</span>
</template>
<template slot="hint" slot-scope="{ field, getValueFromOption }">
<div class="hint hint--info">
<i class="fa fa-info-circle"></i>
<span v-html="getValueFromOption(field, 'hint', undefined)"></span>
</div>
</template>
<template slot="errors" slot-scope="{ errors, field, getValueFromOption }">
<span>Custom errors</span>
<table class="errors help-block">
<tbody>
<thead>
<tr>
<th scope="col" id="">Index</th>
<th scope="col" id="">Error</th>
</tr>
</thead>
<tbody>
<tr v-for="(error, index) in errors" :key="index">
<td>{{index}}</td>
<td v-html="error"></td>
</tr>
</tbody>
</tbody>
</table>
</template>
</<span class="pl-ent">vue-form-generator</span>></pre></div>
<h3>Better validation states</h3>
<p><a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="363895702" data-permission-text="Title is private" data-url="https://github.com/vue-generators/vue-form-generator/issues/495" data-hovercard-type="pull_request" data-hovercard-url="/vue-generators/vue-form-generator/pull/495/hovercard" href="https://github.com/vue-generators/vue-form-generator/pull/495">#495</a><br>
TL;DR<br>
Add "clean" when the value is not manually changed or validated.</p>
<p>If changed or validated, loose the clean state and is either 'valid" or "error".</p>
<p>Class name can be customised with "validationCleanClass".</p>
<h3>Project updated to vue-cli 3</h3>
<p><a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="365368282" data-permission-text="Title is private" data-url="https://github.com/vue-generators/vue-form-generator/issues/500" data-hovercard-type="pull_request" data-hovercard-url="/vue-generators/vue-form-generator/pull/500/hovercard" href="https://github.com/vue-generators/vue-form-generator/pull/500">#500</a><br>
That shouldn't concern you since this is internal, but for contributors it will make things easier.</p>
<p>Future version will be easier to update and work with.</p>
<p>Main changes for contributors:<br>
<code>npm run dev</code> become <code>npm run serve</code></p>lionel-bijaouitag:github.com,2008:Repository/57243275/3.0.0-beta.22018-10-03T13:51:12Z3.0.0-beta.2<p><g-emoji class="g-emoji" alias="warning">⚠️</g-emoji> This version will not work with npm <g-emoji class="g-emoji" alias="warning">⚠️</g-emoji></p>lionel-bijaouitag:github.com,2008:Repository/57243275/3.0.0-beta.12018-10-03T13:51:02Z3.0.0-beta.1<p><g-emoji class="g-emoji" alias="warning">⚠️</g-emoji> This version will not work with npm <g-emoji class="g-emoji" alias="warning">⚠️</g-emoji></p>lionel-bijaouitag:github.com,2008:Repository/57243275/v2.3.02018-09-24T19:49:39Zv2.3.0<ul>
<li>Fixed issue with SCSS variables being referenced incorrectly (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="318463186" data-permission-text="Title is private" data-url="https://github.com/vue-generators/vue-form-generator/issues/449" data-hovercard-type="issue" data-hovercard-url="/vue-generators/vue-form-generator/issues/449/hovercard" href="https://github.com/vue-generators/vue-form-generator/issues/449">#449</a>)</li>
<li>Updated README to include new third-party VFG Fields</li>
<li>Rework of formGenerator use a component</li>
<li>Allow HTML for Field Label and Hints</li>
<li>Updated package.json URL's for VFG</li>
<li>Added a "noResult" slot to FieldVueMultiSelect</li>
<li>Include a reference to the VFG instance that triggered a "validated" event (3rd param)</li>
<li>Fixed a number parsing bug in IE/Edge with FieldInput</li>
<li>Added support for Bootstrap CSS Classes (<code>form-group</code> will not set width on <code>col-*</code> elements)</li>
</ul>zoul0813tag:github.com,2008:Repository/57243275/v2.2.22018-04-26T13:40:08Zv2.2.2<ul>
<li>Fix NaN with value 0 on input type number/range.</li>
<li>Fix bug in fieldUpload that threw error due to $event not being defined</li>
<li>Added $event to onValidationError in fieldSubmit</li>
<li>Fixed bug with validationErrorClass and validationSuccessClass depending on each</li>
<li>Made DEBOUNCE_FORMAT_MS configurable in fieldInput, just pass <code>debounceFormatTimeout: TIME_IN_MS</code> in field schema</li>
<li>$event.preventDefault() called when using async validation with fieldSubmit to prevent unwanted form submissions</li>
</ul>zoul0813