@steedos/filters 2.2.54-beta.2 → 2.2.54-beta.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,7 @@
1
+ (function(global,factory){typeof exports==="object"&&typeof module!=="undefined"?factory(exports,require("lodash"),require("moment")):typeof define==="function"&&define.amd?define(["exports","lodash","moment"],factory):(global=typeof globalThis!=="undefined"?globalThis:global||self,factory(global.SteedosFilters={},global._,global.moment))})(this,function(exports,lodash,moment){function _interopDefaultLegacy(e){return e&&typeof e==="object"&&"default"in e?e:{default:e}}var moment__default=_interopDefaultLegacy(moment);function leftPad(text,length){while(text.length<length){text="0"+text}return text}var FORMAT_TYPES={3:"abbreviated",4:"wide",5:"narrow"};var LDML_FORMATTERS={y:function(date,count,useUtc){var year=date[useUtc?"getUTCFullYear":"getFullYear"]();if(count===2){year=year%100}return leftPad(year.toString(),count)},M:function(date,count,useUtc,dateParts){var month=date[useUtc?"getUTCMonth":"getMonth"]();var formatType=FORMAT_TYPES[count];if(formatType){return dateParts.getMonthNames(formatType,"format")[month]}return leftPad((month+1).toString(),Math.min(count,2))},L:function(date,count,useUtc,dateParts){var month=date[useUtc?"getUTCMonth":"getMonth"]();var formatType=FORMAT_TYPES[count];if(formatType){return dateParts.getMonthNames(formatType,"standalone")[month]}return leftPad((month+1).toString(),Math.min(count,2))},Q:function(date,count,useUtc,dateParts){var month=date[useUtc?"getUTCMonth":"getMonth"]();var quarter=Math.floor(month/3);var formatType=FORMAT_TYPES[count];if(formatType){return dateParts.getQuarterNames(formatType)[quarter]}return leftPad((quarter+1).toString(),Math.min(count,2))},E:function(date,count,useUtc,dateParts){var day=date[useUtc?"getUTCDay":"getDay"]();var formatType=FORMAT_TYPES[count<3?3:count];return dateParts.getDayNames(formatType)[day]},a:function(date,count,useUtc,dateParts){var hours=date[useUtc?"getUTCHours":"getHours"](),period=hours<12?0:1,formatType=FORMAT_TYPES[count];return dateParts.getPeriodNames(formatType)[period]},d:function(date,count,useUtc){return leftPad(date[useUtc?"getUTCDate":"getDate"]().toString(),Math.min(count,2))},H:function(date,count,useUtc){return leftPad(date[useUtc?"getUTCHours":"getHours"]().toString(),Math.min(count,2))},h:function(date,count,useUtc){var hours=date[useUtc?"getUTCHours":"getHours"]();return leftPad((hours%12||12).toString(),Math.min(count,2))},m:function(date,count,useUtc){return leftPad(date[useUtc?"getUTCMinutes":"getMinutes"]().toString(),Math.min(count,2))},s:function(date,count,useUtc){return leftPad(date[useUtc?"getUTCSeconds":"getSeconds"]().toString(),Math.min(count,2))},S:function(date,count,useUtc){return leftPad(date[useUtc?"getUTCMilliseconds":"getMilliseconds"]().toString(),3).substr(0,count)},x:function(date,count,useUtc){var timezoneOffset=useUtc?0:date.getTimezoneOffset(),signPart=timezoneOffset>0?"-":"+",timezoneOffsetAbs=Math.abs(timezoneOffset),hours=Math.floor(timezoneOffsetAbs/60),minutes=timezoneOffsetAbs%60,hoursPart=leftPad(hours.toString(),2),minutesPart=leftPad(minutes.toString(),2);return signPart+hoursPart+(count>=3?":":"")+(count>1||minutes?minutesPart:"")},X:function(date,count,useUtc){if(useUtc||!date.getTimezoneOffset()){return"Z"}return LDML_FORMATTERS.x(date,count,useUtc)},Z:function(date,count,useUtc){return LDML_FORMATTERS.X(date,count>=5?3:2,useUtc)}};var getFormatter=function(format,dateParts){return function(date){var charIndex,formatter,char,charCount=0,separator="'",isEscaping=false,isCurrentCharEqualsNext,result="";if(!date)return null;if(!format)return date;var useUtc=format[format.length-1]==="Z"||format.slice(-3)==="'Z'";for(charIndex=0;charIndex<format.length;charIndex++){char=format[charIndex];formatter=LDML_FORMATTERS[char];isCurrentCharEqualsNext=char===format[charIndex+1];charCount++;if(!isCurrentCharEqualsNext){if(formatter&&!isEscaping){result+=formatter(date,charCount,useUtc,dateParts)}charCount=0}if(char===separator&&!isCurrentCharEqualsNext){isEscaping=!isEscaping}else if(isEscaping||!formatter){result+=char}if(char===separator&&isCurrentCharEqualsNext){charIndex++}}return result}};const _getFormatter=getFormatter;var MONTHS=["January","February","March","April","May","June","July","August","September","October","November","December"],DAYS=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],PERIODS=["AM","PM"],QUARTERS=["Q1","Q2","Q3","Q4"];var cutCaptions=function(captions,format){var lengthByFormat={abbreviated:3,short:2,narrow:1};return captions.map(function(caption){return caption.substr(0,lengthByFormat[format])})};function getMonthNames(format){return cutCaptions(MONTHS,format)}function getDayNames(format){return cutCaptions(DAYS,format)}function getQuarterNames(format){return QUARTERS}function getPeriodNames(format){return PERIODS}var defaultDateNames={getMonthNames:getMonthNames,getDayNames:getDayNames,getQuarterNames:getQuarterNames,getPeriodNames:getPeriodNames};const DevExpressData={utils:{isConjunctiveOperator:function(condition){return/^(and|&&|&)$/i.test(condition)},normalizeBinaryCriterion:function(crit){return[crit[0],crit.length<3?"=":String(crit[1]).toLowerCase(),crit.length<2?true:crit[crit.length-1]]},isUnaryOperation:function(crit){return crit[0]==="!"&&Array.isArray(crit[1])}}};const DevExpressOData={pad(text,length,right){text=String(text);while(text.length<length){text=right?text+"0":"0"+text}return text},padLeft2(text){return this.pad(text,2)},serializePropName(propName){return propName.replace(/\./g,"/")},serializeValue(value,protocolVersion){if(value===undefined){return null}switch(protocolVersion){case 2:return this.serializeValueV2(value);case 3:return this.serializeValueV2(value);case 4:return this.serializeValueV4(value);default:return this.serializeValueV4(value)}},serializeValueV2(value){if(value instanceof Date){return this.serializeDate(value)}if(typeof value==="string"){return this.serializeString(value)}return String(value)},serializeValueV4(value){if(value instanceof Date){return this.formatISO8601(value,false,false)}if(Array.isArray(value)){return"["+value.map(item=>{return this.serializeValueV4(item)}).join(",")+"]"}return this.serializeValueV2(value)},serializeString(value){return"'"+value.replace(/'/g,"''")+"'"},serializeDate(value,serializationFormat){if(!serializationFormat){return value}if(!(value instanceof Date)){return null}if(serializationFormat==="number"){return value&&value.valueOf?value.valueOf():null}return _getFormatter(serializationFormat,defaultDateNames)(value)},formatISO8601(date,skipZeroTime,skipTimezone){var bag=[];var isZeroTime=function(){return date.getUTCHours()+date.getUTCMinutes()+date.getUTCSeconds()+date.getUTCMilliseconds()<1};bag.push(date.getUTCFullYear());bag.push("-");bag.push(this.padLeft2(date.getUTCMonth()+1));bag.push("-");bag.push(this.padLeft2(date.getUTCDate()));if(!(skipZeroTime&&isZeroTime())){bag.push("T");bag.push(this.padLeft2(date.getUTCHours()));bag.push(":");bag.push(this.padLeft2(date.getUTCMinutes()));bag.push(":");bag.push(this.padLeft2(date.getUTCSeconds()));if(date.getUTCMilliseconds()){bag.push(".");bag.push(this.pad(date.getUTCMilliseconds(),3))}if(!skipTimezone){bag.push("Z")}}return bag.join("")}};class SteedosFilter{constructor(filters,odataProtocolVersion=4,forceLowerCase=true){this.filters=filters||[];this.protocolVersion=odataProtocolVersion;this.forceLowerCase=forceLowerCase;this.formatters={"=":this.createBinaryOperationFormatter("eq"),"<>":this.createBinaryOperationFormatter("ne"),">":this.createBinaryOperationFormatter("gt"),">=":this.createBinaryOperationFormatter("ge"),"<":this.createBinaryOperationFormatter("lt"),"<=":this.createBinaryOperationFormatter("le"),startswith:this.createStringFuncFormatter("startswith"),endswith:this.createStringFuncFormatter("endswith")};this.formattersV2={...this.formatters,...{contains:this.createStringFuncFormatter("substringof",true),notcontains:this.createStringFuncFormatter("not substringof",true)}};this.formattersV4={...this.formatters,...{contains:this.createStringFuncFormatter("contains"),notcontains:this.createStringFuncFormatter("not contains"),notstartswith:this.createStringFuncFormatter("not startswith"),notendswith:this.createStringFuncFormatter("not endswith"),in:this.createBinaryOperationFormatter("in"),notin:this.createBinaryOperationFormatter("notin")}}}createBinaryOperationFormatter(op){return(prop,val)=>{return prop+" "+op+" "+val}}createStringFuncFormatter(op,reverse){return(prop,val)=>{var bag=[op,"("];if(this.forceLowerCase){val=val.toLowerCase()}if(reverse){bag.push(val,",",prop)}else{bag.push(prop,",",val)}bag.push(")");return bag.join("")}}compileUnary(criteria){var op=criteria[0],crit=this.compileCore(criteria[1]);if(op==="!"){return"not ("+crit+")"}throw new Error("E4003")}compileGroup(criteria){var bag=[],groupOperator,nextGroupOperator;criteria.forEach(criterion=>{if(Array.isArray(criterion)){if(bag.length>1&&groupOperator!==nextGroupOperator){throw new Error("E4019")}bag.push("("+this.compileCore(criterion)+")");groupOperator=nextGroupOperator;nextGroupOperator="and"}else{nextGroupOperator=DevExpressData.utils.isConjunctiveOperator(criterion)?"and":"or"}});return bag.join(" "+groupOperator+" ")}compileBinary(criteria){criteria=DevExpressData.utils.normalizeBinaryCriterion(criteria);var op=criteria[1],formatters=this.protocolVersion===4?this.formattersV4:this.formattersV2,formatter=formatters[op.toLowerCase()];if(!formatter){throw new Error("E4003")}var fieldName=criteria[0],value=criteria[2];return formatter(DevExpressOData.serializePropName(fieldName),op==="in"||op==="notin"?value:DevExpressOData.serializeValue(value,this.protocolVersion))}compileCore(criteria){if(!criteria||criteria.length===0){return""}if(Array.isArray(criteria[0])){return this.compileGroup(criteria)}if(DevExpressData.utils.isUnaryOperation(criteria)){return this.compileUnary(criteria)}return this.compileBinary(criteria)}formatFiltersToODataQuery(){let filters=this.filters;let query=this.compileCore(filters);return query}}var filter=Object.freeze({__proto__:null,default:SteedosFilter});let t=key=>{return key};let getMonthDays=(year,month)=>{var days,endDate,millisecond,startDate;if(month===11){return 31}millisecond=1e3*60*60*24;startDate=new Date(year,month,1);endDate=new Date(year,month+1,1);days=(endDate-startDate)/millisecond;return days};let getNextQuarterFirstDay=(year,month)=>{if(!year){year=(new Date).getFullYear()}if(!month){month=(new Date).getMonth()}if(month<3){month=3}else if(month<6){month=6}else if(month<9){month=9}else{year++;month=0}return new Date(year,month,1)};let getLastMonthFirstDay=(year,month)=>{if(!year){year=(new Date).getFullYear()}if(!month){month=(new Date).getMonth()}if(month===0){month=11;year--;return new Date(year,month,1)}month--;return new Date(year,month,1)};let getQuarterStartMonth=month=>{if(!month){month=(new Date).getMonth()}if(month<3){return 0}else if(month<6){return 3}else if(month<9){return 6}return 9};let getLastQuarterFirstDay=(year,month)=>{if(!year){year=(new Date).getFullYear()}if(!month){month=(new Date).getMonth()}if(month<3){year--;month=9}else if(month<6){month=0}else if(month<9){month=3}else{month=6}return new Date(year,month,1)};let getBetweenTimeBuiltinValueItem=(key,utcOffset)=>{var currentMonth,currentYear,endValue,firstDay,label,lastDay,lastMonday,lastMonthFinalDay,lastMonthFirstDay,lastQuarterEndDay,lastQuarterStartDay,lastSunday,last_120_days,last_30_days,last_60_days,last_7_days,last_90_days,millisecond,minusDay,monday,month,nextMonday,nextMonthFinalDay,nextMonthFirstDay,nextQuarterEndDay,nextQuarterStartDay,nextSunday,nextYear,next_120_days,next_30_days,next_60_days,next_7_days,next_90_days,now,previousYear,startValue,strEndDay,strFirstDay,strLastDay,strMonday,strStartDay,strSunday,strToday,strTomorrow,strYestday,sunday,thisQuarterEndDay,thisQuarterStartDay,tomorrow,values,week,year,yestday;now=new Date;millisecond=1e3*60*60*24;yestday=new Date(now.getTime()-millisecond);tomorrow=new Date(now.getTime()+millisecond);week=now.getDay();minusDay=week!==0?week-1:6;monday=new Date(now.getTime()-minusDay*millisecond);sunday=new Date(monday.getTime()+6*millisecond);lastSunday=new Date(monday.getTime()-millisecond);lastMonday=new Date(lastSunday.getTime()-millisecond*6);nextMonday=new Date(sunday.getTime()+millisecond);nextSunday=new Date(nextMonday.getTime()+millisecond*6);currentYear=now.getFullYear();previousYear=currentYear-1;nextYear=currentYear+1;currentMonth=now.getMonth();year=now.getFullYear();month=now.getMonth();firstDay=new Date(currentYear,currentMonth,1);if(currentMonth===11){year++;month++}else{month++}nextMonthFirstDay=new Date(year,month,1);nextMonthFinalDay=new Date(year,month,getMonthDays(year,month));lastDay=new Date(nextMonthFirstDay.getTime()-millisecond);lastMonthFirstDay=getLastMonthFirstDay(currentYear,currentMonth);lastMonthFinalDay=new Date(firstDay.getTime()-millisecond);thisQuarterStartDay=new Date(currentYear,getQuarterStartMonth(currentMonth),1);thisQuarterEndDay=new Date(currentYear,getQuarterStartMonth(currentMonth)+2,getMonthDays(currentYear,getQuarterStartMonth(currentMonth)+2));lastQuarterStartDay=getLastQuarterFirstDay(currentYear,currentMonth);lastQuarterEndDay=new Date(lastQuarterStartDay.getFullYear(),lastQuarterStartDay.getMonth()+2,getMonthDays(lastQuarterStartDay.getFullYear(),lastQuarterStartDay.getMonth()+2));nextQuarterStartDay=getNextQuarterFirstDay(currentYear,currentMonth);nextQuarterEndDay=new Date(nextQuarterStartDay.getFullYear(),nextQuarterStartDay.getMonth()+2,getMonthDays(nextQuarterStartDay.getFullYear(),nextQuarterStartDay.getMonth()+2));last_7_days=new Date(now.getTime()-6*millisecond);last_30_days=new Date(now.getTime()-29*millisecond);last_60_days=new Date(now.getTime()-59*millisecond);last_90_days=new Date(now.getTime()-89*millisecond);last_120_days=new Date(now.getTime()-119*millisecond);next_7_days=new Date(now.getTime()+6*millisecond);next_30_days=new Date(now.getTime()+29*millisecond);next_60_days=new Date(now.getTime()+59*millisecond);next_90_days=new Date(now.getTime()+89*millisecond);next_120_days=new Date(now.getTime()+119*millisecond);switch(key){case"last_year":label=t("creator_filter_operation_between_last_year");startValue=new Date(previousYear+"-01-01T00:00:00Z");endValue=new Date(previousYear+"-12-31T23:59:59Z");break;case"this_year":label=t("creator_filter_operation_between_this_year");startValue=new Date(currentYear+"-01-01T00:00:00Z");endValue=new Date(currentYear+"-12-31T23:59:59Z");break;case"next_year":label=t("creator_filter_operation_between_next_year");startValue=new Date(nextYear+"-01-01T00:00:00Z");endValue=new Date(nextYear+"-12-31T23:59:59Z");break;case"last_quarter":strFirstDay=moment__default["default"](lastQuarterStartDay).format("YYYY-MM-DD");strLastDay=moment__default["default"](lastQuarterEndDay).format("YYYY-MM-DD");label=t("creator_filter_operation_between_last_quarter");startValue=new Date(strFirstDay+"T00:00:00Z");endValue=new Date(strLastDay+"T23:59:59Z");break;case"this_quarter":strFirstDay=moment__default["default"](thisQuarterStartDay).format("YYYY-MM-DD");strLastDay=moment__default["default"](thisQuarterEndDay).format("YYYY-MM-DD");label=t("creator_filter_operation_between_this_quarter");startValue=new Date(strFirstDay+"T00:00:00Z");endValue=new Date(strLastDay+"T23:59:59Z");break;case"next_quarter":strFirstDay=moment__default["default"](nextQuarterStartDay).format("YYYY-MM-DD");strLastDay=moment__default["default"](nextQuarterEndDay).format("YYYY-MM-DD");label=t("creator_filter_operation_between_next_quarter");startValue=new Date(strFirstDay+"T00:00:00Z");endValue=new Date(strLastDay+"T23:59:59Z");break;case"last_month":strFirstDay=moment__default["default"](lastMonthFirstDay).format("YYYY-MM-DD");strLastDay=moment__default["default"](lastMonthFinalDay).format("YYYY-MM-DD");label=t("creator_filter_operation_between_last_month");startValue=new Date(strFirstDay+"T00:00:00Z");endValue=new Date(strLastDay+"T23:59:59Z");break;case"this_month":strFirstDay=moment__default["default"](firstDay).format("YYYY-MM-DD");strLastDay=moment__default["default"](lastDay).format("YYYY-MM-DD");label=t("creator_filter_operation_between_this_month");startValue=new Date(strFirstDay+"T00:00:00Z");endValue=new Date(strLastDay+"T23:59:59Z");break;case"next_month":strFirstDay=moment__default["default"](nextMonthFirstDay).format("YYYY-MM-DD");strLastDay=moment__default["default"](nextMonthFinalDay).format("YYYY-MM-DD");label=t("creator_filter_operation_between_next_month");startValue=new Date(strFirstDay+"T00:00:00Z");endValue=new Date(strLastDay+"T23:59:59Z");break;case"last_week":strMonday=moment__default["default"](lastMonday).format("YYYY-MM-DD");strSunday=moment__default["default"](lastSunday).format("YYYY-MM-DD");label=t("creator_filter_operation_between_last_week");startValue=new Date(strMonday+"T00:00:00Z");endValue=new Date(strSunday+"T23:59:59Z");break;case"this_week":strMonday=moment__default["default"](monday).format("YYYY-MM-DD");strSunday=moment__default["default"](sunday).format("YYYY-MM-DD");label=t("creator_filter_operation_between_this_week");startValue=new Date(strMonday+"T00:00:00Z");endValue=new Date(strSunday+"T23:59:59Z");break;case"next_week":strMonday=moment__default["default"](nextMonday).format("YYYY-MM-DD");strSunday=moment__default["default"](nextSunday).format("YYYY-MM-DD");label=t("creator_filter_operation_between_next_week");startValue=new Date(strMonday+"T00:00:00Z");endValue=new Date(strSunday+"T23:59:59Z");break;case"yestday":strYestday=moment__default["default"](yestday).format("YYYY-MM-DD");label=t("creator_filter_operation_between_yestday");startValue=new Date(strYestday+"T00:00:00Z");endValue=new Date(strYestday+"T23:59:59Z");break;case"today":strToday=moment__default["default"](now).format("YYYY-MM-DD");label=t("creator_filter_operation_between_today");startValue=new Date(strToday+"T00:00:00Z");endValue=new Date(strToday+"T23:59:59Z");break;case"tomorrow":strTomorrow=moment__default["default"](tomorrow).format("YYYY-MM-DD");label=t("creator_filter_operation_between_tomorrow");startValue=new Date(strTomorrow+"T00:00:00Z");endValue=new Date(strTomorrow+"T23:59:59Z");break;case"last_7_days":strStartDay=moment__default["default"](last_7_days).format("YYYY-MM-DD");strEndDay=moment__default["default"](now).format("YYYY-MM-DD");label=t("creator_filter_operation_between_last_7_days");startValue=new Date(strStartDay+"T00:00:00Z");endValue=new Date(strEndDay+"T23:59:59Z");break;case"last_30_days":strStartDay=moment__default["default"](last_30_days).format("YYYY-MM-DD");strEndDay=moment__default["default"](now).format("YYYY-MM-DD");label=t("creator_filter_operation_between_last_30_days");startValue=new Date(strStartDay+"T00:00:00Z");endValue=new Date(strEndDay+"T23:59:59Z");break;case"last_60_days":strStartDay=moment__default["default"](last_60_days).format("YYYY-MM-DD");strEndDay=moment__default["default"](now).format("YYYY-MM-DD");label=t("creator_filter_operation_between_last_60_days");startValue=new Date(strStartDay+"T00:00:00Z");endValue=new Date(strEndDay+"T23:59:59Z");break;case"last_90_days":strStartDay=moment__default["default"](last_90_days).format("YYYY-MM-DD");strEndDay=moment__default["default"](now).format("YYYY-MM-DD");label=t("creator_filter_operation_between_last_90_days");startValue=new Date(strStartDay+"T00:00:00Z");endValue=new Date(strEndDay+"T23:59:59Z");break;case"last_120_days":strStartDay=moment__default["default"](last_120_days).format("YYYY-MM-DD");strEndDay=moment__default["default"](now).format("YYYY-MM-DD");label=t("creator_filter_operation_between_last_120_days");startValue=new Date(strStartDay+"T00:00:00Z");endValue=new Date(strEndDay+"T23:59:59Z");break;case"next_7_days":strStartDay=moment__default["default"](now).format("YYYY-MM-DD");strEndDay=moment__default["default"](next_7_days).format("YYYY-MM-DD");label=t("creator_filter_operation_between_next_7_days");startValue=new Date(strStartDay+"T00:00:00Z");endValue=new Date(strEndDay+"T23:59:59Z");break;case"next_30_days":strStartDay=moment__default["default"](now).format("YYYY-MM-DD");strEndDay=moment__default["default"](next_30_days).format("YYYY-MM-DD");label=t("creator_filter_operation_between_next_30_days");startValue=new Date(strStartDay+"T00:00:00Z");endValue=new Date(strEndDay+"T23:59:59Z");break;case"next_60_days":strStartDay=moment__default["default"](now).format("YYYY-MM-DD");strEndDay=moment__default["default"](next_60_days).format("YYYY-MM-DD");label=t("creator_filter_operation_between_next_60_days");startValue=new Date(strStartDay+"T00:00:00Z");endValue=new Date(strEndDay+"T23:59:59Z");break;case"next_90_days":strStartDay=moment__default["default"](now).format("YYYY-MM-DD");strEndDay=moment__default["default"](next_90_days).format("YYYY-MM-DD");label=t("creator_filter_operation_between_next_90_days");startValue=new Date(strStartDay+"T00:00:00Z");endValue=new Date(strEndDay+"T23:59:59Z");break;case"next_120_days":strStartDay=moment__default["default"](now).format("YYYY-MM-DD");strEndDay=moment__default["default"](next_120_days).format("YYYY-MM-DD");label=t("creator_filter_operation_between_next_120_days");startValue=new Date(strStartDay+"T00:00:00Z");endValue=new Date(strEndDay+"T23:59:59Z")}values=[startValue,endValue];if(utcOffset){values=values.map(function(fv){if(fv){fv=new Date(fv.getTime());fv.setHours(fv.getHours()-utcOffset)}return fv})}return{label:label,key:key,values:values}};let getBetweenBuiltinValueItem=(key,utcOffset)=>{return getBetweenTimeBuiltinValueItem(key,utcOffset)};let isBetweenFilterOperation=operation=>{return operation==="between"};let checkFormula=formula=>{return typeof formula==="string"&&/\{\w+(\.\w+)?\}/.test(formula)};let prepareFormula=(formula,prefix="this")=>{var reg,rev;reg=/(\{[^{}]*\})/g;rev=formula.replace(reg,function(m,$1){return prefix+$1.replace(/\{\s*/,'["').replace(/\s*\}/,'"]').replace(/\s*\.\s*/g,'"]["')});return rev};let evaluateFormula=(formula,context)=>{if(checkFormula(formula)){formula=prepareFormula(formula);return function(){return eval(formula)}.call(context)}else{return formula}};const _evaluateFormula=evaluateFormula;const REG_FOR_ENCORD=/\;|\/|\?|\:|\@|\&|\=|\+|\$|\,|\#|\^|(\\\()|(\\\))|(\\\.)|\\|\||\[|\]|\{|\}/;const convertSpecialCharacter=str=>{if(str.indexOf("%5C(")>-1||str.indexOf("%5C)")>-1){return str}if(str.indexOf("%5C.")>-1){return str}if(str.indexOf("%5C*")>-1){return str}return str.replace(/([\^\$\(\)\*\+\?\.\\\|\[\]\{\}])/g,"\\$1")};let extendUserContext=(userContext,utcOffset)=>{if(!userContext.now){userContext.now=new Date}return userContext};let formatFiltersToDev=(filters,userContext={userId:null,spaceId:null,user:{utcOffset:0}})=>{if(lodash.isNull(filters)||lodash.isUndefined(filters)){return}let utcOffset=userContext.user?userContext.user.utcOffset:0;userContext=extendUserContext(userContext);var regDate=/^\d{4}-\d{1,2}-\d{1,2}(T|\s)\d{1,2}\:\d{1,2}(\:\d{1,2}(\.\d{1,3})?)?(Z|((\+|\-)\d{1,2}\:\d{1,2}))?$/;var filtersLooper,selector;if(!lodash.isFunction(filters)&&!filters.length){return}selector=[];filtersLooper=function(filters_loop){var builtinValue,field,i,isBetweenOperation,option,ref,sub_selector,tempFilters,tempLooperResult,value;tempFilters=[];tempLooperResult=null;if(filters_loop==="!"){return filters_loop}if(lodash.isFunction(filters_loop)){filters_loop=filters_loop()}if(!lodash.isArray(filters_loop)){if(lodash.isObject(filters_loop)){if(filters_loop.operation){filters_loop=[filters_loop.field,filters_loop.operation,filters_loop.value]}else{return null}}else{return null}}if(filters_loop.length===1){tempLooperResult=filtersLooper(filters_loop[0]);if(tempLooperResult){tempFilters.push(tempLooperResult)}}else if(filters_loop.length===2){filters_loop.forEach(function(n,i){tempLooperResult=filtersLooper(n);if(tempLooperResult){return tempFilters.push(tempLooperResult)}})}else if(filters_loop.length===3){if(lodash.includes(["or","and"],filters_loop[1])){tempFilters=[];i=0;while(i<filters_loop.length){if(lodash.includes(["or","and"],filters_loop[i])){i++;continue}tempLooperResult=filtersLooper(filters_loop[i]);if(!tempLooperResult){i++;continue}if(i>0){tempFilters.push(filters_loop[i-1])}tempFilters.push(tempLooperResult);i++}if(lodash.includes(["or","and"],tempFilters[0])){tempFilters.shift()}}else{if(lodash.isString(filters_loop[1])){field=filters_loop[0];option=filters_loop[1];value=filters_loop[2];if(lodash.isFunction(value)){value=value()}if(option==="!="){option="<>"}value=_evaluateFormula(value,userContext);sub_selector=[];isBetweenOperation=isBetweenFilterOperation(option);if(isBetweenOperation&&lodash.isString(value)){builtinValue=getBetweenBuiltinValueItem(value,utcOffset);if(builtinValue){value=builtinValue.values}}if(lodash.isArray(value)){value=value.map(function(item){if(typeof item==="string"){if(["contains","startswith","endswith","notcontains","notstartswith","notendswith"].indexOf(option)>-1){item=convertSpecialCharacter(item)}if(regDate.test(item)){item=new Date(item)}else if(REG_FOR_ENCORD.test(item)){item=encodeURIComponent(item)}}return item});if(["=","in"].indexOf(option)>-1){if(value.length){sub_selector.push([field,"in",`(${JSON.stringify(value).replace(/\"/g,"'").slice(1).slice(0,-1)})`],"and")}else{sub_selector.push([field,"=","__badQueryForEmptyArray"],"and")}}else if(["<>","notin"].indexOf(option)>-1){sub_selector.push([field,"notin",`(${JSON.stringify(value).replace(/\"/g,"'").slice(1).slice(0,-1)})`],"and")}else if(["notcontains","notstartswith","notendswith"].indexOf(option)>-1){lodash.each(value,function(v){return sub_selector.push([field,option,v],"and")})}else if(isBetweenOperation){if(value.length>0){if([null,undefined,""].indexOf(value[0])<0||[null,undefined,""].indexOf(value[1])<0){if([null,undefined,""].indexOf(value[0])<0){sub_selector.push([field,">=",value[0]],"and")}if([null,undefined,""].indexOf(value[1])<0){sub_selector.push([field,"<=",value[1]],"and")}}}}else{lodash.each(value,function(v){return sub_selector.push([field,option,v],"or")})}if(sub_selector[sub_selector.length-1]==="and"||sub_selector[sub_selector.length-1]==="or"){sub_selector.pop()}if(sub_selector.length){tempFilters=sub_selector}}else if(value===false){if(option==="="){tempFilters=[[field,"=",false],"or",[field,"=",null]]}else if(option==="<>"){tempFilters=[field,"=",true]}}else{if(isBetweenOperation&&!lodash.isArray(value));else{if(typeof value==="string"){if(["contains","startswith","endswith","notcontains","notstartswith","notendswith"].indexOf(option)>-1){value=convertSpecialCharacter(value)}if(regDate.test(value)){value=new Date(value)}else if(REG_FOR_ENCORD.test(value)){value=encodeURIComponent(value)}}tempFilters=[field,option,value]}}}else{filters_loop.forEach(function(n,i){tempLooperResult=filtersLooper(n);if(tempLooperResult){return tempFilters.push(tempLooperResult)}})}}}else{if((ref=lodash.intersection(["or","and"],filters_loop))!=null?ref.length:void 0){tempFilters=[];i=0;while(i<filters_loop.length){if(lodash.includes(["or","and"],filters_loop[i])){i++;continue}tempLooperResult=filtersLooper(filters_loop[i]);if(!tempLooperResult){i++;continue}if(i>0){tempFilters.push(filters_loop[i-1])}tempFilters.push(tempLooperResult);i++}if(lodash.includes(["or","and"],tempFilters[0])){tempFilters.shift()}}else{filters_loop.forEach(function(n,i){tempLooperResult=filtersLooper(n);if(tempLooperResult){return tempFilters.push(tempLooperResult)}})}}if(tempFilters.length){return tempFilters}else{return null}};selector=filtersLooper(filters);return selector};let formatFiltersToODataQuery=(filters,userContext,odataProtocolVersion,forceLowerCase)=>{let devFilters=formatFiltersToDev(filters,userContext);return new SteedosFilter(devFilters,odataProtocolVersion,forceLowerCase).formatFiltersToODataQuery()};const _formatFiltersToDev=formatFiltersToDev;const _formatFiltersToODataQuery=formatFiltersToODataQuery;let expandFieldName=(initial,fieldName)=>{lodash.reduce(fieldName.split("."),function(m,k){if(!m[k]){m[k]={}}return m[k]},initial);return initial};let expandFieldNames=fieldNames=>{let initial={};fieldNames.forEach(n=>{expandFieldName(initial,n)});return initial};let generateIndents=count=>{return Array(count).fill(" ").join("")};let reduceGraphqlFieldsQuery=(fields,indentsCount)=>{if(!indentsCount){indentsCount=0}let itemQuery;return` {
2
+ ${lodash.map(fields,(fieldValue,fieldKey)=>{itemQuery=generateIndents(indentsCount)+generateIndents(1)+fieldKey;if(lodash.isEmpty(fieldValue)){itemQuery+="\n"}else{indentsCount+=1;itemQuery+=reduceGraphqlFieldsQuery(fieldValue,indentsCount);indentsCount-=1}return itemQuery}).join("")}${generateIndents(indentsCount)}}
3
+ `};let formatFieldsToGraphqlQuery=fields=>{if(lodash.isString(fields)){fields=fields.split(",")}let expandedFields=expandFieldNames(fields);return reduceGraphqlFieldsQuery(expandedFields,3)};let formatFiltersToGraphqlQuery=(objectName,filters,fields,userContext,odataProtocolVersion,forceLowerCase)=>{if(!lodash.isString(filters)){filters=_formatFiltersToODataQuery(filters,userContext,odataProtocolVersion,forceLowerCase)}let filtersWrap=filters?`(filters:"${filters}")`:"";let graphqlFields=formatFieldsToGraphqlQuery(fields);let graphqlQuery=`
4
+ query {
5
+ ${objectName}${filtersWrap}${graphqlFields}
6
+ }
7
+ `;return graphqlQuery};const _formatFiltersToGraphqlQuery=formatFiltersToGraphqlQuery;exports.SteedosFilter=filter;exports.evaluateFormula=_evaluateFormula;exports.formatFiltersToDev=_formatFiltersToDev;exports.formatFiltersToGraphqlQuery=_formatFiltersToGraphqlQuery;exports.formatFiltersToODataQuery=_formatFiltersToODataQuery;exports.getBetweenBuiltinValueItem=getBetweenBuiltinValueItem;exports.getBetweenTimeBuiltinValueItem=getBetweenTimeBuiltinValueItem;exports.getLastMonthFirstDay=getLastMonthFirstDay;exports.getLastQuarterFirstDay=getLastQuarterFirstDay;exports.getMonthDays=getMonthDays;exports.getNextQuarterFirstDay=getNextQuarterFirstDay;exports.getQuarterStartMonth=getQuarterStartMonth;exports.isBetweenFilterOperation=isBetweenFilterOperation;Object.defineProperty(exports,"__esModule",{value:true})});
@@ -1,5 +1,10 @@
1
1
  "use strict";
2
2
 
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.getFormatter = void 0;
7
+
3
8
  function leftPad(text, length) {
4
9
  while (text.length < length) {
5
10
  text = "0" + text;
@@ -150,4 +155,5 @@ var getFormatter = function getFormatter(format, dateParts) {
150
155
  };
151
156
  };
152
157
 
153
- module.exports.getFormatter = getFormatter;
158
+ var _getFormatter = getFormatter;
159
+ exports.getFormatter = _getFormatter;
@@ -1,5 +1,13 @@
1
1
  "use strict";
2
2
 
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports["default"] = void 0;
7
+ exports.getDayNames = getDayNames;
8
+ exports.getMonthNames = getMonthNames;
9
+ exports.getPeriodNames = getPeriodNames;
10
+ exports.getQuarterNames = getQuarterNames;
3
11
  var MONTHS = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"],
4
12
  DAYS = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"],
5
13
  PERIODS = ["AM", "PM"],
@@ -16,17 +24,26 @@ var cutCaptions = function cutCaptions(captions, format) {
16
24
  });
17
25
  };
18
26
 
19
- module.exports = {
20
- getMonthNames: function getMonthNames(format) {
21
- return cutCaptions(MONTHS, format);
22
- },
23
- getDayNames: function getDayNames(format) {
24
- return cutCaptions(DAYS, format);
25
- },
26
- getQuarterNames: function getQuarterNames(format) {
27
- return QUARTERS;
28
- },
29
- getPeriodNames: function getPeriodNames(format) {
30
- return PERIODS;
31
- }
32
- };
27
+ function getMonthNames(format) {
28
+ return cutCaptions(MONTHS, format);
29
+ }
30
+
31
+ function getDayNames(format) {
32
+ return cutCaptions(DAYS, format);
33
+ }
34
+
35
+ function getQuarterNames(format) {
36
+ return QUARTERS;
37
+ }
38
+
39
+ function getPeriodNames(format) {
40
+ return PERIODS;
41
+ }
42
+
43
+ var _default = {
44
+ getMonthNames: getMonthNames,
45
+ getDayNames: getDayNames,
46
+ getQuarterNames: getQuarterNames,
47
+ getPeriodNames: getPeriodNames
48
+ };
49
+ exports["default"] = _default;
package/lib/filter.js CHANGED
@@ -2,23 +2,27 @@
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
4
 
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports["default"] = void 0;
9
+
5
10
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
6
11
 
7
12
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
8
13
 
9
14
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
10
15
 
16
+ var _date = require("./date.formatter");
17
+
18
+ var _default_date_names = _interopRequireDefault(require("./default_date_names"));
19
+
11
20
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
12
21
 
13
22
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
14
23
 
15
- // const DevExpress = require("devextreme/bundles/modules/core");
16
- // const DevExpressData = require("devextreme/bundles/modules/data");
17
- // const DevExpressOData = require("devextreme/bundles/modules/data.odata");
18
- var getLDMLFormatter = require("./date.formatter").getFormatter; // const Guid = require("devextreme/core/guid");
24
+ // const Guid = require("devextreme/core/guid");
19
25
  // const EdmLiteral = require("devextreme/data/odata/utils").EdmLiteral;
20
-
21
-
22
26
  var DevExpressData = {
23
27
  utils: {
24
28
  isConjunctiveOperator: function isConjunctiveOperator(condition) {
@@ -33,8 +37,6 @@ var DevExpressData = {
33
37
  }
34
38
  }; // const defaultDateNames = DevExpress.localization.date;
35
39
 
36
- var defaultDateNames = require("./default_date_names");
37
-
38
40
  var DevExpressOData = {
39
41
  pad: function pad(text, length, right) {
40
42
  text = String(text);
@@ -123,7 +125,7 @@ var DevExpressOData = {
123
125
  return value && value.valueOf ? value.valueOf() : null;
124
126
  }
125
127
 
126
- return getLDMLFormatter(serializationFormat, defaultDateNames)(value);
128
+ return (0, _date.getFormatter)(serializationFormat, _default_date_names["default"])(value);
127
129
  },
128
130
  formatISO8601: function formatISO8601(date, skipZeroTime, skipTimezone) {
129
131
  var bag = [];
@@ -303,4 +305,5 @@ var SteedosFilter = /*#__PURE__*/function () {
303
305
  return SteedosFilter;
304
306
  }();
305
307
 
306
- module.exports = SteedosFilter;
308
+ var _default = SteedosFilter;
309
+ exports["default"] = _default;
package/lib/format.js CHANGED
@@ -1,18 +1,25 @@
1
1
  "use strict";
2
2
 
3
- var SteedosFilter = require("./filter");
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
4
 
5
- var _ = require('underscore');
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.formatFiltersToODataQuery = exports.formatFiltersToDev = void 0;
6
9
 
7
- var utils = require("./utils");
10
+ var _filter = _interopRequireDefault(require("./filter"));
8
11
 
9
- var formula = require("./formula"); // 正则包括encodeURIComponent函数编码的11个特殊符号;/?:@&=+$,#
12
+ var _lodash = require("lodash");
13
+
14
+ var _utils = require("./utils");
15
+
16
+ var _formula = require("./formula");
17
+
18
+ // 正则包括encodeURIComponent函数编码的11个特殊符号;/?:@&=+$,#
10
19
  // 还包括convertSpecialCharacter函数中转义的特殊符号^$()*+?.\|[]{}
11
20
  // 注意encodeURIComponent("\\(")的结果是%5C(,需要特别处理
12
21
  // 注意encodeURIComponent("\\.")的结果是%5C.,需要特别处理
13
22
  // 注意encodeURIComponent("\\*")的结果是%5C*,因为不需要encodeURIComponent函数编码,所以不用加入REG_FOR_ENCORD变量
14
-
15
-
16
23
  var REG_FOR_ENCORD = /\;|\/|\?|\:|\@|\&|\=|\+|\$|\,|\#|\^|(\\\()|(\\\))|(\\\.)|\\|\||\[|\]|\{|\}/;
17
24
  /**
18
25
  ^$()*+?.\|[]{}等特殊符号需要转义,否则有可能会报错且无法正确识别
@@ -65,7 +72,7 @@ var formatFiltersToDev = function formatFiltersToDev(filters) {
65
72
  }
66
73
  };
67
74
 
68
- if (_.isNull(filters) || _.isUndefined(filters)) {
75
+ if ((0, _lodash.isNull)(filters) || (0, _lodash.isUndefined)(filters)) {
69
76
  return;
70
77
  }
71
78
 
@@ -76,7 +83,7 @@ var formatFiltersToDev = function formatFiltersToDev(filters) {
76
83
 
77
84
  var _filtersLooper, selector;
78
85
 
79
- if (!_.isFunction(filters) && !filters.length) {
86
+ if (!(0, _lodash.isFunction)(filters) && !filters.length) {
80
87
  return;
81
88
  }
82
89
 
@@ -91,12 +98,12 @@ var formatFiltersToDev = function formatFiltersToDev(filters) {
91
98
  return filters_loop;
92
99
  }
93
100
 
94
- if (_.isFunction(filters_loop)) {
101
+ if ((0, _lodash.isFunction)(filters_loop)) {
95
102
  filters_loop = filters_loop();
96
103
  }
97
104
 
98
- if (!_.isArray(filters_loop)) {
99
- if (_.isObject(filters_loop)) {
105
+ if (!(0, _lodash.isArray)(filters_loop)) {
106
+ if ((0, _lodash.isObject)(filters_loop)) {
100
107
  // 当filters不是[Array]类型而是[Object]类型时,进行格式转换
101
108
  if (filters_loop.operation) {
102
109
  filters_loop = [filters_loop.field, filters_loop.operation, filters_loop.value];
@@ -126,7 +133,7 @@ var formatFiltersToDev = function formatFiltersToDev(filters) {
126
133
  });
127
134
  } else if (filters_loop.length === 3) {
128
135
  // 只有三个元素,可能中间是"or","and"连接符也可能是普通数组,区别对待解析
129
- if (_.include(["or", "and"], filters_loop[1])) {
136
+ if ((0, _lodash.includes)(["or", "and"], filters_loop[1])) {
130
137
  // 中间有"or","and"连接符,则循环filters_loop,依次用filtersLooper解析其过虑条件
131
138
  // 最后生成的结果格式:tempFilters = [filtersLooper(filters_loop[0]), filters_loop[1], filtersLooper(filters_loop[2]), ...]
132
139
  // 因要判断filtersLooper(filters_loop[0])及filtersLooper(filters_loop[2])是否为空
@@ -135,7 +142,7 @@ var formatFiltersToDev = function formatFiltersToDev(filters) {
135
142
  i = 0;
136
143
 
137
144
  while (i < filters_loop.length) {
138
- if (_.include(["or", "and"], filters_loop[i])) {
145
+ if ((0, _lodash.includes)(["or", "and"], filters_loop[i])) {
139
146
  i++;
140
147
  continue;
141
148
  }
@@ -155,17 +162,17 @@ var formatFiltersToDev = function formatFiltersToDev(filters) {
155
162
  i++;
156
163
  }
157
164
 
158
- if (_.include(["or", "and"], tempFilters[0])) {
165
+ if ((0, _lodash.includes)(["or", "and"], tempFilters[0])) {
159
166
  tempFilters.shift();
160
167
  }
161
168
  } else {
162
- if (_.isString(filters_loop[1])) {
169
+ if ((0, _lodash.isString)(filters_loop[1])) {
163
170
  // 第二个元素为字符串,则认为是某一个具体的过虑条件
164
171
  field = filters_loop[0];
165
172
  option = filters_loop[1];
166
173
  value = filters_loop[2];
167
174
 
168
- if (_.isFunction(value)) {
175
+ if ((0, _lodash.isFunction)(value)) {
169
176
  value = value();
170
177
  }
171
178
 
@@ -174,21 +181,21 @@ var formatFiltersToDev = function formatFiltersToDev(filters) {
174
181
  option = "<>";
175
182
  }
176
183
 
177
- value = formula.evaluateFormula(value, userContext);
184
+ value = (0, _formula.evaluateFormula)(value, userContext);
178
185
  sub_selector = [];
179
- isBetweenOperation = utils.isBetweenFilterOperation(option);
186
+ isBetweenOperation = (0, _utils.isBetweenFilterOperation)(option);
180
187
 
181
- if (isBetweenOperation && _.isString(value)) {
188
+ if (isBetweenOperation && (0, _lodash.isString)(value)) {
182
189
  // 如果是between运算符内置值,则取出对应values作为过滤值
183
190
  // 比如value为last_year,返回对应的时间值
184
- builtinValue = utils.getBetweenBuiltinValueItem(value, utcOffset);
191
+ builtinValue = (0, _utils.getBetweenBuiltinValueItem)(value, utcOffset);
185
192
 
186
193
  if (builtinValue) {
187
194
  value = builtinValue.values;
188
195
  }
189
196
  }
190
197
 
191
- if (_.isArray(value)) {
198
+ if ((0, _lodash.isArray)(value)) {
192
199
  value = value.map(function (item) {
193
200
  if (typeof item === "string") {
194
201
  if (["contains", "startswith", "endswith", "notcontains", "notstartswith", "notendswith"].indexOf(option) > -1) {
@@ -220,7 +227,7 @@ var formatFiltersToDev = function formatFiltersToDev(filters) {
220
227
  // return sub_selector.push([field, "<>", v], "and");
221
228
  // });
222
229
  } else if (["notcontains", "notstartswith", "notendswith"].indexOf(option) > -1) {
223
- _.each(value, function (v) {
230
+ (0, _lodash.each)(value, function (v) {
224
231
  return sub_selector.push([field, option, v], "and");
225
232
  });
226
233
  } else if (isBetweenOperation) {
@@ -238,7 +245,7 @@ var formatFiltersToDev = function formatFiltersToDev(filters) {
238
245
  }
239
246
  } else {
240
247
  // contains、startswith、endswith等,如果value为空数组,不加任何条件,即查找所有数据
241
- _.each(value, function (v) {
248
+ (0, _lodash.each)(value, function (v) {
242
249
  return sub_selector.push([field, option, v], "or");
243
250
  });
244
251
  }
@@ -260,7 +267,7 @@ var formatFiltersToDev = function formatFiltersToDev(filters) {
260
267
  tempFilters = [field, "=", true];
261
268
  }
262
269
  } else {
263
- if (isBetweenOperation && !_.isArray(value)) {// between操作符时,value必须是数组,不能是undefined等其他值
270
+ if (isBetweenOperation && !(0, _lodash.isArray)(value)) {// between操作符时,value必须是数组,不能是undefined等其他值
264
271
  } else {
265
272
  if (typeof value === "string") {
266
273
  if (["contains", "startswith", "endswith", "notcontains", "notstartswith", "notendswith"].indexOf(option) > -1) {
@@ -291,7 +298,7 @@ var formatFiltersToDev = function formatFiltersToDev(filters) {
291
298
  }
292
299
  } else {
293
300
  // 超过3个元素的数组,可能中间是"or","and"连接符也可能是普通数组,区别对待解析
294
- if ((ref = _.intersection(["or", "and"], filters_loop)) != null ? ref.length : void 0) {
301
+ if ((ref = (0, _lodash.intersection)(["or", "and"], filters_loop)) != null ? ref.length : void 0) {
295
302
  // 中间有"or","and"连接符,则循环filters_loop,依次用filtersLooper解析其过虑条件
296
303
  // 最后生成的结果格式:tempFilters = [filtersLooper(filters_loop[0]), filters_loop[1], filtersLooper(filters_loop[2]), ...]
297
304
  // 因要判断filtersLooper(filters_loop[0])及filtersLooper(filters_loop[2])是否为空
@@ -300,7 +307,7 @@ var formatFiltersToDev = function formatFiltersToDev(filters) {
300
307
  i = 0;
301
308
 
302
309
  while (i < filters_loop.length) {
303
- if (_.include(["or", "and"], filters_loop[i])) {
310
+ if ((0, _lodash.includes)(["or", "and"], filters_loop[i])) {
304
311
  i++;
305
312
  continue;
306
313
  }
@@ -320,7 +327,7 @@ var formatFiltersToDev = function formatFiltersToDev(filters) {
320
327
  i++;
321
328
  }
322
329
 
323
- if (_.include(["or", "and"], tempFilters[0])) {
330
+ if ((0, _lodash.includes)(["or", "and"], tempFilters[0])) {
324
331
  tempFilters.shift();
325
332
  }
326
333
  } else {
@@ -348,8 +355,10 @@ var formatFiltersToDev = function formatFiltersToDev(filters) {
348
355
 
349
356
  var formatFiltersToODataQuery = function formatFiltersToODataQuery(filters, userContext, odataProtocolVersion, forceLowerCase) {
350
357
  var devFilters = formatFiltersToDev(filters, userContext);
351
- return new SteedosFilter(devFilters, odataProtocolVersion, forceLowerCase).formatFiltersToODataQuery();
358
+ return new _filter["default"](devFilters, odataProtocolVersion, forceLowerCase).formatFiltersToODataQuery();
352
359
  };
353
360
 
354
- exports.formatFiltersToDev = formatFiltersToDev;
355
- exports.formatFiltersToODataQuery = formatFiltersToODataQuery;
361
+ var _formatFiltersToDev = formatFiltersToDev;
362
+ exports.formatFiltersToDev = _formatFiltersToDev;
363
+ var _formatFiltersToODataQuery = formatFiltersToODataQuery;
364
+ exports.formatFiltersToODataQuery = _formatFiltersToODataQuery;
package/lib/formula.js CHANGED
@@ -1,5 +1,10 @@
1
1
  "use strict";
2
2
 
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.evaluateFormula = void 0;
7
+
3
8
  // "{userId}"或"{user.name}"格式
4
9
  var checkFormula = function checkFormula(formula) {
5
10
  return typeof formula === "string" && /\{\w+(\.\w+)?\}/.test(formula);
@@ -27,4 +32,5 @@ var evaluateFormula = function evaluateFormula(formula, context) {
27
32
  }
28
33
  };
29
34
 
30
- exports.evaluateFormula = evaluateFormula;
35
+ var _evaluateFormula = evaluateFormula;
36
+ exports.evaluateFormula = _evaluateFormula;
package/lib/graphql.js CHANGED
@@ -1,20 +1,23 @@
1
1
  "use strict";
2
2
 
3
- var _ = require('underscore');
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.formatFiltersToGraphqlQuery = void 0;
4
7
 
5
- var _require = require("./format"),
6
- formatFiltersToODataQuery = _require.formatFiltersToODataQuery; // 把"a.b.c"这种字符fieldName转换为{"a":{"b":{"c":{}}}}这种json
8
+ var _lodash = require("lodash");
7
9
 
10
+ var _format = require("./format");
8
11
 
12
+ // 把"a.b.c"这种字符fieldName转换为{"a":{"b":{"c":{}}}}这种json
9
13
  var expandFieldName = function expandFieldName(initial, fieldName) {
10
- _.reduce(fieldName.split("."), function (m, k) {
14
+ (0, _lodash.reduce)(fieldName.split("."), function (m, k) {
11
15
  if (!m[k]) {
12
16
  m[k] = {};
13
17
  }
14
18
 
15
19
  return m[k];
16
20
  }, initial);
17
-
18
21
  return initial;
19
22
  }; // 把["a.b.c","x.y","x.z","m"]这种字符fieldName转换为{"a":{"b":{"c":{}}},"x":{"y":{},"z":{}},"m":{}}这种json对象格式
20
23
 
@@ -48,10 +51,10 @@ var reduceGraphqlFieldsQuery = function reduceGraphqlFieldsQuery(fields, indents
48
51
  }
49
52
 
50
53
  var itemQuery;
51
- return " {\n".concat(_.map(fields, function (fieldValue, fieldKey) {
54
+ return " {\n".concat((0, _lodash.map)(fields, function (fieldValue, fieldKey) {
52
55
  itemQuery = generateIndents(indentsCount) + generateIndents(1) + fieldKey;
53
56
 
54
- if (_.isEmpty(fieldValue)) {
57
+ if ((0, _lodash.isEmpty)(fieldValue)) {
55
58
  itemQuery += "\n";
56
59
  } else {
57
60
  indentsCount += 1;
@@ -64,7 +67,7 @@ var reduceGraphqlFieldsQuery = function reduceGraphqlFieldsQuery(fields, indents
64
67
  };
65
68
 
66
69
  var formatFieldsToGraphqlQuery = function formatFieldsToGraphqlQuery(fields) {
67
- if (_.isString(fields)) {
70
+ if ((0, _lodash.isString)(fields)) {
68
71
  fields = fields.split(",");
69
72
  }
70
73
 
@@ -96,8 +99,8 @@ var formatFieldsToGraphqlQuery = function formatFieldsToGraphqlQuery(fields) {
96
99
 
97
100
 
98
101
  var formatFiltersToGraphqlQuery = function formatFiltersToGraphqlQuery(objectName, filters, fields, userContext, odataProtocolVersion, forceLowerCase) {
99
- if (!_.isString(filters)) {
100
- filters = formatFiltersToODataQuery(filters, userContext, odataProtocolVersion, forceLowerCase);
102
+ if (!(0, _lodash.isString)(filters)) {
103
+ filters = (0, _format.formatFiltersToODataQuery)(filters, userContext, odataProtocolVersion, forceLowerCase);
101
104
  }
102
105
 
103
106
  var filtersWrap = filters ? "(filters:\"".concat(filters, "\")") : "";
@@ -106,4 +109,5 @@ var formatFiltersToGraphqlQuery = function formatFiltersToGraphqlQuery(objectNam
106
109
  return graphqlQuery;
107
110
  };
108
111
 
109
- exports.formatFiltersToGraphqlQuery = formatFiltersToGraphqlQuery;
112
+ var _formatFiltersToGraphqlQuery = formatFiltersToGraphqlQuery;
113
+ exports.formatFiltersToGraphqlQuery = _formatFiltersToGraphqlQuery;
package/lib/index.js CHANGED
@@ -1,14 +1,75 @@
1
1
  "use strict";
2
2
 
3
- var SteedosFilter = require("./filter");
3
+ var _typeof = require("@babel/runtime/helpers/typeof");
4
4
 
5
- var format = require('./format');
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ var _exportNames = {
9
+ SteedosFilter: true
10
+ };
11
+ exports.SteedosFilter = void 0;
6
12
 
7
- var utils = require('./utils');
13
+ var _SteedosFilter = _interopRequireWildcard(require("./filter"));
8
14
 
9
- var formula = require('./formula');
15
+ exports.SteedosFilter = _SteedosFilter;
10
16
 
11
- var graphql = require('./graphql');
17
+ var _format = require("./format");
12
18
 
13
- exports.SteedosFilter = SteedosFilter;
14
- Object.assign(exports, utils, formula, format, graphql);
19
+ Object.keys(_format).forEach(function (key) {
20
+ if (key === "default" || key === "__esModule") return;
21
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
22
+ if (key in exports && exports[key] === _format[key]) return;
23
+ Object.defineProperty(exports, key, {
24
+ enumerable: true,
25
+ get: function get() {
26
+ return _format[key];
27
+ }
28
+ });
29
+ });
30
+
31
+ var _utils = require("./utils");
32
+
33
+ Object.keys(_utils).forEach(function (key) {
34
+ if (key === "default" || key === "__esModule") return;
35
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
36
+ if (key in exports && exports[key] === _utils[key]) return;
37
+ Object.defineProperty(exports, key, {
38
+ enumerable: true,
39
+ get: function get() {
40
+ return _utils[key];
41
+ }
42
+ });
43
+ });
44
+
45
+ var _formula = require("./formula");
46
+
47
+ Object.keys(_formula).forEach(function (key) {
48
+ if (key === "default" || key === "__esModule") return;
49
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
50
+ if (key in exports && exports[key] === _formula[key]) return;
51
+ Object.defineProperty(exports, key, {
52
+ enumerable: true,
53
+ get: function get() {
54
+ return _formula[key];
55
+ }
56
+ });
57
+ });
58
+
59
+ var _graphql = require("./graphql");
60
+
61
+ Object.keys(_graphql).forEach(function (key) {
62
+ if (key === "default" || key === "__esModule") return;
63
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
64
+ if (key in exports && exports[key] === _graphql[key]) return;
65
+ Object.defineProperty(exports, key, {
66
+ enumerable: true,
67
+ get: function get() {
68
+ return _graphql[key];
69
+ }
70
+ });
71
+ });
72
+
73
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
74
+
75
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }