ChangeData.js
2 years ago
CheckboxData.js
2 years ago
InputData.js
2 years ago
InputMaskedData.js
2 years ago
MultiSelectData.js
2 years ago
NoListenData.js
2 years ago
RadioData.js
2 years ago
RangeData.js
2 years ago
RenderStateData.js
2 years ago
WysiwygData.js
2 years ago
functions.js
2 years ago
RenderStateData.js
54 lines
| 1 | import NoListenData from './NoListenData'; |
| 2 | import ReactiveSet from '../reactive/ReactiveSet'; |
| 3 | |
| 4 | const { builtInStates } = window.JetFormBuilderSettings; |
| 5 | |
| 6 | /** |
| 7 | * @property {ReactiveSet} value |
| 8 | * |
| 9 | * @constructor |
| 10 | */ |
| 11 | function RenderStateData() { |
| 12 | NoListenData.call( this ); |
| 13 | |
| 14 | this.isSupported = function ( node ) { |
| 15 | return ( |
| 16 | 'hidden' === node?.type && |
| 17 | '_jfb_current_render_states[]' === node.name |
| 18 | ); |
| 19 | }; |
| 20 | |
| 21 | /** |
| 22 | * @param stateName {String} |
| 23 | */ |
| 24 | this.add = function ( stateName ) { |
| 25 | this.value.add( stateName ); |
| 26 | }; |
| 27 | |
| 28 | /** |
| 29 | * @param stateName {String} |
| 30 | */ |
| 31 | this.remove = function ( stateName ) { |
| 32 | this.value.remove( stateName ); |
| 33 | }; |
| 34 | |
| 35 | /** |
| 36 | * @param stateName {String} |
| 37 | * @param force {null|Boolean} |
| 38 | */ |
| 39 | this.toggle = function ( stateName, force = null ) { |
| 40 | this.value.toggle( stateName, force ); |
| 41 | }; |
| 42 | |
| 43 | this.isCustom = function ( key ) { |
| 44 | return !builtInStates.includes( key ); |
| 45 | }; |
| 46 | } |
| 47 | |
| 48 | RenderStateData.prototype = Object.create( NoListenData.prototype ); |
| 49 | |
| 50 | RenderStateData.prototype.getReactive = function () { |
| 51 | return new ReactiveSet(); |
| 52 | }; |
| 53 | |
| 54 | export default RenderStateData; |