Example #1
0
					{
						fieldInstance: this,
						originalEvent: event,
						value: event.target.value
					}
				);
			}
		);
	}

	_handleFieldFocused(event) {
		this.emit(
			'fieldFocused',
			{
				fieldInstance: this,
				originalEvent: event,
				value: event.target.value
			}
		);
	}

	_internalValueFn() {
		const {value} = this;

		return value;
	}
}

Soy.register(Text, templates);

export default Text;
Example #2
0
	/**
	 * Asserts that formatted data is valid. Throws error if item is not in the
	 * valid syntax.
	 * @param {*} item
	 * @protected
	 */
	assertItemObjectStructure_(item) {
		if (!core.isObject(item)) {
			throw new Promise.CancellationError('Autocomplete item must be an object');
		}
		if (!item.hasOwnProperty('textPrimary')) {
			throw new Promise.CancellationError('Autocomplete item must be an object with \'textPrimary\' key');
		}
	}
}
Soy.register(Autocomplete, templates);

/**
 * State definition.
 * @type {!Object}
 * @static
 */
Autocomplete.STATE = {
	/**
	 * Activate or Deactivate the suggestion of the best align region. If true,
	 * the component will try to find a better region to align, otherwise,
	 * it will keep the position at the bottom.
	 * @type {boolean}
	 * @default true.
	 */
	autoBestAlign: {
		if (expression) {
			validation = validations.find(validation => validation.regex.test(expression));
		}

		return validation;
	}

	_updateValue() {
		const value = this._getValue();

		this.setState(
			{
				value
			},
			() => this._emitFieldEdited(value)
		);
	}

	_validationsValueFn() {
		let {dataType} = this;

		dataType = dataType == 'string' ? dataType : 'numeric';

		return this._normalizeValidationsOptions(VALIDATIONS[dataType]);
	}
}

Soy.register(Validation, templates);

export default Validation;
		this._handleOptionEdited(event, 'label');
	}

	_handleOptionValueEdited(event) {
		this._handleOptionEdited(event, 'value');
	}

	_internalItemsValueFn() {
		const options = this.getCurrentLocaleValue();

		return this.getItems(options || []);
	}

	_setValue(value = {}) {
		const {defaultLanguageId} = this;
		const formattedValue = {...value};

		for (const languageId in value) {
			if (defaultLanguageId !== languageId) {
				formattedValue[languageId] = formattedValue[languageId]
					.filter(({value}) => !!value);
			}
		}

		return formattedValue;
	}
}

Soy.register(Options, templates);

export default Options;
import Component from 'metal-component';
import Soy from 'metal-soy';

import templates from './fieldset.soy';

/**
 * Fieldset Component
 */
class Fieldset extends Component {}

// Register component
Soy.register(Fieldset, templates, 'render');

if (!window.DDMFieldset) {
	window.DDMFieldset = {

	};
}

window.DDMFieldset.render = Fieldset;

export default Fieldset;
	 *
	 * @default undefined
	 * @instance
	 * @memberOf ChangeListsConfiguration
	 * @type {!string}
	 */
	urlConfiguration: Config.string().required(),

	/**
	 * Path of the available icons.
	 *
	 * @default undefined
	 * @instance
	 * @memberOf ChangeListsConfiguration
	 * @type {!string}
	 */
	spritemap: Config.string().required(),

	/**
	 * Content types that support change tracking.
	 *
	 * @instance
	 * @memberOf ChangeListsConfiguration
	 * @type {string}
	 */
	tooltipBody: Config.string()
};

Soy.register(ChangeListsConfiguration, templates);

export default ChangeListsConfiguration;
Example #7
0
			event.preventDefault();
			return;
		}
	}

	/**
	 * Setter for items attribute.
	 * @param {!Array<string>} items
	 * @protected
	 */
	setItems_(items) {
		return items.map((item) => Soy.toIncDom(item));
	}

}
Soy.register(Select, templates);

/**
 * State definition.
 * @type {!Object}
 * @static
 */
Select.STATE = {
	/**
	 * The CSS class used by the select menu arrow.
	 * @type {string}
	 * @default 'caret'
	 */
	arrowClass: {
		value: 'caret'
	},
import Component from 'metal-component';
import Soy from 'metal-soy';
import templates from './PageRenderer.soy.js';
import {Config} from 'metal-state';

class PageRenderer extends Component {}

PageRenderer.STATE = {
	items: Config.arrayOf(
		Config.shapeOf(
			{
				type: Config.string()
			}
		)
	)
};

Soy.register(PageRenderer, templates);

export default PageRenderer;
	}
}

/**
 * State definition.
 * @static
 * @type {!Object}
 */
RotateComponent.STATE = {

	/**
	 * Path of this module.
	 * @type {Function}
	 */
	modulePath: {
		validator: core.isString
	},

	/**
	 * Injected method that notifies the editor that this component wants to
	 * generate a preview version of the image.
	 * @type {Function}
	 */
	requestImageEditorPreview: {
		validator: core.isFunction
	}
};

Soy.register(RotateComponent, componentTemplates);

export default RotateComponent;
	/**
	 * The URL of a portlet to display the tags
	 * @default undefined
	 * @instance
	 * @memberof AssetVocabularyCategoriesSelector
	 * @review
	 * @type {?string}
	 */

	portletURL: Config.string(),

	/**
	 * List of selected items
	 * @default undefined
	 * @instance
	 * @memberof AssetVocabularyCategoriesSelector
	 * @review
	 * @type {?Array}
	 */

	selectedItems: Config.array().value([]),

	singleSelect: Config.bool().value(false),

	vocabularyIds: Config.array().value([])
};

Soy.register(AssetVocabularyCategoriesSelector, templates);

export {AssetVocabularyCategoriesSelector};
export default AssetVocabularyCategoriesSelector;
/**
 * State definition.
 * @review
 * @static
 * @type {!Object}
 */
FloatingToolbarBackgroundImagePanel.STATE = {

	/**
	 * @default undefined
	 * @memberof FloatingToolbarBackgroundImagePanel
	 * @review
	 * @type {!string}
	 */
	itemId: Config
		.string()
		.required()
};

const ConnectedFloatingToolbarBackgroundImagePanel = getConnectedComponent(
	FloatingToolbarBackgroundImagePanel,
	[
		'imageSelectorURL',
		'portletNamespace'
	]
);

Soy.register(ConnectedFloatingToolbarBackgroundImagePanel, templates);

export {ConnectedFloatingToolbarBackgroundImagePanel, FloatingToolbarBackgroundImagePanel};
export default ConnectedFloatingToolbarBackgroundImagePanel;
Example #12
0
	spritemap: Config.string().required(),

	/**
	 * @default strings
	 * @instance
	 * @memberof RuleList
	 * @type {!object}
	 */

	strings: Config.object().value(
		{
			'belongs-to': Liferay.Language.get('belongs-to'),
			'calculate-field': Liferay.Language.get('calculate-field-x-as-x'),
			contains: Liferay.Language.get('contains'),
			'equals-to': Liferay.Language.get('is-equal-to'),
			'greater-than': Liferay.Language.get('is-greater-than'),
			'greater-than-equals': Liferay.Language.get('is-greater-than-or-equal-to'),
			'is-empty': Liferay.Language.get('is-empty'),
			'less-than': Liferay.Language.get('is-less-than'),
			'less-than-equals': Liferay.Language.get('is-less-than-or-equal-to'),
			'not-contains': Liferay.Language.get('does-not-contain'),
			'not-equals-to': Liferay.Language.get('is-not-equal-to'),
			'not-is-empty': Liferay.Language.get('is-not-empty')
		}
	)
};

Soy.register(RuleList, templates);

export default RuleList;
import Component from 'metal-component';
import Soy from 'metal-soy';

import './SidebarAvailableElements.es';
import templates from './SidebarElementsPanel.soy';

/**
 * SidebarElementsPanel
 */
class SidebarElementsPanel extends Component {
}

/**
 * State definition.
 * @review
 * @static
 * @type {!Object}
 */
SidebarElementsPanel.STATE = {};

Soy.register(SidebarElementsPanel, templates);

export {SidebarElementsPanel};
export default SidebarElementsPanel;
Example #14
0
import Component from 'metal-component';
import Footer from './Footer.soy';
import Header from './Header.soy';
import Soy from 'metal-soy';
import templates from './View.soy';

class View extends Component {}

// Register component

Soy.register(View, templates);

export default View;
	 */
	_toggleDropdown() {
		const dropdownAction = this.openDropdown ?
			this._closeDropdown :
			this._openDropdown;

		dropdownAction.call(this);
	}

}

SegmentsExperienceSelector.STATE = {
	modalStates: Config.object().value(null),
	openDropdown: Config.bool().internal().value(false),
	segmentsEntryId: Config.string().internal()
};

const ConnectedSegmentsExperienceSelector = getConnectedComponent(
	SegmentsExperienceSelector,
	[
		'classPK',
		'availableSegmentsExperiences',
		'segmentsExperienceId',
		'defaultSegmentsEntryId'
	]
);

Soy.register(ConnectedSegmentsExperienceSelector, templates);

export {ConnectedSegmentsExperienceSelector};
export default ConnectedSegmentsExperienceSelector;
Example #16
0
   * @default default
   * @type {?(string|undefined)}
   */
  style: Config.oneOf(['accent', 'default', 'link', 'primary', 'success', 'danger', 'warning']).value(
    'default'
  ),

  /**
   * @default undefined
   * @type {?string}
   */
  target: Config.oneOf(['_blank', '_self', '_parent', '_top']),

  /**
   * @default button
   * @type {?string}
   */
  type: Config.oneOf(['button', 'reset', 'submit']).value('button'),

  /**
   * @default undefined
   * @type {?(string|undefined)}
   */
  value: Config.string(),
};

Soy.register(Button, templates);

export {Button};
export default Button;
import Component from 'metal-component';
import Soy from 'metal-soy';

import templates from './validation.soy';

/**
 * Validation Component
 */

class Validation extends Component {}

// Register component

Soy.register(Validation, templates, 'render');

if (!window.DDMValidation) {
	window.DDMValidation = {};
}

window.DDMValidation.render = Validation;

export default Validation;
Example #18
0
import Component from 'metal-component';
import Soy from 'metal-soy';

import templates from './text.soy';

/**
 * Text Component
 */

class Text extends Component {}

// Register component

Soy.register(Text, templates, 'render');

if (!window.DDMText) {
	window.DDMText = {};
}

window.DDMText.render = Text;

export default Text;
		return fields.filter(({repeatable}) => repeatable === true);
	}
}

Calculator.STATE = {
	expression: Config.string().value(''),

	fields: Config.arrayOf(
		Config.shapeOf(
			{
				fieldName: Config.string(),
				label: Config.string(),
				repeatable: Config.bool(),
				value: Config.string()
			}
		)
	).value([]),

	functions: Config.array().value([]),

	index: Config.number().value(0),

	repeatableFields: Config.array().valueFn('_repeatableFieldsValueFn'),

	spritemap: Config.string().required()
};

Soy.register(Calculator, templates);

export default Calculator;
	/**
	 * The width of the <img> element.
	 * @type {Number}
	 */
	imageWidth: Config.number().internal(),

	/**
	 * Path to icon images.
	 * @type {String}
	 */
	spritemap: Config.string().required(),

	/**
	 * Flag that indicate if 'zoom in' is disabled.
	 * @type {Boolean}
	 */
	zoomInDisabled: Config.bool().internal(),

	/**
	 * Flag that indicate if 'zoom out' is disabled.
	 * @type {Boolean}
	 */
	zoomOutDisabled: Config.bool().internal()
};

Soy.register(ImagePreviewer, templates);

export {ImagePreviewer};
export default ImagePreviewer;
	max: {
		validator: core.isNumber,
		value: 100
	},

	/**
	 * The minimum value of the progress bar. When the value is at its
	 * max, the bar will be fully collapsed.
	 * @type {number}
	 */

	min: {
		validator: core.isNumber,
		value: 0
	},

	/**
	 * The current value of the progress bar.
	 * @type {number}
	 */

	value: {
		setter: 'setterValueFn_',
		validator: core.isNumber,
		value: 0
	}
};
Soy.register(ProgressBar, templates);

export {ProgressBar};
export default ProgressBar;
	 * Flag to specify the logic for disabling inputs based on switch state
	 * @type {Boolean}
	 */

	disableOnChecked: {
		validator: core.isBoolean,
		value: true
	},

	/**
	 * CSS Selector for the inputs to enable/disable
	 * @type {String}
	 */

	inputSelector: {
		validator: core.isString
	},

	/**
	 * Label of the switch
	 * @type {String}
	 */

	label: {
		validator: core.isString
	}
};

Soy.register(ToggleDisableInputs, templates);

export default ToggleDisableInputs;
	 * @default undefined
	 * @instance
	 * @memberOf LayoutPageTemplateSidebarAddedFragment
	 * @type {!number}
	 */
	index: Config.number().required(),

	/**
	 * Fragment name
	 * @default undefined
	 * @instance
	 * @memberOf LayoutPageTemplateSidebarAddedFragment
	 * @type {!string}
	 */
	name: Config.string().required(),

	/**
	 * Path of the available icons.
	 * @default undefined
	 * @instance
	 * @memberOf LayoutPageTemplateSidebarAddedFragment
	 * @type {!string}
	 */
	spritemap: Config.string().required(),
};

Soy.register(LayoutPageTemplateSidebarAddedFragment, templates);

export {LayoutPageTemplateSidebarAddedFragment};
export default LayoutPageTemplateSidebarAddedFragment;
	 * @private
	 * @review
	 */
	_handleLanguageChange(event) {
		event.preventDefault();

		this.store.dispatchAction(
			CHANGE_LANGUAGE_ID,
			{
				languageId: event.delegateTarget.getAttribute('data-languageid')
			}
		);
	}

}

const ConnectedTranslationStatus = getConnectedComponent(
	TranslationStatus,
	[
		'availableLanguages',
		'defaultLanguageId',
		'languageId',
		'spritemap',
		'translationStatus'
	]
);

Soy.register(ConnectedTranslationStatus, templates);

export {ConnectedTranslationStatus};
export default ConnectedTranslationStatus;
	handleInputChangeEvent(event) {
		const value = event.delegateTarget.checked;

		this.setState({
			value
		});

		this.emit('fieldEdited', {
			fieldInstance: this,
			originalEvent: event,
			value
		});
	}
}

Soy.register(Checkbox, templates);

Checkbox.STATE = {
	/**
	 * @default 'string'
	 * @instance
	 * @memberof Text
	 * @type {?(string|undefined)}
	 */

	dataType: Config.string().value('boolean'),

	/**
	 * @default undefined
	 * @instance
	 * @memberof FieldBase
import Component from 'metal-component';
import Soy from 'metal-soy';

import templates from './rule-builder.soy';

let RuleBuilderTemplates = [];

if (!window.DDMRuleBuilder) {
	window.DDMRuleBuilder = {

	};
}

for (let template in templates) {
	if (template !== 'templates') {
		class C extends Component {};
		Soy.register(C, templates, template);
		RuleBuilderTemplates.push(
			{
				key: template,
				component: C
			}
		);
		window.DDMRuleBuilder[template] = C;
	}
}

export default RuleBuilderTemplates;
	/**
	 * @default undefined
	 * @memberof FloatingToolbarTextPropertiesPanel
	 * @review
	 * @type {!string}
	 */
	itemId: Config
		.string()
		.required(),

	/**
	 * @default undefined
	 * @memberof FloatingToolbarTextPropertiesPanel
	 * @review
	 * @type {object}
	 */
	store: Config
		.object()
		.value(null)
};

const ConnectedFloatingToolbarTextPropertiesPanel = getConnectedComponent(
	FloatingToolbarTextPropertiesPanel,
	['themeColorsCssClasses']
);

Soy.register(ConnectedFloatingToolbarTextPropertiesPanel, templates);

export {ConnectedFloatingToolbarTextPropertiesPanel, FloatingToolbarTextPropertiesPanel};
export default FloatingToolbarTextPropertiesPanel;
Example #28
0
   */
  valueHeaderFn_() {
    if (this.element) {
      let wrapper = document.createElement('div');
      for (let i = 0; i < this.element.childNodes.length; i++) {
        if (dom.hasClass(this.element.childNodes[i], 'dropdown-menu')) {
          break;
        }
        wrapper.appendChild(this.element.childNodes[i].cloneNode(true));
      }
      return wrapper.innerHTML;
    }
    return '';
  }
}
Soy.register(Dropdown, templates);

/**
 * State definition.
 * @type {!Object}
 * @static
 */
Dropdown.STATE = {
  /**
   * The current position of the tooltip after being aligned via `Align.align`.
   * @type {number}
   */
  alignedPosition: {
    validator: Align.isValidPosition,
  },
import Component from 'metal-component';
import Soy from 'metal-soy';

import templates from './checkbox-multiple.soy';

/**
 * CheckboxMultiple Component
 */
class CheckboxMultiple extends Component {}

// Register component
Soy.register(CheckboxMultiple, templates, 'render');

if (!window.DDMCheckboxMultiple) {
	window.DDMCheckboxMultiple = {

	};
}

window.DDMCheckboxMultiple.render = CheckboxMultiple;

export default CheckboxMultiple;
 * @static
 * @type {!Object}
 */
SidebarWidgetsPanel.STATE = {

	/**
	 * @default ''
	 * @instance
	 * @memberOf SidebarWidgetsPanel
	 * @private
	 * @review
	 * @type {string}
	 */
	_keywords: Config
		.string()
		.internal()
		.value('')
};

const ConnectedSidebarWidgetsPanel = getConnectedComponent(
	SidebarWidgetsPanel,
	[
		'spritemap',
		'widgets'
	]
);

Soy.register(ConnectedSidebarWidgetsPanel, templates);

export {ConnectedSidebarWidgetsPanel, SidebarWidgetsPanel};
export default ConnectedSidebarWidgetsPanel;