You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
161 lines
3.0 KiB
161 lines
3.0 KiB
// Copyright 2015 Yahoo! Inc.
|
|
// Copyrights licensed under the Mit License. See the accompanying LICENSE file for terms.
|
|
|
|
var Base = require('./base');
|
|
var utils = require('preceptor-core').utils;
|
|
|
|
var Color = require('./atoms/color');
|
|
var Rect = require('./atoms/rect');
|
|
var Shift = require('./shift');
|
|
var BlockOut = require('./blockOut');
|
|
|
|
/**
|
|
* @class StructureComparison
|
|
* @extends Base
|
|
* @module Configuration
|
|
*
|
|
* @property {string} _type
|
|
* @property {string} _selector
|
|
* @property {Anchor[]} _anchors
|
|
* @property {Limit[]} _limits
|
|
*/
|
|
var StructureComparison = Base.extend(
|
|
|
|
/**
|
|
* Structural comparison constructor
|
|
*
|
|
* @param {object} options
|
|
* @param {string} options.type Type of comparison
|
|
* @param {string} options.selector Selector for checked DOM-element
|
|
* @param {object[]|Anchor[]} options.anchors Anchors for DOM-element
|
|
* @param {object[]|Limit[]} options.limits Limits for selecting DOM-elements
|
|
* @constructor
|
|
*/
|
|
function (options) {
|
|
this.__super(options);
|
|
|
|
options = utils.deepExtend({
|
|
type: "structure",
|
|
selector: null,
|
|
anchors: [],
|
|
limits: []
|
|
}, [options]);
|
|
|
|
this.setType(options.type);
|
|
this.setSelector(options.selector);
|
|
|
|
this.setAnchors(options.anchors);
|
|
this.setLimits(options.limits);
|
|
},
|
|
|
|
{
|
|
/**
|
|
* Gets the comparison type
|
|
*
|
|
* @method getType
|
|
* @return {string}
|
|
*/
|
|
getType: function () {
|
|
return this._type;
|
|
},
|
|
|
|
/**
|
|
* Sets the comparison type
|
|
*
|
|
* @method setType
|
|
* @param {string} value
|
|
*/
|
|
setType: function (value) {
|
|
this._type = value;
|
|
},
|
|
|
|
|
|
/**
|
|
* Gets the selector for a DOM element
|
|
*
|
|
* @method getSelector
|
|
* @return {string}
|
|
*/
|
|
getSelector: function () {
|
|
return this._selector;
|
|
},
|
|
|
|
/**
|
|
* Sets the selector for a DOM element
|
|
*
|
|
* @method setSelector
|
|
* @param {string} value
|
|
*/
|
|
setSelector: function (value) {
|
|
this._selector = value;
|
|
},
|
|
|
|
|
|
/**
|
|
* Gets the anchors for DOM-elements
|
|
*
|
|
* @method getAnchors
|
|
* @return {Anchor[]}
|
|
*/
|
|
getAnchors: function () {
|
|
return this._anchors;
|
|
},
|
|
|
|
/**
|
|
* Sets the anchors for DOM-elements
|
|
*
|
|
* @method setAnchors
|
|
* @param {object[]|Anchor[]} value
|
|
*/
|
|
setAnchors: function (value) {
|
|
|
|
var list = [];
|
|
|
|
value.forEach(function (entry) {
|
|
list.push(this._parseObject(entry, Anchor, 'anchor'));
|
|
}.bind(this));
|
|
|
|
this._anchors = list;
|
|
},
|
|
|
|
|
|
/**
|
|
* Gets the limitations for selection
|
|
*
|
|
* @method getLimits
|
|
* @return {Limit[]}
|
|
*/
|
|
getLimits: function () {
|
|
return this._limits;
|
|
},
|
|
|
|
/**
|
|
* Sets the limitations or selection
|
|
*
|
|
* @method setLimits
|
|
* @param {object[]|Limit[]} value
|
|
*/
|
|
setLimits: function (value) {
|
|
|
|
var list = [];
|
|
|
|
value.forEach(function (entry) {
|
|
list.push(this._parseObject(entry, Limit, 'limit'));
|
|
}.bind(this));
|
|
|
|
this._limits = list;
|
|
}
|
|
},
|
|
|
|
{
|
|
/**
|
|
* @property TYPE
|
|
* @type {string}
|
|
* @static
|
|
*/
|
|
TYPE: 'CONFIGURATION_STRUCTURE_COMPARISON'
|
|
}
|
|
);
|
|
|
|
module.exports = StructureComparison;
|