@nrk/core-datepicker
Advanced tools
Comparing version 3.0.8 to 3.1.0
@@ -0,1 +1,2 @@ | ||
/*! @nrk/core-datepicker v3.1.0 - Copyright (c) 2017-2021 NRK */ | ||
'use strict'; | ||
@@ -56,3 +57,3 @@ | ||
function isNativeReflectConstruct() { | ||
function _isNativeReflectConstruct() { | ||
if (typeof Reflect === "undefined" || !Reflect.construct) return false; | ||
@@ -63,3 +64,3 @@ if (Reflect.construct.sham) return false; | ||
try { | ||
Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); | ||
Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); | ||
return true; | ||
@@ -72,3 +73,3 @@ } catch (e) { | ||
function _construct(Parent, args, Class) { | ||
if (isNativeReflectConstruct()) { | ||
if (_isNativeReflectConstruct()) { | ||
_construct = Reflect.construct; | ||
@@ -143,11 +144,29 @@ } else { | ||
function _createSuper(Derived) { | ||
var hasNativeReflectConstruct = _isNativeReflectConstruct(); | ||
return function _createSuperInternal() { | ||
var Super = _getPrototypeOf(Derived), | ||
result; | ||
if (hasNativeReflectConstruct) { | ||
var NewTarget = _getPrototypeOf(this).constructor; | ||
result = Reflect.construct(Super, arguments, NewTarget); | ||
} else { | ||
result = Super.apply(this, arguments); | ||
} | ||
return _possibleConstructorReturn(this, result); | ||
}; | ||
} | ||
var IS_BROWSER = typeof window !== 'undefined'; | ||
var IS_ANDROID = IS_BROWSER && /(android)/i.test(navigator.userAgent); // Bad, but needed | ||
IS_BROWSER && /(android)/i.test(navigator.userAgent); // Bad, but needed | ||
var IS_IOS = IS_BROWSER && /iPad|iPhone|iPod/.test(String(navigator.platform)); // Mock HTMLElement for Node | ||
IS_BROWSER && /iPad|iPhone|iPod/.test(String(navigator.platform)); | ||
// Mock HTMLElement for Node | ||
if (!IS_BROWSER && !global.HTMLElement) { | ||
global.HTMLElement = | ||
/*#__PURE__*/ | ||
function () { | ||
global.HTMLElement = /*#__PURE__*/function () { | ||
function _class() { | ||
@@ -262,9 +281,7 @@ _classCallCheck(this, _class); | ||
function createCommonjsModule(fn, module) { | ||
return module = { exports: {} }, fn(module, module.exports), module.exports; | ||
} | ||
var index_min = {exports: {}}; | ||
var index_min = createCommonjsModule(function (module, exports) { | ||
(function (module, exports) { | ||
!function (e, t) { | ||
module.exports = t() ; | ||
module.exports = t() ; | ||
}(commonjsGlobal, function () { | ||
@@ -330,4 +347,6 @@ | ||
}); | ||
}); | ||
})(index_min); | ||
var _parse = index_min.exports; | ||
var MASK = { | ||
@@ -356,11 +375,11 @@ year: '*-m-d', | ||
var CoreDatepicker = | ||
/*#__PURE__*/ | ||
function (_HTMLElement) { | ||
var CoreDatepicker = /*#__PURE__*/function (_HTMLElement) { | ||
_inherits(CoreDatepicker, _HTMLElement); | ||
var _super = _createSuper(CoreDatepicker); | ||
function CoreDatepicker() { | ||
_classCallCheck(this, CoreDatepicker); | ||
return _possibleConstructorReturn(this, _getPrototypeOf(CoreDatepicker).apply(this, arguments)); | ||
return _super.apply(this, arguments); | ||
} | ||
@@ -396,3 +415,3 @@ | ||
value: function attributeChangedCallback() { | ||
if (!this._date) return; // Only render after connectedCallback | ||
if (!this._date) return; // Only render after connectedCallback and before disconnectedCallback | ||
@@ -411,3 +430,3 @@ if (this.disabled(this.date) && !this.disabled(this._date)) return this.date = this._date; // Jump back | ||
if (event.defaultPrevented || event.ctrlKey || event.metaKey || event.shiftKey || event.altKey || event.type === 'keydown' && !KEYS[event.keyCode]) return; | ||
if (!this.contains(event.target) && !closest(event.target, "[for=\"".concat(this.id, "\"]"))) return; | ||
if (!this.contains(event.target) && !closest(event.target, "[for=\"".concat(this.id, "\"],[data-for=\"").concat(this.id, "\"]"))) return; | ||
if (event.type === 'change') this.date = MASK[event.target.getAttribute('data-type')].replace('*', event.target.value);else if (event.type === 'click') { | ||
@@ -434,3 +453,3 @@ var _button = closest(event.target, 'button[value]'); | ||
value: function parse(val, from) { | ||
return index_min(val, from || this._date); | ||
return _parse(val, from || this._date); | ||
} | ||
@@ -492,3 +511,3 @@ }, { | ||
get: function get() { | ||
return index_min(this.getAttribute('timestamp') || this._date || Date.now()); | ||
return _parse(this.getAttribute('timestamp') || this._date || Date.now()); | ||
}, | ||
@@ -500,15 +519,15 @@ set: function set(val) { | ||
key: "months", | ||
get: function get() { | ||
return (this.getAttribute('months') || MONTHS).split(/\s*,\s*/); | ||
}, | ||
set: function set(val) { | ||
this.setAttribute('months', [].concat(val).join(',')); | ||
}, | ||
get: function get() { | ||
return (this.getAttribute('months') || MONTHS).split(/\s*,\s*/); | ||
} | ||
}, { | ||
key: "days", | ||
get: function get() { | ||
return (this.getAttribute('days') || DAYS).split(/\s*,\s*/); | ||
}, | ||
set: function set(val) { | ||
this.setAttribute('days', [].concat(val).join(',')); | ||
}, | ||
get: function get() { | ||
return (this.getAttribute('days') || DAYS).split(/\s*,\s*/); | ||
} | ||
@@ -523,3 +542,3 @@ }], [{ | ||
return CoreDatepicker; | ||
}(_wrapNativeSuper(HTMLElement)); | ||
}( /*#__PURE__*/_wrapNativeSuper(HTMLElement)); | ||
@@ -526,0 +545,0 @@ var pad = function pad(val) { |
@@ -29,3 +29,3 @@ import { addStyle, closest, dispatchEvent, toggleAttribute, queryAll } from '../utils' | ||
attributeChangedCallback () { | ||
if (!this._date) return // Only render after connectedCallback | ||
if (!this._date) return // Only render after connectedCallback and before disconnectedCallback | ||
if (this.disabled(this.date) && !this.disabled(this._date)) return (this.date = this._date) // Jump back | ||
@@ -42,3 +42,3 @@ if (this.diff(this.date)) dispatchEvent(this, 'datepicker.change', this._date = this.date) | ||
if (event.defaultPrevented || event.ctrlKey || event.metaKey || event.shiftKey || event.altKey || (event.type === 'keydown' && !KEYS[event.keyCode])) return | ||
if (!this.contains(event.target) && !closest(event.target, `[for="${this.id}"]`)) return | ||
if (!this.contains(event.target) && !closest(event.target, `[for="${this.id}"],[data-for="${this.id}"]`)) return | ||
if (event.type === 'change') this.date = MASK[event.target.getAttribute('data-type')].replace('*', event.target.value) | ||
@@ -45,0 +45,0 @@ else if (event.type === 'click') { |
@@ -0,9 +1,12 @@ | ||
/*! @nrk/core-datepicker v3.1.0 - Copyright (c) 2017-2021 NRK */ | ||
(function (global, factory) { | ||
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('react')) : | ||
typeof define === 'function' && define.amd ? define(['react'], factory) : | ||
(global = global || self, global.CoreDatepicker = factory(global.React)); | ||
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.CoreDatepicker = factory(global.React)); | ||
}(this, (function (React) { 'use strict'; | ||
React = React && React.hasOwnProperty('default') ? React['default'] : React; | ||
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; } | ||
var React__default = /*#__PURE__*/_interopDefaultLegacy(React); | ||
function _classCallCheck(instance, Constructor) { | ||
@@ -62,3 +65,3 @@ if (!(instance instanceof Constructor)) { | ||
function isNativeReflectConstruct() { | ||
function _isNativeReflectConstruct() { | ||
if (typeof Reflect === "undefined" || !Reflect.construct) return false; | ||
@@ -69,3 +72,3 @@ if (Reflect.construct.sham) return false; | ||
try { | ||
Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); | ||
Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); | ||
return true; | ||
@@ -78,3 +81,3 @@ } catch (e) { | ||
function _construct(Parent, args, Class) { | ||
if (isNativeReflectConstruct()) { | ||
if (_isNativeReflectConstruct()) { | ||
_construct = Reflect.construct; | ||
@@ -149,11 +152,29 @@ } else { | ||
function _createSuper(Derived) { | ||
var hasNativeReflectConstruct = _isNativeReflectConstruct(); | ||
return function _createSuperInternal() { | ||
var Super = _getPrototypeOf(Derived), | ||
result; | ||
if (hasNativeReflectConstruct) { | ||
var NewTarget = _getPrototypeOf(this).constructor; | ||
result = Reflect.construct(Super, arguments, NewTarget); | ||
} else { | ||
result = Super.apply(this, arguments); | ||
} | ||
return _possibleConstructorReturn(this, result); | ||
}; | ||
} | ||
var IS_BROWSER = typeof window !== 'undefined'; | ||
var IS_ANDROID = IS_BROWSER && /(android)/i.test(navigator.userAgent); // Bad, but needed | ||
IS_BROWSER && /(android)/i.test(navigator.userAgent); // Bad, but needed | ||
var IS_IOS = IS_BROWSER && /iPad|iPhone|iPod/.test(String(navigator.platform)); // Mock HTMLElement for Node | ||
IS_BROWSER && /iPad|iPhone|iPod/.test(String(navigator.platform)); | ||
// Mock HTMLElement for Node | ||
if (!IS_BROWSER && !global.HTMLElement) { | ||
global.HTMLElement = | ||
/*#__PURE__*/ | ||
function () { | ||
global.HTMLElement = /*#__PURE__*/function () { | ||
function _class() { | ||
@@ -184,3 +205,3 @@ _classCallCheck(this, _class); | ||
var closest = function () { | ||
var closest$1 = function () { | ||
var proto = typeof window === 'undefined' ? {} : window.Element.prototype; | ||
@@ -269,9 +290,7 @@ var match = proto.matches || proto.msMatchesSelector || proto.webkitMatchesSelector; | ||
function createCommonjsModule(fn, module) { | ||
return module = { exports: {} }, fn(module, module.exports), module.exports; | ||
} | ||
var index_min = {exports: {}}; | ||
var index_min = createCommonjsModule(function (module, exports) { | ||
(function (module, exports) { | ||
!function (e, t) { | ||
module.exports = t() ; | ||
module.exports = t() ; | ||
}(commonjsGlobal, function () { | ||
@@ -337,4 +356,6 @@ | ||
}); | ||
}); | ||
})(index_min); | ||
var _parse = index_min.exports; | ||
var MASK = { | ||
@@ -363,11 +384,11 @@ year: '*-m-d', | ||
var CoreDatepicker = | ||
/*#__PURE__*/ | ||
function (_HTMLElement) { | ||
var CoreDatepicker = /*#__PURE__*/function (_HTMLElement) { | ||
_inherits(CoreDatepicker, _HTMLElement); | ||
var _super = _createSuper(CoreDatepicker); | ||
function CoreDatepicker() { | ||
_classCallCheck(this, CoreDatepicker); | ||
return _possibleConstructorReturn(this, _getPrototypeOf(CoreDatepicker).apply(this, arguments)); | ||
return _super.apply(this, arguments); | ||
} | ||
@@ -403,3 +424,3 @@ | ||
value: function attributeChangedCallback() { | ||
if (!this._date) return; // Only render after connectedCallback | ||
if (!this._date) return; // Only render after connectedCallback and before disconnectedCallback | ||
@@ -418,11 +439,11 @@ if (this.disabled(this.date) && !this.disabled(this._date)) return this.date = this._date; // Jump back | ||
if (event.defaultPrevented || event.ctrlKey || event.metaKey || event.shiftKey || event.altKey || event.type === 'keydown' && !KEYS[event.keyCode]) return; | ||
if (!this.contains(event.target) && !closest(event.target, "[for=\"".concat(this.id, "\"]"))) return; | ||
if (!this.contains(event.target) && !closest$1(event.target, "[for=\"".concat(this.id, "\"],[data-for=\"").concat(this.id, "\"]"))) return; | ||
if (event.type === 'change') this.date = MASK[event.target.getAttribute('data-type')].replace('*', event.target.value);else if (event.type === 'click') { | ||
var _button = closest(event.target, 'button[value]'); | ||
var _button = closest$1(event.target, 'button[value]'); | ||
var _table = closest(event.target, 'table'); | ||
var _table = closest$1(event.target, 'table'); | ||
if (_button) this.date = _button.value; | ||
if (_button && _table) dispatchEvent(this, 'datepicker.click.day'); | ||
} else if (event.type === 'keydown' && closest(event.target, 'table')) { | ||
} else if (event.type === 'keydown' && closest$1(event.target, 'table')) { | ||
this.date = KEYS[event.keyCode]; | ||
@@ -441,3 +462,3 @@ this.querySelector('[autofocus]').focus(); | ||
value: function parse(val, from) { | ||
return index_min(val, from || this._date); | ||
return _parse(val, from || this._date); | ||
} | ||
@@ -499,3 +520,3 @@ }, { | ||
get: function get() { | ||
return index_min(this.getAttribute('timestamp') || this._date || Date.now()); | ||
return _parse(this.getAttribute('timestamp') || this._date || Date.now()); | ||
}, | ||
@@ -507,15 +528,15 @@ set: function set(val) { | ||
key: "months", | ||
get: function get() { | ||
return (this.getAttribute('months') || MONTHS).split(/\s*,\s*/); | ||
}, | ||
set: function set(val) { | ||
this.setAttribute('months', [].concat(val).join(',')); | ||
}, | ||
get: function get() { | ||
return (this.getAttribute('months') || MONTHS).split(/\s*,\s*/); | ||
} | ||
}, { | ||
key: "days", | ||
get: function get() { | ||
return (this.getAttribute('days') || DAYS).split(/\s*,\s*/); | ||
}, | ||
set: function set(val) { | ||
this.setAttribute('days', [].concat(val).join(',')); | ||
}, | ||
get: function get() { | ||
return (this.getAttribute('days') || DAYS).split(/\s*,\s*/); | ||
} | ||
@@ -530,3 +551,3 @@ }], [{ | ||
return CoreDatepicker; | ||
}(_wrapNativeSuper(HTMLElement)); | ||
}( /*#__PURE__*/_wrapNativeSuper(HTMLElement)); | ||
@@ -611,3 +632,3 @@ var pad = function pad(val) { | ||
var version = "3.0.8"; | ||
var version = "3.1.0"; | ||
@@ -621,3 +642,3 @@ /** | ||
var closest$1 = function () { | ||
var closest = function () { | ||
var proto = typeof window === 'undefined' ? {} : window.Element.prototype; | ||
@@ -668,99 +689,96 @@ var match = proto.matches || proto.msMatchesSelector || proto.webkitMatchesSelector; | ||
var tagName = (dashCase + "-" + (options.suffix || 'react')).replace(/\W+/g, '-').toLowerCase(); | ||
return ( | ||
/*@__PURE__*/ | ||
function (superclass) { | ||
function anonymous(props) { | ||
var this$1 = this; | ||
superclass.call(this, props); // Register ref prop for accessing custom element https://reactjs.org/docs/refs-and-the-dom.html#callback-refs | ||
return function (superclass) { | ||
function anonymous(props) { | ||
var this$1$1 = this; | ||
superclass.call(this, props); // Register ref prop for accessing custom element https://reactjs.org/docs/refs-and-the-dom.html#callback-refs | ||
this.ref = function (el) { | ||
if (typeof this$1.props.forwardRef === 'function') { | ||
this$1.props.forwardRef(el); | ||
} else if (this$1.props.forwardRef) { | ||
this$1.props.forwardRef.current = el; | ||
} | ||
this.ref = function (el) { | ||
if (typeof this$1$1.props.forwardRef === 'function') { | ||
this$1$1.props.forwardRef(el); | ||
} else if (this$1$1.props.forwardRef) { | ||
this$1$1.props.forwardRef.current = el; | ||
} | ||
return this$1.el = el; | ||
}; // Register event handler on component for each custom event | ||
return this$1$1.el = el; | ||
}; // Register event handler on component for each custom event | ||
Object.keys(eventMap).forEach(function (eventName) { | ||
var onEventName = eventMap[eventName]; | ||
Object.keys(eventMap).forEach(function (eventName) { | ||
var onEventName = eventMap[eventName]; | ||
this$1[eventName] = function (event) { | ||
if (this$1.props[onEventName] && closest$1(event.target, this$1.el.nodeName) === this$1.el) { | ||
this$1.props[onEventName](event); | ||
} | ||
}; | ||
}); | ||
} | ||
this$1$1[eventName] = function (event) { | ||
if (this$1$1.props[onEventName] && closest(event.target, this$1$1.el.nodeName) === this$1$1.el) { | ||
this$1$1.props[onEventName](event); | ||
} | ||
}; | ||
}); | ||
} | ||
if (superclass) anonymous.__proto__ = superclass; | ||
anonymous.prototype = Object.create(superclass && superclass.prototype); | ||
anonymous.prototype.constructor = anonymous; | ||
if (superclass) anonymous.__proto__ = superclass; | ||
anonymous.prototype = Object.create(superclass && superclass.prototype); | ||
anonymous.prototype.constructor = anonymous; | ||
anonymous.prototype.componentDidMount = function componentDidMount() { | ||
var this$1 = this; // Run connectedCallback() after React componentDidMount() to allow React hydration to run first | ||
anonymous.prototype.componentDidMount = function componentDidMount() { | ||
var this$1$1 = this; // Run connectedCallback() after React componentDidMount() to allow React hydration to run first | ||
if (!window.customElements.get(tagName)) { | ||
window.customElements.define(tagName, elementClass); | ||
} // Populate properties on custom element | ||
if (!window.customElements.get(tagName)) { | ||
window.customElements.define(tagName, elementClass); | ||
} // Populate properties on custom element | ||
customProps.forEach(function (propName) { | ||
if (propName in this$1.props) { | ||
this$1.el[propName] = this$1.props[propName]; | ||
} | ||
}); // Register events on custom element | ||
customProps.forEach(function (propName) { | ||
if (propName in this$1$1.props) { | ||
this$1$1.el[propName] = this$1$1.props[propName]; | ||
} | ||
}); // Register events on custom element | ||
customEvents.forEach(function (eventName) { | ||
this$1.el.addEventListener(eventName, this$1[eventName]); | ||
}); | ||
}; | ||
customEvents.forEach(function (eventName) { | ||
this$1$1.el.addEventListener(eventName, this$1$1[eventName]); | ||
}); | ||
}; | ||
anonymous.prototype.componentDidUpdate = function componentDidUpdate(prev) { | ||
var this$1 = this; // Sync prop changes to custom element | ||
anonymous.prototype.componentDidUpdate = function componentDidUpdate(prev) { | ||
var this$1$1 = this; // Sync prop changes to custom element | ||
customProps.forEach(function (propName) { | ||
if (prev[propName] !== this$1.props[propName]) { | ||
this$1.el[propName] = this$1.props[propName]; | ||
} | ||
}); | ||
}; | ||
customProps.forEach(function (propName) { | ||
if (prev[propName] !== this$1$1.props[propName]) { | ||
this$1$1.el[propName] = this$1$1.props[propName]; | ||
} | ||
}); | ||
}; | ||
anonymous.prototype.componentWillUnmount = function componentWillUnmount() { | ||
var this$1 = this; // Remove event handlers on custom element on unmount | ||
anonymous.prototype.componentWillUnmount = function componentWillUnmount() { | ||
var this$1$1 = this; // Remove event handlers on custom element on unmount | ||
customEvents.forEach(function (eventName) { | ||
this$1.el.removeEventListener(eventName, this$1[eventName]); | ||
}); | ||
}; | ||
customEvents.forEach(function (eventName) { | ||
this$1$1.el.removeEventListener(eventName, this$1$1[eventName]); | ||
}); | ||
}; | ||
anonymous.prototype.render = function render() { | ||
var this$1 = this; // Convert React props to CustomElement props https://github.com/facebook/react/issues/12810 | ||
anonymous.prototype.render = function render() { | ||
var this$1$1 = this; // Convert React props to CustomElement props https://github.com/facebook/react/issues/12810 | ||
return React.createElement(tagName, Object.keys(this.props).reduce(function (thisProps, propName) { | ||
if (skipProps.indexOf(propName) === -1) { | ||
// Do not render customEvents and custom props as attributes | ||
if (propName === 'className') { | ||
thisProps["class"] = this$1.props[propName]; | ||
} // Fixes className for custom elements | ||
else if (this$1.props[propName] === true) { | ||
thisProps[propName] = ''; | ||
} // Fixes boolean attributes | ||
else if (this$1.props[propName] !== false) { | ||
thisProps[propName] = this$1.props[propName]; | ||
} // Pass only truthy, non-function props | ||
return React__default['default'].createElement(tagName, Object.keys(this.props).reduce(function (thisProps, propName) { | ||
if (skipProps.indexOf(propName) === -1) { | ||
// Do not render customEvents and custom props as attributes | ||
if (propName === 'className') { | ||
thisProps["class"] = this$1$1.props[propName]; | ||
} // Fixes className for custom elements | ||
else if (this$1$1.props[propName] === true) { | ||
thisProps[propName] = ''; | ||
} // Fixes boolean attributes | ||
else if (this$1$1.props[propName] !== false) { | ||
thisProps[propName] = this$1$1.props[propName]; | ||
} // Pass only truthy, non-function props | ||
} | ||
} | ||
return thisProps; | ||
}, { | ||
ref: this.ref | ||
})); | ||
}; | ||
return thisProps; | ||
}, { | ||
ref: this.ref | ||
})); | ||
}; | ||
return anonymous; | ||
}(React.Component) | ||
); | ||
return anonymous; | ||
}(React__default['default'].Component); | ||
} | ||
@@ -767,0 +785,0 @@ |
@@ -1,3 +0,3 @@ | ||
/*! @nrk/core-datepicker v3.0.8 - Copyright (c) 2017-2019 NRK */ | ||
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t=t||self).coreDatepicker=e()}(this,function(){"use strict";function e(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function i(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}function r(t){return(r=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}function o(t,e){return(o=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function a(t,e,n){return(a=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch(t){return!1}}()?Reflect.construct:function(t,e,n){var i=[null];i.push.apply(i,e);var r=new(Function.bind.apply(t,i));return n&&o(r,n.prototype),r}).apply(null,arguments)}function u(t){var n="function"==typeof Map?new Map:void 0;return(u=function(t){if(null===t||!function(t){return-1!==Function.toString.call(t).indexOf("[native code]")}(t))return t;if("function"!=typeof t)throw new TypeError("Super expression must either be null or a function");if(void 0!==n){if(n.has(t))return n.get(t);n.set(t,e)}function e(){return a(t,arguments,r(this).constructor)}return e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),o(e,t)})(t)}function n(t,e){return!e||"object"!=typeof e&&"function"!=typeof e?function(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t):e}var t="undefined"!=typeof window;t&&/(android)/i.test(navigator.userAgent),t&&/iPad|iPhone|iPod/.test(String(navigator.platform));t||global.HTMLElement||(global.HTMLElement=function(){return function t(){e(this,t)}}());var c,s,d=(c="undefined"==typeof window?{}:window.Element.prototype,s=c.matches||c.msMatchesSelector||c.webkitMatchesSelector,c.closest?function(t,e){return t.closest(e)}:function(t,e){for(t.correspondingUseElement&&(t=t.correspondingUseElement);t;t=t.parentElement)if(s.call(t,e))return t;return null});function l(t,e,n){var i,r=2<arguments.length&&void 0!==n?n:{},o="prevent_recursive_dispatch_maximum_callstack".concat(e);if(t[o])return!0;t[o]=!0,"function"==typeof window.CustomEvent?i=new window.CustomEvent(e,{bubbles:!0,cancelable:!0,detail:r}):(i=document.createEvent("CustomEvent")).initCustomEvent(e,!0,!0,r);var a=t.dispatchEvent(i);return t[o]=null,a}function f(t,e){var n=1<arguments.length&&void 0!==e?e:document;if(t){if(t.nodeType)return[t];if("string"==typeof t)return[].slice.call(n.querySelectorAll(t));if(t.length)return[].slice.call(t)}return[]}"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self&&self;var h,y=(function(t,e){var b,v,k,w;t.exports=(b={year:"FullYear",month:"Month",week:"Date",day:"Date",hour:"Hours",minute:"Minutes",second:"Seconds"},v=/([+-]\s*\d+)\s*(second|minute|hour|day|week|month|year)|(mon)|(tue)|(wed)|(thu)|(fri)|(sat)|(sun)/g,k=/([-\dy]+)[-/.]([\dm]+)[-/.]([\dd]+)/,w=/([\dh]+):([\dm]+):?([\ds]+)?/,function(t,e){if(isFinite(t))return new Date(Number(t));var n=String(t).toLowerCase(),r=new Date(isFinite(e)&&-1===n.indexOf("now")?Number(e):Date.now()),i=n.match(k)||[],o=i[1];void 0===o&&(o="y");var a=i[2];void 0===a&&(a="m");var u=i[3];void 0===u&&(u="d");var c=n.match(w)||[],s=c[1];void 0===s&&(s="h");var d=c[2];void 0===d&&(d="m");var l=c[3];void 0===l&&(l="s");var f={year:o,month:a,day:u,hour:s,minute:d,second:l};Object.keys(f).forEach(function(t){var e="month"===t?1:0,i=String(r["get"+b[t]]()+e);f[t]=f[t].replace(/[^-\d]+/g,function(t,e,n){return e?i.substr(i.length-n.length+e,t.length):i.substr(0,Math.max(0,i.length-n.length+t.length))})-e});var h=new Date(f.year,Math.min(12,f.month+1),0).getDate();for(r.setFullYear(f.year,Math.min(11,f.month),Math.max(1,Math.min(h,f.day))),r.setHours(Math.min(24,f.hour),Math.min(59,f.minute),Math.min(59,f.second));null!==(f=v.exec(n));){var y=f[2],m=String(f[1]).replace(/\s/g,"")*("week"===y?7:1),p=f.slice(2).indexOf(f[0]),g=r.getDate();y?r["set"+b[y]](r["get"+b[y]]()+m):r.setDate(r.getDate()-(r.getDay()||7)+p),"month"!==y&&"year"!==y||g===r.getDate()||r.setDate(0)}return r})}(h={exports:{}},h.exports),h.exports),m={year:"*-m-d",month:"y-*-d",day:"y-m-*",hour:"*:m",minute:"h:*",second:"h:m:*",timestamp:"*",null:"*"},p={33:"-1month",34:"+1month",35:"y-m-99",36:"y-m-1",37:"-1day",38:"-1week",39:"+1day",40:"+1week"},g=function(){function t(){return e(this,t),n(this,r(t).apply(this,arguments))}return function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&o(t,e)}(t,u(HTMLElement)),function(t,e,n){e&&i(t.prototype,e),n&&i(t,n)}(t,[{key:"connectedCallback",value:function(){var t=this;this._date=this.date,document.addEventListener("click",this),document.addEventListener("change",this),document.addEventListener("keydown",this),setTimeout(function(){return t.attributeChangedCallback()}),function(t,e){var n="style-".concat(t.toLowerCase()),i=e.replace(/\/\*[^!][^*]*\*\//g,"").replace(/\s*(^|[:;,{}]|$)\s*/g,"$1");document.getElementById(n)||document.head.insertAdjacentHTML("afterbegin",'<style id="'.concat(n,'">').concat(i,"</style>"))}(this.nodeName,"".concat(this.nodeName,"{display:block}"))}},{key:"disconnectedCallback",value:function(){this._date=this._disabled=null,document.removeEventListener("click",this),document.removeEventListener("change",this),document.removeEventListener("keydown",this)}},{key:"attributeChangedCallback",value:function(){if(this._date){if(this.disabled(this.date)&&!this.disabled(this._date))return this.date=this._date;this.diff(this.date)&&l(this,"datepicker.change",this._date=this.date),v("button",this,k),v("select",this,_),v("input",this,w),v("table",this,E)}}},{key:"handleEvent",value:function(t){if(!(t.defaultPrevented||t.ctrlKey||t.metaKey||t.shiftKey||t.altKey||"keydown"===t.type&&!p[t.keyCode])&&(this.contains(t.target)||d(t.target,'[for="'.concat(this.id,'"]'))))if("change"===t.type)this.date=m[t.target.getAttribute("data-type")].replace("*",t.target.value);else if("click"===t.type){var e=d(t.target,"button[value]"),n=d(t.target,"table");e&&(this.date=e.value),e&&n&&l(this,"datepicker.click.day")}else"keydown"===t.type&&d(t.target,"table")&&(this.date=p[t.keyCode],this.querySelector("[autofocus]").focus(),t.preventDefault())}},{key:"diff",value:function(t){return this.parse(t).getTime()-this.timestamp}},{key:"parse",value:function(t,e){return y(t,e||this._date)}},{key:"disabled",get:function(){return this._disabled||Function.prototype},set:function(e){var n=this;this._disabled="function"==typeof e?function(t){return e(n.parse(t),n)}:function(){return e},this.attributeChangedCallback()}},{key:"timestamp",get:function(){return String(this._date.getTime())}},{key:"year",get:function(){return String(this._date.getFullYear())}},{key:"month",get:function(){return b(this._date.getMonth()+1)}},{key:"day",get:function(){return b(this._date.getDate())}},{key:"hour",get:function(){return b(this._date.getHours())}},{key:"minute",get:function(){return b(this._date.getMinutes())}},{key:"second",get:function(){return b(this._date.getSeconds())}},{key:"date",get:function(){return y(this.getAttribute("timestamp")||this._date||Date.now())},set:function(t){return this.setAttribute("timestamp",this.parse(t).getTime())}},{key:"months",set:function(t){this.setAttribute("months",[].concat(t).join(","))},get:function(){return(this.getAttribute("months")||"januar,februar,mars,april,mai,juni,juli,august,september,oktober,november,desember").split(/\s*,\s*/)}},{key:"days",set:function(t){this.setAttribute("days",[].concat(t).join(","))},get:function(){return(this.getAttribute("days")||"man,tirs,ons,tors,fre,lør,søn").split(/\s*,\s*/)}}],[{key:"observedAttributes",get:function(){return["timestamp","months","days"]}}]),t}(),b=function(t){return"0".concat(t).slice(-2)},v=function(t,e,n){return[].forEach.call(document.getElementsByTagName(t),function(t){!e.contains(t)&&e.id!==t.getAttribute(e.external)||n(e,t)})};function k(t,e){e.value&&(e.type="button",e.disabled=t.disabled(e.value))}function w(t,e){var n=e.getAttribute("data-type")||e.getAttribute("type");"radio"===n||"checkbox"===n?(e.disabled=t.disabled(e.value),e.checked=!t.diff(e.value)):m[n]&&(e.setAttribute("type","number"),e.setAttribute("data-type",n),e.value=t[n])}function E(r,t){t.firstElementChild||(t.innerHTML="\n <caption></caption><thead><tr>".concat(Array(8).join("</th><th>"),"</tr></thead>\n <tbody>").concat(Array(7).join("<tr>".concat(Array(8).join('<td><button type="button"></button></td>'),"</tr>")),"</tbody>"));var o=new Date,a=r.date.getMonth(),u=r.parse("y-m-1 mon");t.caption.textContent="".concat(r.months[a],", ").concat(r.year),f("th",t).forEach(function(t,e){return t.textContent=r.days[e]}),f("button",t).forEach(function(t){var e=!r.diff(u),n=u.getDate(),i=u.getMonth();t.textContent=n,t.value="".concat(u.getFullYear(),"-").concat(i+1,"-").concat(n),t.disabled=r.disabled(u),t.tabIndex=e-1,t.setAttribute("data-adjacent",a!==i),t.setAttribute("aria-label","".concat(n,". ").concat(r.months[i])),t.setAttribute("aria-current",u.getDate()===o.getDate()&&u.getMonth()===o.getMonth()&&u.getFullYear()===o.getFullYear()&&"date"),function(t,e,n){var i=2<arguments.length&&void 0!==n?n:!this.hasAttribute(e);!i===t.hasAttribute(e)&&t[i?"setAttribute":"removeAttribute"](e,"")}(t,"autofocus",e),u.setDate(n+1)})}function _(n,i){i.firstElementChild||(i._autofill=!0,i.innerHTML=n.months.map(function(t,e){return'<option value="y-'.concat(e+1,'-d"></option>')}).join("")),f(i.children).forEach(function(t,e){i._autofill&&(t.textContent=n.months[e]),t.disabled=n.disabled(t.value),t.selected=!n.diff(t.value)})}return g}),window.customElements.define("core-datepicker",coreDatepicker); | ||
/*! @nrk/core-datepicker v3.1.0 - Copyright (c) 2017-2021 NRK */ | ||
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).coreDatepicker=e()}(this,(function(){"use strict";function t(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function e(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}function n(t){return(n=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}function i(t,e){return(i=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function r(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}function o(t,e,n){return(o=r()?Reflect.construct:function(t,e,n){var r=[null];r.push.apply(r,e);var o=new(Function.bind.apply(t,r));return n&&i(o,n.prototype),o}).apply(null,arguments)}function a(t){var e="function"==typeof Map?new Map:void 0;return(a=function(t){if(null===t||(r=t,-1===Function.toString.call(r).indexOf("[native code]")))return t;var r;if("function"!=typeof t)throw new TypeError("Super expression must either be null or a function");if(void 0!==e){if(e.has(t))return e.get(t);e.set(t,a)}function a(){return o(t,arguments,n(this).constructor)}return a.prototype=Object.create(t.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),i(a,t)})(t)}function u(t,e){return!e||"object"!=typeof e&&"function"!=typeof e?function(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t):e}var c="undefined"!=typeof window;c&&/(android)/i.test(navigator.userAgent),c&&/iPad|iPhone|iPod/.test(String(navigator.platform)),c||global.HTMLElement||(global.HTMLElement=function(){return function e(){t(this,e)}}());var s,l,d=(s="undefined"==typeof window?{}:window.Element.prototype,l=s.matches||s.msMatchesSelector||s.webkitMatchesSelector,s.closest?function(t,e){return t.closest(e)}:function(t,e){for(t.correspondingUseElement&&(t=t.correspondingUseElement);t;t=t.parentElement)if(l.call(t,e))return t;return null});function f(t,e){var n,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r="prevent_recursive_dispatch_maximum_callstack".concat(e);if(t[r])return!0;t[r]=!0,"function"==typeof window.CustomEvent?n=new window.CustomEvent(e,{bubbles:!0,cancelable:!0,detail:i}):(n=document.createEvent("CustomEvent")).initCustomEvent(e,!0,!0,i);var o=t.dispatchEvent(n);return t[r]=null,o}function h(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:document;if(t){if(t.nodeType)return[t];if("string"==typeof t)return[].slice.call(e.querySelectorAll(t));if(t.length)return[].slice.call(t)}return[]}"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self&&self;var y={exports:{}};!function(t,e){var n,i,r,o;t.exports=(n={year:"FullYear",month:"Month",week:"Date",day:"Date",hour:"Hours",minute:"Minutes",second:"Seconds"},i=/([+-]\s*\d+)\s*(second|minute|hour|day|week|month|year)|(mon)|(tue)|(wed)|(thu)|(fri)|(sat)|(sun)/g,r=/([-\dy]+)[-/.]([\dm]+)[-/.]([\dd]+)/,o=/([\dh]+):([\dm]+):?([\ds]+)?/,function(t,e){if(isFinite(t))return new Date(Number(t));var a=String(t).toLowerCase(),u=new Date(isFinite(e)&&-1===a.indexOf("now")?Number(e):Date.now()),c=a.match(r)||[],s=c[1];void 0===s&&(s="y");var l=c[2];void 0===l&&(l="m");var d=c[3];void 0===d&&(d="d");var f=a.match(o)||[],h=f[1];void 0===h&&(h="h");var y=f[2];void 0===y&&(y="m");var m=f[3];void 0===m&&(m="s");var p={year:s,month:l,day:d,hour:h,minute:y,second:m};Object.keys(p).forEach((function(t){var e="month"===t?1:0,i=String(u["get"+n[t]]()+e);p[t]=p[t].replace(/[^-\d]+/g,(function(t,e,n){return e?i.substr(i.length-n.length+e,t.length):i.substr(0,Math.max(0,i.length-n.length+t.length))}))-e}));var b=new Date(p.year,Math.min(12,p.month+1),0).getDate();for(u.setFullYear(p.year,Math.min(11,p.month),Math.max(1,Math.min(b,p.day))),u.setHours(Math.min(24,p.hour),Math.min(59,p.minute),Math.min(59,p.second));null!==(p=i.exec(a));){var g=p[2],v=String(p[1]).replace(/\s/g,"")*("week"===g?7:1),k=p.slice(2).indexOf(p[0]),w=u.getDate();g?u["set"+n[g]](u["get"+n[g]]()+v):u.setDate(u.getDate()-(u.getDay()||7)+k),"month"!==g&&"year"!==g||w===u.getDate()||u.setDate(0)}return u})}(y);var m=y.exports,p={year:"*-m-d",month:"y-*-d",day:"y-m-*",hour:"*:m",minute:"h:*",second:"h:m:*",timestamp:"*",null:"*"},b={33:"-1month",34:"+1month",35:"y-m-99",36:"y-m-1",37:"-1day",38:"-1week",39:"+1day",40:"+1week"},g=function(o){!function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&i(t,e)}(g,o);var a,c,s,l,h,y=(a=g,c=r(),function(){var t,e=n(a);if(c){var i=n(this).constructor;t=Reflect.construct(e,arguments,i)}else t=e.apply(this,arguments);return u(this,t)});function g(){return t(this,g),y.apply(this,arguments)}return s=g,h=[{key:"observedAttributes",get:function(){return["timestamp","months","days"]}}],(l=[{key:"connectedCallback",value:function(){var t,e,n,i,r=this;this._date=this.date,document.addEventListener("click",this),document.addEventListener("change",this),document.addEventListener("keydown",this),setTimeout((function(){return r.attributeChangedCallback()})),t=this.nodeName,e="".concat(this.nodeName,"{display:block}"),n="style-".concat(t.toLowerCase()),i=e.replace(/\/\*[^!][^*]*\*\//g,"").replace(/\s*(^|[:;,{}]|$)\s*/g,"$1"),document.getElementById(n)||document.head.insertAdjacentHTML("afterbegin",'<style id="'.concat(n,'">').concat(i,"</style>"))}},{key:"disconnectedCallback",value:function(){this._date=this._disabled=null,document.removeEventListener("click",this),document.removeEventListener("change",this),document.removeEventListener("keydown",this)}},{key:"attributeChangedCallback",value:function(){if(this._date){if(this.disabled(this.date)&&!this.disabled(this._date))return this.date=this._date;this.diff(this.date)&&f(this,"datepicker.change",this._date=this.date),k("button",this,w),k("select",this,A),k("input",this,E),k("table",this,_)}}},{key:"handleEvent",value:function(t){if(!(t.defaultPrevented||t.ctrlKey||t.metaKey||t.shiftKey||t.altKey||"keydown"===t.type&&!b[t.keyCode])&&(this.contains(t.target)||d(t.target,'[for="'.concat(this.id,'"],[data-for="').concat(this.id,'"]'))))if("change"===t.type)this.date=p[t.target.getAttribute("data-type")].replace("*",t.target.value);else if("click"===t.type){var e=d(t.target,"button[value]"),n=d(t.target,"table");e&&(this.date=e.value),e&&n&&f(this,"datepicker.click.day")}else"keydown"===t.type&&d(t.target,"table")&&(this.date=b[t.keyCode],this.querySelector("[autofocus]").focus(),t.preventDefault())}},{key:"diff",value:function(t){return this.parse(t).getTime()-this.timestamp}},{key:"parse",value:function(t,e){return m(t,e||this._date)}},{key:"disabled",get:function(){return this._disabled||Function.prototype},set:function(t){var e=this;this._disabled="function"==typeof t?function(n){return t(e.parse(n),e)}:function(){return t},this.attributeChangedCallback()}},{key:"timestamp",get:function(){return String(this._date.getTime())}},{key:"year",get:function(){return String(this._date.getFullYear())}},{key:"month",get:function(){return v(this._date.getMonth()+1)}},{key:"day",get:function(){return v(this._date.getDate())}},{key:"hour",get:function(){return v(this._date.getHours())}},{key:"minute",get:function(){return v(this._date.getMinutes())}},{key:"second",get:function(){return v(this._date.getSeconds())}},{key:"date",get:function(){return m(this.getAttribute("timestamp")||this._date||Date.now())},set:function(t){return this.setAttribute("timestamp",this.parse(t).getTime())}},{key:"months",get:function(){return(this.getAttribute("months")||"januar,februar,mars,april,mai,juni,juli,august,september,oktober,november,desember").split(/\s*,\s*/)},set:function(t){this.setAttribute("months",[].concat(t).join(","))}},{key:"days",get:function(){return(this.getAttribute("days")||"man,tirs,ons,tors,fre,lør,søn").split(/\s*,\s*/)},set:function(t){this.setAttribute("days",[].concat(t).join(","))}}])&&e(s.prototype,l),h&&e(s,h),g}(a(HTMLElement)),v=function(t){return"0".concat(t).slice(-2)},k=function(t,e,n){return[].forEach.call(document.getElementsByTagName(t),(function(t){(e.contains(t)||e.id===t.getAttribute(e.external))&&n(e,t)}))};function w(t,e){e.value&&(e.type="button",e.disabled=t.disabled(e.value))}function E(t,e){var n=e.getAttribute("data-type")||e.getAttribute("type");"radio"===n||"checkbox"===n?(e.disabled=t.disabled(e.value),e.checked=!t.diff(e.value)):p[n]&&(e.setAttribute("type","number"),e.setAttribute("data-type",n),e.value=t[n])}function _(t,e){e.firstElementChild||(e.innerHTML="\n <caption></caption><thead><tr>".concat(Array(8).join("</th><th>"),"</tr></thead>\n <tbody>").concat(Array(7).join("<tr>".concat(Array(8).join('<td><button type="button"></button></td>'),"</tr>")),"</tbody>"));var n=new Date,i=t.date.getMonth(),r=t.parse("y-m-1 mon");e.caption.textContent="".concat(t.months[i],", ").concat(t.year),h("th",e).forEach((function(e,n){return e.textContent=t.days[n]})),h("button",e).forEach((function(e){var o=!t.diff(r),a=r.getDate(),u=r.getMonth();e.textContent=a,e.value="".concat(r.getFullYear(),"-").concat(u+1,"-").concat(a),e.disabled=t.disabled(r),e.tabIndex=o-1,e.setAttribute("data-adjacent",i!==u),e.setAttribute("aria-label","".concat(a,". ").concat(t.months[u])),e.setAttribute("aria-current",r.getDate()===n.getDate()&&r.getMonth()===n.getMonth()&&r.getFullYear()===n.getFullYear()&&"date"),function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:!this.hasAttribute(e);!n===t.hasAttribute(e)&&t[n?"setAttribute":"removeAttribute"](e,"")}(e,"autofocus",o),r.setDate(a+1)}))}function A(t,e){e.firstElementChild||(e._autofill=!0,e.innerHTML=t.months.map((function(t,e){return'<option value="y-'.concat(e+1,'-d"></option>')})).join("")),h(e.children).forEach((function(n,i){e._autofill&&(n.textContent=t.months[i]),n.disabled=t.disabled(n.value),n.selected=!t.diff(n.value)}))}return g})),window.customElements.define("core-datepicker",coreDatepicker); | ||
//# sourceMappingURL=core-datepicker.min.js.map |
@@ -0,8 +1,48 @@ | ||
/*! @nrk/core-datepicker v3.1.0 - Copyright (c) 2017-2021 NRK */ | ||
'use strict'; | ||
function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; } | ||
var fs = require('fs'); | ||
var path = require('path'); | ||
var fs = _interopDefault(require('fs')); | ||
var path = _interopDefault(require('path')); | ||
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; } | ||
var fs__default = /*#__PURE__*/_interopDefaultLegacy(fs); | ||
var path__default = /*#__PURE__*/_interopDefaultLegacy(path); | ||
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { | ||
try { | ||
var info = gen[key](arg); | ||
var value = info.value; | ||
} catch (error) { | ||
reject(error); | ||
return; | ||
} | ||
if (info.done) { | ||
resolve(value); | ||
} else { | ||
Promise.resolve(value).then(_next, _throw); | ||
} | ||
} | ||
function _asyncToGenerator(fn) { | ||
return function () { | ||
var self = this, | ||
args = arguments; | ||
return new Promise(function (resolve, reject) { | ||
var gen = fn.apply(self, args); | ||
function _next(value) { | ||
asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); | ||
} | ||
function _throw(err) { | ||
asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); | ||
} | ||
_next(undefined); | ||
}); | ||
}; | ||
} | ||
function prop(selector, name) { | ||
@@ -19,4 +59,4 @@ return browser.executeScript(function (selector, name) { | ||
var coreDatepicker = fs.readFileSync(path.resolve(__dirname, 'core-datepicker.min.js'), 'utf-8'); | ||
var customElements = fs.readFileSync(require.resolve('@webcomponents/custom-elements'), 'utf-8'); | ||
var coreDatepicker = fs__default['default'].readFileSync(path__default['default'].resolve(__dirname, 'core-datepicker.min.js'), 'utf-8'); | ||
var customElements = fs__default['default'].readFileSync(require.resolve('@webcomponents/custom-elements'), 'utf-8'); | ||
@@ -28,4 +68,4 @@ var pad = function pad(val) { | ||
describe('core-datepicker', function () { | ||
beforeEach(function _callee() { | ||
return regeneratorRuntime.async(function _callee$(_context) { | ||
beforeEach( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee() { | ||
return regeneratorRuntime.wrap(function _callee$(_context) { | ||
while (1) { | ||
@@ -35,11 +75,11 @@ switch (_context.prev = _context.next) { | ||
_context.next = 2; | ||
return regeneratorRuntime.awrap(browser.refresh()); | ||
return browser.refresh(); | ||
case 2: | ||
_context.next = 4; | ||
return regeneratorRuntime.awrap(browser.executeScript(customElements)); | ||
return browser.executeScript(customElements); | ||
case 4: | ||
_context.next = 6; | ||
return regeneratorRuntime.awrap(browser.executeScript(coreDatepicker)); | ||
return browser.executeScript(coreDatepicker); | ||
@@ -51,7 +91,7 @@ case 6: | ||
} | ||
}); | ||
}); | ||
it('sets up properties', function _callee2() { | ||
}, _callee); | ||
}))); | ||
it('sets up properties', /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee2() { | ||
var hour; | ||
return regeneratorRuntime.async(function _callee2$(_context2) { | ||
return regeneratorRuntime.wrap(function _callee2$(_context2) { | ||
while (1) { | ||
@@ -61,23 +101,23 @@ switch (_context2.prev = _context2.next) { | ||
_context2.next = 2; | ||
return regeneratorRuntime.awrap(browser.executeScript(function () { | ||
return browser.executeScript(function () { | ||
document.body.innerHTML = "\n <core-datepicker timestamp=\"".concat(new Date('2019-04-30T12:44:56Z').getTime(), "\">\n </core-datepicker>\n "); | ||
})); | ||
}); | ||
case 2: | ||
_context2.next = 4; | ||
return regeneratorRuntime.awrap(expect(prop('core-datepicker', 'year')).toEqual('2019')); | ||
return expect(prop('core-datepicker', 'year')).toEqual('2019'); | ||
case 4: | ||
_context2.next = 6; | ||
return regeneratorRuntime.awrap(expect(prop('core-datepicker', 'month')).toEqual('04')); | ||
return expect(prop('core-datepicker', 'month')).toEqual('04'); | ||
case 6: | ||
_context2.next = 8; | ||
return regeneratorRuntime.awrap(expect(prop('core-datepicker', 'day')).toEqual('30')); | ||
return expect(prop('core-datepicker', 'day')).toEqual('30'); | ||
case 8: | ||
_context2.next = 10; | ||
return regeneratorRuntime.awrap(browser.executeScript(function () { | ||
return browser.executeScript(function () { | ||
return new Date('2019-04-30T12:44:56Z').getHours(); | ||
})); | ||
}); | ||
@@ -87,19 +127,19 @@ case 10: | ||
_context2.next = 13; | ||
return regeneratorRuntime.awrap(expect(prop('core-datepicker', 'hour')).toEqual(pad(String(hour)))); | ||
return expect(prop('core-datepicker', 'hour')).toEqual(pad(String(hour))); | ||
case 13: | ||
_context2.next = 15; | ||
return regeneratorRuntime.awrap(expect(prop('core-datepicker', 'minute')).toEqual('44')); | ||
return expect(prop('core-datepicker', 'minute')).toEqual('44'); | ||
case 15: | ||
_context2.next = 17; | ||
return regeneratorRuntime.awrap(expect(prop('core-datepicker', 'second')).toEqual('56')); | ||
return expect(prop('core-datepicker', 'second')).toEqual('56'); | ||
case 17: | ||
_context2.next = 19; | ||
return regeneratorRuntime.awrap(expect(prop('core-datepicker', 'days')).toEqual('man,tirs,ons,tors,fre,lør,søn')); | ||
return expect(prop('core-datepicker', 'days')).toEqual('man,tirs,ons,tors,fre,lør,søn'); | ||
case 19: | ||
_context2.next = 21; | ||
return regeneratorRuntime.awrap(expect(prop('core-datepicker', 'months')).toEqual('januar,februar,mars,april,mai,juni,juli,august,september,oktober,november,desember')); | ||
return expect(prop('core-datepicker', 'months')).toEqual('januar,februar,mars,april,mai,juni,juli,august,september,oktober,november,desember'); | ||
@@ -111,7 +151,7 @@ case 21: | ||
} | ||
}); | ||
}); | ||
it('sets input values from timestamp', function _callee3() { | ||
}, _callee2); | ||
}))); | ||
it('sets input values from timestamp', /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee3() { | ||
var hours, timestamp; | ||
return regeneratorRuntime.async(function _callee3$(_context3) { | ||
return regeneratorRuntime.wrap(function _callee3$(_context3) { | ||
while (1) { | ||
@@ -121,35 +161,35 @@ switch (_context3.prev = _context3.next) { | ||
_context3.next = 2; | ||
return regeneratorRuntime.awrap(browser.executeScript(function () { | ||
return browser.executeScript(function () { | ||
document.body.innerHTML = "\n <core-datepicker timestamp=\"".concat(new Date('2019-04-30T10:44:56Z').getTime(), "\">\n <input type=\"year\">\n <input type=\"month\">\n <input type=\"day\">\n <input type=\"hour\">\n <input type=\"minute\">\n <input type=\"second\">\n <input type=\"timestamp\">\n </core-datepicker>\n "); | ||
})); | ||
}); | ||
case 2: | ||
_context3.next = 4; | ||
return regeneratorRuntime.awrap(expect(prop('input[data-type="year"]', 'value')).toEqual('2019')); | ||
return expect(prop('input[data-type="year"]', 'value')).toEqual('2019'); | ||
case 4: | ||
_context3.next = 6; | ||
return regeneratorRuntime.awrap(expect(prop('input[data-type="year"]', 'type')).toEqual('number')); | ||
return expect(prop('input[data-type="year"]', 'type')).toEqual('number'); | ||
case 6: | ||
_context3.next = 8; | ||
return regeneratorRuntime.awrap(expect(prop('input[data-type="month"]', 'value')).toEqual('04')); | ||
return expect(prop('input[data-type="month"]', 'value')).toEqual('04'); | ||
case 8: | ||
_context3.next = 10; | ||
return regeneratorRuntime.awrap(expect(prop('input[data-type="month"]', 'type')).toEqual('number')); | ||
return expect(prop('input[data-type="month"]', 'type')).toEqual('number'); | ||
case 10: | ||
_context3.next = 12; | ||
return regeneratorRuntime.awrap(expect(prop('input[data-type="day"]', 'value')).toEqual('30')); | ||
return expect(prop('input[data-type="day"]', 'value')).toEqual('30'); | ||
case 12: | ||
_context3.next = 14; | ||
return regeneratorRuntime.awrap(expect(prop('input[data-type="day"]', 'type')).toEqual('number')); | ||
return expect(prop('input[data-type="day"]', 'type')).toEqual('number'); | ||
case 14: | ||
_context3.next = 16; | ||
return regeneratorRuntime.awrap(browser.executeScript(function () { | ||
return browser.executeScript(function () { | ||
return new Date('2019-04-30T10:44:56Z').getHours(); | ||
})); | ||
}); | ||
@@ -159,27 +199,27 @@ case 16: | ||
_context3.next = 19; | ||
return regeneratorRuntime.awrap(expect(prop('input[data-type="hour"]', 'value')).toEqual(pad(String(hours)))); | ||
return expect(prop('input[data-type="hour"]', 'value')).toEqual(pad(String(hours))); | ||
case 19: | ||
_context3.next = 21; | ||
return regeneratorRuntime.awrap(expect(prop('input[data-type="hour"]', 'type')).toEqual('number')); | ||
return expect(prop('input[data-type="hour"]', 'type')).toEqual('number'); | ||
case 21: | ||
_context3.next = 23; | ||
return regeneratorRuntime.awrap(expect(prop('input[data-type="minute"]', 'value')).toEqual('44')); | ||
return expect(prop('input[data-type="minute"]', 'value')).toEqual('44'); | ||
case 23: | ||
_context3.next = 25; | ||
return regeneratorRuntime.awrap(expect(prop('input[data-type="minute"]', 'type')).toEqual('number')); | ||
return expect(prop('input[data-type="minute"]', 'type')).toEqual('number'); | ||
case 25: | ||
_context3.next = 27; | ||
return regeneratorRuntime.awrap(expect(prop('input[data-type="second"]', 'value')).toEqual('56')); | ||
return expect(prop('input[data-type="second"]', 'value')).toEqual('56'); | ||
case 27: | ||
_context3.next = 29; | ||
return regeneratorRuntime.awrap(expect(prop('input[data-type="second"]', 'type')).toEqual('number')); | ||
return expect(prop('input[data-type="second"]', 'type')).toEqual('number'); | ||
case 29: | ||
_context3.next = 31; | ||
return regeneratorRuntime.awrap(prop('core-datepicker', 'timestamp')); | ||
return prop('core-datepicker', 'timestamp'); | ||
@@ -189,7 +229,7 @@ case 31: | ||
_context3.next = 34; | ||
return regeneratorRuntime.awrap(expect(prop('input[data-type="timestamp"]', 'value')).toEqual(timestamp)); | ||
return expect(prop('input[data-type="timestamp"]', 'value')).toEqual(timestamp); | ||
case 34: | ||
_context3.next = 36; | ||
return regeneratorRuntime.awrap(expect(prop('input[data-type="timestamp"]', 'type')).toEqual('number')); | ||
return expect(prop('input[data-type="timestamp"]', 'type')).toEqual('number'); | ||
@@ -201,7 +241,7 @@ case 36: | ||
} | ||
}); | ||
}); | ||
it('populates empty select with months', function _callee4() { | ||
}, _callee3); | ||
}))); | ||
it('populates empty select with months', /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee4() { | ||
var i; | ||
return regeneratorRuntime.async(function _callee4$(_context4) { | ||
return regeneratorRuntime.wrap(function _callee4$(_context4) { | ||
while (1) { | ||
@@ -211,13 +251,13 @@ switch (_context4.prev = _context4.next) { | ||
_context4.next = 2; | ||
return regeneratorRuntime.awrap(browser.executeScript(function () { | ||
return browser.executeScript(function () { | ||
document.body.innerHTML = "\n <core-datepicker>\n <select></select>\n </core-datepicker>\n "; | ||
})); | ||
}); | ||
case 2: | ||
_context4.next = 4; | ||
return regeneratorRuntime.awrap(browser.wait(ExpectedConditions.presenceOf($('core-datepicker select option')))); | ||
return browser.wait(ExpectedConditions.presenceOf($('core-datepicker select option'))); | ||
case 4: | ||
_context4.next = 6; | ||
return regeneratorRuntime.awrap(expect(prop('core-datepicker select', 'childElementCount')).toEqual('12')); | ||
return expect(prop('core-datepicker select', 'childElementCount')).toEqual('12'); | ||
@@ -234,3 +274,3 @@ case 6: | ||
_context4.next = 10; | ||
return regeneratorRuntime.awrap(expect(prop("option:nth-child(".concat(i, ")"), 'value')).toEqual("y-".concat(i, "-d"))); | ||
return expect(prop("option:nth-child(".concat(i, ")"), 'value')).toEqual("y-".concat(i, "-d")); | ||
@@ -244,47 +284,47 @@ case 10: | ||
_context4.next = 15; | ||
return regeneratorRuntime.awrap(expect(prop('option:nth-child(1)', 'textContent')).toEqual('januar')); | ||
return expect(prop('option:nth-child(1)', 'textContent')).toEqual('januar'); | ||
case 15: | ||
_context4.next = 17; | ||
return regeneratorRuntime.awrap(expect(prop('option:nth-child(2)', 'textContent')).toEqual('februar')); | ||
return expect(prop('option:nth-child(2)', 'textContent')).toEqual('februar'); | ||
case 17: | ||
_context4.next = 19; | ||
return regeneratorRuntime.awrap(expect(prop('option:nth-child(3)', 'textContent')).toEqual('mars')); | ||
return expect(prop('option:nth-child(3)', 'textContent')).toEqual('mars'); | ||
case 19: | ||
_context4.next = 21; | ||
return regeneratorRuntime.awrap(expect(prop('option:nth-child(4)', 'textContent')).toEqual('april')); | ||
return expect(prop('option:nth-child(4)', 'textContent')).toEqual('april'); | ||
case 21: | ||
_context4.next = 23; | ||
return regeneratorRuntime.awrap(expect(prop('option:nth-child(5)', 'textContent')).toEqual('mai')); | ||
return expect(prop('option:nth-child(5)', 'textContent')).toEqual('mai'); | ||
case 23: | ||
_context4.next = 25; | ||
return regeneratorRuntime.awrap(expect(prop('option:nth-child(6)', 'textContent')).toEqual('juni')); | ||
return expect(prop('option:nth-child(6)', 'textContent')).toEqual('juni'); | ||
case 25: | ||
_context4.next = 27; | ||
return regeneratorRuntime.awrap(expect(prop('option:nth-child(7)', 'textContent')).toEqual('juli')); | ||
return expect(prop('option:nth-child(7)', 'textContent')).toEqual('juli'); | ||
case 27: | ||
_context4.next = 29; | ||
return regeneratorRuntime.awrap(expect(prop('option:nth-child(8)', 'textContent')).toEqual('august')); | ||
return expect(prop('option:nth-child(8)', 'textContent')).toEqual('august'); | ||
case 29: | ||
_context4.next = 31; | ||
return regeneratorRuntime.awrap(expect(prop('option:nth-child(9)', 'textContent')).toEqual('september')); | ||
return expect(prop('option:nth-child(9)', 'textContent')).toEqual('september'); | ||
case 31: | ||
_context4.next = 33; | ||
return regeneratorRuntime.awrap(expect(prop('option:nth-child(10)', 'textContent')).toEqual('oktober')); | ||
return expect(prop('option:nth-child(10)', 'textContent')).toEqual('oktober'); | ||
case 33: | ||
_context4.next = 35; | ||
return regeneratorRuntime.awrap(expect(prop('option:nth-child(11)', 'textContent')).toEqual('november')); | ||
return expect(prop('option:nth-child(11)', 'textContent')).toEqual('november'); | ||
case 35: | ||
_context4.next = 37; | ||
return regeneratorRuntime.awrap(expect(prop('option:nth-child(12)', 'textContent')).toEqual('desember')); | ||
return expect(prop('option:nth-child(12)', 'textContent')).toEqual('desember'); | ||
@@ -296,6 +336,6 @@ case 37: | ||
} | ||
}); | ||
}); | ||
it('re-uses custom select', function _callee5() { | ||
return regeneratorRuntime.async(function _callee5$(_context5) { | ||
}, _callee4); | ||
}))); | ||
it('re-uses custom select', /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee5() { | ||
return regeneratorRuntime.wrap(function _callee5$(_context5) { | ||
while (1) { | ||
@@ -305,21 +345,21 @@ switch (_context5.prev = _context5.next) { | ||
_context5.next = 2; | ||
return regeneratorRuntime.awrap(browser.executeScript(function () { | ||
return browser.executeScript(function () { | ||
document.body.innerHTML = "\n <core-datepicker>\n <select>\n <option>---</option>\n <option value=\"2016-m-d\">Set year to 2016</option>\n <option value=\"19yy-1-1\">Back 100 years and set to January 1st.</option>\n <option value=\"1985-12-19\">December 19, 1985</option>\n </select>\n </core-datepicker>\n "; | ||
})); | ||
}); | ||
case 2: | ||
_context5.next = 4; | ||
return regeneratorRuntime.awrap(expect(prop('select', 'childElementCount')).toEqual('4')); | ||
return expect(prop('select', 'childElementCount')).toEqual('4'); | ||
case 4: | ||
_context5.next = 6; | ||
return regeneratorRuntime.awrap(expect(prop('option:nth-child(1)', 'value')).toEqual('---')); | ||
return expect(prop('option:nth-child(1)', 'value')).toEqual('---'); | ||
case 6: | ||
_context5.next = 8; | ||
return regeneratorRuntime.awrap(expect(prop('option:nth-child(2)', 'value')).toEqual('2016-m-d')); | ||
return expect(prop('option:nth-child(2)', 'value')).toEqual('2016-m-d'); | ||
case 8: | ||
_context5.next = 10; | ||
return regeneratorRuntime.awrap(expect(prop('option:nth-child(3)', 'value')).toEqual('19yy-1-1')); | ||
return expect(prop('option:nth-child(3)', 'value')).toEqual('19yy-1-1'); | ||
@@ -331,7 +371,7 @@ case 10: | ||
} | ||
}); | ||
}); | ||
it('populates empty table', function _callee6() { | ||
}, _callee5); | ||
}))); | ||
it('populates empty table', /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee6() { | ||
var days, i; | ||
return regeneratorRuntime.async(function _callee6$(_context6) { | ||
return regeneratorRuntime.wrap(function _callee6$(_context6) { | ||
while (1) { | ||
@@ -341,13 +381,13 @@ switch (_context6.prev = _context6.next) { | ||
_context6.next = 2; | ||
return regeneratorRuntime.awrap(browser.executeScript(function () { | ||
return browser.executeScript(function () { | ||
document.body.innerHTML = "\n <core-datepicker timestamp=\"".concat(new Date('2019-01-01T12:00:00Z').getTime(), "\">\n <table></table>\n </core-datepicker>\n "); | ||
})); | ||
}); | ||
case 2: | ||
_context6.next = 4; | ||
return regeneratorRuntime.awrap(browser.wait(ExpectedConditions.presenceOf($('core-datepicker table button')))); | ||
return browser.wait(ExpectedConditions.presenceOf($('core-datepicker table button'))); | ||
case 4: | ||
_context6.next = 6; | ||
return regeneratorRuntime.awrap(prop('core-datepicker', 'days')); | ||
return prop('core-datepicker', 'days'); | ||
@@ -357,3 +397,3 @@ case 6: | ||
_context6.next = 9; | ||
return regeneratorRuntime.awrap(expect(days.length).toEqual(7)); | ||
return expect(days.length).toEqual(7); | ||
@@ -370,3 +410,3 @@ case 9: | ||
_context6.next = 13; | ||
return regeneratorRuntime.awrap(expect(prop("thead tr th:nth-child(".concat(i, ")"), 'textContent')).toEqual(days[i - 1])); | ||
return expect(prop("thead tr th:nth-child(".concat(i, ")"), 'textContent')).toEqual(days[i - 1]); | ||
@@ -380,7 +420,7 @@ case 13: | ||
_context6.next = 18; | ||
return regeneratorRuntime.awrap(expect($$('table td button[data-adjacent="false"]').count()).toEqual(31)); | ||
return expect($$('table td button[data-adjacent="false"]').count()).toEqual(31); | ||
case 18: | ||
_context6.next = 20; | ||
return regeneratorRuntime.awrap(expect(prop('button[autofocus]', 'textContent')).toEqual('1')); | ||
return expect(prop('button[autofocus]', 'textContent')).toEqual('1'); | ||
@@ -392,7 +432,7 @@ case 20: | ||
} | ||
}); | ||
}); | ||
it('marks today\'s date in table', function _callee7() { | ||
}, _callee6); | ||
}))); | ||
it('marks today\'s date in table', /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee7() { | ||
var browserDate; | ||
return regeneratorRuntime.async(function _callee7$(_context7) { | ||
return regeneratorRuntime.wrap(function _callee7$(_context7) { | ||
while (1) { | ||
@@ -402,19 +442,19 @@ switch (_context7.prev = _context7.next) { | ||
_context7.next = 2; | ||
return regeneratorRuntime.awrap(browser.executeScript(function () { | ||
return browser.executeScript(function () { | ||
document.body.innerHTML = "\n <core-datepicker timestamp=\"".concat(new Date().getTime(), "\">\n <table></table>\n </core-datepicker>\n "); | ||
})); | ||
}); | ||
case 2: | ||
_context7.next = 4; | ||
return regeneratorRuntime.awrap(browser.wait(ExpectedConditions.presenceOf($('core-datepicker table button')))); | ||
return browser.wait(ExpectedConditions.presenceOf($('core-datepicker table button'))); | ||
case 4: | ||
_context7.next = 6; | ||
return regeneratorRuntime.awrap(expect($('button[aria-current="date"]').isPresent()).toEqual(true)); | ||
return expect($('button[aria-current="date"]').isPresent()).toEqual(true); | ||
case 6: | ||
_context7.next = 8; | ||
return regeneratorRuntime.awrap(browser.executeScript(function () { | ||
return browser.executeScript(function () { | ||
return new Date().getDate(); | ||
})); | ||
}); | ||
@@ -424,3 +464,3 @@ case 8: | ||
_context7.next = 11; | ||
return regeneratorRuntime.awrap(expect(prop('button[aria-current="date"]', 'textContent')).toEqual(String(browserDate))); | ||
return expect(prop('button[aria-current="date"]', 'textContent')).toEqual(String(browserDate)); | ||
@@ -432,6 +472,6 @@ case 11: | ||
} | ||
}); | ||
}); | ||
it('changes date on day clicked', function _callee8() { | ||
return regeneratorRuntime.async(function _callee8$(_context8) { | ||
}, _callee7); | ||
}))); | ||
it('changes date on day clicked', /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee8() { | ||
return regeneratorRuntime.wrap(function _callee8$(_context8) { | ||
while (1) { | ||
@@ -441,21 +481,21 @@ switch (_context8.prev = _context8.next) { | ||
_context8.next = 2; | ||
return regeneratorRuntime.awrap(browser.executeScript(function () { | ||
return browser.executeScript(function () { | ||
document.body.innerHTML = "\n <core-datepicker timestamp=\"".concat(new Date('2019-01-01T12:00:00Z').getTime(), "\">\n <table></table>\n </core-datepicker>\n "); | ||
})); | ||
}); | ||
case 2: | ||
_context8.next = 4; | ||
return regeneratorRuntime.awrap(browser.wait(ExpectedConditions.presenceOf($('core-datepicker table button')))); | ||
return browser.wait(ExpectedConditions.presenceOf($('core-datepicker table button'))); | ||
case 4: | ||
_context8.next = 6; | ||
return regeneratorRuntime.awrap(expect(prop('button[autofocus]', 'textContent')).toEqual('1')); | ||
return expect(prop('button[autofocus]', 'textContent')).toEqual('1'); | ||
case 6: | ||
_context8.next = 8; | ||
return regeneratorRuntime.awrap($('tbody tr:nth-child(2) td:nth-child(5) button').click()); | ||
return $('tbody tr:nth-child(2) td:nth-child(5) button').click(); | ||
case 8: | ||
_context8.next = 10; | ||
return regeneratorRuntime.awrap(expect(prop('button[autofocus]', 'textContent')).toEqual('11')); | ||
return expect(prop('button[autofocus]', 'textContent')).toEqual('11'); | ||
@@ -467,7 +507,7 @@ case 10: | ||
} | ||
}); | ||
}); | ||
it('changes month names', function _callee9() { | ||
}, _callee8); | ||
}))); | ||
it('changes month names', /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee9() { | ||
var months, i; | ||
return regeneratorRuntime.async(function _callee9$(_context9) { | ||
return regeneratorRuntime.wrap(function _callee9$(_context9) { | ||
while (1) { | ||
@@ -478,13 +518,13 @@ switch (_context9.prev = _context9.next) { | ||
_context9.next = 3; | ||
return regeneratorRuntime.awrap(browser.executeScript(function (months) { | ||
return browser.executeScript(function (months) { | ||
document.body.innerHTML = "\n <core-datepicker months=\"".concat(months.join(), "\">\n <select></select>\n </core-datepicker>\n "); | ||
}, months)); | ||
}, months); | ||
case 3: | ||
_context9.next = 5; | ||
return regeneratorRuntime.awrap(browser.wait(ExpectedConditions.presenceOf($('core-datepicker select option')))); | ||
return browser.wait(ExpectedConditions.presenceOf($('core-datepicker select option'))); | ||
case 5: | ||
_context9.next = 7; | ||
return regeneratorRuntime.awrap(expect(prop('select', 'childElementCount')).toEqual('12')); | ||
return expect(prop('select', 'childElementCount')).toEqual('12'); | ||
@@ -501,3 +541,3 @@ case 7: | ||
_context9.next = 11; | ||
return regeneratorRuntime.awrap(expect(prop("option:nth-child(".concat(i, ")"), 'textContent')).toEqual(months[i - 1])); | ||
return expect(prop("option:nth-child(".concat(i, ")"), 'textContent')).toEqual(months[i - 1]); | ||
@@ -514,7 +554,7 @@ case 11: | ||
} | ||
}); | ||
}); | ||
it('changes day names', function _callee10() { | ||
}, _callee9); | ||
}))); | ||
it('changes day names', /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee10() { | ||
var days, i; | ||
return regeneratorRuntime.async(function _callee10$(_context10) { | ||
return regeneratorRuntime.wrap(function _callee10$(_context10) { | ||
while (1) { | ||
@@ -525,13 +565,13 @@ switch (_context10.prev = _context10.next) { | ||
_context10.next = 3; | ||
return regeneratorRuntime.awrap(browser.executeScript(function (days) { | ||
return browser.executeScript(function (days) { | ||
document.body.innerHTML = "\n <core-datepicker days=\"".concat(days.join(), "\">\n <table></table>\n </core-datepicker>\n "); | ||
}, days)); | ||
}, days); | ||
case 3: | ||
_context10.next = 5; | ||
return regeneratorRuntime.awrap(browser.wait(ExpectedConditions.presenceOf($('core-datepicker table thead')))); | ||
return browser.wait(ExpectedConditions.presenceOf($('core-datepicker table thead'))); | ||
case 5: | ||
_context10.next = 7; | ||
return regeneratorRuntime.awrap(expect(prop('table thead tr', 'childElementCount')).toEqual('7')); | ||
return expect(prop('table thead tr', 'childElementCount')).toEqual('7'); | ||
@@ -548,3 +588,3 @@ case 7: | ||
_context10.next = 11; | ||
return regeneratorRuntime.awrap(expect(prop("thead tr th:nth-child(".concat(i, ")"), 'textContent')).toEqual(days[i - 1])); | ||
return expect(prop("thead tr th:nth-child(".concat(i, ")"), 'textContent')).toEqual(days[i - 1]); | ||
@@ -561,6 +601,6 @@ case 11: | ||
} | ||
}); | ||
}); | ||
it('disables elements from function', function _callee11() { | ||
return regeneratorRuntime.async(function _callee11$(_context11) { | ||
}, _callee10); | ||
}))); | ||
it('disables elements from function', /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee11() { | ||
return regeneratorRuntime.wrap(function _callee11$(_context11) { | ||
while (1) { | ||
@@ -570,3 +610,3 @@ switch (_context11.prev = _context11.next) { | ||
_context11.next = 2; | ||
return regeneratorRuntime.awrap(browser.executeScript(function () { | ||
return browser.executeScript(function () { | ||
document.body.innerHTML = "\n <core-datepicker timestamp=\"".concat(new Date('2019-01-01T12:00:00Z').getTime(), "\">\n <table></table>\n </core-datepicker>\n "); | ||
@@ -577,23 +617,23 @@ | ||
}; | ||
})); | ||
}); | ||
case 2: | ||
_context11.next = 4; | ||
return regeneratorRuntime.awrap(browser.wait(ExpectedConditions.presenceOf($('core-datepicker table button')))); | ||
return browser.wait(ExpectedConditions.presenceOf($('core-datepicker table button'))); | ||
case 4: | ||
_context11.next = 6; | ||
return regeneratorRuntime.awrap(expect(attr('tbody tr:nth-child(1) td:nth-child(1) button', 'disabled')).toMatch(/(null|false)/i)); | ||
return expect(attr('tbody tr:nth-child(1) td:nth-child(1) button', 'disabled')).toMatch(/(null|false)/i); | ||
case 6: | ||
_context11.next = 8; | ||
return regeneratorRuntime.awrap(expect($('button:not(disabled)[value="2018-12-31"]').isPresent()).toBeTruthy()); | ||
return expect($('button:not(disabled)[value="2018-12-31"]').isPresent()).toBeTruthy(); | ||
case 8: | ||
_context11.next = 10; | ||
return regeneratorRuntime.awrap(expect($('button:not(disabled)[value="2019-1-1"]').isPresent()).toBeTruthy()); | ||
return expect($('button:not(disabled)[value="2019-1-1"]').isPresent()).toBeTruthy(); | ||
case 10: | ||
_context11.next = 12; | ||
return regeneratorRuntime.awrap(expect($('button:disabled[value="2019-1-2"]').isPresent()).toBeTruthy()); | ||
return expect($('button:disabled[value="2019-1-2"]').isPresent()).toBeTruthy(); | ||
@@ -605,7 +645,7 @@ case 12: | ||
} | ||
}); | ||
}); | ||
it('triggers change event', function _callee12() { | ||
}, _callee11); | ||
}))); | ||
it('triggers change event', /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee12() { | ||
var time; | ||
return regeneratorRuntime.async(function _callee12$(_context12) { | ||
return regeneratorRuntime.wrap(function _callee12$(_context12) { | ||
while (1) { | ||
@@ -615,3 +655,3 @@ switch (_context12.prev = _context12.next) { | ||
_context12.next = 2; | ||
return regeneratorRuntime.awrap(browser.executeScript(function () { | ||
return browser.executeScript(function () { | ||
document.body.innerHTML = "\n <core-datepicker timestamp=\"".concat(new Date('2019-01-01T12:00:00Z').getTime(), "\">\n </core-datepicker>\n "); | ||
@@ -622,9 +662,9 @@ document.addEventListener('datepicker.change', function (event) { | ||
document.querySelector('core-datepicker').date = new Date('2019-01-02T12:00:00Z'); | ||
})); | ||
}); | ||
case 2: | ||
_context12.next = 4; | ||
return regeneratorRuntime.awrap(browser.executeScript(function () { | ||
return browser.executeScript(function () { | ||
return new Date('2019-01-02T12:00:00Z').getTime(); | ||
})); | ||
}); | ||
@@ -634,5 +674,5 @@ case 4: | ||
_context12.next = 7; | ||
return regeneratorRuntime.awrap(expect(browser.executeScript(function () { | ||
return expect(browser.executeScript(function () { | ||
return window.time; | ||
})).toEqual(time)); | ||
})).toEqual(time); | ||
@@ -644,6 +684,6 @@ case 7: | ||
} | ||
}); | ||
}); | ||
it('triggers click day event', function _callee13() { | ||
return regeneratorRuntime.async(function _callee13$(_context13) { | ||
}, _callee12); | ||
}))); | ||
it('triggers click day event', /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee13() { | ||
return regeneratorRuntime.wrap(function _callee13$(_context13) { | ||
while (1) { | ||
@@ -653,13 +693,13 @@ switch (_context13.prev = _context13.next) { | ||
_context13.next = 2; | ||
return regeneratorRuntime.awrap(browser.executeScript(function () { | ||
return browser.executeScript(function () { | ||
document.body.innerHTML = "\n <core-datepicker timestamp=\"".concat(new Date().getTime(), "\">\n <table></table>\n </core-datepicker>\n "); | ||
})); | ||
}); | ||
case 2: | ||
_context13.next = 4; | ||
return regeneratorRuntime.awrap(browser.wait(ExpectedConditions.presenceOf($('core-datepicker table button')))); | ||
return browser.wait(ExpectedConditions.presenceOf($('core-datepicker table button'))); | ||
case 4: | ||
_context13.next = 6; | ||
return regeneratorRuntime.awrap(browser.executeScript(function () { | ||
return browser.executeScript(function () { | ||
document.addEventListener('datepicker.click.day', function () { | ||
@@ -669,9 +709,9 @@ return window.triggered = true; | ||
document.querySelector('core-datepicker button').click(); | ||
})); | ||
}); | ||
case 6: | ||
_context13.next = 8; | ||
return regeneratorRuntime.awrap(expect(browser.executeScript(function () { | ||
return expect(browser.executeScript(function () { | ||
return window.triggered; | ||
})).toEqual(true)); | ||
})).toEqual(true); | ||
@@ -683,4 +723,4 @@ case 8: | ||
} | ||
}); | ||
}); | ||
}, _callee13); | ||
}))); | ||
}); |
246
jsx.js
@@ -0,7 +1,10 @@ | ||
/*! @nrk/core-datepicker v3.1.0 - Copyright (c) 2017-2021 NRK */ | ||
'use strict'; | ||
function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; } | ||
var React = require('react'); | ||
var React = _interopDefault(require('react')); | ||
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; } | ||
var React__default = /*#__PURE__*/_interopDefaultLegacy(React); | ||
function _classCallCheck(instance, Constructor) { | ||
@@ -60,3 +63,3 @@ if (!(instance instanceof Constructor)) { | ||
function isNativeReflectConstruct() { | ||
function _isNativeReflectConstruct() { | ||
if (typeof Reflect === "undefined" || !Reflect.construct) return false; | ||
@@ -67,3 +70,3 @@ if (Reflect.construct.sham) return false; | ||
try { | ||
Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); | ||
Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); | ||
return true; | ||
@@ -76,3 +79,3 @@ } catch (e) { | ||
function _construct(Parent, args, Class) { | ||
if (isNativeReflectConstruct()) { | ||
if (_isNativeReflectConstruct()) { | ||
_construct = Reflect.construct; | ||
@@ -147,11 +150,29 @@ } else { | ||
function _createSuper(Derived) { | ||
var hasNativeReflectConstruct = _isNativeReflectConstruct(); | ||
return function _createSuperInternal() { | ||
var Super = _getPrototypeOf(Derived), | ||
result; | ||
if (hasNativeReflectConstruct) { | ||
var NewTarget = _getPrototypeOf(this).constructor; | ||
result = Reflect.construct(Super, arguments, NewTarget); | ||
} else { | ||
result = Super.apply(this, arguments); | ||
} | ||
return _possibleConstructorReturn(this, result); | ||
}; | ||
} | ||
var IS_BROWSER = typeof window !== 'undefined'; | ||
var IS_ANDROID = IS_BROWSER && /(android)/i.test(navigator.userAgent); // Bad, but needed | ||
IS_BROWSER && /(android)/i.test(navigator.userAgent); // Bad, but needed | ||
var IS_IOS = IS_BROWSER && /iPad|iPhone|iPod/.test(String(navigator.platform)); // Mock HTMLElement for Node | ||
IS_BROWSER && /iPad|iPhone|iPod/.test(String(navigator.platform)); | ||
// Mock HTMLElement for Node | ||
if (!IS_BROWSER && !global.HTMLElement) { | ||
global.HTMLElement = | ||
/*#__PURE__*/ | ||
function () { | ||
global.HTMLElement = /*#__PURE__*/function () { | ||
function _class() { | ||
@@ -182,3 +203,3 @@ _classCallCheck(this, _class); | ||
var closest = function () { | ||
var closest$1 = function () { | ||
var proto = typeof window === 'undefined' ? {} : window.Element.prototype; | ||
@@ -267,9 +288,7 @@ var match = proto.matches || proto.msMatchesSelector || proto.webkitMatchesSelector; | ||
function createCommonjsModule(fn, module) { | ||
return module = { exports: {} }, fn(module, module.exports), module.exports; | ||
} | ||
var index_min = {exports: {}}; | ||
var index_min = createCommonjsModule(function (module, exports) { | ||
(function (module, exports) { | ||
!function (e, t) { | ||
module.exports = t() ; | ||
module.exports = t() ; | ||
}(commonjsGlobal, function () { | ||
@@ -335,4 +354,6 @@ | ||
}); | ||
}); | ||
})(index_min); | ||
var _parse = index_min.exports; | ||
var MASK = { | ||
@@ -361,11 +382,11 @@ year: '*-m-d', | ||
var CoreDatepicker = | ||
/*#__PURE__*/ | ||
function (_HTMLElement) { | ||
var CoreDatepicker = /*#__PURE__*/function (_HTMLElement) { | ||
_inherits(CoreDatepicker, _HTMLElement); | ||
var _super = _createSuper(CoreDatepicker); | ||
function CoreDatepicker() { | ||
_classCallCheck(this, CoreDatepicker); | ||
return _possibleConstructorReturn(this, _getPrototypeOf(CoreDatepicker).apply(this, arguments)); | ||
return _super.apply(this, arguments); | ||
} | ||
@@ -401,3 +422,3 @@ | ||
value: function attributeChangedCallback() { | ||
if (!this._date) return; // Only render after connectedCallback | ||
if (!this._date) return; // Only render after connectedCallback and before disconnectedCallback | ||
@@ -416,11 +437,11 @@ if (this.disabled(this.date) && !this.disabled(this._date)) return this.date = this._date; // Jump back | ||
if (event.defaultPrevented || event.ctrlKey || event.metaKey || event.shiftKey || event.altKey || event.type === 'keydown' && !KEYS[event.keyCode]) return; | ||
if (!this.contains(event.target) && !closest(event.target, "[for=\"".concat(this.id, "\"]"))) return; | ||
if (!this.contains(event.target) && !closest$1(event.target, "[for=\"".concat(this.id, "\"],[data-for=\"").concat(this.id, "\"]"))) return; | ||
if (event.type === 'change') this.date = MASK[event.target.getAttribute('data-type')].replace('*', event.target.value);else if (event.type === 'click') { | ||
var _button = closest(event.target, 'button[value]'); | ||
var _button = closest$1(event.target, 'button[value]'); | ||
var _table = closest(event.target, 'table'); | ||
var _table = closest$1(event.target, 'table'); | ||
if (_button) this.date = _button.value; | ||
if (_button && _table) dispatchEvent(this, 'datepicker.click.day'); | ||
} else if (event.type === 'keydown' && closest(event.target, 'table')) { | ||
} else if (event.type === 'keydown' && closest$1(event.target, 'table')) { | ||
this.date = KEYS[event.keyCode]; | ||
@@ -439,3 +460,3 @@ this.querySelector('[autofocus]').focus(); | ||
value: function parse(val, from) { | ||
return index_min(val, from || this._date); | ||
return _parse(val, from || this._date); | ||
} | ||
@@ -497,3 +518,3 @@ }, { | ||
get: function get() { | ||
return index_min(this.getAttribute('timestamp') || this._date || Date.now()); | ||
return _parse(this.getAttribute('timestamp') || this._date || Date.now()); | ||
}, | ||
@@ -505,15 +526,15 @@ set: function set(val) { | ||
key: "months", | ||
get: function get() { | ||
return (this.getAttribute('months') || MONTHS).split(/\s*,\s*/); | ||
}, | ||
set: function set(val) { | ||
this.setAttribute('months', [].concat(val).join(',')); | ||
}, | ||
get: function get() { | ||
return (this.getAttribute('months') || MONTHS).split(/\s*,\s*/); | ||
} | ||
}, { | ||
key: "days", | ||
get: function get() { | ||
return (this.getAttribute('days') || DAYS).split(/\s*,\s*/); | ||
}, | ||
set: function set(val) { | ||
this.setAttribute('days', [].concat(val).join(',')); | ||
}, | ||
get: function get() { | ||
return (this.getAttribute('days') || DAYS).split(/\s*,\s*/); | ||
} | ||
@@ -528,3 +549,3 @@ }], [{ | ||
return CoreDatepicker; | ||
}(_wrapNativeSuper(HTMLElement)); | ||
}( /*#__PURE__*/_wrapNativeSuper(HTMLElement)); | ||
@@ -609,3 +630,3 @@ var pad = function pad(val) { | ||
var version = "3.0.8"; | ||
var version = "3.1.0"; | ||
@@ -619,3 +640,3 @@ /** | ||
var closest$1 = function () { | ||
var closest = function () { | ||
var proto = typeof window === 'undefined' ? {} : window.Element.prototype; | ||
@@ -666,99 +687,96 @@ var match = proto.matches || proto.msMatchesSelector || proto.webkitMatchesSelector; | ||
var tagName = (dashCase + "-" + (options.suffix || 'react')).replace(/\W+/g, '-').toLowerCase(); | ||
return ( | ||
/*@__PURE__*/ | ||
function (superclass) { | ||
function anonymous(props) { | ||
var this$1 = this; | ||
superclass.call(this, props); // Register ref prop for accessing custom element https://reactjs.org/docs/refs-and-the-dom.html#callback-refs | ||
return function (superclass) { | ||
function anonymous(props) { | ||
var this$1$1 = this; | ||
superclass.call(this, props); // Register ref prop for accessing custom element https://reactjs.org/docs/refs-and-the-dom.html#callback-refs | ||
this.ref = function (el) { | ||
if (typeof this$1.props.forwardRef === 'function') { | ||
this$1.props.forwardRef(el); | ||
} else if (this$1.props.forwardRef) { | ||
this$1.props.forwardRef.current = el; | ||
} | ||
this.ref = function (el) { | ||
if (typeof this$1$1.props.forwardRef === 'function') { | ||
this$1$1.props.forwardRef(el); | ||
} else if (this$1$1.props.forwardRef) { | ||
this$1$1.props.forwardRef.current = el; | ||
} | ||
return this$1.el = el; | ||
}; // Register event handler on component for each custom event | ||
return this$1$1.el = el; | ||
}; // Register event handler on component for each custom event | ||
Object.keys(eventMap).forEach(function (eventName) { | ||
var onEventName = eventMap[eventName]; | ||
Object.keys(eventMap).forEach(function (eventName) { | ||
var onEventName = eventMap[eventName]; | ||
this$1[eventName] = function (event) { | ||
if (this$1.props[onEventName] && closest$1(event.target, this$1.el.nodeName) === this$1.el) { | ||
this$1.props[onEventName](event); | ||
} | ||
}; | ||
}); | ||
} | ||
this$1$1[eventName] = function (event) { | ||
if (this$1$1.props[onEventName] && closest(event.target, this$1$1.el.nodeName) === this$1$1.el) { | ||
this$1$1.props[onEventName](event); | ||
} | ||
}; | ||
}); | ||
} | ||
if (superclass) anonymous.__proto__ = superclass; | ||
anonymous.prototype = Object.create(superclass && superclass.prototype); | ||
anonymous.prototype.constructor = anonymous; | ||
if (superclass) anonymous.__proto__ = superclass; | ||
anonymous.prototype = Object.create(superclass && superclass.prototype); | ||
anonymous.prototype.constructor = anonymous; | ||
anonymous.prototype.componentDidMount = function componentDidMount() { | ||
var this$1 = this; // Run connectedCallback() after React componentDidMount() to allow React hydration to run first | ||
anonymous.prototype.componentDidMount = function componentDidMount() { | ||
var this$1$1 = this; // Run connectedCallback() after React componentDidMount() to allow React hydration to run first | ||
if (!window.customElements.get(tagName)) { | ||
window.customElements.define(tagName, elementClass); | ||
} // Populate properties on custom element | ||
if (!window.customElements.get(tagName)) { | ||
window.customElements.define(tagName, elementClass); | ||
} // Populate properties on custom element | ||
customProps.forEach(function (propName) { | ||
if (propName in this$1.props) { | ||
this$1.el[propName] = this$1.props[propName]; | ||
} | ||
}); // Register events on custom element | ||
customProps.forEach(function (propName) { | ||
if (propName in this$1$1.props) { | ||
this$1$1.el[propName] = this$1$1.props[propName]; | ||
} | ||
}); // Register events on custom element | ||
customEvents.forEach(function (eventName) { | ||
this$1.el.addEventListener(eventName, this$1[eventName]); | ||
}); | ||
}; | ||
customEvents.forEach(function (eventName) { | ||
this$1$1.el.addEventListener(eventName, this$1$1[eventName]); | ||
}); | ||
}; | ||
anonymous.prototype.componentDidUpdate = function componentDidUpdate(prev) { | ||
var this$1 = this; // Sync prop changes to custom element | ||
anonymous.prototype.componentDidUpdate = function componentDidUpdate(prev) { | ||
var this$1$1 = this; // Sync prop changes to custom element | ||
customProps.forEach(function (propName) { | ||
if (prev[propName] !== this$1.props[propName]) { | ||
this$1.el[propName] = this$1.props[propName]; | ||
} | ||
}); | ||
}; | ||
customProps.forEach(function (propName) { | ||
if (prev[propName] !== this$1$1.props[propName]) { | ||
this$1$1.el[propName] = this$1$1.props[propName]; | ||
} | ||
}); | ||
}; | ||
anonymous.prototype.componentWillUnmount = function componentWillUnmount() { | ||
var this$1 = this; // Remove event handlers on custom element on unmount | ||
anonymous.prototype.componentWillUnmount = function componentWillUnmount() { | ||
var this$1$1 = this; // Remove event handlers on custom element on unmount | ||
customEvents.forEach(function (eventName) { | ||
this$1.el.removeEventListener(eventName, this$1[eventName]); | ||
}); | ||
}; | ||
customEvents.forEach(function (eventName) { | ||
this$1$1.el.removeEventListener(eventName, this$1$1[eventName]); | ||
}); | ||
}; | ||
anonymous.prototype.render = function render() { | ||
var this$1 = this; // Convert React props to CustomElement props https://github.com/facebook/react/issues/12810 | ||
anonymous.prototype.render = function render() { | ||
var this$1$1 = this; // Convert React props to CustomElement props https://github.com/facebook/react/issues/12810 | ||
return React.createElement(tagName, Object.keys(this.props).reduce(function (thisProps, propName) { | ||
if (skipProps.indexOf(propName) === -1) { | ||
// Do not render customEvents and custom props as attributes | ||
if (propName === 'className') { | ||
thisProps["class"] = this$1.props[propName]; | ||
} // Fixes className for custom elements | ||
else if (this$1.props[propName] === true) { | ||
thisProps[propName] = ''; | ||
} // Fixes boolean attributes | ||
else if (this$1.props[propName] !== false) { | ||
thisProps[propName] = this$1.props[propName]; | ||
} // Pass only truthy, non-function props | ||
return React__default['default'].createElement(tagName, Object.keys(this.props).reduce(function (thisProps, propName) { | ||
if (skipProps.indexOf(propName) === -1) { | ||
// Do not render customEvents and custom props as attributes | ||
if (propName === 'className') { | ||
thisProps["class"] = this$1$1.props[propName]; | ||
} // Fixes className for custom elements | ||
else if (this$1$1.props[propName] === true) { | ||
thisProps[propName] = ''; | ||
} // Fixes boolean attributes | ||
else if (this$1$1.props[propName] !== false) { | ||
thisProps[propName] = this$1$1.props[propName]; | ||
} // Pass only truthy, non-function props | ||
} | ||
} | ||
return thisProps; | ||
}, { | ||
ref: this.ref | ||
})); | ||
}; | ||
return thisProps; | ||
}, { | ||
ref: this.ref | ||
})); | ||
}; | ||
return anonymous; | ||
}(React.Component) | ||
); | ||
return anonymous; | ||
}(React__default['default'].Component); | ||
} | ||
@@ -765,0 +783,0 @@ |
@@ -5,3 +5,3 @@ { | ||
"author": "NRK <opensource@nrk.no> (https://www.nrk.no/)", | ||
"version": "3.0.8", | ||
"version": "3.1.0", | ||
"license": "MIT", | ||
@@ -8,0 +8,0 @@ "main": "core-datepicker.cjs.js", |
@@ -92,5 +92,5 @@ # Core Datepicker | ||
</core-toggle> | ||
<button for="my-datepicker" value="now">Nå</button> | ||
<button for="my-datepicker" value="+1 week">Neste uke</button> | ||
<select for="my-datepicker"> | ||
<button data-for="my-datepicker" value="now">Nå</button> | ||
<button data-for="my-datepicker" value="+1 week">Neste uke</button> | ||
<select data-for="my-datepicker"> | ||
<option>Tid</option> | ||
@@ -101,7 +101,10 @@ <option value="11:m">11</option> | ||
</select> | ||
<table for="my-datepicker"></table> | ||
<table data-for="my-datepicker"></table> | ||
<input type="text" id="my-datepicker-output"> | ||
<script> | ||
// Update GUI | ||
document.getElementById('my-datepicker').disabled = (date) => date > Date.now() | ||
document.getElementById('my-datepicker').disabled = (date) => { | ||
var oneWeekFromNow = (new Date()).setDate(new Date().getDate() + 7) | ||
return date > oneWeekFromNow | ||
} | ||
@@ -168,3 +171,3 @@ // Update output | ||
Remember to [polyfill](https://github.com/webcomponents/polyfills#custom-elements) custom elements if needed. | ||
Remember to [polyfill](https://github.com/webcomponents/polyfills/tree/master/packages/custom-elements) custom elements if needed. | ||
@@ -171,0 +174,0 @@ |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
New author
Supply chain riskA new npm collaborator published a version of the package for the first time. New collaborators are usually benign additions to a project, but do indicate a change to the security surface area of a package.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
203308
2803
320
1