1 define([], function () {
4 function RestrictionsService(){
7 getEqualsFnc: getEqualsFnc,
8 getIsDecimalFnc: getIsDecimalFnc,
9 getIsNumberFnc: getIsNumberFnc,
10 getIsUNumberFnc: getIsUNumberFnc,
11 getMinMaxFnc: getMinMaxFnc,
12 getReqexpValidationFnc: getReqexpValidationFnc,
18 // TODO: add service's description
19 function getEqualsFnc(target) {
20 var intTarget = parseInt(target);
22 return new RestrictionObject(
24 var intVal = convertToInteger(value);
25 return intVal === intTarget;
27 'Value must be equal to ' + target
31 // TODO: add service's description
32 function getMinMaxFnc(min, max) {
33 var intMin = parseInt(min),
34 intMax = parseInt(max);
36 return new RestrictionObject(
38 var intVal = convertToInteger(value);
39 return (intMin <= intVal) && (intVal <= intMax);
41 'Value must be in between ' + min + ' and ' + max
45 // TODO: add service's description
46 function getReqexpValidationFnc(patternString) {
47 return new RestrictionObject(
49 var pattern = new RegExp(patternString);
50 return pattern.test(value.toString());
52 'Value must match ' + patternString
56 // TODO: add service's description
57 function getIsNumberFnc() {
58 return new RestrictionObject(
60 var pattern = new RegExp('^[+-]?((0x[0-9A-Fa-f]+)|(0[0-9]+)|([0-9]+))$');
61 return pattern.test(value.toString());
63 'Value must be number (+/-, 0x and 0) prefixed are permitted'
67 // TODO: add service's description
68 function getIsUNumberFnc() {
69 return new RestrictionObject(
71 var pattern = new RegExp('^[+]?((0x[0-9A-Fa-f]+)|(0[0-9]+)|([0-9]+))$');
72 return pattern.test(value.toString());
74 'Value must be positive number (+, 0x and 0) prefixed are permitted'
78 // TODO: add service's description
79 function getIsDecimalFnc() {
80 return new RestrictionObject(
82 var pattern = new RegExp('^[-]?[1-9]?[0-9]+[.|,]?[0-9]*$');
83 return pattern.test(value.toString());
85 'Value must be decimal number - prefix is permitted'
89 // TODO: add service's description
90 function isInArray(array) {
91 return new RestrictionObject(
93 return array.some(function (arrVal) {
94 return arrVal === value;
97 'Value must be in ' + array.toString()
102 * Base restriction object
107 function RestrictionObject(fnc, info) {
112 // TODO: add function's description
113 function convertToInteger(value) {
114 var strVal = typeof value === 'string' ? value : value.toString(),
115 radix = strVal.indexOf('0x') === 0 ? 16 : strVal.indexOf('0') === 0 ? 8 : 10;
117 return parseInt(strVal, radix);
121 RestrictionsService.$inject = [];
123 return RestrictionsService;