From 3912d6f8063d0d2f3cb4498a7167186ae70581e3 Mon Sep 17 00:00:00 2001 From: Joffrey JAFFEUX Date: Mon, 13 May 2019 15:09:04 +0200 Subject: [PATCH] DEV: pikaday 1.8.0 (#7536) --- package.json | 2 +- public/javascripts/pikaday.js | 18 +++++++++++++++--- yarn.lock | 12 +++++------- 3 files changed, 21 insertions(+), 11 deletions(-) diff --git a/package.json b/package.json index f409d9450d4..ed27419ea4d 100644 --- a/package.json +++ b/package.json @@ -28,7 +28,7 @@ "moment-timezone": "0.5.25", "moment-timezone-names-translations": "https://github.com/discourse/moment-timezone-names-translations", "mousetrap": "https://github.com/discourse/mousetrap#firefox-alt-key", - "pikaday": "1.7.0", + "pikaday": "1.8.0", "resumablejs": "1.1.0", "spectrum-colorpicker": "1.8.0" }, diff --git a/public/javascripts/pikaday.js b/public/javascripts/pikaday.js index a13bf97eaed..8dae8382cde 100644 --- a/public/javascripts/pikaday.js +++ b/public/javascripts/pikaday.js @@ -1,7 +1,7 @@ /*! * Pikaday * - * Copyright © 2014 David Bushell | BSD & MIT license | https://github.com/dbushell/Pikaday + * Copyright © 2014 David Bushell | BSD & MIT license | https://github.com/Pikaday/Pikaday */ (function (root, factory) @@ -183,6 +183,9 @@ // automatically show/hide the picker on `field` focus (default `true` if `field` is set) bound: undefined, + // data-attribute on the input field with an aria assistance tekst (only applied when `bound` is set) + ariaLabel: 'Use the arrow keys to pick a date', + // position of the datepicker, relative to the field (default to bottom & left) // ('bottom' & 'left' keywords are not used, 'top' & 'right' are modifier on the bottom/left position) position: 'bottom left', @@ -1023,13 +1026,13 @@ if (opts.bound) { // let the screen reader user know to use arrow keys - opts.field.setAttribute('aria-label', 'Use the arrow keys to pick a date'); + opts.field.setAttribute('aria-label', opts.ariaLabel); } }, adjustPosition: function() { - var field, pEl, width, height, viewportWidth, viewportHeight, scrollTop, left, top, clientRect; + var field, pEl, width, height, viewportWidth, viewportHeight, scrollTop, left, top, clientRect, leftAligned, bottomAligned; if (this._o.container) return; @@ -1042,6 +1045,8 @@ viewportWidth = window.innerWidth || document.documentElement.clientWidth; viewportHeight = window.innerHeight || document.documentElement.clientHeight; scrollTop = window.pageYOffset || document.body.scrollTop || document.documentElement.scrollTop; + leftAligned = true; + bottomAligned = true; if (typeof field.getBoundingClientRect === 'function') { clientRect = field.getBoundingClientRect(); @@ -1064,6 +1069,7 @@ ) ) { left = left - width + field.offsetWidth; + leftAligned = false; } if ((this._o.reposition && top + height > viewportHeight + scrollTop) || ( @@ -1072,10 +1078,16 @@ ) ) { top = top - height - field.offsetHeight; + bottomAligned = false; } this.el.style.left = left + 'px'; this.el.style.top = top + 'px'; + + addClass(this.el, leftAligned ? 'left-aligned' : 'right-aligned'); + addClass(this.el, bottomAligned ? 'bottom-aligned' : 'top-aligned'); + removeClass(this.el, !leftAligned ? 'left-aligned' : 'right-aligned'); + removeClass(this.el, !bottomAligned ? 'bottom-aligned' : 'top-aligned'); }, /** diff --git a/yarn.lock b/yarn.lock index 4fb8d8dfdef..f8cb1c31414 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1628,7 +1628,7 @@ moment@2.24.0, "moment@>= 2.9.0": resolved "https://registry.yarnpkg.com/moment/-/moment-2.24.0.tgz#0d055d53f5052aa653c9f6eb68bb5d12bf5c2b5b" integrity sha512-bV7f+6l2QigeBBZSM/6yTNq4P2fNpSWj/0e7jQcy87A8e7o2nAfP/34/2ky5Vw4B9S446EtIhodAzkFCcR4dQg== -moment@2.x, moment@^2.10.2: +moment@^2.10.2: version "2.22.2" resolved "https://registry.yarnpkg.com/moment/-/moment-2.22.2.tgz#3c257f9839fc0e93ff53149632239eb90783ff66" integrity sha1-PCV/mDn8DpP/UxSWMiOeuQeD/2Y= @@ -1828,12 +1828,10 @@ pend@~1.2.0: resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50" integrity sha1-elfrVQpng/kRUzH89GY9XI4AelA= -pikaday@1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/pikaday/-/pikaday-1.7.0.tgz#78bf26e709f7c135b674762bbab79d75ac589ab6" - integrity sha512-b1z65oFulNTKOdcg9+wTnZWBzfekf1AqPMCmmK9qH6aT7stqDyh76G6nLeuYr3WqchjW/7QLOBFmok14sCecsA== - optionalDependencies: - moment "2.x" +pikaday@1.8.0: + version "1.8.0" + resolved "https://registry.yarnpkg.com/pikaday/-/pikaday-1.8.0.tgz#ce930e257042e852e6aadee1115e01554b2d71c5" + integrity sha512-SgGxMYX0NHj9oQnMaSyAipr2gOrbB4Lfs/TJTb6H6hRHs39/5c5VZi73Q8hr53+vWjdn6HzkWcj8Vtl3c9ziaA== pluralize@^7.0.0: version "7.0.0"