UNPKG

@meanie/angular-convert

Version:

An Angular service with various conversion helpers

3 lines (2 loc) 3.7 kB
!function(e,r,t){"use strict";r.module("Convert.Service",["Convert.StringConverter.Service","Convert.ObjectConverter.Service","Convert.QueryStringConverter.Service"]).factory("$convert",["$stringConverter","$objectConverter","$queryStringConverter",function(e,r,t){return{string:e,object:r,queryString:t}}])}(window,window.angular),function(e,r,t){"use strict";r.module("Convert.ObjectConverter.Service",["Convert.StringConverter.Service"]).factory("$objectConverter",["$stringConverter",function(e){function t(t,n){if(!r.isObject(t))throw new TypeError("Not an object");if(void 0===e[n])throw new Error("Invalid converter: "+n);var o={};for(var i in t)if(t.hasOwnProperty(i)){var c=e[n](i);o[c]=r.copy(t[i])}return o}return{keysToSnakeCase:function(e){return t(e,"toSnakeCase")},keysToCamelCase:function(e){return t(e,"toCamelCase")}}}])}(window,window.angular),function(e,r,t){"use strict";r.module("Convert.QueryStringConverter.Service",["Convert.StringConverter.Service"]).factory("$queryStringConverter",["$stringConverter",function(e){function t(e){try{return decodeURIComponent(e)}catch(e){}}function n(e,r){try{return encodeURIComponent(e).replace(/%40/g,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,r?"%20":"+")}catch(e){}}function o(r,t){switch(t){case"snake":return e.toSnakeCase(r);case"camel":return e.toCamelCase(r)}return r}return{toObject:function(e,n){var i={},c=void 0,a=void 0,u=void 0;return r.forEach((e||"").split("&"),function(e){e&&(c=e.replace(/\+/g,"%20").split("="),a=t(c[0]),r.isDefined(a)&&(a=o(a,n),u=!r.isDefined(c[1])||t(c[1]),hasOwnProperty.call(i,a)?r.isArray(i[a])?i[a].push(u):i[a]=[i[a],u]:i[a]=u))}),i},fromObject:function(t,o){if(!t||!r.isObject(t))return"";var i=[];return r.forEach(t,function(t,c){null===t||r.isUndefined(t)||(r.isArray(t)||(t=[t]),r.forEach(t,function(t){switch(r.isObject(t)&&(t=r.isDate(t)?t.toISOString():r.toJson(t)),o){case"snake":c=e.toSnakeCase(c);break;case"camel":c=e.toCamelCase(c)}i.push(n(c)+"="+n(t))}))}),i.length>0?i.join("&"):""}}}])}(window,window.angular),function(e,r,t){"use strict";r.module("Convert.StringConverter.Service",[]).factory("$stringConverter",["$window",function(e){return{toSnakeCase:function(e){return"number"==typeof e?String(e):"string"!=typeof e?"":""===(e=String(e).trim())?"":e.replace(/(\s*-*\b\w|[A-Z])/g,function(e){return e=e.trim().toLowerCase().replace("-",""),("_"===e[0]?"":"_")+e}).slice(1)},toCamelCase:function(e,r){return"number"==typeof e?String(e):"string"!=typeof e?"":""===(e=String(e).trim())?"":e.replace(/_+|-+/g," ").replace(/(?:^\w|[A-Z]|\b\w|\s+)/g,function(e,t){return 0===Number(e)?"":0!==t||r?e.toUpperCase():e.toLowerCase()})},toProperCase:function(e){return"number"==typeof e?String(e):"string"!=typeof e?"":""===(e=String(e).trim())?"":e.replace(/\b\w+/g,function(e){return e.charAt(0).toUpperCase()+e.substr(1).toLowerCase()}).replace(/['’”‘“][A-Z]{1}\b/g,function(e){return e.toLowerCase()})},toDasherized:function(e){return"number"==typeof e?String(e):"string"!=typeof e?"":""===(e=String(e).trim())?"":(e=e.replace(/\s\(/,"-("),e.replace(/(\s*-*\b\w|[A-Z]|_[a-z])/g,function(e){return e=e.replace("_","-").trim().toLowerCase(),("-"===e[0]?"":"-")+e}).slice(1).replace(/\(-/,"("))},toUcFirst:function(e){return"string"!=typeof e&&"number"!=typeof e?"":(e=String(e).trim(),""===e?"":e[0].toUpperCase()+e.substr(1))},fromBase64:function(r){var t=r.replace("-","+").replace("_","/");switch(t.length%4){case 0:break;case 2:t+="==";break;case 3:t+="=";break;default:throw"Illegal base64 url string"}try{return decodeURIComponent(e.atob(t))}catch(e){}}}}])}(window,window.angular); //# sourceMappingURL=angular-convert.min.js.map