skaggr.js
Version:
A JavaScript interface for creating Qlik expressions via the skaggr spec
1,707 lines (1,329 loc) • 125 kB
JavaScript
(function webpackUniversalModuleDefinition(root, factory) {
if(typeof exports === 'object' && typeof module === 'object')
module.exports = factory();
else if(typeof define === 'function' && define.amd)
define("skaggr", [], factory);
else if(typeof exports === 'object')
exports["skaggr"] = factory();
else
root["skaggr"] = factory();
})(this, function() {
return /******/ (function(modules) { // webpackBootstrap
/******/ // The module cache
/******/ var installedModules = {};
/******/
/******/ // The require function
/******/ function __webpack_require__(moduleId) {
/******/
/******/ // Check if module is in cache
/******/ if(installedModules[moduleId]) {
/******/ return installedModules[moduleId].exports;
/******/ }
/******/ // Create a new module (and put it into the cache)
/******/ var module = installedModules[moduleId] = {
/******/ i: moduleId,
/******/ l: false,
/******/ exports: {}
/******/ };
/******/
/******/ // Execute the module function
/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
/******/
/******/ // Flag the module as loaded
/******/ module.l = true;
/******/
/******/ // Return the exports of the module
/******/ return module.exports;
/******/ }
/******/
/******/
/******/ // expose the modules object (__webpack_modules__)
/******/ __webpack_require__.m = modules;
/******/
/******/ // expose the module cache
/******/ __webpack_require__.c = installedModules;
/******/
/******/ // identity function for calling harmony imports with the correct context
/******/ __webpack_require__.i = function(value) { return value; };
/******/
/******/ // define getter function for harmony exports
/******/ __webpack_require__.d = function(exports, name, getter) {
/******/ if(!__webpack_require__.o(exports, name)) {
/******/ Object.defineProperty(exports, name, {
/******/ configurable: false,
/******/ enumerable: true,
/******/ get: getter
/******/ });
/******/ }
/******/ };
/******/
/******/ // getDefaultExport function for compatibility with non-harmony modules
/******/ __webpack_require__.n = function(module) {
/******/ var getter = module && module.__esModule ?
/******/ function getDefault() { return module['default']; } :
/******/ function getModuleExports() { return module; };
/******/ __webpack_require__.d(getter, 'a', getter);
/******/ return getter;
/******/ };
/******/
/******/ // Object.prototype.hasOwnProperty.call
/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
/******/
/******/ // __webpack_public_path__
/******/ __webpack_require__.p = "";
/******/
/******/ // Load entry module and return exports
/******/ return __webpack_require__(__webpack_require__.s = 59);
/******/ })
/************************************************************************/
/******/ ([
/* 0 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
exports.__esModule = true;
exports.default = function (instance, Constructor) {
if (!(instance instanceof Constructor)) {
throw new TypeError("Cannot call a class as a function");
}
};
/***/ }),
/* 1 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
exports.__esModule = true;
var _defineProperty = __webpack_require__(62);
var _defineProperty2 = _interopRequireDefault(_defineProperty);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
exports.default = function () {
function defineProperties(target, props) {
for (var i = 0; i < props.length; i++) {
var descriptor = props[i];
descriptor.enumerable = descriptor.enumerable || false;
descriptor.configurable = true;
if ("value" in descriptor) descriptor.writable = true;
(0, _defineProperty2.default)(target, descriptor.key, descriptor);
}
}
return function (Constructor, protoProps, staticProps) {
if (protoProps) defineProperties(Constructor.prototype, protoProps);
if (staticProps) defineProperties(Constructor, staticProps);
return Constructor;
};
}();
/***/ }),
/* 2 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
var _assign = __webpack_require__(60);
var _assign2 = _interopRequireDefault(_assign);
var _classCallCheck2 = __webpack_require__(0);
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
var _createClass2 = __webpack_require__(1);
var _createClass3 = _interopRequireDefault(_createClass2);
var _skaggrParse = __webpack_require__(103);
var _skaggrParse2 = _interopRequireDefault(_skaggrParse);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var Base = function () {
function Base() {
(0, _classCallCheck3.default)(this, Base);
this.attributes = {
type: "explicit",
value: ""
};
this.parsableProps = [];
}
(0, _createClass3.default)(Base, [{
key: "setSpecProperty",
value: function setSpecProperty(addr, val) {
var tree = addr.split("/");
var spec = generateSpec();
var curVal = spec;
while (tree.length > 0) {
var prop = tree.shift();
var nextProp = tree[0];
if (typeof curVal[prop] === "undefined") {
curVal[prop] = isNaN(nextProp) ? {} : [];
}
if (tree.length === 0) curVal[prop] = val;else curVal = curVal[prop];
}
return spec;
}
}, {
key: "getSpecProperty",
value: function getSpecProperty(addr) {
var tree = addr.split("/");
var spec = generateSpec();
return tree.reduce(function (acc, curr) {
if (curr === "") return acc;
return acc[curr];
}, spec);
}
// ATTRIBUTE MANAGEMENT
}, {
key: "addAttribute",
value: function addAttribute(name, value) {
this.attributes[name].push(value);
return this;
}
}, {
key: "getAttributes",
value: function getAttributes(name) {
return this.attributes[name];
}
}, {
key: "removeAttribute",
value: function removeAttribute(name, value) {
var index = this.attributes[name].find(function (a) {
return a === value;
});
this.attributes[name].splice(index, 1);
return this;
}
}, {
key: "removeAttributeByIndex",
value: function removeAttributeByIndex(name, index) {
this.attributes[name].splice(index, 1);
return this;
}
}, {
key: "setAttributeByIndex",
value: function setAttributeByIndex(name, value, index) {
this.attributes[name].splice(index, 1, value);
return this;
}
// SPEC PARSING
}, {
key: "generateSpec",
value: function generateSpec() {
var _this = this;
var spec = (0, _assign2.default)({}, this.attributes);
this.parsableProps.forEach(function (prop) {
var valToParse = _this.attributes[prop];
// consider removing all arrays in spec with groups (values that have operators) and lists (parameters that are delimited)
spec[prop] = valToParse instanceof Array ? valToParse.map(function (m) {
return m.generateSpec();
}) : valToParse.generateSpec();
});
return spec;
}
}, {
key: "print",
value: function print() {
var spec = this.generateSpec();
return (0, _skaggrParse2.default)(spec);
}
}]);
return Base;
}();
exports.default = Base;
module.exports = exports["default"];
/***/ }),
/* 3 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = { "default": __webpack_require__(69), __esModule: true };
/***/ }),
/* 4 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
exports.__esModule = true;
var _setPrototypeOf = __webpack_require__(63);
var _setPrototypeOf2 = _interopRequireDefault(_setPrototypeOf);
var _create = __webpack_require__(61);
var _create2 = _interopRequireDefault(_create);
var _typeof2 = __webpack_require__(41);
var _typeof3 = _interopRequireDefault(_typeof2);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
exports.default = function (subClass, superClass) {
if (typeof superClass !== "function" && superClass !== null) {
throw new TypeError("Super expression must either be null or a function, not " + (typeof superClass === "undefined" ? "undefined" : (0, _typeof3.default)(superClass)));
}
subClass.prototype = (0, _create2.default)(superClass && superClass.prototype, {
constructor: {
value: subClass,
enumerable: false,
writable: true,
configurable: true
}
});
if (superClass) _setPrototypeOf2.default ? (0, _setPrototypeOf2.default)(subClass, superClass) : subClass.__proto__ = superClass;
};
/***/ }),
/* 5 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
exports.__esModule = true;
var _typeof2 = __webpack_require__(41);
var _typeof3 = _interopRequireDefault(_typeof2);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
exports.default = function (self, call) {
if (!self) {
throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
}
return call && ((typeof call === "undefined" ? "undefined" : (0, _typeof3.default)(call)) === "object" || typeof call === "function") ? call : self;
};
/***/ }),
/* 6 */
/***/ (function(module, exports) {
var core = module.exports = {version: '2.4.0'};
if(typeof __e == 'number')__e = core; // eslint-disable-line no-undef
/***/ }),
/* 7 */
/***/ (function(module, exports) {
// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028
var global = module.exports = typeof window != 'undefined' && window.Math == Math
? window : typeof self != 'undefined' && self.Math == Math ? self : Function('return this')();
if(typeof __g == 'number')__g = global; // eslint-disable-line no-undef
/***/ }),
/* 8 */
/***/ (function(module, exports, __webpack_require__) {
// Thank's IE8 for his funny defineProperty
module.exports = !__webpack_require__(13)(function(){
return Object.defineProperty({}, 'a', {get: function(){ return 7; }}).a != 7;
});
/***/ }),
/* 9 */
/***/ (function(module, exports, __webpack_require__) {
var global = __webpack_require__(7)
, core = __webpack_require__(6)
, ctx = __webpack_require__(43)
, hide = __webpack_require__(14)
, PROTOTYPE = 'prototype';
var $export = function(type, name, source){
var IS_FORCED = type & $export.F
, IS_GLOBAL = type & $export.G
, IS_STATIC = type & $export.S
, IS_PROTO = type & $export.P
, IS_BIND = type & $export.B
, IS_WRAP = type & $export.W
, exports = IS_GLOBAL ? core : core[name] || (core[name] = {})
, expProto = exports[PROTOTYPE]
, target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE]
, key, own, out;
if(IS_GLOBAL)source = name;
for(key in source){
// contains in native
own = !IS_FORCED && target && target[key] !== undefined;
if(own && key in exports)continue;
// export native or passed
out = own ? target[key] : source[key];
// prevent global pollution for namespaces
exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key]
// bind timers to global for call from export context
: IS_BIND && own ? ctx(out, global)
// wrap global constructors for prevent change them in library
: IS_WRAP && target[key] == out ? (function(C){
var F = function(a, b, c){
if(this instanceof C){
switch(arguments.length){
case 0: return new C;
case 1: return new C(a);
case 2: return new C(a, b);
} return new C(a, b, c);
} return C.apply(this, arguments);
};
F[PROTOTYPE] = C[PROTOTYPE];
return F;
// make static versions for prototype methods
})(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;
// export proto methods to core.%CONSTRUCTOR%.methods.%NAME%
if(IS_PROTO){
(exports.virtual || (exports.virtual = {}))[key] = out;
// export proto methods to core.%CONSTRUCTOR%.prototype.%NAME%
if(type & $export.R && expProto && !expProto[key])hide(expProto, key, out);
}
}
};
// type bitmap
$export.F = 1; // forced
$export.G = 2; // global
$export.S = 4; // static
$export.P = 8; // proto
$export.B = 16; // bind
$export.W = 32; // wrap
$export.U = 64; // safe
$export.R = 128; // real proto method for `library`
module.exports = $export;
/***/ }),
/* 10 */
/***/ (function(module, exports) {
var hasOwnProperty = {}.hasOwnProperty;
module.exports = function(it, key){
return hasOwnProperty.call(it, key);
};
/***/ }),
/* 11 */
/***/ (function(module, exports, __webpack_require__) {
var anObject = __webpack_require__(16)
, IE8_DOM_DEFINE = __webpack_require__(45)
, toPrimitive = __webpack_require__(34)
, dP = Object.defineProperty;
exports.f = __webpack_require__(8) ? Object.defineProperty : function defineProperty(O, P, Attributes){
anObject(O);
P = toPrimitive(P, true);
anObject(Attributes);
if(IE8_DOM_DEFINE)try {
return dP(O, P, Attributes);
} catch(e){ /* empty */ }
if('get' in Attributes || 'set' in Attributes)throw TypeError('Accessors not supported!');
if('value' in Attributes)O[P] = Attributes.value;
return O;
};
/***/ }),
/* 12 */
/***/ (function(module, exports, __webpack_require__) {
// to indexed object, toObject with fallback for non-array-like ES3 strings
var IObject = __webpack_require__(46)
, defined = __webpack_require__(23);
module.exports = function(it){
return IObject(defined(it));
};
/***/ }),
/* 13 */
/***/ (function(module, exports) {
module.exports = function(exec){
try {
return !!exec();
} catch(e){
return true;
}
};
/***/ }),
/* 14 */
/***/ (function(module, exports, __webpack_require__) {
var dP = __webpack_require__(11)
, createDesc = __webpack_require__(20);
module.exports = __webpack_require__(8) ? function(object, key, value){
return dP.f(object, key, createDesc(1, value));
} : function(object, key, value){
object[key] = value;
return object;
};
/***/ }),
/* 15 */
/***/ (function(module, exports, __webpack_require__) {
var store = __webpack_require__(31)('wks')
, uid = __webpack_require__(21)
, Symbol = __webpack_require__(7).Symbol
, USE_SYMBOL = typeof Symbol == 'function';
var $exports = module.exports = function(name){
return store[name] || (store[name] =
USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));
};
$exports.store = store;
/***/ }),
/* 16 */
/***/ (function(module, exports, __webpack_require__) {
var isObject = __webpack_require__(17);
module.exports = function(it){
if(!isObject(it))throw TypeError(it + ' is not an object!');
return it;
};
/***/ }),
/* 17 */
/***/ (function(module, exports) {
module.exports = function(it){
return typeof it === 'object' ? it !== null : typeof it === 'function';
};
/***/ }),
/* 18 */
/***/ (function(module, exports, __webpack_require__) {
// 19.1.2.14 / 15.2.3.14 Object.keys(O)
var $keys = __webpack_require__(51)
, enumBugKeys = __webpack_require__(24);
module.exports = Object.keys || function keys(O){
return $keys(O, enumBugKeys);
};
/***/ }),
/* 19 */
/***/ (function(module, exports) {
exports.f = {}.propertyIsEnumerable;
/***/ }),
/* 20 */
/***/ (function(module, exports) {
module.exports = function(bitmap, value){
return {
enumerable : !(bitmap & 1),
configurable: !(bitmap & 2),
writable : !(bitmap & 4),
value : value
};
};
/***/ }),
/* 21 */
/***/ (function(module, exports) {
var id = 0
, px = Math.random();
module.exports = function(key){
return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));
};
/***/ }),
/* 22 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
var _getPrototypeOf = __webpack_require__(3);
var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);
var _classCallCheck2 = __webpack_require__(0);
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
var _createClass2 = __webpack_require__(1);
var _createClass3 = _interopRequireDefault(_createClass2);
var _possibleConstructorReturn2 = __webpack_require__(5);
var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
var _inherits2 = __webpack_require__(4);
var _inherits3 = _interopRequireDefault(_inherits2);
var _base = __webpack_require__(2);
var _base2 = _interopRequireDefault(_base);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var Explicit = function (_Base) {
(0, _inherits3.default)(Explicit, _Base);
function Explicit() {
var value = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : "";
(0, _classCallCheck3.default)(this, Explicit);
// automate loading template...put into base? constructor takes type?
var _this = (0, _possibleConstructorReturn3.default)(this, (Explicit.__proto__ || (0, _getPrototypeOf2.default)(Explicit)).call(this));
_this.attributes = {
type: "explicit",
value: value
};
return _this;
}
(0, _createClass3.default)(Explicit, [{
key: "value",
value: function value(val) {
this.attributes.value = val;
return this;
}
}]);
return Explicit;
}(_base2.default);
exports.default = Explicit;
module.exports = exports["default"];
/***/ }),
/* 23 */
/***/ (function(module, exports) {
// 7.2.1 RequireObjectCoercible(argument)
module.exports = function(it){
if(it == undefined)throw TypeError("Can't call method on " + it);
return it;
};
/***/ }),
/* 24 */
/***/ (function(module, exports) {
// IE 8- don't enum bug keys
module.exports = (
'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'
).split(',');
/***/ }),
/* 25 */
/***/ (function(module, exports) {
module.exports = {};
/***/ }),
/* 26 */
/***/ (function(module, exports) {
module.exports = true;
/***/ }),
/* 27 */
/***/ (function(module, exports, __webpack_require__) {
// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])
var anObject = __webpack_require__(16)
, dPs = __webpack_require__(84)
, enumBugKeys = __webpack_require__(24)
, IE_PROTO = __webpack_require__(30)('IE_PROTO')
, Empty = function(){ /* empty */ }
, PROTOTYPE = 'prototype';
// Create object with fake `null` prototype: use iframe Object with cleared prototype
var createDict = function(){
// Thrash, waste and sodomy: IE GC bug
var iframe = __webpack_require__(44)('iframe')
, i = enumBugKeys.length
, lt = '<'
, gt = '>'
, iframeDocument;
iframe.style.display = 'none';
__webpack_require__(77).appendChild(iframe);
iframe.src = 'javascript:'; // eslint-disable-line no-script-url
// createDict = iframe.contentWindow.Object;
// html.removeChild(iframe);
iframeDocument = iframe.contentWindow.document;
iframeDocument.open();
iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);
iframeDocument.close();
createDict = iframeDocument.F;
while(i--)delete createDict[PROTOTYPE][enumBugKeys[i]];
return createDict();
};
module.exports = Object.create || function create(O, Properties){
var result;
if(O !== null){
Empty[PROTOTYPE] = anObject(O);
result = new Empty;
Empty[PROTOTYPE] = null;
// add "__proto__" for Object.getPrototypeOf polyfill
result[IE_PROTO] = O;
} else result = createDict();
return Properties === undefined ? result : dPs(result, Properties);
};
/***/ }),
/* 28 */
/***/ (function(module, exports) {
exports.f = Object.getOwnPropertySymbols;
/***/ }),
/* 29 */
/***/ (function(module, exports, __webpack_require__) {
var def = __webpack_require__(11).f
, has = __webpack_require__(10)
, TAG = __webpack_require__(15)('toStringTag');
module.exports = function(it, tag, stat){
if(it && !has(it = stat ? it : it.prototype, TAG))def(it, TAG, {configurable: true, value: tag});
};
/***/ }),
/* 30 */
/***/ (function(module, exports, __webpack_require__) {
var shared = __webpack_require__(31)('keys')
, uid = __webpack_require__(21);
module.exports = function(key){
return shared[key] || (shared[key] = uid(key));
};
/***/ }),
/* 31 */
/***/ (function(module, exports, __webpack_require__) {
var global = __webpack_require__(7)
, SHARED = '__core-js_shared__'
, store = global[SHARED] || (global[SHARED] = {});
module.exports = function(key){
return store[key] || (store[key] = {});
};
/***/ }),
/* 32 */
/***/ (function(module, exports) {
// 7.1.4 ToInteger
var ceil = Math.ceil
, floor = Math.floor;
module.exports = function(it){
return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);
};
/***/ }),
/* 33 */
/***/ (function(module, exports, __webpack_require__) {
// 7.1.13 ToObject(argument)
var defined = __webpack_require__(23);
module.exports = function(it){
return Object(defined(it));
};
/***/ }),
/* 34 */
/***/ (function(module, exports, __webpack_require__) {
// 7.1.1 ToPrimitive(input [, PreferredType])
var isObject = __webpack_require__(17);
// instead of the ES6 spec version, we didn't implement @@toPrimitive case
// and the second argument - flag - preferred type is a string
module.exports = function(it, S){
if(!isObject(it))return it;
var fn, val;
if(S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val;
if(typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it)))return val;
if(!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val;
throw TypeError("Can't convert object to primitive value");
};
/***/ }),
/* 35 */
/***/ (function(module, exports, __webpack_require__) {
var global = __webpack_require__(7)
, core = __webpack_require__(6)
, LIBRARY = __webpack_require__(26)
, wksExt = __webpack_require__(36)
, defineProperty = __webpack_require__(11).f;
module.exports = function(name){
var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global.Symbol || {});
if(name.charAt(0) != '_' && !(name in $Symbol))defineProperty($Symbol, name, {value: wksExt.f(name)});
};
/***/ }),
/* 36 */
/***/ (function(module, exports, __webpack_require__) {
exports.f = __webpack_require__(15);
/***/ }),
/* 37 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
var _getPrototypeOf = __webpack_require__(3);
var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);
var _classCallCheck2 = __webpack_require__(0);
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
var _createClass2 = __webpack_require__(1);
var _createClass3 = _interopRequireDefault(_createClass2);
var _possibleConstructorReturn2 = __webpack_require__(5);
var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
var _inherits2 = __webpack_require__(4);
var _inherits3 = _interopRequireDefault(_inherits2);
var _base = __webpack_require__(2);
var _base2 = _interopRequireDefault(_base);
var _function = __webpack_require__(38);
var _function2 = _interopRequireDefault(_function);
var _setExpression = __webpack_require__(40);
var _setExpression2 = _interopRequireDefault(_setExpression);
var _explicit = __webpack_require__(22);
var _explicit2 = _interopRequireDefault(_explicit);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var Aggregation = function (_qFunction) {
(0, _inherits3.default)(Aggregation, _qFunction);
function Aggregation() {
var value = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : "";
(0, _classCallCheck3.default)(this, Aggregation);
// automate loading template...put into base? constructor takes type?
var _this = (0, _possibleConstructorReturn3.default)(this, (Aggregation.__proto__ || (0, _getPrototypeOf2.default)(Aggregation)).call(this));
_this.attributes = {
type: "aggr",
value: value,
qualifiers: [],
set: new _setExpression2.default(),
parameters: []
};
_this.parsableProps = ["qualifiers", "set", "parameters"];
return _this;
}
(0, _createClass3.default)(Aggregation, [{
key: "type",
value: function type(val) {
this.attributes.value = val;
return this;
}
// QUALIFIERS
}, {
key: "addQualifier",
value: function addQualifier(qualifier) {
return this.addAttribute("qualifiers", qualifier);
}
}, {
key: "getQualifiers",
value: function getQualifiers() {
return this.getAttributes("qualifiers");
}
}, {
key: "removeQualifier",
value: function removeQualifier(qualifier) {
return this.removeAttribute("qualifiers", qualifier);
}
}, {
key: "removeQualifierByIndex",
value: function removeQualifierByIndex(index) {
return this.removeAttributeByIndex("qualifiers", index);
}
// SET
}, {
key: "set",
value: function set(setExpression) {
this.attributes.set = setExpression;
return this;
}
}]);
return Aggregation;
}(_function2.default);
exports.default = Aggregation;
module.exports = exports["default"];
/***/ }),
/* 38 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
var _getPrototypeOf = __webpack_require__(3);
var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);
var _classCallCheck2 = __webpack_require__(0);
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
var _createClass2 = __webpack_require__(1);
var _createClass3 = _interopRequireDefault(_createClass2);
var _possibleConstructorReturn2 = __webpack_require__(5);
var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
var _inherits2 = __webpack_require__(4);
var _inherits3 = _interopRequireDefault(_inherits2);
var _base = __webpack_require__(2);
var _base2 = _interopRequireDefault(_base);
var _explicit = __webpack_require__(22);
var _explicit2 = _interopRequireDefault(_explicit);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var qFunction = function (_Base) {
(0, _inherits3.default)(qFunction, _Base);
function qFunction() {
var name = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : "";
var parameters = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
(0, _classCallCheck3.default)(this, qFunction);
// automate loading template...put into base? constructor takes type?
var _this = (0, _possibleConstructorReturn3.default)(this, (qFunction.__proto__ || (0, _getPrototypeOf2.default)(qFunction)).call(this));
_this.attributes = {
type: "function",
value: name,
parameters: parameters
};
_this.parsableProps = ["parameters"];
return _this;
}
(0, _createClass3.default)(qFunction, [{
key: "name",
value: function name(val) {
this.attributes.value = val;
return this;
}
// PARAMETERS
}, {
key: "addParameter",
value: function addParameter(param) {
var value;
if (param instanceof _base2.default) value = param;else value = new _explicit2.default(param);
return this.addAttribute("parameters", value);
}
}, {
key: "getParameters",
value: function getParameters() {
return this.getAttributes("parameters");
}
}, {
key: "removeParameter",
value: function removeParameter(param) {
return this.removeAttribute("parameters", param);
}
}, {
key: "removeParameterByIndex",
value: function removeParameterByIndex(index) {
return this.removeAttributeByIndex("parameters", index);
}
}, {
key: "setParameterByIndex",
value: function setParameterByIndex(param, index) {
var value;
if (param instanceof _base2.default) value = param;else value = new _explicit2.default(param);
return this.setAttributeByIndex("parameters", value, index);
}
}]);
return qFunction;
}(_base2.default);
exports.default = qFunction;
module.exports = exports["default"];
/***/ }),
/* 39 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
var _getPrototypeOf = __webpack_require__(3);
var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);
var _classCallCheck2 = __webpack_require__(0);
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
var _createClass2 = __webpack_require__(1);
var _createClass3 = _interopRequireDefault(_createClass2);
var _possibleConstructorReturn2 = __webpack_require__(5);
var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
var _inherits2 = __webpack_require__(4);
var _inherits3 = _interopRequireDefault(_inherits2);
var _base = __webpack_require__(2);
var _base2 = _interopRequireDefault(_base);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var Qualifier = function (_Base) {
(0, _inherits3.default)(Qualifier, _Base);
function Qualifier() {
var name = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : "";
var modifiers = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
(0, _classCallCheck3.default)(this, Qualifier);
// automate loading template...put into base? constructor takes type?
var _this = (0, _possibleConstructorReturn3.default)(this, (Qualifier.__proto__ || (0, _getPrototypeOf2.default)(Qualifier)).call(this));
_this.attributes = {
type: "qualifier",
value: name,
included: true,
modifiers: modifiers
};
return _this;
}
(0, _createClass3.default)(Qualifier, [{
key: "name",
value: function name(val) {
this.attributes.value = val;
return this;
}
}, {
key: "included",
value: function included(bool) {
this.attributes.included = bool;
return this;
}
}, {
key: "modifiers",
value: function modifiers(arr) {
this.attributes.modifiers = arr;
return this;
}
}]);
return Qualifier;
}(_base2.default);
exports.default = Qualifier;
module.exports = exports["default"];
/***/ }),
/* 40 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
var _getPrototypeOf = __webpack_require__(3);
var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);
var _classCallCheck2 = __webpack_require__(0);
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
var _createClass2 = __webpack_require__(1);
var _createClass3 = _interopRequireDefault(_createClass2);
var _possibleConstructorReturn2 = __webpack_require__(5);
var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
var _inherits2 = __webpack_require__(4);
var _inherits3 = _interopRequireDefault(_inherits2);
var _base = __webpack_require__(2);
var _base2 = _interopRequireDefault(_base);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var SetExpression = function (_Base) {
(0, _inherits3.default)(SetExpression, _Base);
function SetExpression() {
(0, _classCallCheck3.default)(this, SetExpression);
// automate loading template...put into base? constructor takes type?
var _this = (0, _possibleConstructorReturn3.default)(this, (SetExpression.__proto__ || (0, _getPrototypeOf2.default)(SetExpression)).call(this));
_this.attributes = {
type: "set-expression",
components: [],
operators: []
};
_this.parsableProps = ["components"];
return _this;
}
// COMPONENTS
// set component initializes initial component
(0, _createClass3.default)(SetExpression, [{
key: "setComponent",
value: function setComponent(_setComponent) {
this.attributes.components = [_setComponent];
this.attributes.operators = [];
return this;
}
}, {
key: "addSetComponent",
value: function addSetComponent(setComponent, operator) {
return this.addAttribute("components", setComponent).addAttribute("operators", operator);
}
}, {
key: "getSetComponents",
value: function getSetComponents() {
return this.getAttributes("components");
}
}, {
key: "getSetComponentOperator",
value: function getSetComponentOperator(setComponent) {
var index = this.getSetComponents().find(function (sC) {
return sC === setComponent;
});
return this.getAttributes("operators")[index - 1];
}
}, {
key: "removeSetComponent",
value: function removeSetComponent(setComponent) {
var index = this.getSetComponents().find(function (sC) {
return sC === setComponent;
});
this.removeAttribute("components", setComponent);
this.attributes.operators.splice(index - 1, 1);
return this;
}
}, {
key: "removeSetComponentByIndex",
value: function removeSetComponentByIndex(index) {
return this.removeSetComponent(this.attributes.components[index]);
}
// ADDING COMPONENTS WITH OPERATORS
}, {
key: "union",
value: function union(setComponent) {
return this.addSetComponent(setComponent, "+");
}
}, {
key: "exclusion",
value: function exclusion(setComponent) {
return this.addSetComponent(setComponent, "-");
}
}, {
key: "intersection",
value: function intersection(setComponent) {
return this.addSetComponent(setComponent, "*");
}
}, {
key: "xor",
value: function xor(setComponent) {
return this.addSetComponent(setComponent, "/");
}
}]);
return SetExpression;
}(_base2.default);
exports.default = SetExpression;
module.exports = exports["default"];
/***/ }),
/* 41 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
exports.__esModule = true;
var _iterator = __webpack_require__(65);
var _iterator2 = _interopRequireDefault(_iterator);
var _symbol = __webpack_require__(64);
var _symbol2 = _interopRequireDefault(_symbol);
var _typeof = typeof _symbol2.default === "function" && typeof _iterator2.default === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof _symbol2.default === "function" && obj.constructor === _symbol2.default && obj !== _symbol2.default.prototype ? "symbol" : typeof obj; };
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
exports.default = typeof _symbol2.default === "function" && _typeof(_iterator2.default) === "symbol" ? function (obj) {
return typeof obj === "undefined" ? "undefined" : _typeof(obj);
} : function (obj) {
return obj && typeof _symbol2.default === "function" && obj.constructor === _symbol2.default && obj !== _symbol2.default.prototype ? "symbol" : typeof obj === "undefined" ? "undefined" : _typeof(obj);
};
/***/ }),
/* 42 */
/***/ (function(module, exports) {
var toString = {}.toString;
module.exports = function(it){
return toString.call(it).slice(8, -1);
};
/***/ }),
/* 43 */
/***/ (function(module, exports, __webpack_require__) {
// optional / simple context binding
var aFunction = __webpack_require__(73);
module.exports = function(fn, that, length){
aFunction(fn);
if(that === undefined)return fn;
switch(length){
case 1: return function(a){
return fn.call(that, a);
};
case 2: return function(a, b){
return fn.call(that, a, b);
};
case 3: return function(a, b, c){
return fn.call(that, a, b, c);
};
}
return function(/* ...args */){
return fn.apply(that, arguments);
};
};
/***/ }),
/* 44 */
/***/ (function(module, exports, __webpack_require__) {
var isObject = __webpack_require__(17)
, document = __webpack_require__(7).document
// in old IE typeof document.createElement is 'object'
, is = isObject(document) && isObject(document.createElement);
module.exports = function(it){
return is ? document.createElement(it) : {};
};
/***/ }),
/* 45 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = !__webpack_require__(8) && !__webpack_require__(13)(function(){
return Object.defineProperty(__webpack_require__(44)('div'), 'a', {get: function(){ return 7; }}).a != 7;
});
/***/ }),
/* 46 */
/***/ (function(module, exports, __webpack_require__) {
// fallback for non-array-like ES3 and non-enumerable old V8 strings
var cof = __webpack_require__(42);
module.exports = Object('z').propertyIsEnumerable(0) ? Object : function(it){
return cof(it) == 'String' ? it.split('') : Object(it);
};
/***/ }),
/* 47 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var LIBRARY = __webpack_require__(26)
, $export = __webpack_require__(9)
, redefine = __webpack_require__(52)
, hide = __webpack_require__(14)
, has = __webpack_require__(10)
, Iterators = __webpack_require__(25)
, $iterCreate = __webpack_require__(79)
, setToStringTag = __webpack_require__(29)
, getPrototypeOf = __webpack_require__(50)
, ITERATOR = __webpack_require__(15)('iterator')
, BUGGY = !([].keys && 'next' in [].keys()) // Safari has buggy iterators w/o `next`
, FF_ITERATOR = '@@iterator'
, KEYS = 'keys'
, VALUES = 'values';
var returnThis = function(){ return this; };
module.exports = function(Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED){
$iterCreate(Constructor, NAME, next);
var getMethod = function(kind){
if(!BUGGY && kind in proto)return proto[kind];
switch(kind){
case KEYS: return function keys(){ return new Constructor(this, kind); };
case VALUES: return function values(){ return new Constructor(this, kind); };
} return function entries(){ return new Constructor(this, kind); };
};
var TAG = NAME + ' Iterator'
, DEF_VALUES = DEFAULT == VALUES
, VALUES_BUG = false
, proto = Base.prototype
, $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT]
, $default = $native || getMethod(DEFAULT)
, $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined
, $anyNative = NAME == 'Array' ? proto.entries || $native : $native
, methods, key, IteratorPrototype;
// Fix native
if($anyNative){
IteratorPrototype = getPrototypeOf($anyNative.call(new Base));
if(IteratorPrototype !== Object.prototype){
// Set @@toStringTag to native iterators
setToStringTag(IteratorPrototype, TAG, true);
// fix for some old engines
if(!LIBRARY && !has(IteratorPrototype, ITERATOR))hide(IteratorPrototype, ITERATOR, returnThis);
}
}
// fix Array#{values, @@iterator}.name in V8 / FF
if(DEF_VALUES && $native && $native.name !== VALUES){
VALUES_BUG = true;
$default = function values(){ return $native.call(this); };
}
// Define iterator
if((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])){
hide(proto, ITERATOR, $default);
}
// Plug for library
Iterators[NAME] = $default;
Iterators[TAG] = returnThis;
if(DEFAULT){
methods = {
values: DEF_VALUES ? $default : getMethod(VALUES),
keys: IS_SET ? $default : getMethod(KEYS),
entries: $entries
};
if(FORCED)for(key in methods){
if(!(key in proto))redefine(proto, key, methods[key]);
} else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);
}
return methods;
};
/***/ }),
/* 48 */
/***/ (function(module, exports, __webpack_require__) {
var pIE = __webpack_require__(19)
, createDesc = __webpack_require__(20)
, toIObject = __webpack_require__(12)
, toPrimitive = __webpack_require__(34)
, has = __webpack_require__(10)
, IE8_DOM_DEFINE = __webpack_require__(45)
, gOPD = Object.getOwnPropertyDescriptor;
exports.f = __webpack_require__(8) ? gOPD : function getOwnPropertyDescriptor(O, P){
O = toIObject(O);
P = toPrimitive(P, true);
if(IE8_DOM_DEFINE)try {
return gOPD(O, P);
} catch(e){ /* empty */ }
if(has(O, P))return createDesc(!pIE.f.call(O, P), O[P]);
};
/***/ }),
/* 49 */
/***/ (function(module, exports, __webpack_require__) {
// 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O)
var $keys = __webpack_require__(51)
, hiddenKeys = __webpack_require__(24).concat('length', 'prototype');
exports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O){
return $keys(O, hiddenKeys);
};
/***/ }),
/* 50 */
/***/ (function(module, exports, __webpack_require__) {
// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)
var has = __webpack_require__(10)
, toObject = __webpack_require__(33)
, IE_PROTO = __webpack_require__(30)('IE_PROTO')
, ObjectProto = Object.prototype;
module.exports = Object.getPrototypeOf || function(O){
O = toObject(O);
if(has(O, IE_PROTO))return O[IE_PROTO];
if(typeof O.constructor == 'function' && O instanceof O.constructor){
return O.constructor.prototype;
} return O instanceof Object ? ObjectProto : null;
};
/***/ }),
/* 51 */
/***/ (function(module, exports, __webpack_require__) {
var has = __webpack_require__(10)
, toIObject = __webpack_require__(12)
, arrayIndexOf = __webpack_require__(75)(false)
, IE_PROTO = __webpack_require__(30)('IE_PROTO');
module.exports = function(object, names){
var O = toIObject(object)
, i = 0
, result = []
, key;
for(key in O)if(key != IE_PROTO)has(O, key) && result.push(key);
// Don't enum bug & hidden keys
while(names.length > i)if(has(O, key = names[i++])){
~arrayIndexOf(result, key) || result.push(key);
}
return result;
};
/***/ }),
/* 52 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(14);
/***/ }),
/* 53 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
var _getPrototypeOf = __webpack_require__(3);
var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);
var _classCallCheck2 = __webpack_require__(0);
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
var _createClass2 = __webpack_require__(1);
var _createClass3 = _interopRequireDefault(_createClass2);
var _possibleConstructorReturn2 = __webpack_require__(5);
var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
var _inherits2 = __webpack_require__(4);
var _inherits3 = _interopRequireDefault(_inherits2);
var _aggregation = __webpack_require__(37);
var _aggregation2 = _interopRequireDefault(_aggregation);
var _qualifier = __webpack_require__(39);
var _qualifier2 = _interopRequireDefault(_qualifier);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var Sum = function (_Aggregation) {
(0, _inherits3.default)(Sum, _Aggregation);
function Sum() {
var param = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : "";
(0, _classCallCheck3.default)(this, Sum);
var _this = (0, _possibleConstructorReturn3.default)(this, (Sum.__proto__ || (0, _getPrototypeOf2.default)(Sum)).call(this, "sum"));
_this.addParameter(param);
_this.$$ = {};
_this.$$.totalQualifier = new _qualifier2.default("TOTAL").included(false);
_this.$$.distinctQualifier = new _qualifier2.default("DISTINCT").included(false);
_this.addQualifier(_this.$$.totalQualifier).addQualifier(_this.$$.distinctQualifier);
return _this;
}
(0, _createClass3.default)(Sum, [{
key: "total",
value: function total() {
var arr = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
if (arr === false) this.$$.totalQualifier.included(false);else {
this.$$.totalQualifier.included(true).modifiers(arr);
}
return this;
}
}, {
key: "distinct",
value: function distinct(bool) {
if (bool === false) this.$$.distinctQualifier.included(false);else this.$$.distinctQualifier.included(true);
return this;
}
}, {
key: "expr",
value: function expr(val) {
this.setParameterByIndex(val, 0);
return this;
}
}]);
return Sum;
}(_aggregation2.default);
// named modifiers like in d3-force?
exports.default = Sum;
module.exports = exports["default"];
/***/ }),
/* 54 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
var _getPrototypeOf = __webpack_require__(3);
var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);
var _classCallCheck2 = __webpack_require__(0);
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
var _createClass2 = __webpack_require__(1);
var _createClass3 = _interopRequireDefault(_createClass2);
var _possibleConstructorReturn2 = __webpack_require__(5);
var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
var _inherits2 = __webpack_require__(4);
var _inherits3 = _interopRequireDefault(_inherits2);
var _base = __webpack_require__(2);
var _base2 = _interopRequireDefault(_base);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var Group = function (_Base) {
(0, _inherits3.default)(Group, _Base);
function Group() {
var value = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
var operators = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
(0, _classCallCheck3.default)(this, Group);
// automate loading template...put into base? constructor takes type?
var _this = (0, _possibleConstructorReturn3.default)(this, (Group.__proto__ || (0, _getPrototypeOf2.default)(Group)).call(this));
_this.attributes = {
type: "group",
brackets: false,
value: value,
operators: operators
};
_this.parsableProps = ["value"];
return _this;
}
(0, _createClass3.default)(Group, [{
key: "brackets",
value: function brackets(val) {
this.attributes.brackets = val;
return this;
}
// ITEMS
}, {
key: "addItem",
value: function addItem(item) {
var operator = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : "";
return this.addAttribute("value", item).addAttribute("operators", operator);
}
}, {
key: "getItems",
value: function getItems() {
return this.getAttributes("value");
}
}, {
key: "getItemOperator",
value: function getItemOperator(item) {
var index = this.getItems().find(function (i) {
return i === item;
});
return this.getAttributes("operators")[index];
}
}, {
key: "removeItem",
value: function removeItem(item) {
var index = this.getItems().find(function (i) {
return i === item;
});
this.removeAttribute("value", item);
this.attributes.operators.splice(index, 1);
return this;
}
}, {
key: "removeItemByIndex",
value: function removeItemByIndex(index) {
return this.removeItem(this.attributes.value[index]);
}
}]);
return Group;
}(_base2.default);
exports.default = Group;
module.exports = exports["default"];
/***/ }),
/* 55 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
var _getPrototype