Socket
Socket
Sign inDemoInstall

angular-elastic-builder

Package Overview
Dependencies
0
Maintainers
1
Versions
14
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 1.3.1 to 1.3.2

6

dist/angular-elastic-builder.js

@@ -5,3 +5,3 @@ /**

*
* @version v1.3.1
* @version v1.3.2
* @link https://github.com/dncrews/angular-elastic-builder.git

@@ -56,2 +56,4 @@ * @license MIT

scope.filters = [];
/**

@@ -86,3 +88,3 @@ * Removes either Group or Rule

*/
scope.$watch('data.needsUpdate', function(curr, prev) {
scope.$watch('data.needsUpdate', function(curr) {
if (! curr) return;

@@ -89,0 +91,0 @@

@@ -1,1 +0,1 @@

!function(e){"use strict";e.module("angular-elastic-builder",["RecursionHelper"])}(window.angular),function(e){"use strict";e.module("angular-elastic-builder").directive("elasticBuilder",["elasticQueryService",function(e){return{scope:{data:"=elasticBuilder"},templateUrl:"angular-elastic-builder/BuilderDirective.html",link:function(t){var n=t.data;t.removeChild=function(e){t.filters.splice(e,1)},t.addRule=function(){t.filters.push({})},t.addGroup=function(){t.filters.push({type:"group",subType:"and",rules:[]})},t.$watch("data.needsUpdate",function(a,i){a&&(t.filters=e.toFilters(n.query,t.data.fields),t.data.needsUpdate=!1)}),t.$watch("filters",function(a){a&&(n.query=e.toQuery(t.filters,t.data.fields))},!0)}}}])}(window.angular),function(e){"use strict";var t=e.module("angular-elastic-builder");t.directive("elasticBuilderChooser",["RecursionHelper","groupClassHelper",function(e,t){return{scope:{elasticFields:"=",item:"=elasticBuilderChooser",onRemove:"&"},templateUrl:"angular-elastic-builder/ChooserDirective.html",compile:function(n){return e.compile(n,function(e,n,a){var i=e.depth=+a.depth,l=e.item;e.getGroupClassName=function(){var e=i;return"group"===l.type&&e++,t(e)}})}}}])}(window.angular),function(e){"use strict";var t=e.module("angular-elastic-builder");t.directive("elasticBuilderGroup",["RecursionHelper","groupClassHelper",function(e,t){return{scope:{elasticFields:"=",group:"=elasticBuilderGroup",onRemove:"&"},templateUrl:"angular-elastic-builder/GroupDirective.html",compile:function(n){return e.compile(n,function(e,n,a){var i=e.depth=+a.depth,l=e.group;e.addRule=function(){l.rules.push({})},e.addGroup=function(){l.rules.push({type:"group",subType:"and",rules:[]})},e.removeChild=function(e){l.rules.splice(e,1)},e.getGroupClassName=function(){return t(i+1)}})}}}])}(window.angular),function(e){"use strict";var t=e.module("angular-elastic-builder");t.directive("elasticBuilderRule",[function(){return{scope:{elasticFields:"=",rule:"=elasticBuilderRule",onRemove:"&"},templateUrl:"angular-elastic-builder/RuleDirective.html",link:function(e){e.getType=function(){var t=e.elasticFields,n=e.rule.field;if(t&&n)return"boolean"===t[n].subType?"boolean":t[n].type}}}}])}(window.angular),function(e){"use strict";var t=e.module("angular-elastic-builder");t.directive("elasticType",[function(){return{scope:{type:"=elasticType",rule:"=",guide:"="},template:'<ng-include src="getTemplateUrl()" />',link:function(e){e.getTemplateUrl=function(){var t=e.type;if(t)return t=t.charAt(0).toUpperCase()+t.slice(1),"angular-elastic-builder/types/"+t+".html"},e.booleans=["False","True"],e.booleansOrder=["True","False"],e.inputNeeded=function(){var t=["equals","notEquals","gt","gte","lt","lte"];return~t.indexOf(e.rule.subType)}}}}])}(window.angular),function(e){"use strict";e.module("angular-elastic-builder").factory("groupClassHelper",function(){return function(e){var t=["","list-group-item-info","list-group-item-success","list-group-item-warning","list-group-item-danger"];return t[e%t.length]}})}(window.angular),function(e){"use strict";function t(e,t){var n=e.map(a.bind(e,t));return n}function n(e,t){var n=e.map(i.bind(e,t)).filter(function(e){return!!e});return n}function a(e,t,n){n!==!1&&(n=!0);var i=Object.keys(t)[0],r={or:"group",and:"group",range:"number"},s=r[i]||"item",u=l(s);switch(i){case"or":case"and":u.rules=t[i].map(a.bind(t,e)),u.subType=i;break;case"missing":case"exists":u.field=t[i].field,u.subType={exists:"exists",missing:"notExists"}[i],delete u.value;break;case"term":case"terms":u.field=Object.keys(t[i])[0];var o=e[Object.keys(t[i])[0]];if("multi"===o.type){var c=t[i][u.field];"string"==typeof c&&(c=[c]),u.values=o.choices.reduce(function(e,a){return e[a]=n===t[i][u.field].indexOf(a)>-1,e},{})}else u.subType=n?"equals":"notEquals",u.value=t[i][u.field],"number"==typeof u.value&&(u.subType="boolean");break;case"range":u.field=Object.keys(t[i])[0],u.subType=Object.keys(t[i][u.field])[0],u.value=t[i][u.field][u.subType];break;case"not":u=a(e,t[i].filter,!1);break;default:u.field=Object.keys(t[i])[0]}return u}function i(e,t){var n={};if("group"===t.type)return n[t.subType]=t.rules.map(i.bind(t,e)).filter(function(e){return!!e}),n;var a=t.field,l=e[a];if(a){switch(l.type){case"term":if("boolean"===l.subType&&(t.subType="boolean"),!t.subType)return;switch(t.subType){case"equals":case"boolean":if(void 0===t.value)return;n.term={},n.term[a]=t.value;break;case"notEquals":if(void 0===t.value)return;n.not={filter:{term:{}}},n.not.filter.term[a]=t.value;break;case"exists":n.exists={field:a};break;case"notExists":n.missing={field:a};break;default:throw new Error("unexpected subtype "+t.subType)}break;case"number":n.range={},n.range[a]={},n.range[a][t.subType]=t.value;break;case"date":if("exists"===t.subType)n.exists={field:a};else{if("notExists"!==t.subType)throw new Error("unexpected subtype");n.missing={field:a}}break;case"multi":n.terms={},n.terms[a]=Object.keys(t.values||{}).reduce(function(e,n){return t.values[n]&&e.push(n),e},[]);break;default:throw new Error("unexpected type")}return n}}function l(t){var n={group:{type:"group",subType:"",rules:[]},item:{field:"",subType:"",value:""},number:{field:"",subType:"",value:null}};return e.copy(n[t])}e.module("angular-elastic-builder").factory("elasticQueryService",[function(){return{toFilters:t,toQuery:n}}])}(window.angular),function(e){"use strict";e.module("angular-elastic-builder").run(["$templateCache",function(e){e.put("angular-elastic-builder/BuilderDirective.html",'<div class="elastic-builder">\n <div class="filter-panels">\n <div class="list-group form-inline">\n <div\n data-ng-repeat="filter in filters"\n data-elastic-builder-chooser="filter"\n data-elastic-fields="data.fields"\n data-on-remove="removeChild($index)"\n data-depth="0"></div>\n <div class="list-group-item actions">\n <a class="btn btn-xs btn-primary" title="Add Rule" data-ng-click="addRule()">\n <i class="fa fa-plus"></i>\n </a>\n <a class="btn btn-xs btn-primary" title="Add Group" data-ng-click="addGroup()">\n <i class="fa fa-list"></i>\n </a>\n </div>\n </div>\n </div>\n</div>\n'),e.put("angular-elastic-builder/ChooserDirective.html",'<div\n class="list-group-item elastic-builder-chooser"\n data-ng-class="getGroupClassName()">\n\n <div data-ng-if="item.type === \'group\'"\n data-elastic-builder-group="item"\n data-depth="{{ depth }}"\n data-elastic-fields="elasticFields"\n data-on-remove="onRemove()"></div>\n\n <div data-ng-if="item.type !== \'group\'"\n data-elastic-builder-rule="item"\n data-elastic-fields="elasticFields"\n data-on-remove="onRemove()"></div>\n\n</div>\n'),e.put("angular-elastic-builder/GroupDirective.html",'<div class="elastic-builder-group">\n <h5>If\n <select data-ng-model="group.subType" class="form-control">\n <option value="and">all</option>\n <option value="or">any</option>\n </select>\n of these conditions are met\n </h5>\n <div\n data-ng-repeat="rule in group.rules"\n data-elastic-builder-chooser="rule"\n data-elastic-fields="elasticFields"\n data-depth="{{ +depth + 1 }}"\n data-on-remove="removeChild($index)"></div>\n\n <div class="list-group-item actions" data-ng-class="getGroupClassName()">\n <a class="btn btn-xs btn-primary" title="Add Sub-Rule" data-ng-click="addRule()">\n <i class="fa fa-plus"></i>\n </a>\n <a class="btn btn-xs btn-primary" title="Add Sub-Group" data-ng-click="addGroup()">\n <i class="fa fa-list"></i>\n </a>\n </div>\n\n <a class="btn btn-xs btn-danger remover" data-ng-click="onRemove()">\n <i class="fa fa-minus"></i>\n </a>\n</div>\n'),e.put("angular-elastic-builder/RuleDirective.html",'<div class="elastic-builder-rule">\n <select class="form-control" data-ng-model="rule.field" data-ng-options="key as key for (key, value) in elasticFields"></select>\n\n <span data-elastic-type="getType()" data-rule="rule" data-guide="elasticFields[rule.field]"></span>\n\n <a class="btn btn-xs btn-danger remover" data-ng-click="onRemove()">\n <i class="fa fa-minus"></i>\n </a>\n\n</div>\n'),e.put("angular-elastic-builder/types/Boolean.html",'<span class="boolean-rule">\n Equals\n\n <!-- This is a weird hack to make sure these are numbers -->\n <select\n data-ng-model="rule.value"\n class="form-control"\n data-ng-options="booleans.indexOf(choice) as choice for choice in booleansOrder">\n </select>\n</span>\n'),e.put("angular-elastic-builder/types/Multi.html",'<span class="multi-rule">\n <span data-ng-repeat="choice in guide.choices">\n <label class="checkbox">\n <input type="checkbox" data-ng-model="rule.values[choice]">\n {{ choice }}\n </label>\n </span>\n</span>\n'),e.put("angular-elastic-builder/types/Number.html",'<span class="number-rule">\n <select data-ng-model="rule.subType" class="form-control">\n <optgroup label="Numeral">\n <option value="equals">=</option>\n <option value="gt">&gt;</option>\n <option value="gte">&ge;</option>\n <option value="lt">&lt;</option>\n <option value="lte">&le;</option>\n </optgroup>\n\n <optgroup label="Generic">\n <option value="exists">Exists</option>\n <option value="notExists">! Exists</option>\n </optgroup>\n </select>\n\n <!-- Range Fields -->\n <input data-ng-if="inputNeeded()"\n class="form-control"\n data-ng-model="rule.value"\n type="number"\n min="{{ guide.minimum }}"\n max="{{ guide.maximum }}">\n</span>\n'),e.put("angular-elastic-builder/types/Term.html",'<span class="elastic-term">\n <select data-ng-model="rule.subType" class="form-control">\n <!-- Term Options -->\n <optgroup label="Text">\n <option value="equals">Equals</option>\n <option value="notEquals">! Equals</option>\n </optgroup>\n\n <!-- Generic Options -->\n <optgroup label="Generic">\n <option value="exists">Exists</option>\n <option value="notExists">! Exists</option>\n </optgroup>\n\n </select>\n <input\n data-ng-if="inputNeeded()"\n class="form-control"\n data-ng-model="rule.value"\n type="text">\n</span>\n')}])}(window.angular);
!function(e){"use strict";e.module("angular-elastic-builder",["RecursionHelper"])}(window.angular),function(e){"use strict";e.module("angular-elastic-builder").directive("elasticBuilder",["elasticQueryService",function(e){return{scope:{data:"=elasticBuilder"},templateUrl:"angular-elastic-builder/BuilderDirective.html",link:function(t){var n=t.data;t.filters=[],t.removeChild=function(e){t.filters.splice(e,1)},t.addRule=function(){t.filters.push({})},t.addGroup=function(){t.filters.push({type:"group",subType:"and",rules:[]})},t.$watch("data.needsUpdate",function(a){a&&(t.filters=e.toFilters(n.query,t.data.fields),t.data.needsUpdate=!1)}),t.$watch("filters",function(a){a&&(n.query=e.toQuery(t.filters,t.data.fields))},!0)}}}])}(window.angular),function(e){"use strict";var t=e.module("angular-elastic-builder");t.directive("elasticBuilderChooser",["RecursionHelper","groupClassHelper",function(e,t){return{scope:{elasticFields:"=",item:"=elasticBuilderChooser",onRemove:"&"},templateUrl:"angular-elastic-builder/ChooserDirective.html",compile:function(n){return e.compile(n,function(e,n,a){var i=e.depth=+a.depth,l=e.item;e.getGroupClassName=function(){var e=i;return"group"===l.type&&e++,t(e)}})}}}])}(window.angular),function(e){"use strict";var t=e.module("angular-elastic-builder");t.directive("elasticBuilderGroup",["RecursionHelper","groupClassHelper",function(e,t){return{scope:{elasticFields:"=",group:"=elasticBuilderGroup",onRemove:"&"},templateUrl:"angular-elastic-builder/GroupDirective.html",compile:function(n){return e.compile(n,function(e,n,a){var i=e.depth=+a.depth,l=e.group;e.addRule=function(){l.rules.push({})},e.addGroup=function(){l.rules.push({type:"group",subType:"and",rules:[]})},e.removeChild=function(e){l.rules.splice(e,1)},e.getGroupClassName=function(){return t(i+1)}})}}}])}(window.angular),function(e){"use strict";var t=e.module("angular-elastic-builder");t.directive("elasticBuilderRule",[function(){return{scope:{elasticFields:"=",rule:"=elasticBuilderRule",onRemove:"&"},templateUrl:"angular-elastic-builder/RuleDirective.html",link:function(e){e.getType=function(){var t=e.elasticFields,n=e.rule.field;if(t&&n)return"boolean"===t[n].subType?"boolean":t[n].type}}}}])}(window.angular),function(e){"use strict";var t=e.module("angular-elastic-builder");t.directive("elasticType",[function(){return{scope:{type:"=elasticType",rule:"=",guide:"="},template:'<ng-include src="getTemplateUrl()" />',link:function(e){e.getTemplateUrl=function(){var t=e.type;if(t)return t=t.charAt(0).toUpperCase()+t.slice(1),"angular-elastic-builder/types/"+t+".html"},e.booleans=["False","True"],e.booleansOrder=["True","False"],e.inputNeeded=function(){var t=["equals","notEquals","gt","gte","lt","lte"];return~t.indexOf(e.rule.subType)}}}}])}(window.angular),function(e){"use strict";e.module("angular-elastic-builder").factory("groupClassHelper",function(){return function(e){var t=["","list-group-item-info","list-group-item-success","list-group-item-warning","list-group-item-danger"];return t[e%t.length]}})}(window.angular),function(e){"use strict";function t(e,t){var n=e.map(a.bind(e,t));return n}function n(e,t){var n=e.map(i.bind(e,t)).filter(function(e){return!!e});return n}function a(e,t,n){n!==!1&&(n=!0);var i=Object.keys(t)[0],r={or:"group",and:"group",range:"number"},s=r[i]||"item",u=l(s);switch(i){case"or":case"and":u.rules=t[i].map(a.bind(t,e)),u.subType=i;break;case"missing":case"exists":u.field=t[i].field,u.subType={exists:"exists",missing:"notExists"}[i],delete u.value;break;case"term":case"terms":u.field=Object.keys(t[i])[0];var o=e[Object.keys(t[i])[0]];if("multi"===o.type){var c=t[i][u.field];"string"==typeof c&&(c=[c]),u.values=o.choices.reduce(function(e,a){return e[a]=n===t[i][u.field].indexOf(a)>-1,e},{})}else u.subType=n?"equals":"notEquals",u.value=t[i][u.field],"number"==typeof u.value&&(u.subType="boolean");break;case"range":u.field=Object.keys(t[i])[0],u.subType=Object.keys(t[i][u.field])[0],u.value=t[i][u.field][u.subType];break;case"not":u=a(e,t[i].filter,!1);break;default:u.field=Object.keys(t[i])[0]}return u}function i(e,t){var n={};if("group"===t.type)return n[t.subType]=t.rules.map(i.bind(t,e)).filter(function(e){return!!e}),n;var a=t.field,l=e[a];if(a){switch(l.type){case"term":if("boolean"===l.subType&&(t.subType="boolean"),!t.subType)return;switch(t.subType){case"equals":case"boolean":if(void 0===t.value)return;n.term={},n.term[a]=t.value;break;case"notEquals":if(void 0===t.value)return;n.not={filter:{term:{}}},n.not.filter.term[a]=t.value;break;case"exists":n.exists={field:a};break;case"notExists":n.missing={field:a};break;default:throw new Error("unexpected subtype "+t.subType)}break;case"number":n.range={},n.range[a]={},n.range[a][t.subType]=t.value;break;case"date":if("exists"===t.subType)n.exists={field:a};else{if("notExists"!==t.subType)throw new Error("unexpected subtype");n.missing={field:a}}break;case"multi":n.terms={},n.terms[a]=Object.keys(t.values||{}).reduce(function(e,n){return t.values[n]&&e.push(n),e},[]);break;default:throw new Error("unexpected type")}return n}}function l(t){var n={group:{type:"group",subType:"",rules:[]},item:{field:"",subType:"",value:""},number:{field:"",subType:"",value:null}};return e.copy(n[t])}e.module("angular-elastic-builder").factory("elasticQueryService",[function(){return{toFilters:t,toQuery:n}}])}(window.angular),function(e){"use strict";e.module("angular-elastic-builder").run(["$templateCache",function(e){e.put("angular-elastic-builder/BuilderDirective.html",'<div class="elastic-builder">\n <div class="filter-panels">\n <div class="list-group form-inline">\n <div\n data-ng-repeat="filter in filters"\n data-elastic-builder-chooser="filter"\n data-elastic-fields="data.fields"\n data-on-remove="removeChild($index)"\n data-depth="0"></div>\n <div class="list-group-item actions">\n <a class="btn btn-xs btn-primary" title="Add Rule" data-ng-click="addRule()">\n <i class="fa fa-plus"></i>\n </a>\n <a class="btn btn-xs btn-primary" title="Add Group" data-ng-click="addGroup()">\n <i class="fa fa-list"></i>\n </a>\n </div>\n </div>\n </div>\n</div>\n'),e.put("angular-elastic-builder/ChooserDirective.html",'<div\n class="list-group-item elastic-builder-chooser"\n data-ng-class="getGroupClassName()">\n\n <div data-ng-if="item.type === \'group\'"\n data-elastic-builder-group="item"\n data-depth="{{ depth }}"\n data-elastic-fields="elasticFields"\n data-on-remove="onRemove()"></div>\n\n <div data-ng-if="item.type !== \'group\'"\n data-elastic-builder-rule="item"\n data-elastic-fields="elasticFields"\n data-on-remove="onRemove()"></div>\n\n</div>\n'),e.put("angular-elastic-builder/GroupDirective.html",'<div class="elastic-builder-group">\n <h5>If\n <select data-ng-model="group.subType" class="form-control">\n <option value="and">all</option>\n <option value="or">any</option>\n </select>\n of these conditions are met\n </h5>\n <div\n data-ng-repeat="rule in group.rules"\n data-elastic-builder-chooser="rule"\n data-elastic-fields="elasticFields"\n data-depth="{{ +depth + 1 }}"\n data-on-remove="removeChild($index)"></div>\n\n <div class="list-group-item actions" data-ng-class="getGroupClassName()">\n <a class="btn btn-xs btn-primary" title="Add Sub-Rule" data-ng-click="addRule()">\n <i class="fa fa-plus"></i>\n </a>\n <a class="btn btn-xs btn-primary" title="Add Sub-Group" data-ng-click="addGroup()">\n <i class="fa fa-list"></i>\n </a>\n </div>\n\n <a class="btn btn-xs btn-danger remover" data-ng-click="onRemove()">\n <i class="fa fa-minus"></i>\n </a>\n</div>\n'),e.put("angular-elastic-builder/RuleDirective.html",'<div class="elastic-builder-rule">\n <select class="form-control" data-ng-model="rule.field" data-ng-options="key as key for (key, value) in elasticFields"></select>\n\n <span data-elastic-type="getType()" data-rule="rule" data-guide="elasticFields[rule.field]"></span>\n\n <a class="btn btn-xs btn-danger remover" data-ng-click="onRemove()">\n <i class="fa fa-minus"></i>\n </a>\n\n</div>\n'),e.put("angular-elastic-builder/types/Boolean.html",'<span class="boolean-rule">\n Equals\n\n <!-- This is a weird hack to make sure these are numbers -->\n <select\n data-ng-model="rule.value"\n class="form-control"\n data-ng-options="booleans.indexOf(choice) as choice for choice in booleansOrder">\n </select>\n</span>\n'),e.put("angular-elastic-builder/types/Multi.html",'<span class="multi-rule">\n <span data-ng-repeat="choice in guide.choices">\n <label class="checkbox">\n <input type="checkbox" data-ng-model="rule.values[choice]">\n {{ choice }}\n </label>\n </span>\n</span>\n'),e.put("angular-elastic-builder/types/Number.html",'<span class="number-rule">\n <select data-ng-model="rule.subType" class="form-control">\n <optgroup label="Numeral">\n <option value="equals">=</option>\n <option value="gt">&gt;</option>\n <option value="gte">&ge;</option>\n <option value="lt">&lt;</option>\n <option value="lte">&le;</option>\n </optgroup>\n\n <optgroup label="Generic">\n <option value="exists">Exists</option>\n <option value="notExists">! Exists</option>\n </optgroup>\n </select>\n\n <!-- Range Fields -->\n <input data-ng-if="inputNeeded()"\n class="form-control"\n data-ng-model="rule.value"\n type="number"\n min="{{ guide.minimum }}"\n max="{{ guide.maximum }}">\n</span>\n'),e.put("angular-elastic-builder/types/Term.html",'<span class="elastic-term">\n <select data-ng-model="rule.subType" class="form-control">\n <!-- Term Options -->\n <optgroup label="Text">\n <option value="equals">Equals</option>\n <option value="notEquals">! Equals</option>\n </optgroup>\n\n <!-- Generic Options -->\n <optgroup label="Generic">\n <option value="exists">Exists</option>\n <option value="notExists">! Exists</option>\n </optgroup>\n\n </select>\n <input\n data-ng-if="inputNeeded()"\n class="form-control"\n data-ng-model="rule.value"\n type="text">\n</span>\n')}])}(window.angular);
{
"name": "angular-elastic-builder",
"version": "1.3.1",
"version": "1.3.2",
"description": "Angular Module for building an Elasticsearch Query",

@@ -5,0 +5,0 @@ "author": "Dan Crews <crewsd@gmail.com>",

@@ -28,2 +28,4 @@ /**

scope.filters = [];
/**

@@ -58,3 +60,3 @@ * Removes either Group or Rule

*/
scope.$watch('data.needsUpdate', function(curr, prev) {
scope.$watch('data.needsUpdate', function(curr) {
if (! curr) return;

@@ -61,0 +63,0 @@

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc