{"_id":"@divante-adventure/work-moment","_rev":"3-335e8a133e7b815e34e71deb1e34b822","name":"@divante-adventure/work-moment","dist-tags":{"latest":"1.0.2"},"versions":{"1.0.0":{"name":"@divante-adventure/work-moment","version":"1.0.0","description":"Improved moment.js library with more features for Adventure.","main":"lib/index.js","scripts":{"test":"jasmine"},"repository":{"type":"git","url":"ssh://git@gitlab.divante.pl:60022/DivanteAdventure/libs/work-moment.git"},"license":"MIT","devDependencies":{"jasmine":"^3.3.0"},"dependencies":{"moment":"^2.22.2","moment-range":"^4.0.1"},"gitHead":"df31b62c81dc9b13f56edf897e2a39f39b1ab53b","_id":"@divante-adventure/work-moment@1.0.0","_shasum":"e9c56ebda6ddb73af18e57c78221112b464080cd","_from":".","_npmVersion":"3.5.2","_nodeVersion":"8.10.0","_npmUser":{"name":"divante","email":"nkozminska@divante.pl"},"dist":{"shasum":"e9c56ebda6ddb73af18e57c78221112b464080cd","tarball":"https://registry.npmjs.org/@divante-adventure/work-moment/-/work-moment-1.0.0.tgz","integrity":"sha512-Zt+SdzWSqgGBOM/yn9LOvpDH60siej2xPppWys0k4lm5ZVpFTY1LIyaQ8gHISGsAHqABhabelrZktV5Nn5JpkQ==","fileCount":7,"unpackedSize":8106,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcAOUNCRA9TVsSAnZWagAAtZwP/3+uU4bA3NibYSmP20WB\nhLFBXsvsa+qYd0Fb7c+tHk28juz1O/enkwgpmS6/WQWUDJRyGATElF8dqn2t\nO3CDvMPY+AjhgERs60Bx9oHp1tmzJFqKsQoYDhGLaXAcmPJV3Z7la/P8auus\nr0F9xA7YxDq7WIAtZXyClQlHxcCDlwuKyNeE82vU3043IMiLgeupxYRry7c/\nGzLlDZNoyoyjpTLpIODuWBKLIVbyieDYrVyhzpXZs4GEzcOiVORBNuYJxsRd\neXeDZrWh6yCNRkC0JorsZVkobkujVAQ8skbzyPZkq8u690JXABbyEkS4x0x9\nOohhJXvhZGXWnQyQc7foto6vjkPzhjB9w4WIp7Ly0Xv2DFU9EeLm/hgsYCle\nT9XYcE75qv4q+gu2y0dBOHqD2j+VALQ4VrZaFAkteLgu/KS50rTFL5xUt1MU\n3zsRMHG62wKwFrMdeiUJis11ai3x921G/9C76SgQ1e71fam/+EXhvmJGNeD1\nMx0H4sPAqbVi2g2pcji1naK27vtiyTz3TsNnLvQehV+Wj2lZ8syuy7WcmYXA\nkuGICTQjorjiQ4aT4TGk3Hm04k08OjvQ/zQDAS+JDhNiuyLfrW4caNXuKJN5\njsjbY90DlQJh0onMcdc1M5rciDIyHIu87xnT0/Im3rCyNDZ5Jh5A8H0xhEOI\n9RDj\r\n=BVVn\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDxSOYHDzfeMRWrKnjhFgE3exKDizCHJDw6mfWKawXSEAiEApln3/MBXrZ297F1yEAuWwyj4XEKi9naOmTcHqc9CKMg="}]},"maintainers":[{"name":"divante","email":"nkozminska@divante.pl"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/work-moment_1.0.0_1543562509318_0.3089408581317252"},"_hasShrinkwrap":false},"1.0.1":{"name":"@divante-adventure/work-moment","version":"1.0.1","description":"Improved moment.js library with more features for Adventure.","main":"lib/index.js","scripts":{"test":"jasmine"},"repository":{"type":"git","url":"ssh://git@gitlab.divante.pl:60022/DivanteAdventure/libs/work-moment.git"},"license":"MIT","devDependencies":{"jasmine":"^3.3.0"},"dependencies":{"moment":"^2.22.2","moment-range":"^4.0.1"},"gitHead":"22206309273815703432abca0ec48a18447f25b2","_id":"@divante-adventure/work-moment@1.0.1","_shasum":"c64995898cc78e7bef86778dad28b685f93e0f48","_from":".","_npmVersion":"3.5.2","_nodeVersion":"8.10.0","_npmUser":{"name":"divante","email":"nkozminska@divante.pl"},"dist":{"shasum":"c64995898cc78e7bef86778dad28b685f93e0f48","tarball":"https://registry.npmjs.org/@divante-adventure/work-moment/-/work-moment-1.0.1.tgz","integrity":"sha512-AES09tvkdviSXgLHbF17WwjoW8indmc7xI25grJpArCXdYK4Alfz1aLoX4LuNzhR9ZHS9ezfGOYkAqgtbW2ngA==","fileCount":8,"unpackedSize":13281,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcAPGOCRA9TVsSAnZWagAAXnMP/RlJyVnBsMGRb4m1dAUZ\nberobhcM4N8hN7YtLbsnLznHuOVkRqRCf1YcM1X09DI1xqSCd6W5qihkc49M\ntUfZmW4ZZ3ZRf7h4A1noN2PKcMOigpEfvUYyYe64YPM1wTSqA+JcZ53keXWi\n7Bua1MJ1KWwaQERcrGxc13vbd5KhVF3sF3rBZUqofxPSmnvugeeUJVtwVZmg\noVSwxjMo6Y4oB2uC/4rjxhY+6dEkxUbPpgTwThjcERUSLTCnLCkYvgxhREK0\n8Gshq/fmrOUiO5GkoYiU637NDlpPmSJv99t+ikJxy9+QVNB/T4Jqg5mr0Y9q\nZIdLK8BCB3hZvCV44CDddcGu8BaemUohF5VgsU1vdu+tced0Upk8az3+VmxH\nTjgXjcI6aJy+Q1dWl96ZzXibR6dOSOd5efaqh+0KPDoznVh8o82AI3I2Gm1x\n0tCcnH1SI4Ws5OF8AtRW9t6utiBC6NvjwXGHyTg7ifmmraatm4gS4xIeJ8Y0\nqF1aiR/2airACkMH+60+VtIzfOCBAUn59L939+JCGHxQVQncahRmwjxMoX8j\nn83Ft3aetfZvZsZlYpgR+X6fme1PmpUGnbSkY3xYubNRajd4wgdoCA89zlvy\nxNxQYCfnjLrIcCTCnQ2XUkivlGtsZBip19LG+hAVBFpHHdRjK16pic8Oa9eX\nsUQ7\r\n=mzYN\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAjhHoH1y9iXAVq8sKSHK4lssHZRDDyveD3LHwkAN9pIAiEAiJOCyq6POzmQK9JYl4JzZNaE7vQF9+/Z7318gzMaXj0="}]},"maintainers":[{"name":"divante","email":"nkozminska@divante.pl"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/work-moment_1.0.1_1543565709659_0.5997869486808429"},"_hasShrinkwrap":false},"1.0.2":{"name":"@divante-adventure/work-moment","version":"1.0.2","description":"Improved moment.js library with more features for Adventure.","main":"lib/index.js","scripts":{"test":"jasmine"},"repository":{"type":"git","url":"ssh://git@gitlab.divante.pl:60022/DivanteAdventure/libs/work-moment.git"},"license":"MIT","devDependencies":{"jasmine":"^3.3.0"},"dependencies":{"moment":"^2.22.2","moment-range":"^4.0.1"},"gitHead":"2cee348a89230f1e550e6de430a07f23285c9e0c","_id":"@divante-adventure/work-moment@1.0.2","_shasum":"f906fcedc6deb8eee5550128c773b2f15d6878f7","_from":".","_npmVersion":"3.5.2","_nodeVersion":"8.10.0","_npmUser":{"name":"divante","email":"nkozminska@divante.pl"},"dist":{"shasum":"f906fcedc6deb8eee5550128c773b2f15d6878f7","tarball":"https://registry.npmjs.org/@divante-adventure/work-moment/-/work-moment-1.0.2.tgz","integrity":"sha512-F+gnsZJDPlW7fED69CthcLJ8sFZ/1sdJ05GewrghG8G/outOc6yt2I1GTxbvM+HpZVZhUQs06iyWxg1DBR1AWQ==","fileCount":8,"unpackedSize":13289,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcCOl8CRA9TVsSAnZWagAAqCEP/1ommDcEgtc4rvsCI9mB\n4e4/R1jE7m2p91Etw1ExYY3ieWVAkANWUJWGTjKmrIQFX+eQ+BZdZRLhD7gA\nu0NsVKdkfvzV7kEHI3446joRxlb30fvvKp3d4heK3mdGCBKiAnyrl6m1hrNb\nHV47NH5PoD9aXGch44HuEsAZIzOm72AgI0igJ8mXXLWeJpC7mIjluPcVh7uL\nF+XaxEF82ZpX3HU747XysA6Egw3ZR+XVfVEEvWcrqBmnebpe/uecJ1lS5vS/\n1cuBgw92xBj3TM6mIPxzJ/Zd1KNElpxQguTh4P+oCG18bq0Jch8JuhhQGs2B\nZ6dwEoIIsvruH5N8TsdbgU/8XCPurAFYv12RhRvNV6rIGkAuv0sqs0IMzPGq\nMf9nCidxMXACJvCl2dvV3CBlaD+XDgzVcP7MZF9MWM5f4jdGgDPE2dRpMrKj\npxlb9pieaFEOncoNAmKKsdpvO1pEEtd06bX0m9LEMWLyRge0HXd9c/9Znjgx\noByNQiwWbm/nhgoqpapkx8s4S2a7EMUucg4KihTon5gZvserpS5akKhcl0Vz\nS2T9MOZFiXqhpJ9/Qza2IUXrS6yE99EwIcUhxPV8odtb80wqyQKeYxFULl8Z\nX6fDIy6qjoJSOuCOWCyA4ucMgoYy/O92jujm9ggm1woY5qhNoTm1i+J9yivk\n8+JB\r\n=DIWI\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEEbxhMNQHds6z5Wb+FFe206cnQJDZAdtcO/b88PFLalAiEAq4oM3cqk0JVrXnplk/S01Cw/BySLSB4lhb+pXIpzjqE="}]},"maintainers":[{"name":"divante","email":"nkozminska@divante.pl"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/work-moment_1.0.2_1544087932235_0.8362207063456202"},"_hasShrinkwrap":false}},"time":{"created":"2018-11-30T07:21:49.144Z","1.0.0":"2018-11-30T07:21:49.478Z","modified":"2022-04-05T04:47:53.460Z","1.0.1":"2018-11-30T08:15:09.794Z","1.0.2":"2018-12-06T09:18:52.376Z"},"maintainers":[{"name":"divante","email":"nkozminska@divante.pl"}],"description":"Improved moment.js library with more features for Adventure.","repository":{"type":"git","url":"ssh://git@gitlab.divante.pl:60022/DivanteAdventure/libs/work-moment.git"},"license":"MIT","readme":"# work-moment\n\n`moment.js` extended with `moment-range` and some utility functions.\n\n**Index**\n* [Installation](#installation)\n* [work-moment utility functions](#work-moment-utility-functions)\n  * [toIsoDate](#toisodate)\n  * [rangeOf](#rangeof)\n  * [Shortcuts for rangeOf](#shortcuts-for-rangeof)\n  * [isFreeDay and isWorkingDay](#isfreeday-and-isworkingday)\n  * [workingDays](#workingdays)\n  * [workingDaysCount](#workingdayscount)\n  * [workingSeconds](#workingseconds)\n\n## Installation\n\n```\nnpm install -S @divante-adventure/work-moment\n```\n\nIt contains all functions from `moment.js` extended with `moment-range`, so in order to replace `moment.js` with this\nlibrary you just need to replace:\n\n```javascript\nimport moment from 'moment';\n```\n\nor, in case of extending with `moment-range`:\n```javascript\nimport Moment from 'moment';\nimport {extendMoment} from 'moment-range';\nconst moment = extendMoment(Moment);\n```\n\nwith this one line:\n\n```javascript\nimport moment from '@divante-adventure/work-moment';\n```\n\nAll functions of `moment` and `moment-range` are now working:\n\n```javascript\nlet date = moment('2018-11-29');\nconsole.log(date.year()); // 2018\n\nlet start = moment('2018-11-01');\nlet end = moment('2018-11-30');\nlet range = moment.range(start, end);\nlet days = Array.from(range.by('day')).length;\nconsole.log(days); // 30\n```\n\n## work-moment utility functions\n\n### toIsoDate\n\nConverts date to ISO 8601 ordinal date:\n```\nYYYYDDD\n``` \nWhere `YYYY` is a four-digit year and `DDD` is a three-digit day in year.\n\n`moment.toIsoDate()` is a shortcut for `moment.format('YYYYDDDD')`.\n\n```javascript\nconsole.log(moment('2018-01-01').isoDate()); //2018001\nconsole.log(moment('2018-11-29').isoDate()); //2018333\n```\n\n### rangeOf\n\nCreates `range` object with given range including date. For example, if your `moment` object points at `2018-11-23` and\nyou will use `rangeOf('month')`, it will return range starting in `2018-11-01` and ending in `2018-11-30`.\n\n```javascript\nlet date = moment('2018-03-15');\nlet year = date.rangeOf('year');\nconsole.log(year.start.format('YYYY-MM-DD')); //2018-01-01\nconsole.log(year.end.format('YYYY-MM-DD')); //2018-12-31\n```\n\n### Shortcuts for rangeOf\n\n```javascript\nlet date = moment('2018-03-15');\nlet day = date.rangeOfDay(); // === date.rangeOf('day');\nlet week = date.rangeOfWeek(); // === date.rangeOf('week');\nlet month = date.rangeOfMonth(); // === date.rangeOf('month');\nlet quarter = date.rangeOfQuarter(); // === date.rangeOf('quarter');\nlet year = date.rangeOfYear();  // === date.rangeOf('year');\n```\n\n### isFreeDay and isWorkingDay\n\n`isFreeDay` return `true` if given day is either saturday or sunday and `false` otherwise. `isWorkingDay` returns\nopposite values.\n\n```javascript\nmoment('2018-11-09').isFreeDay(); // false\nmoment('2018-11-09').isWorkingDay(); //true\n\nmoment('2018-11-10').isFreeDay(); // true\nmoment('2018-11-10').isWorkingDay(); // false\n```\n \nAs an additional parameter, you can pass array of free days formatted in ISO 8601 ordinal date (result of `toIsoDate`\nfunction). These days will be treated as additional free days, i.e. holidays.\n\n```javascript\nlet freeDays = ['2018-12-25', '2018-12-26']; //Christmas\nlet formattedFreeDays = freeDays.map(entry => moment(entry).toIsoDate()); // ISO 8601 formatted dates\n\nmoment('2018-12-25').isFreeDay(); // false - 25th of December 2018 is a tuesday\nmoment('2018-12-25').isFreeDay(formattedFreeDays); // true\n```\n\n\n### workingDays\n\nFor given range (treated as in [rangeOf](#rangeof) function) returns array of working days. It can also accept ISO 8601\nordinal dates array as additional free days.\n\n```javascript\nlet freeDays = ['2018-12-25', '2018-12-26']; //Christmas\nlet formattedFreeDays = freeDays.map(entry => moment(entry).toIsoDate()); // ISO 8601 formatted dates\n\n//returns array of 5 entries between 2018-12-24 and 2018-12-28:\nmoment('2018-12-25').workingDays('week');\n\n//returns array of 3 entries: 2018-12-24, 2018-12-27 and 2018-12-28:\nmoment('2018-12-25').workingDays('week', formattedFreeDays);\n```\n\n### workingDaysCount\n\n`workingDaysCount` is a shortcut for `workingDays.length`:\n```javascript\nlet freeDays = ['2018-12-25', '2018-12-26']; //Christmas\nlet formattedFreeDays = freeDays.map(entry => moment(entry).toIsoDate()); // ISO 8601 formatted dates\n\nmoment('2018-12-25').workingDaysCount('week'); //5\nmoment('2018-12-25').workingDaysCount('week', formattedFreeDays); //3\n```\n\n### workingSeconds\n\nApplies multiplier to `workingDaysCount`. By default one working day equals to 8 hours (28800 seconds).\n\n```javascript\nlet freeDays = ['2018-12-25', '2018-12-26']; //Christmas\nlet formattedFreeDays = freeDays.map(entry => moment(entry).toIsoDate()); // ISO 8601 formatted dates\nlet fourHours = 4 * 60 * 60; // 14400 seconds\n\nmoment('2018-12-25').workingDaysCount('week'); // 5\nmoment('2018-12-25').workingSeconds('week'); // 5 * 28800\nmoment('2018-12-25').workingSeconds('week', [], fourHours); // 5 * 14400\nmoment('2018-12-25').workingDaysCount('week', formattedFreeDays); // 3\nmoment('2018-12-25').workingDaysCount('week', formattedFreeDays); // 3 * 28800\nmoment('2018-12-25').workingDaysCount('week', formattedFreeDays, fourHours); // 3 * 14400\n```","readmeFilename":"README.md"}