@recras/online-booking-js 2.0.2 → 2.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -8,10 +8,10 @@ jobs:
8
8
  build:
9
9
  runs-on: ubuntu-latest
10
10
  steps:
11
- - uses: actions/checkout@v2
12
- - uses: actions/setup-node@v2
11
+ - uses: actions/checkout@v3
12
+ - uses: actions/setup-node@v3
13
13
  with:
14
- node-version: 12
14
+ node-version: 16
15
15
  - run: npm ci
16
16
  - run: npm test
17
17
 
@@ -19,10 +19,10 @@ jobs:
19
19
  needs: build
20
20
  runs-on: ubuntu-latest
21
21
  steps:
22
- - uses: actions/checkout@v2
23
- - uses: actions/setup-node@v2
22
+ - uses: actions/checkout@v3
23
+ - uses: actions/setup-node@v3
24
24
  with:
25
- node-version: 12
25
+ node-version: 16
26
26
  registry-url: https://registry.npmjs.org/
27
27
  - run: npm ci
28
28
  - run: npm run build
package/README.md CHANGED
@@ -1,7 +1,7 @@
1
1
  [![Build Status](https://travis-ci.org/Recras/online-booking-js.svg?branch=master)](https://travis-ci.org/Recras/online-booking-js)
2
2
 
3
3
  # Recras JS Integration Library
4
- Version: 2.0.2
4
+ Version: 2.0.4
5
5
 
6
6
  JS library for easy online booking, contact form, and voucher integration
7
7
 
package/changelog.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # Changelog
2
2
 
3
+ ## 2.0.4 (2022-10-07)
4
+ * Contact form/Voucher sales no longer shows error messages inline, but after the form
5
+
6
+ ## 2.0.3 (2022-07-21)
7
+ * Fix entering DD-MM-YYYY dates by hand
8
+
3
9
  ## 2.0.2 (2022-06-29)
4
10
  * No changes from 2.0.1 - previous version on NPM contained wrong compiled version
5
11
 
@@ -20,7 +20,7 @@ function _objectEntries(obj) {
20
20
 
21
21
  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
22
22
 
23
- function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
23
+ function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
24
24
 
25
25
  function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
26
26
 
@@ -50,7 +50,7 @@ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _d
50
50
 
51
51
  /*******************************
52
52
  * Recras integration library *
53
- * v 2.0.2 *
53
+ * v 2.0.4 *
54
54
  *******************************/
55
55
  var RecrasBooking = /*#__PURE__*/function () {
56
56
  function RecrasBooking() {
@@ -1473,7 +1473,7 @@ var RecrasBooking = /*#__PURE__*/function () {
1473
1473
  key: "addDateTimeSelectionHtml",
1474
1474
  value: function addDateTimeSelectionHtml() {
1475
1475
  var today = RecrasDateHelper.datePartOnly(new Date());
1476
- var html = "<form class=\"recras-datetime\">\n <label for=\"recras-onlinebooking-date\">\n ".concat(this.languageHelper.translate('DATE'), "\n </label>\n <input type=\"text\" id=\"recras-onlinebooking-date\" class=\"recras-onlinebooking-date\" min=\"").concat(today, "\" disabled readonly autocomplete=\"off\">\n <label for=\"recras-onlinebooking-time\">\n ").concat(this.languageHelper.translate('TIME'), "\n </label>\n <select id=\"recras-onlinebooking-time\" class=\"recras-onlinebooking-time\" disabled autocomplete=\"off\"></select>\n </form>");
1476
+ var html = "<form class=\"recras-datetime\">\n <label for=\"recras-onlinebooking-date\">\n ".concat(this.languageHelper.translate('DATE'), "\n </label>\n <input type=\"text\" id=\"recras-onlinebooking-date\" class=\"recras-onlinebooking-date\" min=\"").concat(today, "\" disabled autocomplete=\"off\">\n <label for=\"recras-onlinebooking-time\">\n ").concat(this.languageHelper.translate('TIME'), "\n </label>\n <select id=\"recras-onlinebooking-time\" class=\"recras-onlinebooking-time\" disabled autocomplete=\"off\"></select>\n </form>");
1477
1477
  this.appendHtml(html);
1478
1478
  }
1479
1479
  }, {
@@ -1520,7 +1520,8 @@ var RecrasBooking = /*#__PURE__*/function () {
1520
1520
  },
1521
1521
  onSelect: function onSelect(date) {
1522
1522
  return _this24.calendarOnDateSelect(date, pack.id);
1523
- }
1523
+ },
1524
+ parse: RecrasDateHelper.parseMDY
1524
1525
  });
1525
1526
 
1526
1527
  this.datePicker = new Pikaday(pikadayOptions);
@@ -2513,7 +2514,8 @@ var RecrasContactForm = /*#__PURE__*/function () {
2513
2514
  var pikadayOptions = _extends(RecrasCalendarHelper.defaultOptions(), {
2514
2515
  field: _this38.findElement('[data-identifier="boeking.datum"]'),
2515
2516
  i18n: RecrasCalendarHelper.i18n(_this38.languageHelper),
2516
- numberOfMonths: 1
2517
+ numberOfMonths: 1,
2518
+ parse: RecrasDateHelper.parseMDY
2517
2519
  });
2518
2520
 
2519
2521
  new Pikaday(pikadayOptions);
@@ -2548,27 +2550,40 @@ var RecrasContactForm = /*#__PURE__*/function () {
2548
2550
  element.parentNode.insertAdjacentHTML('afterend', "<div class=\"booking-error\">".concat(errorMsg, "</div>"));
2549
2551
  }
2550
2552
  }, {
2551
- key: "showInlineErrors",
2552
- value: function showInlineErrors() {
2553
+ key: "showErrors",
2554
+ value: function showErrors() {
2555
+ var errors = [];
2556
+
2553
2557
  for (var _i20 = 0, _this$getEmptyRequire2 = this.getEmptyRequiredFields(); _i20 < _this$getEmptyRequire2.length; _i20++) {
2554
2558
  var el = _this$getEmptyRequire2[_i20];
2555
2559
  var labelEl = el.parentNode.querySelector('label');
2556
2560
  var requiredText = this.languageHelper.translate('CONTACT_FORM_FIELD_REQUIRED', {
2557
2561
  FIELD_NAME: labelEl.innerText
2558
2562
  });
2559
- el.parentNode.insertAdjacentHTML('afterend', "<div class=\"booking-error\">".concat(requiredText, "</div>"));
2563
+ errors.push(requiredText);
2560
2564
  }
2561
2565
 
2562
2566
  for (var _i22 = 0, _this$getInvalidField2 = this.getInvalidFields(); _i22 < _this$getInvalidField2.length; _i22++) {
2563
2567
  var _el = _this$getInvalidField2[_i22];
2564
2568
 
2565
- var _labelEl = _el.parentNode.querySelector('label');
2569
+ var parentEl = _el.closest('div');
2570
+
2571
+ if (parentEl.classList.contains('radioGroup')) {
2572
+ parentEl = parentEl.parentNode.closest('div');
2573
+ }
2566
2574
 
2575
+ var _labelEl = parentEl.querySelector('label');
2576
+
2577
+ console.log(_labelEl, parentEl.querySelectorAll('label'));
2567
2578
  var invalidText = this.languageHelper.translate('CONTACT_FORM_FIELD_INVALID', {
2568
2579
  FIELD_NAME: _labelEl.innerText
2569
2580
  });
2570
- this.showInlineError(_el, invalidText);
2581
+ errors.push(invalidText);
2571
2582
  }
2583
+
2584
+ errors = _toConsumableArray(new Set(errors)); // Only unique text
2585
+
2586
+ this.findElement('button[type="submit"]').insertAdjacentHTML('afterend', "<div class=\"booking-error\"><ul><li>".concat(errors.join('<li>'), "</ul></div>"));
2572
2587
  }
2573
2588
  }, {
2574
2589
  key: "showLabel",
@@ -2599,7 +2614,7 @@ var RecrasContactForm = /*#__PURE__*/function () {
2599
2614
  submitButton.parentNode.insertAdjacentHTML('beforeend', "<div class=\"booking-error\">".concat(this.languageHelper.translate('ERR_CONTACT_FORM_EMPTY'), "</div>"));
2600
2615
  return false;
2601
2616
  } else if (this.hasEmptyRequiredFields() || !this.isValid()) {
2602
- this.showInlineErrors();
2617
+ this.showErrors();
2603
2618
  return false;
2604
2619
  }
2605
2620
 
@@ -2749,6 +2764,15 @@ var RecrasDateHelper = /*#__PURE__*/function () {
2749
2764
 
2750
2765
  return date;
2751
2766
  }
2767
+ }, {
2768
+ key: "parseMDY",
2769
+ value: function parseMDY(dateStr) {
2770
+ var parts = dateStr.split('-');
2771
+ var day = parseInt(parts[0], 10);
2772
+ var month = parseInt(parts[1], 10) - 1;
2773
+ var year = parseInt(parts[2], 10);
2774
+ return new Date(year, month, day);
2775
+ }
2752
2776
  }, {
2753
2777
  key: "setTimeForDate",
2754
2778
  value: function setTimeForDate(date, timeStr) {
@@ -3813,7 +3837,7 @@ var RecrasVoucher = /*#__PURE__*/function () {
3813
3837
  this.contactForm.removeErrors();
3814
3838
 
3815
3839
  if (this.contactForm.hasEmptyRequiredFields() || !this.contactForm.isValid() || !this.contactForm.checkRequiredCheckboxes()) {
3816
- this.contactForm.showInlineErrors();
3840
+ this.contactForm.showErrors();
3817
3841
  shouldDisable = true;
3818
3842
  }
3819
3843