<?php
/**
* Underscore.js template.
*
* @since 2.0
* @package fusion-library
*/
?>
<div class="awb-typography">
<# var allowGlobalButton = ( 'undefined' !== typeof param.allow_globals && false === param.allow_globals ? false : true ); #>
<# if ( 'undefined' === typeof FusionApp && allowGlobalButton ) { #>
<a class="option-global-typography awb-quick-set" href="JavaScript:void(0);" aria-label="<?php esc_html_e( 'Global Typography', 'fusion-builder' ); ?>'"><i class="fusiona-globe" aria-hidden="true"></i></a>
<# } #>
<#
var optionType,
optionId,
elOptions = param.choices || {},
defaults = {
'font-family': 'typography',
'font-size': 'font_size',
'line-height': 'line_height',
'letter-spacing': 'letter_spacing',
'text-transform': false,
'margin-top': false,
'margin-bottom': false,
'color': false
},
options = jQuery.extend( {}, defaults, elOptions ),
displayBackupFont = ( 'undefined' !== typeof param.backup_font ? param.backup_font : true ),
saveData;
if ( 'undefined' === typeof param.param_name ) {
if ( 'undefined' !== typeof type && 'PO' === type ) {
optionType = 'PO';
} else {
optionType = 'TO';
}
optionId = param.id;
} else {
optionType = 'EO';
optionId = param.param_name;
}
if ( 'TO' === optionType ) {
saveData = Object.assign( {}, FusionApp.settings );
if ( 'object' === typeof saveData[ optionId ] ) {
saveData = saveData[ optionId ];
} else {
saveData[ optionId ] = param.default;
}
} else if ( 'PO' === optionType ) {
if ( 'object' === typeof option_value ) {
saveData = option_value;
} else {
saveData = {};
}
} else {
saveData = atts.params;
}
#>
<# if ( false !== options['font-family'] ) { #>
<#
var fontId = options['font-family'],
familyId = 'EO' === optionType ? 'fusion_font_family_' + fontId : 'font-family',
familyDefault = 'object' === typeof param.default && 'undefined' !== typeof param.default['font-family'] ? param.default['font-family'] : '';
familyValue = 'undefined' !== typeof saveData[ familyId ] ? saveData[ familyId ] : familyDefault;
if ( 'TO' === optionType || 'PO' === optionType ) {
familyId = optionId + '[' + familyId + ']';
}
#>
<div class="input-wrapper family-selection awb-contains-global">
<div class="awb-typo-heading">
<label><?php esc_html_e( 'Font Family', 'fusion-builder' ); ?></label>
<# if ( allowGlobalButton ) { #>
<span class="awb-global"><i class="fusiona-globe" aria-hidden="true"></i></span>
<# } #>
</div>
<div class="fusion-skip-init fusion-select-field<?php echo ( is_rtl() ) ? ' fusion-select-field-rtl' : ''; ?>">
<div class="fusion-select-preview-wrap">
<span class="fusion-select-preview">
<# if ( '' !== familyValue ) { #>
<# if ( window.awbTypographySelect.isAdobeFont( familyValue ) ) { #>
{{ _.unescape( window.awbTypographySelect.getAdobeDisplayName( familyValue ) ) }}
<# } else { #>
{{ _.unescape( familyValue ) }}
<# } #>
<# } else { #>
<span class="fusion-select-placeholder"><?php esc_attr_e( 'Select Font Family', 'fusion-builder' ); ?></span>
<# } #>
</span>
<div class="fusiona-arrow-down"></div>
</div>
<div class="fusion-select-dropdown">
<div class="fusion-select-search">
<input type="text" class="fusion-hide-from-atts fusion-dont-update" placeholder="<?php esc_attr_e( 'Search Font Families', 'fusion-builder' ); ?>" />
</div>
<div class="fusion-select-options"></div>
</div>
<input type="hidden" id="{{{ familyId }}}" name="{{{ familyId }}}" value="{{ _.unescape( familyValue ) }}" data-default="{{ familyDefault }}" class="input-font_family fusion-select-option-value awb-typo-input" data-subset="font-family">
</div>
<span class="awb-global-label"></span>
</div>
<# if ( displayBackupFont && ( 'TO' === optionType || 'PO' === optionType ) ) { #>
<div class="input-wrapper font-backup fusion-font-backup-wrapper">
<div class="awb-typo-heading">
<label><?php esc_html_e( 'Backup Font', 'fusion-builder' ); ?></label>
</div>
<div class="fusion-skip-init fusion-select-field<?php echo ( is_rtl() ) ? ' fusion-select-field-rtl' : ''; ?>">
<div class="fusion-select-preview-wrap">
<span class="fusion-select-preview">
<# if ( 'string' === typeof saveData['font-backup'] && '' !== saveData['font-backup'] ) { #>
{{ _.unescape( saveData['font-backup'] ) }}
<# } else { #>
<span class="fusion-select-placeholder"><?php esc_attr_e( 'Select Backup Font Family', 'fusion-builder' ); ?></span>
<# } #>
</span>
<div class="fusiona-arrow-down"></div>
</div>
<div class="fusion-select-dropdown">
<div class="fusion-select-search">
<input type="text" class="fusion-hide-from-atts fusion-dont-update" placeholder="<?php esc_attr_e( 'Search Font Families', 'fusion-builder' ); ?>" />
</div>
<div class="fusion-select-options"></div>
</div>
<input type="hidden" id="fusion-typography-font-backup-{{{ param.id }}}" name="{{ optionId }}[font-backup]" class="fusion-select-option-value">
</div>
</div>
<# } #>
<#
var variantId = 'EO' === optionType ? 'fusion_font_variant_' + fontId : 'variant',
variantDefault = 'object' === typeof param.default && 'undefined' !== typeof param.default['variant'] ? param.default['variant'] : '',
variantValue = 'undefined' !== typeof saveData[ variantId ] ? saveData[ variantId ] : variantDefault;
if ( 'TO' === optionType || 'PO' === optionType ) {
var variantId = 'variant',
variantValue = 'undefined' !== typeof saveData[ variantId ] ? saveData[ variantId ] : param.default['font-weight'];
if ( 'undefined' !== typeof saveData['font-weight'] ) {
variantValue = saveData['font-weight'];
if ( 'string' !== typeof variantValue ) {
variantValue = variantValue.toString();
}
if ( 'string' === typeof saveData['font-style'] && 'italic' === saveData['font-style'] ) {
variantValue += 'italic';
}
}
variantId = optionId + '[' + variantId + ']';
} else {
var variantId = 'fusion_font_variant_' + fontId,
variantDefault = 'object' === typeof param.default && 'undefined' !== typeof param.default['variant'] ? param.default['variant'] : '',
variantValue = 'undefined' !== typeof saveData[ variantId ] ? saveData[ variantId ] : variantDefault;
}
#>
<div class="input-wrapper fusion-builder-typography" style="display:none">
<div class="awb-typo-heading">
<label><?php esc_html_e( 'Variant', 'fusion-builder' ); ?></label>
</div>
<div class="input fusion-typography-select-wrapper">
<select name="{{ variantId }}" class="input-variant variant" id="{{ variantId }}" data-default="{{ variantDefault }}" data-value="{{ variantValue }}" data-subset="variant"></select>
<div class="fusiona-arrow-down"></div>
</div>
</div>
<# } #>
<#
var stringMap = {};
stringMap['font-size'] = '<?php esc_attr_e( 'Font Size', 'fusion-builder' ); ?>';
stringMap['line-height'] = '<?php esc_attr_e( 'Line Height', 'fusion-builder' ); ?>';
stringMap['letter-spacing'] = '<?php esc_attr_e( 'Letter Spacing', 'fusion-builder' ); ?>';
stringMap['margin-top'] = '<?php esc_attr_e( 'Margin Top', 'fusion-builder' ); ?>';
stringMap['margin-bottom'] = '<?php esc_attr_e( 'Margin Bottom', 'fusion-builder' ); ?>';
#>
<# _.each( [ 'font-size', 'line-height', 'letter-spacing', 'margin-top', 'margin-bottom' ], function( field ) { #>
<# if ( false !== options[ field ] ) { #>
<#
var fieldId = 'EO' === optionType ? options[ field ] : field,
fieldDefault = 'object' === typeof param.default && 'undefined' !== typeof param.default[ field ] ? param.default[ field ] : '',
fieldValue = 'undefined' !== typeof saveData[ fieldId ] ? saveData[ fieldId ] : fieldDefault,
containsGlobal = -1 === field.indexOf( 'margin' ) ? ' awb-contains-global' : '';
if ( 'TO' === optionType || 'PO' === optionType ) {
fieldId = optionId + '[' + fieldId + ']';
}
#>
<div class="input-wrapper{{ containsGlobal }} third">
<div class="awb-typo-heading">
<label>{{{ stringMap[ field ] }}}</label>
<# if ( 'margin-top' !== field && 'margin-bottom' !== field && allowGlobalButton ) { #>
<span class="awb-global"><i class="fusiona-globe" aria-hidden="true"></i></span>
<# } #>
</div>
<div class="input">
<input type="text" data-subset="{{ field }}" class="awb-typo-input" name="{{ fieldId }}" value="{{ fieldValue }}">
<span class="awb-global-label"></span>
</div>
</div>
<# } #>
<# } ); #>
<# if ( false !== options['text-transform'] ) { #>
<#
var fieldId = 'EO' === optionType ? options['text-transform'] : 'text-transform',
fieldDefault = 'object' === typeof param.default && 'undefined' !== typeof param.default['text-transform'] ? param.default['text-transform'] : '',
fieldValue = 'undefined' !== typeof saveData[ fieldId ] ? saveData[ fieldId ] : fieldDefault,
choices = {};
if ( 'TO' === optionType || 'PO' === optionType ) {
fieldId = optionId + '[' + fieldId + ']';
}
if ( ! param.text_transform_no_inherit || true !== param.text_transform_no_inherit ) {
choices[''] = {
icon: '<span class="fusiona-cog onlyIcon"></span>',
label: '<?php esc_attr_e( 'Default', 'fusion-builder' ); ?>'
};
}
choices['none'] = {
icon: '<span class="fusiona-minus onlyIcon"></span>',
label: '<?php esc_attr_e( 'None', 'fusion-builder' ); ?>'
};
choices['uppercase'] = {
icon: '<span class="fusiona-uppercase onlyIcon"></span>',
label: '<?php esc_attr_e( 'Uppercase', 'fusion-builder' ); ?>'
};
choices['lowercase'] = {
icon: '<span class="fusiona-lowercase onlyIcon"></span>',
label: '<?php esc_attr_e( 'Lowercase', 'fusion-builder' ); ?>'
};
choices['capitalize'] = {
icon: '<span class="fusiona-caps onlyIcon"></span>',
label: '<?php esc_attr_e( 'Capitalize', 'fusion-builder' ); ?>'
};
#>
<div class="input-wrapper awb-contains-global">
<div class="awb-typo-heading">
<label><?php esc_attr_e( 'Text Transform', 'fusion-builder' ); ?></label>
<# if ( allowGlobalButton ) { #>
<span class="awb-global"><i class="fusiona-globe" aria-hidden="true"></i></span>
<# } #>
</div>
<div class="input radio-button-set ui-buttonset">
<input type="hidden" id="{{ fieldId }}" name="{{ fieldId }}" value="{{ fieldValue }}" class="button-set-value" data-subset="text-transform"/>
<# _.each( choices, function( data, value ) { #>
<# var selected = value == fieldValue ? ' ui-state-active' : ''; #>
<a href="#" class="ui-button buttonset-item{{ selected }} has-tooltip" data-value="{{ value }}" aria-label="{{ data.label }}"><div class="fusion-button-set-title">{{{ data.icon }}}</div></a>
<# } ); #>
</div>
<span class="awb-global-label"></span>
</div>
<# } #>
<# if ( false !== options['color'] ) { #>
<#
var fieldId = 'EO' === optionType ? options['color'] : 'color',
fieldDefault = 'object' === typeof param.default && 'undefined' !== typeof param.default['color'] ? param.default['color'] : '',
fieldValue = 'undefined' !== typeof saveData[ fieldId ] ? saveData[ fieldId ] : fieldDefault;
if ( 'TO' === optionType || 'PO' === optionType ) {
fieldId = optionId + '[' + fieldId + ']';
}
#>
<div class="input-wrapper">
<div class="awb-typo-heading">
<label><?php esc_attr_e( 'Font Color', 'fusion-builder' ); ?></label>
</div>
<input
id="{{ fieldId }}"
name="{{ fieldId }}"
class="fusion-builder-color-picker-hex color-picker"
type="text"
value="{{ fieldValue }}"
data-alpha="true"
data-default="{{ fieldDefault }}"
/>
</div>
<# } #>
</div>