tag:github.com,2008:https://github.com/vue-generators/vue-form-generator/releases Release notes from vue-form-generator 2019-02-09T15:05:55Z tag:github.com,2008:Repository/57243275/v2.3.4 2019-02-09T15:10:16Z v2.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> zoul0813 tag:github.com,2008:Repository/57243275/v2.3.3 2018-12-14T20:59:10Z v2.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> zoul0813 tag:github.com,2008:Repository/57243275/v2.3.2 2018-10-29T13:17:20Z v2.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> zoul0813 tag:github.com,2008:Repository/57243275/v2.3.1 2018-10-17T15:12:53Z v2.3.1 <ul> <li>Use lodash-webpack-plugin for even better size</li> <li>Added required attribute to textarea</li> </ul> zoul0813 tag:github.com,2008:Repository/57243275/3.0.0-beta.4 2018-10-03T14:27:16Z 3.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-bijaoui tag:github.com,2008:Repository/57243275/3.0.0-beta.3 2018-10-03T14:24:23Z 3.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 &quot;type&quot;, &quot;model&quot;, // Identity &quot;id&quot;, &quot;inputName&quot;, // Texts &quot;label&quot;, &quot;placeholder&quot;, &quot;hint&quot;, &quot;help&quot;, // Modifiers &quot;featured&quot;, &quot;visible&quot;, &quot;disabled&quot;, &quot;required&quot;, &quot;readonly&quot;, &quot;validator&quot;, // Other options &quot;styleClasses&quot;, &quot;labelClasses&quot;, &quot;fieldClasses&quot;, &quot;fieldOptions&quot;, &quot;values&quot;, &quot;buttons&quot;, &quot;attributes&quot;, // Getter/Setter &quot;get&quot;, &quot;set&quot;, // Events &quot;onChanged&quot;, &quot;onValidated&quot; ];"><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: &quot;group&quot;, legend: &quot;My new group&quot;, styleClasses: &quot;nice-group&quot;, tag: &quot;section&quot;, 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="&lt;vue-form-generator ... ref=&quot;form&quot;&gt;&lt;vue-form-generator&gt;"><pre><span class="pl-kos">&lt;</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">&gt;</span><span class="pl-kos">&lt;</span><span class="pl-ent">vue-form-generator</span><span class="pl-kos">&gt;</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 &gt; 0) { // Validation error console.warn(&quot;Error during validation&quot;, error); } else { // No validation errors // ... } } /* New way */ myManualValidation() { this.$refs.form.validate().then( () =&gt; { // No validation errors // ... }, (error) =&gt; { // Validation error console.warn(&quot;Error during validation&quot;, 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">&gt;</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">=&gt;</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">=&gt;</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="&lt;vue-form-generator :schema=&quot;schema&quot; :model=&quot;model&quot; :options=&quot;formOptions&quot; tag=&quot;section&quot;&gt; &lt;template slot=&quot;label&quot; slot-scope=&quot;{ field, getValueFromOption }&quot;&gt; &lt;h3&gt;&lt;i :class=&quot;`fa fa-${getIcon(field, getValueFromOption)}`&quot;&gt;&lt;/i&gt; {{ field.label }}&lt;/h3&gt; &lt;/template&gt; &lt;template slot=&quot;help&quot; slot-scope=&quot;{ field }&quot;&gt; &lt;span v-if='field.help' class=&quot;help&quot;&gt; &lt;span @click.prevent=&quot;testClick(field.help, $event)&quot;&gt;Need help&lt;/span&gt; &lt;i class=&quot;fa fa-question&quot;&gt;&lt;/i&gt; &lt;vue-markdown class=&quot;helpText&quot; :source=&quot;field.help&quot;&gt;&lt;/vue-markdown&gt; &lt;/span&gt; &lt;/template&gt; &lt;template slot=&quot;hint&quot; slot-scope=&quot;{ field, getValueFromOption }&quot;&gt; &lt;div class=&quot;hint hint--info&quot;&gt; &lt;i class=&quot;fa fa-info-circle&quot;&gt;&lt;/i&gt; &lt;span v-html=&quot;getValueFromOption(field, 'hint', undefined)&quot;&gt;&lt;/span&gt; &lt;/div&gt; &lt;/template&gt; &lt;template slot=&quot;errors&quot; slot-scope=&quot;{ errors, field, getValueFromOption }&quot;&gt; &lt;span&gt;Custom errors&lt;/span&gt; &lt;table class=&quot;errors help-block&quot;&gt; &lt;tbody&gt; &lt;thead&gt; &lt;tr&gt; &lt;th scope=&quot;col&quot; id=&quot;&quot;&gt;Index&lt;/th&gt; &lt;th scope=&quot;col&quot; id=&quot;&quot;&gt;Error&lt;/th&gt; &lt;/tr&gt; &lt;/thead&gt; &lt;tbody&gt; &lt;tr v-for=&quot;(error, index) in errors&quot; :key=&quot;index&quot;&gt; &lt;td&gt;{{index}}&lt;/td&gt; &lt;td v-html=&quot;error&quot;&gt;&lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt; &lt;/tbody&gt; &lt;/table&gt; &lt;/template&gt; &lt;/vue-form-generator&gt;"><pre>&lt;<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"&gt; &lt;template slot="label" slot-scope="{ field, getValueFromOption }"&gt; &lt;h3&gt;&lt;i :class="`fa fa-${getIcon(field, getValueFromOption)}`"&gt;&lt;/i&gt; {{ field.label }}&lt;/h3&gt; &lt;/template&gt; &lt;template slot="help" slot-scope="{ field }"&gt; &lt;span v-if='field.help' class="help"&gt; &lt;span @click.prevent="testClick(field.help, $event)"&gt;Need help&lt;/span&gt; &lt;i class="fa fa-question"&gt;&lt;/i&gt; &lt;vue-markdown class="helpText" :source="field.help"&gt;&lt;/vue-markdown&gt; &lt;/span&gt; &lt;/template&gt; &lt;template slot="hint" slot-scope="{ field, getValueFromOption }"&gt; &lt;div class="hint hint--info"&gt; &lt;i class="fa fa-info-circle"&gt;&lt;/i&gt; &lt;span v-html="getValueFromOption(field, 'hint', undefined)"&gt;&lt;/span&gt; &lt;/div&gt; &lt;/template&gt; &lt;template slot="errors" slot-scope="{ errors, field, getValueFromOption }"&gt; &lt;span&gt;Custom errors&lt;/span&gt; &lt;table class="errors help-block"&gt; &lt;tbody&gt; &lt;thead&gt; &lt;tr&gt; &lt;th scope="col" id=""&gt;Index&lt;/th&gt; &lt;th scope="col" id=""&gt;Error&lt;/th&gt; &lt;/tr&gt; &lt;/thead&gt; &lt;tbody&gt; &lt;tr v-for="(error, index) in errors" :key="index"&gt; &lt;td&gt;{{index}}&lt;/td&gt; &lt;td v-html="error"&gt;&lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt; &lt;/tbody&gt; &lt;/table&gt; &lt;/template&gt; &lt;/<span class="pl-ent">vue-form-generator</span>&gt;</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-bijaoui tag:github.com,2008:Repository/57243275/3.0.0-beta.2 2018-10-03T13:51:12Z 3.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-bijaoui tag:github.com,2008:Repository/57243275/3.0.0-beta.1 2018-10-03T13:51:02Z 3.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-bijaoui tag:github.com,2008:Repository/57243275/v2.3.0 2018-09-24T19:49:39Z v2.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> zoul0813 tag:github.com,2008:Repository/57243275/v2.2.2 2018-04-26T13:40:08Z v2.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