From 2ef90715941b8bc2a116aaf3083a6d061188960d Mon Sep 17 00:00:00 2001 From: Leonardo Alberto Souza Date: Fri, 16 Sep 2016 17:33:28 -0300 Subject: [PATCH 1/2] fix exports name of module --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index ce80aa6..7dfa0a0 100644 --- a/package.json +++ b/package.json @@ -67,7 +67,7 @@ }, "to5BoilerplateOptions": { "entryFileName": "moment-business", - "exportVarName": "none", + "exportVarName": "momentBusiness", "mochaGlobals": [ "stub", "spy", From 752653c2195429b836a45090d43ab55e566c2478 Mon Sep 17 00:00:00 2001 From: James Smith Date: Fri, 16 Sep 2016 15:05:42 -0700 Subject: [PATCH 2/2] 3.0.1 --- CHANGELOG.md | 7 +++++++ bower.json | 2 +- dist/moment-business.js | 2 +- dist/moment-business.js.map | 2 +- dist/moment-business.min.js | 2 +- dist/moment-business.min.js.map | 2 +- package.json | 2 +- 7 files changed, 13 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0b4e10e..a9cde07 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +### [3.0.1](https://github.com/jmeas/moment-business/releases/tag/v3.0.1) + +- Fix the name of the library in non-module loader browser environments. + Previously, the library was attached as `window.none`. Now it is available + under `window.momentBusiness`. Note that this issue does not affect users + building with ES2015/CommonJS/AMD module bundlers. + ### [3.0.0](https://github.com/jmeas/moment-business/releases/tag/v3.0.0) - The functions in this library now accept moments as arguments rather than diff --git a/bower.json b/bower.json index 3f6eccb..4b76b28 100644 --- a/bower.json +++ b/bower.json @@ -1,6 +1,6 @@ { "name": "moment-business", - "version": "3.0.0", + "version": "3.0.1", "homepage": "https://github.com/jmeas/moment-business", "authors": [ "Jmeas " diff --git a/dist/moment-business.js b/dist/moment-business.js index 6153e11..bcd54f7 100644 --- a/dist/moment-business.js +++ b/dist/moment-business.js @@ -1,5 +1,5 @@ (function (global, factory) { - typeof exports === "object" && typeof module !== "undefined" ? module.exports = factory(require("contained-periodic-values")) : typeof define === "function" && define.amd ? define(["contained-periodic-values"], factory) : global.none = factory(global.containedPeriodicValues); + typeof exports === "object" && typeof module !== "undefined" ? module.exports = factory(require("contained-periodic-values")) : typeof define === "function" && define.amd ? define(["contained-periodic-values"], factory) : global.momentBusiness = factory(global.containedPeriodicValues); })(this, function (containedPeriodicValues) { "use strict"; diff --git a/dist/moment-business.js.map b/dist/moment-business.js.map index d96036a..1bcae21 100644 --- a/dist/moment-business.js.map +++ b/dist/moment-business.js.map @@ -1 +1 @@ -{"version":3,"sources":["moment-business.js"],"names":[],"mappings":"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","file":"moment-business.js","sourcesContent":["(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('contained-periodic-values')) :\n typeof define === 'function' && define.amd ? define(['contained-periodic-values'], factory) :\n global.none = factory(global.containedPeriodicValues)\n}(this, function (containedPeriodicValues) { 'use strict';\n\n function determineSign(x) {\n x = +x;\n return x > 0 ? 1 : -1;\n }\n\n var moment_business = {\n weekDays(startMoment, endMoment) {\n let start, end;\n let reverse = endMoment.isBefore(startMoment);\n if (reverse) {\n start = endMoment;\n end = startMoment;\n } else {\n start = startMoment;\n end = endMoment;\n }\n\n const startDay = start.day();\n const totalDays = Math.abs(end.diff(start, 'days'));\n const containedSundays = containedPeriodicValues(startDay, totalDays + startDay, 0, 7);\n const containedSaturdays = containedPeriodicValues(startDay, totalDays + startDay, 6, 7);\n const coefficient = reverse ? -1 : 1;\n\n return coefficient * (totalDays - (containedSaturdays + containedSundays));\n },\n\n weekendDays(startMoment, endMoment) {\n const totalDaysDiff = endMoment.diff(startMoment, 'days');\n const weekDays = this.weekDays(startMoment, endMoment);\n\n return totalDaysDiff - weekDays;\n },\n\n addWeekDays(moment, amount) {\n if (amount === 0 || isNaN(amount)) { return moment; }\n\n var sign = determineSign(amount);\n var day = moment.day();\n var absIncrement = Math.abs(amount);\n\n var days = 0;\n\n if (day === 0 && sign === -1) {\n days = 1;\n } else if (day === 6 && sign === 1) {\n days = 1;\n }\n\n // Add padding for weekends.\n var paddedAbsIncrement = absIncrement;\n if (day !== 0 && day !== 6 && sign > 0) {\n paddedAbsIncrement += day;\n } else if (day !== 0 && day !== 6 && sign < 0) {\n paddedAbsIncrement += 6 - day;\n }\n var weekendsInbetween =\n Math.max(Math.floor(paddedAbsIncrement / 5) - 1, 0) +\n (paddedAbsIncrement > 5 && paddedAbsIncrement % 5 > 0 ? 1 : 0);\n\n // Add the increment and number of weekends.\n days += absIncrement + weekendsInbetween * 2;\n\n moment.add(sign * days, 'days');\n return moment;\n },\n\n subtractWeekDays(moment, amount) {\n return this.addWeekDays(moment, -amount);\n },\n\n isWeekDay(moment) {\n return moment.isoWeekday() < 6;\n },\n\n isWeekendDay(moment) {\n return moment.isoWeekday() > 5;\n }\n };\n\n return moment_business;\n\n}));\n"],"sourceRoot":"/source/"} \ No newline at end of file +{"version":3,"sources":["moment-business.js"],"names":[],"mappings":"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","file":"moment-business.js","sourcesContent":["(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('contained-periodic-values')) :\n typeof define === 'function' && define.amd ? define(['contained-periodic-values'], factory) :\n global.momentBusiness = factory(global.containedPeriodicValues)\n}(this, function (containedPeriodicValues) { 'use strict';\n\n function determineSign(x) {\n x = +x;\n return x > 0 ? 1 : -1;\n }\n\n var moment_business = {\n weekDays(startMoment, endMoment) {\n let start, end;\n let reverse = endMoment.isBefore(startMoment);\n if (reverse) {\n start = endMoment;\n end = startMoment;\n } else {\n start = startMoment;\n end = endMoment;\n }\n\n const startDay = start.day();\n const totalDays = Math.abs(end.diff(start, 'days'));\n const containedSundays = containedPeriodicValues(startDay, totalDays + startDay, 0, 7);\n const containedSaturdays = containedPeriodicValues(startDay, totalDays + startDay, 6, 7);\n const coefficient = reverse ? -1 : 1;\n\n return coefficient * (totalDays - (containedSaturdays + containedSundays));\n },\n\n weekendDays(startMoment, endMoment) {\n const totalDaysDiff = endMoment.diff(startMoment, 'days');\n const weekDays = this.weekDays(startMoment, endMoment);\n\n return totalDaysDiff - weekDays;\n },\n\n addWeekDays(moment, amount) {\n if (amount === 0 || isNaN(amount)) { return moment; }\n\n var sign = determineSign(amount);\n var day = moment.day();\n var absIncrement = Math.abs(amount);\n\n var days = 0;\n\n if (day === 0 && sign === -1) {\n days = 1;\n } else if (day === 6 && sign === 1) {\n days = 1;\n }\n\n // Add padding for weekends.\n var paddedAbsIncrement = absIncrement;\n if (day !== 0 && day !== 6 && sign > 0) {\n paddedAbsIncrement += day;\n } else if (day !== 0 && day !== 6 && sign < 0) {\n paddedAbsIncrement += 6 - day;\n }\n var weekendsInbetween =\n Math.max(Math.floor(paddedAbsIncrement / 5) - 1, 0) +\n (paddedAbsIncrement > 5 && paddedAbsIncrement % 5 > 0 ? 1 : 0);\n\n // Add the increment and number of weekends.\n days += absIncrement + weekendsInbetween * 2;\n\n moment.add(sign * days, 'days');\n return moment;\n },\n\n subtractWeekDays(moment, amount) {\n return this.addWeekDays(moment, -amount);\n },\n\n isWeekDay(moment) {\n return moment.isoWeekday() < 6;\n },\n\n isWeekendDay(moment) {\n return moment.isoWeekday() > 5;\n }\n };\n\n return moment_business;\n\n}));\n"],"sourceRoot":"/source/"} \ No newline at end of file diff --git a/dist/moment-business.min.js b/dist/moment-business.min.js index 516728d..5a59ee8 100644 --- a/dist/moment-business.min.js +++ b/dist/moment-business.min.js @@ -1,2 +1,2 @@ -!function(e,n){"object"==typeof exports&&"undefined"!=typeof module?module.exports=n(require("contained-periodic-values")):"function"==typeof define&&define.amd?define(["contained-periodic-values"],n):e.none=n(e.containedPeriodicValues)}(this,function(e){"use strict";function n(e){return e=+e,e>0?1:-1}var a={weekDays:function(n,a){var i=void 0,t=void 0,r=a.isBefore(n);r?(i=a,t=n):(i=n,t=a);var d=i.day(),o=Math.abs(t.diff(i,"days")),s=e(d,o+d,0,7),u=e(d,o+d,6,7),f=r?-1:1;return f*(o-(u+s))},weekendDays:function(e,n){var a=n.diff(e,"days"),i=this.weekDays(e,n);return a-i},addWeekDays:function(e,a){if(0===a||isNaN(a))return e;var i=n(a),t=e.day(),r=Math.abs(a),d=0;0===t&&-1===i?d=1:6===t&&1===i&&(d=1);var o=r;0!==t&&6!==t&&i>0?o+=t:0!==t&&6!==t&&0>i&&(o+=6-t);var s=Math.max(Math.floor(o/5)-1,0)+(o>5&&o%5>0?1:0);return d+=r+2*s,e.add(i*d,"days"),e},subtractWeekDays:function(e,n){return this.addWeekDays(e,-n)},isWeekDay:function(e){return e.isoWeekday()<6},isWeekendDay:function(e){return e.isoWeekday()>5}};return a}); +!function(e,n){"object"==typeof exports&&"undefined"!=typeof module?module.exports=n(require("contained-periodic-values")):"function"==typeof define&&define.amd?define(["contained-periodic-values"],n):e.momentBusiness=n(e.containedPeriodicValues)}(this,function(e){"use strict";function n(e){return e=+e,e>0?1:-1}var a={weekDays:function(n,a){var i=void 0,t=void 0,r=a.isBefore(n);r?(i=a,t=n):(i=n,t=a);var d=i.day(),o=Math.abs(t.diff(i,"days")),s=e(d,o+d,0,7),u=e(d,o+d,6,7),f=r?-1:1;return f*(o-(u+s))},weekendDays:function(e,n){var a=n.diff(e,"days"),i=this.weekDays(e,n);return a-i},addWeekDays:function(e,a){if(0===a||isNaN(a))return e;var i=n(a),t=e.day(),r=Math.abs(a),d=0;0===t&&-1===i?d=1:6===t&&1===i&&(d=1);var o=r;0!==t&&6!==t&&i>0?o+=t:0!==t&&6!==t&&0>i&&(o+=6-t);var s=Math.max(Math.floor(o/5)-1,0)+(o>5&&o%5>0?1:0);return d+=r+2*s,e.add(i*d,"days"),e},subtractWeekDays:function(e,n){return this.addWeekDays(e,-n)},isWeekDay:function(e){return e.isoWeekday()<6},isWeekendDay:function(e){return e.isoWeekday()>5}};return a}); //# sourceMappingURL=moment-business.min.js.map \ No newline at end of file diff --git a/dist/moment-business.min.js.map b/dist/moment-business.min.js.map index f064cf2..3c2578a 100644 --- a/dist/moment-business.min.js.map +++ b/dist/moment-business.min.js.map @@ -1 +1 @@ -{"version":3,"file":"moment-business.js","sources":["moment-business.js","/source/moment-business.js"],"names":["global","factory","exports","module","require","define","amd","none","containedPeriodicValues","this","determineSign","x","moment_business","weekDays","startMoment","endMoment","start","undefined","end","reverse","isBefore","startDay","day","totalDays","Math","abs","diff","containedSundays","containedSaturdays","coefficient","weekendDays","totalDaysDiff","addWeekDays","moment","amount","isNaN","sign","absIncrement","days","paddedAbsIncrement","weekendsInbetween","max","floor","add","subtractWeekDays","isWeekDay","isoWeekday","isWeekendDay"],"mappings":"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","sourceRoot":"/source/","sourcesContent":["(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('contained-periodic-values')) :\n typeof define === 'function' && define.amd ? define(['contained-periodic-values'], factory) :\n global.none = factory(global.containedPeriodicValues)\n}(this, function (containedPeriodicValues) { 'use strict';\n\n function determineSign(x) {\n x = +x;\n return x > 0 ? 1 : -1;\n }\n\n var moment_business = {\n weekDays(startMoment, endMoment) {\n let start, end;\n let reverse = endMoment.isBefore(startMoment);\n if (reverse) {\n start = endMoment;\n end = startMoment;\n } else {\n start = startMoment;\n end = endMoment;\n }\n\n const startDay = start.day();\n const totalDays = Math.abs(end.diff(start, 'days'));\n const containedSundays = containedPeriodicValues(startDay, totalDays + startDay, 0, 7);\n const containedSaturdays = containedPeriodicValues(startDay, totalDays + startDay, 6, 7);\n const coefficient = reverse ? -1 : 1;\n\n return coefficient * (totalDays - (containedSaturdays + containedSundays));\n },\n\n weekendDays(startMoment, endMoment) {\n const totalDaysDiff = endMoment.diff(startMoment, 'days');\n const weekDays = this.weekDays(startMoment, endMoment);\n\n return totalDaysDiff - weekDays;\n },\n\n addWeekDays(moment, amount) {\n if (amount === 0 || isNaN(amount)) { return moment; }\n\n var sign = determineSign(amount);\n var day = moment.day();\n var absIncrement = Math.abs(amount);\n\n var days = 0;\n\n if (day === 0 && sign === -1) {\n days = 1;\n } else if (day === 6 && sign === 1) {\n days = 1;\n }\n\n // Add padding for weekends.\n var paddedAbsIncrement = absIncrement;\n if (day !== 0 && day !== 6 && sign > 0) {\n paddedAbsIncrement += day;\n } else if (day !== 0 && day !== 6 && sign < 0) {\n paddedAbsIncrement += 6 - day;\n }\n var weekendsInbetween =\n Math.max(Math.floor(paddedAbsIncrement / 5) - 1, 0) +\n (paddedAbsIncrement > 5 && paddedAbsIncrement % 5 > 0 ? 1 : 0);\n\n // Add the increment and number of weekends.\n days += absIncrement + weekendsInbetween * 2;\n\n moment.add(sign * days, 'days');\n return moment;\n },\n\n subtractWeekDays(moment, amount) {\n return this.addWeekDays(moment, -amount);\n },\n\n isWeekDay(moment) {\n return moment.isoWeekday() < 6;\n },\n\n isWeekendDay(moment) {\n return moment.isoWeekday() > 5;\n }\n };\n\n return moment_business;\n\n}));\n","(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('contained-periodic-values')) :\n typeof define === 'function' && define.amd ? define(['contained-periodic-values'], factory) :\n global.none = factory(global.containedPeriodicValues)\n}(this, function (containedPeriodicValues) { 'use strict';\n\n function determineSign(x) {\n x = +x;\n return x > 0 ? 1 : -1;\n }\n\n var moment_business = {\n weekDays(startMoment, endMoment) {\n let start, end;\n let reverse = endMoment.isBefore(startMoment);\n if (reverse) {\n start = endMoment;\n end = startMoment;\n } else {\n start = startMoment;\n end = endMoment;\n }\n\n const startDay = start.day();\n const totalDays = Math.abs(end.diff(start, 'days'));\n const containedSundays = containedPeriodicValues(startDay, totalDays + startDay, 0, 7);\n const containedSaturdays = containedPeriodicValues(startDay, totalDays + startDay, 6, 7);\n const coefficient = reverse ? -1 : 1;\n\n return coefficient * (totalDays - (containedSaturdays + containedSundays));\n },\n\n weekendDays(startMoment, endMoment) {\n const totalDaysDiff = endMoment.diff(startMoment, 'days');\n const weekDays = this.weekDays(startMoment, endMoment);\n\n return totalDaysDiff - weekDays;\n },\n\n addWeekDays(moment, amount) {\n if (amount === 0 || isNaN(amount)) { return moment; }\n\n var sign = determineSign(amount);\n var day = moment.day();\n var absIncrement = Math.abs(amount);\n\n var days = 0;\n\n if (day === 0 && sign === -1) {\n days = 1;\n } else if (day === 6 && sign === 1) {\n days = 1;\n }\n\n // Add padding for weekends.\n var paddedAbsIncrement = absIncrement;\n if (day !== 0 && day !== 6 && sign > 0) {\n paddedAbsIncrement += day;\n } else if (day !== 0 && day !== 6 && sign < 0) {\n paddedAbsIncrement += 6 - day;\n }\n var weekendsInbetween =\n Math.max(Math.floor(paddedAbsIncrement / 5) - 1, 0) +\n (paddedAbsIncrement > 5 && paddedAbsIncrement % 5 > 0 ? 1 : 0);\n\n // Add the increment and number of weekends.\n days += absIncrement + weekendsInbetween * 2;\n\n moment.add(sign * days, 'days');\n return moment;\n },\n\n subtractWeekDays(moment, amount) {\n return this.addWeekDays(moment, -amount);\n },\n\n isWeekDay(moment) {\n return moment.isoWeekday() < 6;\n },\n\n isWeekendDay(moment) {\n return moment.isoWeekday() > 5;\n }\n };\n\n return moment_business;\n\n}));\n"]} \ No newline at end of file +{"version":3,"file":"moment-business.js","sources":["moment-business.js","/source/moment-business.js"],"names":["global","factory","exports","module","require","define","amd","momentBusiness","containedPeriodicValues","this","determineSign","x","moment_business","weekDays","startMoment","endMoment","start","undefined","end","reverse","isBefore","startDay","day","totalDays","Math","abs","diff","containedSundays","containedSaturdays","coefficient","weekendDays","totalDaysDiff","addWeekDays","moment","amount","isNaN","sign","absIncrement","days","paddedAbsIncrement","weekendsInbetween","max","floor","add","subtractWeekDays","isWeekDay","isoWeekday","isWeekendDay"],"mappings":"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","sourceRoot":"/source/","sourcesContent":["(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('contained-periodic-values')) :\n typeof define === 'function' && define.amd ? define(['contained-periodic-values'], factory) :\n global.momentBusiness = factory(global.containedPeriodicValues)\n}(this, function (containedPeriodicValues) { 'use strict';\n\n function determineSign(x) {\n x = +x;\n return x > 0 ? 1 : -1;\n }\n\n var moment_business = {\n weekDays(startMoment, endMoment) {\n let start, end;\n let reverse = endMoment.isBefore(startMoment);\n if (reverse) {\n start = endMoment;\n end = startMoment;\n } else {\n start = startMoment;\n end = endMoment;\n }\n\n const startDay = start.day();\n const totalDays = Math.abs(end.diff(start, 'days'));\n const containedSundays = containedPeriodicValues(startDay, totalDays + startDay, 0, 7);\n const containedSaturdays = containedPeriodicValues(startDay, totalDays + startDay, 6, 7);\n const coefficient = reverse ? -1 : 1;\n\n return coefficient * (totalDays - (containedSaturdays + containedSundays));\n },\n\n weekendDays(startMoment, endMoment) {\n const totalDaysDiff = endMoment.diff(startMoment, 'days');\n const weekDays = this.weekDays(startMoment, endMoment);\n\n return totalDaysDiff - weekDays;\n },\n\n addWeekDays(moment, amount) {\n if (amount === 0 || isNaN(amount)) { return moment; }\n\n var sign = determineSign(amount);\n var day = moment.day();\n var absIncrement = Math.abs(amount);\n\n var days = 0;\n\n if (day === 0 && sign === -1) {\n days = 1;\n } else if (day === 6 && sign === 1) {\n days = 1;\n }\n\n // Add padding for weekends.\n var paddedAbsIncrement = absIncrement;\n if (day !== 0 && day !== 6 && sign > 0) {\n paddedAbsIncrement += day;\n } else if (day !== 0 && day !== 6 && sign < 0) {\n paddedAbsIncrement += 6 - day;\n }\n var weekendsInbetween =\n Math.max(Math.floor(paddedAbsIncrement / 5) - 1, 0) +\n (paddedAbsIncrement > 5 && paddedAbsIncrement % 5 > 0 ? 1 : 0);\n\n // Add the increment and number of weekends.\n days += absIncrement + weekendsInbetween * 2;\n\n moment.add(sign * days, 'days');\n return moment;\n },\n\n subtractWeekDays(moment, amount) {\n return this.addWeekDays(moment, -amount);\n },\n\n isWeekDay(moment) {\n return moment.isoWeekday() < 6;\n },\n\n isWeekendDay(moment) {\n return moment.isoWeekday() > 5;\n }\n };\n\n return moment_business;\n\n}));\n","(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('contained-periodic-values')) :\n typeof define === 'function' && define.amd ? define(['contained-periodic-values'], factory) :\n global.momentBusiness = factory(global.containedPeriodicValues)\n}(this, function (containedPeriodicValues) { 'use strict';\n\n function determineSign(x) {\n x = +x;\n return x > 0 ? 1 : -1;\n }\n\n var moment_business = {\n weekDays(startMoment, endMoment) {\n let start, end;\n let reverse = endMoment.isBefore(startMoment);\n if (reverse) {\n start = endMoment;\n end = startMoment;\n } else {\n start = startMoment;\n end = endMoment;\n }\n\n const startDay = start.day();\n const totalDays = Math.abs(end.diff(start, 'days'));\n const containedSundays = containedPeriodicValues(startDay, totalDays + startDay, 0, 7);\n const containedSaturdays = containedPeriodicValues(startDay, totalDays + startDay, 6, 7);\n const coefficient = reverse ? -1 : 1;\n\n return coefficient * (totalDays - (containedSaturdays + containedSundays));\n },\n\n weekendDays(startMoment, endMoment) {\n const totalDaysDiff = endMoment.diff(startMoment, 'days');\n const weekDays = this.weekDays(startMoment, endMoment);\n\n return totalDaysDiff - weekDays;\n },\n\n addWeekDays(moment, amount) {\n if (amount === 0 || isNaN(amount)) { return moment; }\n\n var sign = determineSign(amount);\n var day = moment.day();\n var absIncrement = Math.abs(amount);\n\n var days = 0;\n\n if (day === 0 && sign === -1) {\n days = 1;\n } else if (day === 6 && sign === 1) {\n days = 1;\n }\n\n // Add padding for weekends.\n var paddedAbsIncrement = absIncrement;\n if (day !== 0 && day !== 6 && sign > 0) {\n paddedAbsIncrement += day;\n } else if (day !== 0 && day !== 6 && sign < 0) {\n paddedAbsIncrement += 6 - day;\n }\n var weekendsInbetween =\n Math.max(Math.floor(paddedAbsIncrement / 5) - 1, 0) +\n (paddedAbsIncrement > 5 && paddedAbsIncrement % 5 > 0 ? 1 : 0);\n\n // Add the increment and number of weekends.\n days += absIncrement + weekendsInbetween * 2;\n\n moment.add(sign * days, 'days');\n return moment;\n },\n\n subtractWeekDays(moment, amount) {\n return this.addWeekDays(moment, -amount);\n },\n\n isWeekDay(moment) {\n return moment.isoWeekday() < 6;\n },\n\n isWeekendDay(moment) {\n return moment.isoWeekday() > 5;\n }\n };\n\n return moment_business;\n\n}));\n"]} \ No newline at end of file diff --git a/package.json b/package.json index 7dfa0a0..c8e1195 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "moment-business", - "version": "3.0.0", + "version": "3.0.1", "description": "Methods to work with week days and weekends in moment.", "main": "dist/moment-business.js", "scripts": {