{ "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "blocksy/dynamic-data", "category": "blocksy-blocks", "attributes": { "tagName": { "type": "string", "default": "div" }, "field": { "type": "string", "default": "wp:title" }, "before": { "type": "string", "default": "" }, "after": { "type": "string", "default": "" }, "fallback": { "type": "string", "default": "" }, "align": { "type": "string" }, "imageAlign": { "type": "string" }, "aspectRatio": { "type": "string", "default": "auto" }, "imageFit": { "type": "string", "default": "cover" }, "width": { "type": "string" }, "height": { "type": "string" }, "sizeSlug": { "type": "string" }, "alt_text": { "type": "string", "default": "" }, "avatar_size": { "type": "number", "default": 96 }, "avatarIsLink": { "type": "boolean", "default": false }, "avatarLinkTarget": { "type": "string", "default": "_self" }, "featuredIsLink": { "type": "boolean", "default": false }, "featuredLinkTarget": { "type": "string", "default": "_self" }, "taxonomy": { "type": "string", "default": "" }, "lightbox": { "type": "string", "default": "no" }, "videoThumbnail": { "type": "string", "default": "no" }, "image_hover_effect": { "type": "string", "default": "none" }, "termClass": { "type": "string", "default": "" }, "termAccentColor": { "type": "string", "default": "yes" }, "brands_size": { "type": "number", "default": 100 }, "brands_gap": { "type": "number", "default": 10 }, "imageSource": { "type": "string", "default": "featured" }, "viewType": { "type": "string", "default": "default" }, "backgroundColor": { "type": "string" }, "textColor": { "type": "string" }, "dimRatio": { "type": "number", "default": 50 }, "style": { "type": "object", "default": { "elements": { "overlay": { "color": { "background": "#000000" } } } } } }, "supports": { "color": { "text": false, "background": false, "__experimentalSkipSerialization": [ "link", "heading", "button", "gradients" ] }, "className": false, "spacing": { "margin": true, "padding": true, "__experimentalDefaultControls": { "margin": false, "padding": false } }, "__experimentalBorder": { "color": true, "radius": true, "width": true, "__experimentalDefaultControls": { "color": true, "radius": true, "width": true }, "__experimentalSelector": "img, .block-editor-media-placeholder, .wp-block-post-featured-image__overlay", "__experimentalSkipSerialization": true }, "typography": { "fontSize": true, "lineHeight": true, "__experimentalFontFamily": true, "__experimentalTextDecoration": true, "__experimentalFontStyle": true, "__experimentalFontWeight": true, "__experimentalLetterSpacing": true, "__experimentalTextTransform": true, "__experimentalDefaultControls": { "fontSize": true } } }, "usesContext": [ "postId", "postType", "queryId", "taxonomy", "termId", "termIcon", "termImage" ] } (function ( $ ) { 'use strict'; window.InlineShortcodeView_vc_column = window.InlineShortcodeViewContainerWithParent.extend( { controls_selector: '#vc_controls-template-vc_column', resizeDomainName: 'columnSize', _x: 0, css_width: 12, prepend: false, initialize: function ( params ) { window.InlineShortcodeView_vc_column.__super__.initialize.call( this, params ); _.bindAll( this, 'startChangeSize', 'stopChangeSize', 'resize' ); }, render: function () { var width; window.InlineShortcodeView_vc_column.__super__.render.call( this ); this.prepend = false; // Here goes width logic $( '
' ) .appendTo( this.$el ) .mousedown( this.startChangeSize ); this.setColumnClasses(); this.customCssClassReplace(); return this; }, destroy: function ( e ) { var parent_id = this.model.get( 'parent_id' ); window.InlineShortcodeView_vc_column.__super__.destroy.call( this, e ); if ( !vc.shortcodes.where( { parent_id: parent_id } ).length ) { vc.shortcodes.get( parent_id ).destroy(); } }, customCssClassReplace: function () { var css_classes, css_regex, class_match; css_classes = this.$el.find( '.wpb_column' ).attr( 'class' ); css_regex = /.*(vc_custom_\d+).*/; class_match = css_classes && css_classes.match ? css_classes.match( css_regex ) : false; if ( class_match && class_match[ 1 ] ) { this.$el.addClass( class_match[ 1 ] ); this.$el.find( '.wpb_column' ).attr( 'class', css_classes.replace( class_match[ 1 ], '' ).trim() ); } }, setColumnClasses: function () { var offset, width, $content; offset = this.getParam( 'offset' ) || ''; width = this.getParam( 'width' ) || '1/1'; $content = this.$el.find( '> .wpb_column' ); this.css_class_width = this.convertSize( width ); if ( this.css_class_width !== width ) { this.css_class_width = this.css_class_width.replace( /[^\d]/g, '' ); } $content.removeClass( 'vc_col-sm-' + this.css_class_width ); if ( !offset.match( /vc_col\-sm\-\d+/ ) ) { this.$el.addClass( 'vc_col-sm-' + this.css_class_width ); } if ( vc.responsive_disabled ) { offset = offset.replace( /vc_col\-(lg|md|xs)[^\s]*/g, '' ); } if ( !_.isEmpty( offset ) ) { $content.removeClass( offset ); this.$el.addClass( offset ); } }, startChangeSize: function ( e ) { var width = this.getParam( width ) || 12; this._grid_step = this.parent_view.$el.width() / width; vc.frame_window.jQuery( 'body' ).addClass( 'vc_column-dragging' ).disableSelection(); this._x = parseInt( e.pageX, 10 ); vc.$page.bind( 'mousemove.' + this.resizeDomainName, this.resize ); $( vc.frame_window.document ).on( 'mouseup', this.stopChangeSize ); }, stopChangeSize: function () { this._x = 0; vc.frame_window.jQuery( 'body' ).removeClass( 'vc_column-dragging' ).enableSelection(); vc.$page.unbind( 'mousemove.' + this.resizeDomainName ); }, resize: function ( e ) { var width, old_width, diff, params = this.model.get( 'params' ); diff = e.pageX - this._x; if ( Math.abs( diff ) < this._grid_step ) { return; } this._x = parseInt( e.pageX, 10 ); old_width = '' + this.css_class_width; if ( 0 < diff ) { this.css_class_width += 1; } else if ( 0 > diff ) { this.css_class_width -= 1; } if ( 12 < this.css_class_width ) { this.css_class_width = 12; } if ( 1 > this.css_class_width ) { this.css_class_width = 1; } params.width = vc.getColumnSize( this.css_class_width ); this.model.save( { params: params }, { silent: true } ); this.$el.removeClass( 'vc_col-sm-' + old_width ).addClass( 'vc_col-sm-' + this.css_class_width ); }, convertSize: function ( width ) { var prefix, numbers, range, num, dev; prefix = 'vc_col-sm-'; numbers = width ? width.split( '/' ) : [ 1, 1 ]; range = _.range( 1, 13 ); num = !_.isUndefined( numbers[ 0 ] ) && 0 <= _.indexOf( range, parseInt( numbers[ 0 ], 10 ) ) ? parseInt( numbers[ 0 ], 10 ) : false; dev = !_.isUndefined( numbers[ 1 ] ) && 0 <= _.indexOf( range, parseInt( numbers[ 1 ], 10 ) ) ? parseInt( numbers[ 1 ], 10 ) : false; // Custom fix for 5 columns grid if ( '5' === numbers[ 1 ] ) { return width; } if ( false !== num && false !== dev ) { return prefix + (12 * num / dev); } return prefix + '12'; }, allowAddControl: function () { return vc_user_access().shortcodeAll( 'vc_column' ); } } ); })( window.jQuery );