PluginProbe ʕ •ᴥ•ʔ
JetFormBuilder — Dynamic Blocks Form Builder / 3.1.2
JetFormBuilder — Dynamic Blocks Form Builder v3.1.2
3.6.3.1 3.6.3 3.6.2.2 3.6.2.1 3.6.2 3.6.1.1 3.6.1 3.6.0.1 trunk 1.0.0 1.0.1 1.0.2 1.0.3 1.1.0 1.1.1 1.1.2 1.1.3 1.1.4 1.1.5 1.1.6 1.1.7 1.2.0 1.2.1 1.2.2 1.2.3 1.2.4 1.2.5 1.2.6 1.2.7 1.3.0 1.3.1 1.3.2 1.3.3 1.4.0 1.4.1 1.4.2 1.4.3 1.5.0 1.5.1 1.5.2 1.5.3 1.5.4 1.5.5 2.0.0 2.0.1 2.0.2 2.0.3 2.0.4 2.0.5 2.0.6 2.1.0 2.1.1 2.1.10 2.1.11 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.1.7 2.1.8 2.1.9 3.0.0 3.0.0.1 3.0.0.2 3.0.0.3 3.0.1 3.0.1.1 3.0.2 3.0.3 3.0.4 3.0.5 3.0.6 3.0.7 3.0.8 3.0.9 3.1.0 3.1.0.1 3.1.1 3.1.2 3.1.3 3.1.4 3.1.5 3.1.6 3.1.7 3.1.8 3.1.9 3.2.0 3.2.1 3.2.2 3.2.3 3.3.0 3.3.1 3.3.2 3.3.3 3.3.3.1 3.3.4 3.3.4.1 3.3.4.2 3.4.0 3.4.1 3.4.2 3.4.3 3.4.4 3.4.5 3.4.5.1 3.4.5.2 3.4.6 3.4.7 3.4.7.1 3.5.0 3.5.1 3.5.1.1 3.5.1.2 3.5.2 3.5.2.1 3.5.3 3.5.4 3.5.5 3.5.6 3.5.6.1 3.5.6.2 3.5.6.3 3.6.0
jetformbuilder / assets / src / frontend / main / signals / SignalHiddenArray.js
jetformbuilder / assets / src / frontend / main / signals Last commit date
BaseSignal.js 2 years ago SignalCheckbox.js 2 years ago SignalHiddenArray.js 2 years ago SignalRadio.js 2 years ago SignalRange.js 2 years ago SignalRenderState.js 2 years ago SignalSelect.js 2 years ago SignalText.js 2 years ago SignalWysiwyg.js 2 years ago functions.js 2 years ago
SignalHiddenArray.js
64 lines
1 import BaseSignal from './BaseSignal';
2 import { isHidden } from '../supports';
3
4 function SignalHiddenArray() {
5 BaseSignal.call( this );
6 }
7
8 SignalHiddenArray.prototype = Object.create( BaseSignal.prototype );
9
10 SignalHiddenArray.prototype.isSupported = function ( node, inputData ) {
11 return isHidden( node ) && inputData.isArray();
12 };
13 SignalHiddenArray.prototype.runSignal = function () {
14 const { current } = this.input.value;
15
16 if ( !current?.length ) {
17 for ( const node of this.input.nodes ) {
18 node.remove();
19 }
20
21 this.input.nodes.splice( 0, this.input.nodes.length );
22 return;
23 }
24
25 const saveNodes = [];
26
27 for ( const value of current ) {
28 const hasNodeWithSameValue = this.input.nodes.some(
29 ( node, index ) => {
30 if ( node.value !== value ) {
31 return false;
32 }
33 saveNodes.push( index );
34 return true;
35 } );
36
37 if ( hasNodeWithSameValue ) {
38 continue;
39 }
40
41 const newElement = document.createElement( 'input' );
42 newElement.type = 'hidden';
43 newElement.value = value;
44 newElement.name = this.input.rawName;
45
46 this.input.nodes.push( newElement );
47 saveNodes.push( this.input.nodes.length - 1 );
48
49 this.input.comment.parentElement.insertBefore(
50 newElement,
51 this.input.comment.nextElementSibling,
52 );
53 }
54
55 this.input.nodes = this.input.nodes.filter( ( node, index ) => {
56 if ( saveNodes.includes( index ) ) {
57 return true;
58 }
59 node.remove();
60 return false;
61 } );
62 };
63
64 export default SignalHiddenArray;