Built motion from commit e1760111.|2.6.18
[motion2.git] / server / utils / iftime.js
1 // *************************************************************************
2 // *                                                                       *
3 // * xCALLY Motion -  The Omnichannel Contact Center                       *
4 // * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
5 // *                                                                       *
6 // *************************************************************************
7 // *                                                                       *
8 // * Email: info@xcally.com                                                *
9 // * Website: https://www.xcally.com                                       *
10 // *                                                                       *
11 // *************************************************************************
12 // *                                                                       *
13 // * The SOFTWARE PRODUCT is protected by copyright laws and international *
14 // * copyright treaties, as well as other intellectual property laws and   *
15 // * treaties. The SOFTWARE PRODUCT is licensed, not sold.                         *
16 // *                                                                       *
17 // *************************************************************************
18 var _0x780f=['max','min','MMM','monthCompare','guess','test','isMoment','split','padStart','length','iftime','moment-timezone','source','join','Date\x20not\x20valid','map','locale','slice','concat','exports','circularDoWInterval','toLowerCase','indexOf','circularMonthInterval','clone','hours','minutes','day','isBetween','format','ddd','includes','dowCompare','daysInMonth'];(function(_0x1ac002,_0x1f8b3d){var _0x5118d5=function(_0x5d7323){while(--_0x5d7323){_0x1ac002['push'](_0x1ac002['shift']());}};_0x5118d5(++_0x1f8b3d);}(_0x780f,0x13d));var _0xf780=function(_0x17b6e3,_0x4522ed){_0x17b6e3=_0x17b6e3-0x0;var _0x3906f3=_0x780f[_0x17b6e3];return _0x3906f3;};var _=require('lodash');var moment=require(_0xf780('0x0'));var timeRx=/(\*|(\d{1,2}:\d{1,2})(-(\d{1,2}:\d{1,2}))?)/;var dowRx=/(\*|((sun|mon|tue|wed|thu|fri|sat)(-(sun|mon|tue|wed|thu|fri|sat))?))/;var domRx=/(\*|(\d{1,2})(-(\d{1,2}))?)/;var moyRx=/(\*|(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)(-(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec))?)/;var globalRx=[timeRx,dowRx,domRx,moyRx]['map'](function(_0x463644){return _0x463644[_0xf780('0x1')];})[_0xf780('0x2')](',');var validateRx=new RegExp('^'+globalRx+'$');var EINVALID_STRING='Interval\x20string\x20not\x20valid';var EINVALID_DATE=_0xf780('0x3');function throwIfDateNotValid(_0x2cf201){if(!_0x2cf201['isValid']()){throw new Error(EINVALID_DATE);}}function extractTime(_0x28cd0b){var _0x5f19db=_0x28cd0b['split'](':')[_0xf780('0x4')](function(_0x45312e){return parseInt(_0x45312e,0xa);});var _0x1af84c=_0x5f19db[0x0];var _0x14a95c=_0x5f19db[0x1];if(_0x1af84c<0x0||_0x1af84c>0x17||_0x14a95c<0x0||_0x14a95c>0x3b){throw new Error(EINVALID_DATE);}return[_0x1af84c,_0x14a95c];}function circularDoWInterval(_0x48a727,_0x4a5249){if(_0x48a727===_0x4a5249){return[_0x48a727];}else{var _0xbc8ce9=moment[_0xf780('0x5')]();moment[_0xf780('0x5')]('en');var _0x2925f6=moment['weekdaysShort']()[_0xf780('0x4')](function(_0x1975e0){return _0x1975e0['toLowerCase']();});moment['locale'](_0xbc8ce9);var _0x590cbf=_0x2925f6['indexOf'](_0x48a727);var _0x426f57=_0x2925f6['indexOf'](_0x4a5249);if(_0x426f57>_0x590cbf){return _0x2925f6[_0xf780('0x6')](_0x590cbf,_0x426f57+0x1);}else{var _0x447886=_0x2925f6['slice'](0x0,_0x426f57+0x1);var _0x365a1e=_0x2925f6[_0xf780('0x6')](_0x590cbf);return _0x365a1e[_0xf780('0x7')](_0x447886);}}}module[_0xf780('0x8')][_0xf780('0x9')]=circularDoWInterval;function circularMonthInterval(_0x27b52e,_0x3c3998){if(_0x27b52e===_0x3c3998){return[_0x27b52e];}else{var _0x4051f6=moment[_0xf780('0x5')]();moment[_0xf780('0x5')]('en');var _0x216ddf=moment['monthsShort']()['map'](function(_0x58ec43){return _0x58ec43[_0xf780('0xa')]();});moment[_0xf780('0x5')](_0x4051f6);var _0x2b9487=_0x216ddf['indexOf'](_0x27b52e);var _0x56f61c=_0x216ddf[_0xf780('0xb')](_0x3c3998);if(_0x56f61c>_0x2b9487){return _0x216ddf[_0xf780('0x6')](_0x2b9487,_0x56f61c+0x1);}else{var _0x2f9f36=_0x216ddf['slice'](0x0,_0x56f61c+0x1);var _0x34b7c0=_0x216ddf['slice'](_0x2b9487);return _0x34b7c0[_0xf780('0x7')](_0x2f9f36);}}}module[_0xf780('0x8')][_0xf780('0xc')]=circularMonthInterval;function parseDom(_0x42b810){var _0x3c6ba3=parseInt(_0x42b810,0xa);if(_0x3c6ba3<0x1||_0x3c6ba3>0x1f){throw new Error(EINVALID_DATE);}return _0x3c6ba3;}function timeCompare(_0x5c6637,_0x34aa31,_0x4cb6ea){var _0x246852=_0x5c6637[_0xf780('0xd')]();var _0x1abe3e=extractTime(_0x34aa31);var _0x1087e3=_0x1abe3e[0x0];var _0x4a93d8=_0x1abe3e[0x1];var _0x11c92a=_0x5c6637[_0xf780('0xd')]()[_0xf780('0xe')](_0x1087e3)['minutes'](_0x4a93d8);throwIfDateNotValid(_0x11c92a);var _0x4c8acf=extractTime(_0x4cb6ea);var _0x1e913c=_0x4c8acf[0x0];var _0x55a3f4=_0x4c8acf[0x1];var _0x262cab=_0x5c6637['clone']()[_0xf780('0xe')](_0x1e913c)[_0xf780('0xf')](_0x55a3f4);throwIfDateNotValid(_0x262cab);if(_0x262cab['isBefore'](_0x11c92a)){var _0x4b455e=_0x246852[_0xf780('0xd')]()['startOf']('day');var _0x470603=_0x246852['clone']()['endOf'](_0xf780('0x10'));return _0x246852[_0xf780('0x11')](_0x11c92a,_0x470603,undefined,'[]')||_0x246852[_0xf780('0x11')](_0x4b455e,_0x262cab,undefined,'[]');}else{return _0x246852[_0xf780('0x11')](_0x11c92a,_0x262cab,undefined,'[]');}}module[_0xf780('0x8')]['timeCompare']=timeCompare;function dowCompare(_0x984ce4,_0x428a23,_0x592e02){var _0x3ebccf=_0x984ce4['locale']('en')[_0xf780('0x12')](_0xf780('0x13'))[_0xf780('0xa')]();return circularDoWInterval(_0x428a23,_0x592e02)[_0xf780('0x14')](_0x3ebccf);}module[_0xf780('0x8')][_0xf780('0x15')]=dowCompare;function domCompare(_0x368a28,_0x17fc27,_0x1cad6c){var _0x792b69=_0x368a28['date']();if(_0x17fc27===_0x1cad6c){return _0x792b69===_0x17fc27;}else{var _0x513ca1=_0x368a28[_0xf780('0x16')]();var _0x15a37e=_0x17fc27<_0x1cad6c;let _0x2f055a=![];var _0x45d796=0x0;var _0x2ad196=0x0;if(_0x15a37e){_0x45d796=Math[_0xf780('0x17')](0x1,_0x17fc27);_0x2ad196=Math[_0xf780('0x18')](_0x1cad6c,_0x513ca1);_0x2f055a=_0x792b69>=_0x45d796&&_0x792b69<=_0x2ad196;}else{_0x45d796=Math[_0xf780('0x18')](_0x17fc27,_0x513ca1);_0x2ad196=Math[_0xf780('0x17')](0x1,_0x1cad6c);_0x2f055a=_0x792b69>=_0x45d796||_0x792b69<=_0x2ad196;}return _0x2f055a;}}module[_0xf780('0x8')]['domCompare']=domCompare;function monthCompare(_0x493fdf,_0x2e9ee9,_0x33eceb){var _0x2f5d76=_0x493fdf[_0xf780('0x5')]('en')[_0xf780('0x12')](_0xf780('0x19'))[_0xf780('0xa')]();return circularMonthInterval(_0x2e9ee9,_0x33eceb)['includes'](_0x2f5d76);}module['exports'][_0xf780('0x1a')]=monthCompare;function iftime(_0x4cde1b,_0x37d1d6=moment['tz'][_0xf780('0x1b')](),_0x8d3ac9=moment()){if(!validateRx[_0xf780('0x1c')](_0x4cde1b)){throw new Error(EINVALID_STRING);}else{var _0x12b798=(moment[_0xf780('0x1d')](_0x8d3ac9)?_0x8d3ac9[_0xf780('0xd')]():moment(_0x8d3ac9))['tz'](_0x37d1d6)[_0xf780('0x5')]('en');throwIfDateNotValid(_0x12b798);var _0x4acbb0=_0x4cde1b[_0xf780('0x1e')](',');var _0x348189=_0x4acbb0[0x0];var _0x141ba9=_0x4acbb0[0x1];var _0x23c33=_0x4acbb0[0x2];var _0x470f33=_0x4acbb0[0x3];let _0x1cc550=!![];if(_0x348189!=='*'){var _0x2ffe23=_0x348189[_0xf780('0x1e')]('-');var _0x12f44c=_[_0xf780('0x1f')](_0x2ffe23[0x0],0x5,'0');var _0xa07bfe=_0x2ffe23[_0xf780('0x20')]===0x2?_[_0xf780('0x1f')](_0x2ffe23[0x1],0x5,'0'):_0x12f44c;_0x1cc550=timeCompare(_0x12b798,_0x12f44c,_0xa07bfe);}let _0x3f1b5d=!![];if(_0x141ba9!=='*'){var _0x5906b8=_0x141ba9[_0xf780('0x1e')]('-');var _0x54a945=_0x5906b8[0x0];var _0x479969=_0x5906b8[_0xf780('0x20')]===0x2?_0x5906b8[0x1]:_0x54a945;_0x3f1b5d=dowCompare(_0x12b798,_0x54a945,_0x479969);}let _0x336b9e=!![];if(_0x23c33!=='*'){var _0x3fc007=_0x23c33[_0xf780('0x1e')]('-');var _0x290436=parseDom(_0x3fc007[0x0]);var _0x1157b7=_0x3fc007['length']===0x2?parseDom(_0x3fc007[0x1]):_0x290436;_0x336b9e=domCompare(_0x12b798,_0x290436,_0x1157b7);}let _0x517756=!![];if(_0x470f33!=='*'){var _0x1a7a4a=_0x470f33[_0xf780('0x1e')]('-');var _0x1f4f8d=_0x1a7a4a[0x0];var _0x19acaf=_0x1a7a4a[_0xf780('0x20')]===0x2?_0x1a7a4a[0x1]:_0x1a7a4a[0x0];_0x517756=monthCompare(_0x12b798,_0x1f4f8d,_0x19acaf);}return _0x1cc550&&_0x3f1b5d&&_0x336b9e&&_0x517756;}}module['exports'][_0xf780('0x21')]=iftime;