Skip to content

Commit

Permalink
Merge pull request #343 from jamessral/convert-to-dayjs
Browse files Browse the repository at this point in the history
Issue #339 Swap Moment JS for Day JS
  • Loading branch information
mojoaxel authored Oct 6, 2020
2 parents f89b28b + 306a012 commit 1727ba9
Show file tree
Hide file tree
Showing 425 changed files with 10,099 additions and 22 deletions.
6 changes: 3 additions & 3 deletions index.html
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,9 @@
<script src="lib/leaflet.locatecontrol/L.Control.Locate.min.js"></script>
<script src="lib/suncalc/suncalc.js"></script>
<script src="lib/opening_hours/opening_hours.js"></script>
<script src="lib/moment/moment.min.js"></script>
<script src="lib/moment-range/moment-range.min.js"></script>
<script src="lib/dayjs/dayjs.min.js"></script>
<script src="lib/dayjs/plugin/isBetween.js"></script>
<script src="lib/dayjs/plugin/isoWeek.js"></script>
<script src="js/main.js"></script>
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png">
<link rel="icon" type="image/png" href="/favicon-32x32.png" sizes="32x32">
Expand Down Expand Up @@ -80,4 +81,3 @@ <h1>Wo ist Markt in <span class="nowrap"><select id="dropDownCitySelection"></se
<!-- End Piwik Code -->
</body>
</html>

20 changes: 11 additions & 9 deletions js/main.js
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,9 @@ var todayIcon = L.AwesomeMarkers.icon({markerColor: 'darkgreen', icon: 'basket'}
var otherIcon = L.AwesomeMarkers.icon({markerColor: 'cadetblue', icon: 'basket'});
var unclassifiedIcon = L.AwesomeMarkers.icon({markerColor: 'darkpurple', icon: 'basket'});

dayjs.extend(dayjs_plugin_isBetween);
dayjs.extend(dayjs_plugin_isoWeek);

/*
* Return 0-padded string of a number.
*/
Expand Down Expand Up @@ -79,8 +82,8 @@ function getTableRowForDay(openingRange, dayIsToday) {
var dayNameIndex = openFromDate.getDay();
var dayName = DAY_NAMES[dayNameIndex];
var cls = dayIsToday ? ' class="today"' : '';
var formattedOpenFrom = moment(openFromDate).format('HH:mm');
var formattedOpenTill = moment(openTillDate).format('HH:mm');
var formattedOpenFrom = dayjs(openFromDate).format('HH:mm');
var formattedOpenTill = dayjs(openTillDate).format('HH:mm');
return '<tr' + cls + '><th>' + dayName + '</th>' +
'<td>' + formattedOpenFrom + ' - ' + formattedOpenTill + ' Uhr</td></tr>';
}
Expand All @@ -90,8 +93,8 @@ function getTableRowForDay(openingRange, dayIsToday) {
*/
function getNextMarketDateHtml(nextChange) {
var html = '<p class="times">Nächster Termin: ' +
moment(nextChange).format('DD. MMM') + ' ab ' +
moment(nextChange).format('HH:mm') + ' Uhr.</p>';
dayjs(nextChange).format('DD. MMM') + ' ab ' +
dayjs(nextChange).format('HH:mm') + ' Uhr.</p>';
return html;
}

Expand Down Expand Up @@ -164,8 +167,7 @@ function openingRangeMatchesDay(openingRange, date) {
* Returns true if opening range contains the time of the given date; otherwise false.
*/
function openingRangeContainsTime(openingRange, date) {
var range = moment.range(openingRange[0], openingRange[1]);
return range.contains(date);
return dayjs(date).isBetween(openingRange[0], openingRange[1]);
}

/*
Expand All @@ -174,8 +176,8 @@ function openingRangeContainsTime(openingRange, date) {
* Returns null if no next opening date or ranges are available.
*/
function getOpeningTimes(openingHoursStrings) {
var monday = moment().startOf("isoweek").toDate();
var sunday = moment().endOf("isoweek").toDate();
var monday = dayjs().startOf("isoweek").toDate();
var sunday = dayjs().endOf("isoweek").toDate();
var options = {
"address" : {
"country_code" : "de"
Expand Down Expand Up @@ -443,7 +445,7 @@ function sanitizeCityID(cityID) {
var validCityRegexp = '^[\-a-z0-9_\u00e4\u00f6\u00fc]{1,40}$';
var regexp = new RegExp(validCityRegexp, 'i');
if (!regexp.test(cityID)) {
console.error('Invalid cityID "' + cityID + '". Loading "' +
console.error('Invalid cityID "' + cityID + '". Loading "' +
DEFAULT_CITY_ID + '" instead.');
return DEFAULT_CITY_ID;
}
Expand Down
6 changes: 6 additions & 0 deletions lib/dayjs/.editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
root = true

[*]
charset = utf-8
end_of_line = lf
insert_final_newline = true
587 changes: 587 additions & 0 deletions lib/dayjs/CHANGELOG.md

Large diffs are not rendered by default.

21 changes: 21 additions & 0 deletions lib/dayjs/LICENSE
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
MIT License

Copyright (c) 2018-present, iamkun

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
127 changes: 127 additions & 0 deletions lib/dayjs/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,127 @@
English | [简体中文](./docs/zh-cn/README.zh-CN.md) | [日本語](./docs/ja/README-ja.md) | [Português Brasileiro](./docs/pt-br/README-pt-br.md) | [한국어](./docs/ko/README-ko.md) | [Español (España)](./docs/es-es/README-es-es.md) | [Русский](./docs/ru/README-ru.md)

<p align="center"><a href="https://day.js.org/" target="_blank" rel="noopener noreferrer"><img width="550"
src="https://user-images.githubusercontent.com/17680888/39081119-3057bbe2-456e-11e8-862c-646133ad4b43.png"
alt="Day.js"></a></p>
<p align="center">Fast <b>2kB</b> alternative to Moment.js with the same modern API</p>
<br>
<p align="center">
<a href="https://unpkg.com/dayjs/dayjs.min.js"><img
src="http://img.badgesize.io/https://unpkg.com/dayjs/dayjs.min.js?compression=gzip&style=flat-square"
alt="Gzip Size"></a>
<a href="https://www.npmjs.com/package/dayjs"><img src="https://img.shields.io/npm/v/dayjs.svg?style=flat-square&colorB=51C838"
alt="NPM Version"></a>
<a href="https://travis-ci.org/iamkun/dayjs"><img
src="https://img.shields.io/travis/iamkun/dayjs/master.svg?style=flat-square" alt="Build Status"></a>
<a href="https://codecov.io/gh/iamkun/dayjs"><img
src="https://img.shields.io/codecov/c/github/iamkun/dayjs/master.svg?style=flat-square" alt="Codecov"></a>
<a href="https://github.com/iamkun/dayjs/blob/master/LICENSE"><img
src="https://img.shields.io/badge/license-MIT-brightgreen.svg?style=flat-square" alt="License"></a>
<br>
<a href="https://saucelabs.com/u/dayjs">
<img width="750" src="https://user-images.githubusercontent.com/17680888/40040137-8e3323a6-584b-11e8-9dba-bbe577ee8a7b.png" alt="Sauce Test Status">
</a>
</p>

> Day.js is a minimalist JavaScript library that parses, validates, manipulates, and displays dates and times for modern browsers with a largely Moment.js-compatible API. If you use Moment.js, you already know how to use Day.js.
```js
dayjs().startOf('month').add(1, 'day').set('year', 2018).format('YYYY-MM-DD HH:mm:ss');
```

* 🕒 Familiar Moment.js API & patterns
* 💪 Immutable
* 🔥 Chainable
* 🌐 I18n support
* 📦 2kb mini library
* 👫 All browsers supported

---

## Getting Started

### Documentation

You can find for more details, API, and other docs on [day.js.org](https://day.js.org/) website.

### Installation

```console
npm install dayjs --save
```

📚[Installation Guide](https://day.js.org/docs/en/installation/installation)

### API

It's easy to use Day.js APIs to parse, validate, manipulate, and display dates and times.

```javascript
dayjs('2018-08-08') // parse

dayjs().format('{YYYY} MM-DDTHH:mm:ss SSS [Z] A') // display

dayjs().set('month', 3).month() // get & set

dayjs().add(1, 'year') // manipulate

dayjs().isBefore(dayjs()) // query
```

📚[API Reference](https://day.js.org/docs/en/parse/parse)

### I18n

Day.js has great support for internationalization.

But none of them will be included in your build unless you use it.

```javascript
import 'dayjs/locale/es' // load on demand

dayjs.locale('es') // use Spanish locale globally

dayjs('2018-05-05').locale('zh-cn').format() // use Chinese Simplified locale in a specific instance
```
📚[Internationalization](https://day.js.org/docs/en/i18n/i18n)

### Plugin

A plugin is an independent module that can be added to Day.js to extend functionality or add new features.

```javascript
import advancedFormat from 'dayjs/plugin/advancedFormat' // load on demand

dayjs.extend(advancedFormat) // use plugin

dayjs().format('Q Do k kk X x') // more available formats
```

📚[Plugin List](https://day.js.org/docs/en/plugin/plugin)

## Sponsors

Support this project by becoming a sponsor. Your logo will show up here with a link to your website. [[Become a sponsor](https://opencollective.com/dayjs#sponsor)]

<a href="https://opencollective.com/dayjs/sponsor/0/website" target="_blank"><img src="https://opencollective.com/dayjs/sponsor/0/avatar.svg"></a>
<a href="https://opencollective.com/dayjs/sponsor/1/website" target="_blank"><img src="https://opencollective.com/dayjs/sponsor/1/avatar.svg"></a>
<a href="https://opencollective.com/dayjs/sponsor/2/website" target="_blank"><img src="https://opencollective.com/dayjs/sponsor/2/avatar.svg"></a>
<a href="https://opencollective.com/dayjs/sponsor/3/website" target="_blank"><img src="https://opencollective.com/dayjs/sponsor/3/avatar.svg"></a>

## Contributors

This project exists thanks to all the people who contribute.

Please give us a 💖 star 💖 to support us. Thank you.

And thank you to all our backers! 🙏

<a href="https://opencollective.com/dayjs/backer/0/website?requireActive=false" target="_blank"><img src="https://opencollective.com/dayjs/backer/0/avatar.svg?requireActive=false"></a>
<a href="https://opencollective.com/dayjs/backer/1/website?requireActive=false" target="_blank"><img src="https://opencollective.com/dayjs/backer/1/avatar.svg?requireActive=false"></a>
<a href="https://opencollective.com/dayjs/backer/2/website?requireActive=false" target="_blank"><img src="https://opencollective.com/dayjs/backer/2/avatar.svg?requireActive=false"></a>
<a href="https://opencollective.com/dayjs/backer/3/website?requireActive=false" target="_blank"><img src="https://opencollective.com/dayjs/backer/3/avatar.svg?requireActive=false"></a>
<a href="https://opencollective.com/dayjs#backers" target="_blank"><img src="https://opencollective.com/dayjs/contributors.svg?width=890" /></a>

## License

Day.js is licensed under a [MIT License](./LICENSE).
1 change: 1 addition & 0 deletions lib/dayjs/dayjs.min.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

25 changes: 25 additions & 0 deletions lib/dayjs/esm/constant.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
export var SECONDS_A_MINUTE = 60;
export var SECONDS_A_HOUR = SECONDS_A_MINUTE * 60;
export var SECONDS_A_DAY = SECONDS_A_HOUR * 24;
export var SECONDS_A_WEEK = SECONDS_A_DAY * 7;
export var MILLISECONDS_A_SECOND = 1e3;
export var MILLISECONDS_A_MINUTE = SECONDS_A_MINUTE * MILLISECONDS_A_SECOND;
export var MILLISECONDS_A_HOUR = SECONDS_A_HOUR * MILLISECONDS_A_SECOND;
export var MILLISECONDS_A_DAY = SECONDS_A_DAY * MILLISECONDS_A_SECOND;
export var MILLISECONDS_A_WEEK = SECONDS_A_WEEK * MILLISECONDS_A_SECOND; // English locales

export var MS = 'millisecond';
export var S = 'second';
export var MIN = 'minute';
export var H = 'hour';
export var D = 'day';
export var W = 'week';
export var M = 'month';
export var Q = 'quarter';
export var Y = 'year';
export var DATE = 'date';
export var FORMAT_DEFAULT = 'YYYY-MM-DDTHH:mm:ssZ';
export var INVALID_DATE_STRING = 'Invalid Date'; // regex

export var REGEX_PARSE = /^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[^0-9]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?.?(\d+)?$/;
export var REGEX_FORMAT = /\[([^\]]+)]|Y{2,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g;
Loading

0 comments on commit 1727ba9

Please sign in to comment.