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 / SignalRenderState.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
SignalRenderState.js
54 lines
1 import SignalHiddenArray from './SignalHiddenArray';
2
3 /**
4 * @property {RenderStateData} input
5 * @constructor
6 */
7 function SignalRenderState() {
8 SignalHiddenArray.call( this );
9
10 this.isSupported = function ( node, input ) {
11 return '_jfb_current_render_states[]' === node.name;
12 };
13
14 this.runSignal = function ( prevValue ) {
15 SignalHiddenArray.prototype.runSignal.call( this, prevValue );
16
17 const url = new URL( window.location );
18 const formId = this.input.getSubmit().getFormId();
19 const current = this.input.value.current || [];
20 const param = `jfb[${ formId }][state]`;
21 const states = [];
22
23 for ( const stateSlug of current ) {
24 if ( !this.input.isCustom( stateSlug ) ) {
25 continue;
26 }
27
28 states.push( stateSlug );
29 }
30
31 if ( !states.length ) {
32 if ( !url.searchParams.has( param ) ) {
33 return;
34 }
35
36 url.searchParams.delete( param );
37 window.history.pushState( {}, '', url.toString() );
38
39 return;
40 }
41
42 const paramValue = states.join( ',' );
43 if ( url.searchParams.get( param ) === paramValue ) {
44 return;
45 }
46
47 url.searchParams.set( param, paramValue );
48 window.history.pushState( {}, '', url.toString() );
49 };
50 }
51
52 SignalRenderState.prototype = Object.create( SignalHiddenArray.prototype );
53
54 export default SignalRenderState;