@semcore/time-picker 2.4.3 → 2.4.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +6 -0
- package/lib/cjs/PickerFormat.js +2 -2
- package/lib/cjs/PickerFormat.js.map +1 -1
- package/lib/cjs/PickerInput.js +5 -3
- package/lib/cjs/PickerInput.js.map +1 -1
- package/lib/cjs/TimePicker.js +25 -21
- package/lib/cjs/TimePicker.js.map +1 -1
- package/lib/cjs/index.js +5 -1
- package/lib/es6/PickerFormat.js +2 -2
- package/lib/es6/PickerFormat.js.map +1 -1
- package/lib/es6/PickerInput.js +4 -3
- package/lib/es6/PickerInput.js.map +1 -1
- package/lib/es6/TimePicker.js +14 -14
- package/lib/es6/TimePicker.js.map +1 -1
- package/package.json +3 -2
- package/src/TimePicker.js +12 -11
package/CHANGELOG.md
CHANGED
package/lib/cjs/PickerFormat.js
CHANGED
|
@@ -27,9 +27,9 @@ var _flexBox = require("@semcore/flex-box");
|
|
|
27
27
|
|
|
28
28
|
var _keyboardFocusEnhance = _interopRequireDefault(require("@semcore/utils/lib/enhances/keyboardFocusEnhance"));
|
|
29
29
|
|
|
30
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object);
|
|
30
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
31
31
|
|
|
32
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]
|
|
32
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
33
33
|
|
|
34
34
|
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
|
|
35
35
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/PickerFormat.js"],"names":["TimePickerFormat","SPickerFormat","Box","asProps","Children","meridiem","styles","SPickerFormatText","origin","Component"],"mappings":";;;;;;;;;;;;;;;;;;;;;AACA;;AADA;;AAEA;;AACA;;;;;;;;;;IAEMA,gB;;;;;;;;;;;;WAEJ,kBAAS;AAAA;AAAA;;AACP,UAAMC,aAAa,GAKMC,YALzB;
|
|
1
|
+
{"version":3,"sources":["../../src/PickerFormat.js"],"names":["TimePickerFormat","SPickerFormat","Box","asProps","Children","meridiem","styles","SPickerFormatText","origin","Component"],"mappings":";;;;;;;;;;;;;;;;;;;;;AACA;;AADA;;AAEA;;AACA;;;;;;;;;;IAEMA,gB;;;;;;;;;;;;WAEJ,kBAAS;AAAA;AAAA;;AACP,UAAMC,aAAa,GAKMC,YALzB;AACA,0BAAuC,KAAKC,OAA5C;AAAA,UAAQC,QAAR,iBAAQA,QAAR;AAAA,UAAkBC,QAAlB,iBAAkBA,QAAlB;AAAA,UAA4BC,MAA5B,iBAA4BA,MAA5B;AACA,UAAMC,iBAAiB,GAAG,MAA1B;AAEA,qBAAO,mBAAQD,MAAR,CAAP,eACE,gCAAC,aAAD;AAAA,gBAAiC,QAAjC;AAAA,eAA8C;AAA9C,kBACGF,QAAQ,CAACI,MAAT,gBACC,gCAAC,QAAD,2BADD,gBAGC,+EACE,gCAAC,iBAAD,qCAAoBH,QAApB,CADF,CAJJ,CADF;AAWD;;;EAlB4BI,e;;iCAAzBT,gB,aACa,CAAC,uCAAD,C;eAoBJA,gB","sourcesContent":["import React from 'react';\nimport { Component, sstyled, Root } from '@semcore/core';\nimport { Box } from '@semcore/flex-box';\nimport keyboardFocusEnhance from '@semcore/utils/lib/enhances/keyboardFocusEnhance';\n\nclass TimePickerFormat extends Component {\n static enhance = [keyboardFocusEnhance()];\n render() {\n const SPickerFormat = Root;\n const { Children, meridiem, styles } = this.asProps;\n const SPickerFormatText = 'span';\n\n return sstyled(styles)(\n <SPickerFormat render={Box} type=\"button\" tag=\"button\">\n {Children.origin ? (\n <Children />\n ) : (\n <>\n <SPickerFormatText>{meridiem}</SPickerFormatText>\n </>\n )}\n </SPickerFormat>,\n );\n }\n}\n\nexport default TimePickerFormat;\n"],"file":"PickerFormat.js"}
|
package/lib/cjs/PickerInput.js
CHANGED
|
@@ -37,9 +37,11 @@ var _TimePicker = require("./TimePicker");
|
|
|
37
37
|
|
|
38
38
|
var _assignProps2 = require("@semcore/utils/lib/assignProps");
|
|
39
39
|
|
|
40
|
-
|
|
40
|
+
var _excluded = ["styles", "step", "onSelect", "time", "size", "disabled", "onVisibleChange"];
|
|
41
41
|
|
|
42
|
-
function
|
|
42
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
43
|
+
|
|
44
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
43
45
|
|
|
44
46
|
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
|
|
45
47
|
|
|
@@ -169,7 +171,7 @@ var ItemPicker = /*#__PURE__*/function (_Component) {
|
|
|
169
171
|
size = _this$asProps.size,
|
|
170
172
|
disabled = _this$asProps.disabled,
|
|
171
173
|
onVisibleChange = _this$asProps.onVisibleChange,
|
|
172
|
-
other = (0, _objectWithoutProperties2["default"])(_this$asProps,
|
|
174
|
+
other = (0, _objectWithoutProperties2["default"])(_this$asProps, _excluded);
|
|
173
175
|
var _this$state = this.state,
|
|
174
176
|
dirtyValue = _this$state.dirtyValue,
|
|
175
177
|
visible = _this$state.visible;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/PickerInput.js"],"names":["MAP_FIELD_TO_TIME","hours","minutes","MAP_SIZE_SELECT","m","l","xl","getOptions","min","max","step","length","Number","toFixed","options","Array","fill","numValue","map","i","index","value","String","ItemPicker","React","createRef","dirtyValue","undefined","visible","minMax","Math","e","stopPropagation","numberValue","NaN","isNaN","setState","slice","submitChanges","$input","current","select","dispatchOnChange","event","asProps","$onValueChange","field","state","parseValueWithMinMax","SPickerInput","Select","Trigger","styles","onSelect","time","size","disabled","onVisibleChange","other","timeValue","handleSelect","handleVisibleChange","Input","Value","handleChange","handleBlur","handleFocus","handleKeyDown","Component","placeholder","Hours","currentTarget","keyCode","selectionStart","selectionEnd","preventDefault","nextInput","is12Hour","focus","prevProps","prevState","Minutes","prevFocus"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA;;AAJA;;AACA;;AACA;;AACA;;AAEA;;;;;;;;;;AAEA,IAAMA,iBAAiB,GAAG;AACxBC,EAAAA,KAAK,EAAE,CADiB;AAExBC,EAAAA,OAAO,EAAE;AAFe,CAA1B;AAKA,IAAMC,eAAe,GAAG;AACtBC,EAAAA,CAAC,EAAE,GADmB;AAEtBC,EAAAA,CAAC,EAAE,GAFmB;AAGtBC,EAAAA,EAAE,EAAE;AAHkB,CAAxB;;AAMA,SAASC,UAAT,CAAoBC,GAApB,EAAyBC,GAAzB,EAAwC;AAAA,MAAVC,IAAU,uEAAH,CAAG;AACtC,MAAMC,MAAM,GAAGC,MAAM,CAAC,CAAC,CAACH,GAAG,GAAG,CAAN,GAAUD,GAAX,IAAkBE,IAAnB,EAAyBG,OAAzB,CAAiC,CAAjC,CAAD,CAArB;AACA,MAAMC,OAAO,GAAGC,KAAK,CAACJ,MAAD,CAAL,CAAcK,IAAd,CAAmB,EAAnB,CAAhB;AACA,MAAIC,QAAQ,GAAGT,GAAf;AACA,SAAOM,OAAO,CAACI,GAAR,CAAY,UAACC,CAAD,EAAIC,KAAJ,EAAc;AAC/BH,IAAAA,QAAQ,GAAGG,KAAK,KAAK,CAAV,GAAcH,QAAd,GAAyBA,QAAQ,GAAGP,IAA/C;AACA,QAAMW,KAAK,GAAG,iCAAgBC,MAAM,CAACL,QAAD,CAAtB,CAAd;AACA,wBACE,gCAAC,kBAAD,CAAQ,MAAR;AAAe,MAAA,KAAK,EAAEI,KAAtB;AAA6B,MAAA,GAAG,EAAEA;AAAlC,OACGA,KADH,CADF;AAKD,GARM,CAAP;AASD;;IAEKE,U;;;;;;;;;;;;;;;4GAKKC,kBAAMC,SAAN,E;8FAMD;AACNC,MAAAA,UAAU,EAAEC,SADN;AAENC,MAAAA,OAAO,EAAE;AAFH,K;6GAKe,UAACP,KAAD,EAAW;AAAA,yBACb,MAAKQ,MAAL,EADa;AAAA;AAAA,UACzBrB,GADyB;AAAA,UACpBC,GADoB;;AAEhC,aAAOa,MAAM,CAACQ,IAAI,CAACrB,GAAL,CAASD,GAAT,EAAcsB,IAAI,CAACtB,GAAL,CAASC,GAAT,EAAcY,KAAd,CAAd,CAAD,CAAb;AACD,K;qGAgBc,UAACA,KAAD,EAAQU,CAAR,EAAc;AAC3B;AACAA,MAAAA,CAAC,CAACC,eAAF;AACA,UAAMC,WAAW,GAAG,8BAAarB,MAAM,CAACS,KAAD,CAAnB,EAA4Ba,GAA5B,CAApB;;AAEA,UAAI,CAACtB,MAAM,CAACuB,KAAP,CAAaF,WAAb,CAAL,EAAgC;AAC9B,cAAKG,QAAL,CAAc;AAAEV,UAAAA,UAAU,EAAEL,KAAK,CAACgB,KAAN,CAAY,CAAC,CAAb;AAAd,SAAd;AACD;AACF,K;mGAEY,UAACN,CAAD;AAAA,aAAO,MAAKO,aAAL,CAAmBP,CAAnB,CAAP;AAAA,K;oGAEC,YAAM;AAAA;;AAClB,4BAAKQ,MAAL,8DAAaC,OAAb,CAAqBC,MAArB;AACD,K;sGAGe,YAAM,CAAE,C;qGAET,UAACpB,KAAD,EAAQU,CAAR,EAAc;AAC3B,YAAKW,gBAAL,CAAsBrB,KAAtB,EAA6BU,CAA7B;AACD,K;4GAEqB,UAACH,OAAD;AAAA,aAAa,MAAKQ,QAAL,CAAc;AAAER,QAAAA,OAAO,EAAPA;AAAF,OAAd,CAAb;AAAA,K;;;;;;WAnDtB,kBAAS;AACP,aAAO,EAAP;AACD;;;WAYD,0BAAiBP,KAAjB,EAAwBsB,KAAxB,EAA+B;AAC7B,WAAKP,QAAL,CAAc;AAAEV,QAAAA,UAAU,EAAEC;AAAd,OAAd;AACA,WAAKiB,OAAL,CAAaC,cAAb,CAA4BxB,KAA5B,EAAmC,KAAKyB,KAAxC,EAA+CH,KAA/C;AACD;;;WAED,uBAAcA,KAAd,EAAqB;AAAA,UACbjB,UADa,GACE,KAAKqB,KADP,CACbrB,UADa;;AAEnB,UAAIA,UAAU,KAAKC,SAAnB,EAA8B;AAC5B;AACA,YAAID,UAAJ,EAAgBA,UAAU,GAAG,KAAKsB,oBAAL,CAA0BtB,UAA1B,CAAb,CAFY,CAEwC;;AACpE,aAAKgB,gBAAL,CAAsBhB,UAAtB,EAAkCiB,KAAlC;AACD;AACF;;;WA2BD,kBAAS;AAAA;AAAA;;AACP,UAAMM,YAAY,GA4BJC,mBAAOC,OA5BrB;AADO,0BAWH,KAAKP,OAXF;AAAA,UAGLQ,MAHK,iBAGLA,MAHK;AAAA,UAIL1C,IAJK,iBAILA,IAJK;AAAA,UAKL2C,QALK,iBAKLA,QALK;AAAA,UAMLC,IANK,iBAMLA,IANK;AAAA,UAOLC,IAPK,iBAOLA,IAPK;AAAA,UAQLC,QARK,iBAQLA,QARK;AAAA,UASLC,eATK,iBASLA,eATK;AAAA,UAUFC,KAVE;AAAA,wBAYyB,KAAKX,KAZ9B;AAAA,UAYCrB,UAZD,eAYCA,UAZD;AAAA,UAYaE,OAZb,eAYaA,OAZb;AAaP,UAAM+B,SAAS,GAAGL,IAAI,CAACtD,iBAAiB,CAAC,KAAK8C,KAAN,CAAlB,CAAtB;AACA,UAAMzB,KAAK,GAAGK,UAAU,KAAKC,SAAf,GAA2BgC,SAA3B,GAAuCjC,UAArD;;AAdO,0BAeY,KAAKG,MAAL,EAfZ;AAAA;AAAA,UAeArB,GAfA;AAAA,UAeKC,GAfL;;AAiBP,qBAAO,mBAAQ2C,MAAR,CAAP,eACE,gCAAC,kBAAD,qDACMM,KADN;AAAA,uBAEc,OAFd;AAAA,gBAGQH,IAAI,GAAGpD,eAAe,CAACoD,IAAD,CAAlB,GAA2B,KAHvC;AAAA,oBAIY,wCAAqBF,QAArB,EAA+B,KAAKO,YAApC,CAJZ;AAAA,2BAKmB,wCAAqBH,eAArB,EAAsC,KAAKI,mBAA3C,CALnB;AAAA,mBAMWjC,OANX;AAAA,iBAOS+B;AAPT,wBASE,gCAAC,YAAD;AAAA,uBACc,OADd;AAAA,eAGOG,kBAAMC,KAHb;AAAA,eAIO,KAAKxB,MAJZ;AAAA,gBAKQgB,IALR;AAAA,oBAMYC,QANZ;AAAA,4BAOoB,KAPpB;AAAA,iBAQSnC,KART;AAAA,uCASwB,KAAKyB,KAT7B;AAAA,oBAUY,KAAKkB,YAVjB;AAAA,kBAWU,KAAKC,UAXf;AAAA,mBAYW,KAAKC,WAZhB;AAAA,qBAaa,KAAKC;AAblB,iBATF,eAwBE,gCAAC,kBAAD,CAAQ,IAAR;AAAa,QAAA,IAAI,EAAE;AAAnB,SAAyB5D,UAAU,CAACC,GAAD,EAAMC,GAAN,EAAWC,IAAX,CAAnC,CAxBF,CADF;AA4BD;;;EAzGsB0D,e;;iCAAnB7C,U,kBACkB;AACpB8C,EAAAA,WAAW,EAAE;AADO,C;;IA2GlBC,K;;;;;;;;;;;;;;;+FACI,O;uGAqBQ,UAACvC,CAAD,EAAO;AAAA,UACbwC,aADa,GACKxC,CADL,CACbwC,aADa;AAErB,UAAIxC,CAAC,CAACyC,OAAF,KAAc,EAAlB,EAAsB,OAAKlC,aAAL,CAAmBP,CAAnB;;AACtB,UAAIA,CAAC,CAACyC,OAAF,KAAc,EAAlB,EAAsB;AACpB,YACED,aAAa,CAACE,cAAd,IAAgCF,aAAa,CAAClD,KAAd,CAAoBV,MAApD,IACA4D,aAAa,CAACE,cAAd,KAAiCF,aAAa,CAACG,YAFjD,EAGE;AACA3C,UAAAA,CAAC,CAAC4C,cAAF;;AACA,iBAAKC,SAAL;AACD;AACF;AACF,K;;;;;;WA/BD,kBAAS;AAAA,UACCC,QADD,GACc,KAAKjC,OADnB,CACCiC,QADD;;AAEP,UAAIA,QAAJ,EAAc;AACZ,eAAO,CAAC,CAAD,EAAI,EAAJ,CAAP;AACD,OAFD,MAEO;AACL,eAAO,CAAC,CAAD,EAAI,EAAJ,CAAP;AACD;AACF;;;WAED,qBAAY;AACV,UAAI,KAAKtC,MAAL,CAAYC,OAAhB,EAAyB;AACvB,YAAMD,MAAM,GAAG,2BAAU,KAAKA,MAAL,CAAYC,OAAtB,CAAf;;AACA,YAAID,MAAJ,EAAY;AACV,eAAKH,QAAL,CAAc;AAAER,YAAAA,OAAO,EAAE;AAAX,WAAd;AACAW,UAAAA,MAAM,CAACuC,KAAP;AACD;AACF;AACF;;;WAgBD,4BAAmBC,SAAnB,EAA8BC,SAA9B,EAAyC;AAAA,UAC/BtD,UAD+B,GAChB,KAAKqB,KADW,CAC/BrB,UAD+B;AAEvC,UAAIsD,SAAS,CAACtD,UAAV,KAAyBC,SAAzB,IAAsCD,UAAU,KAAKC,SAAzD,EAAoE;;AAEpE,UAAIqD,SAAS,CAACtD,UAAV,CAAqBf,MAArB,KAAgC,CAAhC,IAAqCe,UAAU,CAACf,MAAX,KAAsB,CAA/D,EAAkE;AAChE,aAAKiE,SAAL;AACD;AACF;;;EA3CiBrD,U;;;;IA8Cd0D,O;;;;;;;;;;;;;;;+FACI,S;uGAgBQ,UAAClD,CAAD,EAAO;AAAA,UACbwC,aADa,GACKxC,CADL,CACbwC,aADa;AAErB,UAAIxC,CAAC,CAACyC,OAAF,KAAc,EAAlB,EAAsB,OAAKlC,aAAL,CAAmBP,CAAnB;;AACtB,UAAIA,CAAC,CAACyC,OAAF,KAAc,EAAlB,EAAsB;AACpB,YACED,aAAa,CAACE,cAAd,IAAgC,CAAhC,IACAF,aAAa,CAACE,cAAd,KAAiCF,aAAa,CAACG,YAFjD,EAGE;AACA3C,UAAAA,CAAC,CAAC4C,cAAF;;AACA,iBAAKO,SAAL;AACD;AACF;;AACD,UAAInD,CAAC,CAACyC,OAAF,KAAc,CAAlB,EAAqB;AACnB,YAAID,aAAa,CAAClD,KAAd,CAAoBV,MAApB,KAA+B,CAAnC,EAAsC;AACpCoB,UAAAA,CAAC,CAAC4C,cAAF;;AACA,iBAAKO,SAAL;AACD;AACF;AACF,K;;;;;;WAhCD,kBAAS;AACP,aAAO,CAAC,CAAD,EAAI,EAAJ,CAAP;AACD;;;WAED,qBAAY;AACV,UAAI,KAAK3C,MAAL,CAAYC,OAAhB,EAAyB;AACvB,YAAMD,MAAM,GAAG,2BAAU,KAAKA,MAAL,CAAYC,OAAtB,CAAf;;AACA,YAAID,MAAJ,EAAY;AACV,eAAKH,QAAL,CAAc;AAAER,YAAAA,OAAO,EAAE;AAAX,WAAd;AACAW,UAAAA,MAAM,CAACuC,KAAP;AACD;AACF;AACF;;;EAfmBvD,U","sourcesContent":["import React from 'react';\nimport Input from '@semcore/input';\nimport Select from '@semcore/select';\nimport { intOrDefault, nextInput, prevInput, withLeadingZero } from './TimePicker';\nimport { Component, sstyled, Root } from '@semcore/core';\nimport { callAllEventHandlers } from '@semcore/utils/lib/assignProps';\n\nconst MAP_FIELD_TO_TIME = {\n hours: 0,\n minutes: 1,\n};\n\nconst MAP_SIZE_SELECT = {\n m: 'm',\n l: 'l',\n xl: 'l',\n};\n\nfunction getOptions(min, max, step = 1) {\n const length = Number(((max + 1 - min) / step).toFixed(0));\n const options = Array(length).fill('');\n let numValue = min;\n return options.map((i, index) => {\n numValue = index === 0 ? numValue : numValue + step;\n const value = withLeadingZero(String(numValue));\n return (\n <Select.Option value={value} key={value}>\n {value}\n </Select.Option>\n );\n });\n}\n\nclass ItemPicker extends Component {\n static defaultProps = {\n placeholder: '00',\n };\n\n $input = React.createRef();\n\n minMax() {\n return [];\n }\n\n state = {\n dirtyValue: undefined,\n visible: false,\n };\n\n parseValueWithMinMax = (value) => {\n const [min, max] = this.minMax();\n return String(Math.max(min, Math.min(max, value)));\n };\n\n dispatchOnChange(value, event) {\n this.setState({ dirtyValue: undefined });\n this.asProps.$onValueChange(value, this.field, event);\n }\n\n submitChanges(event) {\n let { dirtyValue } = this.state;\n if (dirtyValue !== undefined) {\n // if changes value\n if (dirtyValue) dirtyValue = this.parseValueWithMinMax(dirtyValue); // if not \"\"\n this.dispatchOnChange(dirtyValue, event);\n }\n }\n\n handleChange = (value, e) => {\n /* hide props for bubbling events */\n e.stopPropagation();\n const numberValue = intOrDefault(Number(value), NaN);\n\n if (!Number.isNaN(numberValue)) {\n this.setState({ dirtyValue: value.slice(-2) });\n }\n };\n\n handleBlur = (e) => this.submitChanges(e);\n\n handleFocus = () => {\n this.$input?.current.select();\n };\n\n /* rewrite method */\n handleKeyDown = () => {};\n\n handleSelect = (value, e) => {\n this.dispatchOnChange(value, e);\n };\n\n handleVisibleChange = (visible) => this.setState({ visible });\n\n render() {\n const SPickerInput = Root;\n const {\n styles,\n step,\n onSelect,\n time,\n size,\n disabled,\n onVisibleChange,\n ...other\n } = this.asProps;\n const { dirtyValue, visible } = this.state;\n const timeValue = time[MAP_FIELD_TO_TIME[this.field]];\n const value = dirtyValue === undefined ? timeValue : dirtyValue;\n const [min, max] = this.minMax();\n\n return sstyled(styles)(\n <Select\n {...other}\n interaction=\"focus\"\n size={size ? MAP_SIZE_SELECT[size] : false}\n onChange={callAllEventHandlers(onSelect, this.handleSelect)}\n onVisibleChange={callAllEventHandlers(onVisibleChange, this.handleVisibleChange)}\n visible={visible}\n value={timeValue}\n >\n <SPickerInput\n interaction=\"focus\"\n render={Select.Trigger}\n tag={Input.Value}\n ref={this.$input}\n size={size}\n disabled={disabled}\n neighborLocation={false}\n value={value}\n aria-label={`Search ${this.field}`}\n onChange={this.handleChange}\n onBlur={this.handleBlur}\n onFocus={this.handleFocus}\n onKeyDown={this.handleKeyDown}\n />\n <Select.Menu hMax={180}>{getOptions(min, max, step)}</Select.Menu>\n </Select>,\n );\n }\n}\n\nclass Hours extends ItemPicker {\n field = 'hours';\n\n minMax() {\n const { is12Hour } = this.asProps;\n if (is12Hour) {\n return [1, 12];\n } else {\n return [0, 23];\n }\n }\n\n nextInput() {\n if (this.$input.current) {\n const $input = nextInput(this.$input.current);\n if ($input) {\n this.setState({ visible: false });\n $input.focus();\n }\n }\n }\n\n handleKeyDown = (e) => {\n const { currentTarget } = e;\n if (e.keyCode === 13) this.submitChanges(e);\n if (e.keyCode === 39) {\n if (\n currentTarget.selectionStart >= currentTarget.value.length &&\n currentTarget.selectionStart === currentTarget.selectionEnd\n ) {\n e.preventDefault();\n this.nextInput();\n }\n }\n };\n\n componentDidUpdate(prevProps, prevState) {\n const { dirtyValue } = this.state;\n if (prevState.dirtyValue === undefined || dirtyValue === undefined) return;\n\n if (prevState.dirtyValue.length === 1 && dirtyValue.length === 2) {\n this.nextInput();\n }\n }\n}\n\nclass Minutes extends ItemPicker {\n field = 'minutes';\n\n minMax() {\n return [0, 59];\n }\n\n prevFocus() {\n if (this.$input.current) {\n const $input = prevInput(this.$input.current);\n if ($input) {\n this.setState({ visible: false });\n $input.focus();\n }\n }\n }\n\n handleKeyDown = (e) => {\n const { currentTarget } = e;\n if (e.keyCode === 13) this.submitChanges(e);\n if (e.keyCode === 37) {\n if (\n currentTarget.selectionStart <= 0 &&\n currentTarget.selectionStart === currentTarget.selectionEnd\n ) {\n e.preventDefault();\n this.prevFocus();\n }\n }\n if (e.keyCode === 8) {\n if (currentTarget.value.length === 0) {\n e.preventDefault();\n this.prevFocus();\n }\n }\n };\n}\n\nexport { Hours, Minutes };\n"],"file":"PickerInput.js"}
|
|
1
|
+
{"version":3,"sources":["../../src/PickerInput.js"],"names":["MAP_FIELD_TO_TIME","hours","minutes","MAP_SIZE_SELECT","m","l","xl","getOptions","min","max","step","length","Number","toFixed","options","Array","fill","numValue","map","i","index","value","String","ItemPicker","React","createRef","dirtyValue","undefined","visible","minMax","Math","e","stopPropagation","numberValue","NaN","isNaN","setState","slice","submitChanges","$input","current","select","dispatchOnChange","event","asProps","$onValueChange","field","state","parseValueWithMinMax","SPickerInput","Select","Trigger","styles","onSelect","time","size","disabled","onVisibleChange","other","timeValue","handleSelect","handleVisibleChange","Input","Value","handleChange","handleBlur","handleFocus","handleKeyDown","Component","placeholder","Hours","currentTarget","keyCode","selectionStart","selectionEnd","preventDefault","nextInput","is12Hour","focus","prevProps","prevState","Minutes","prevFocus"],"mappings":"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","sourcesContent":["import React from 'react';\nimport Input from '@semcore/input';\nimport Select from '@semcore/select';\nimport { intOrDefault, nextInput, prevInput, withLeadingZero } from './TimePicker';\nimport { Component, sstyled, Root } from '@semcore/core';\nimport { callAllEventHandlers } from '@semcore/utils/lib/assignProps';\n\nconst MAP_FIELD_TO_TIME = {\n hours: 0,\n minutes: 1,\n};\n\nconst MAP_SIZE_SELECT = {\n m: 'm',\n l: 'l',\n xl: 'l',\n};\n\nfunction getOptions(min, max, step = 1) {\n const length = Number(((max + 1 - min) / step).toFixed(0));\n const options = Array(length).fill('');\n let numValue = min;\n return options.map((i, index) => {\n numValue = index === 0 ? numValue : numValue + step;\n const value = withLeadingZero(String(numValue));\n return (\n <Select.Option value={value} key={value}>\n {value}\n </Select.Option>\n );\n });\n}\n\nclass ItemPicker extends Component {\n static defaultProps = {\n placeholder: '00',\n };\n\n $input = React.createRef();\n\n minMax() {\n return [];\n }\n\n state = {\n dirtyValue: undefined,\n visible: false,\n };\n\n parseValueWithMinMax = (value) => {\n const [min, max] = this.minMax();\n return String(Math.max(min, Math.min(max, value)));\n };\n\n dispatchOnChange(value, event) {\n this.setState({ dirtyValue: undefined });\n this.asProps.$onValueChange(value, this.field, event);\n }\n\n submitChanges(event) {\n let { dirtyValue } = this.state;\n if (dirtyValue !== undefined) {\n // if changes value\n if (dirtyValue) dirtyValue = this.parseValueWithMinMax(dirtyValue); // if not \"\"\n this.dispatchOnChange(dirtyValue, event);\n }\n }\n\n handleChange = (value, e) => {\n /* hide props for bubbling events */\n e.stopPropagation();\n const numberValue = intOrDefault(Number(value), NaN);\n\n if (!Number.isNaN(numberValue)) {\n this.setState({ dirtyValue: value.slice(-2) });\n }\n };\n\n handleBlur = (e) => this.submitChanges(e);\n\n handleFocus = () => {\n this.$input?.current.select();\n };\n\n /* rewrite method */\n handleKeyDown = () => {};\n\n handleSelect = (value, e) => {\n this.dispatchOnChange(value, e);\n };\n\n handleVisibleChange = (visible) => this.setState({ visible });\n\n render() {\n const SPickerInput = Root;\n const {\n styles,\n step,\n onSelect,\n time,\n size,\n disabled,\n onVisibleChange,\n ...other\n } = this.asProps;\n const { dirtyValue, visible } = this.state;\n const timeValue = time[MAP_FIELD_TO_TIME[this.field]];\n const value = dirtyValue === undefined ? timeValue : dirtyValue;\n const [min, max] = this.minMax();\n\n return sstyled(styles)(\n <Select\n {...other}\n interaction=\"focus\"\n size={size ? MAP_SIZE_SELECT[size] : false}\n onChange={callAllEventHandlers(onSelect, this.handleSelect)}\n onVisibleChange={callAllEventHandlers(onVisibleChange, this.handleVisibleChange)}\n visible={visible}\n value={timeValue}\n >\n <SPickerInput\n interaction=\"focus\"\n render={Select.Trigger}\n tag={Input.Value}\n ref={this.$input}\n size={size}\n disabled={disabled}\n neighborLocation={false}\n value={value}\n aria-label={`Search ${this.field}`}\n onChange={this.handleChange}\n onBlur={this.handleBlur}\n onFocus={this.handleFocus}\n onKeyDown={this.handleKeyDown}\n />\n <Select.Menu hMax={180}>{getOptions(min, max, step)}</Select.Menu>\n </Select>,\n );\n }\n}\n\nclass Hours extends ItemPicker {\n field = 'hours';\n\n minMax() {\n const { is12Hour } = this.asProps;\n if (is12Hour) {\n return [1, 12];\n } else {\n return [0, 23];\n }\n }\n\n nextInput() {\n if (this.$input.current) {\n const $input = nextInput(this.$input.current);\n if ($input) {\n this.setState({ visible: false });\n $input.focus();\n }\n }\n }\n\n handleKeyDown = (e) => {\n const { currentTarget } = e;\n if (e.keyCode === 13) this.submitChanges(e);\n if (e.keyCode === 39) {\n if (\n currentTarget.selectionStart >= currentTarget.value.length &&\n currentTarget.selectionStart === currentTarget.selectionEnd\n ) {\n e.preventDefault();\n this.nextInput();\n }\n }\n };\n\n componentDidUpdate(prevProps, prevState) {\n const { dirtyValue } = this.state;\n if (prevState.dirtyValue === undefined || dirtyValue === undefined) return;\n\n if (prevState.dirtyValue.length === 1 && dirtyValue.length === 2) {\n this.nextInput();\n }\n }\n}\n\nclass Minutes extends ItemPicker {\n field = 'minutes';\n\n minMax() {\n return [0, 59];\n }\n\n prevFocus() {\n if (this.$input.current) {\n const $input = prevInput(this.$input.current);\n if ($input) {\n this.setState({ visible: false });\n $input.focus();\n }\n }\n }\n\n handleKeyDown = (e) => {\n const { currentTarget } = e;\n if (e.keyCode === 13) this.submitChanges(e);\n if (e.keyCode === 37) {\n if (\n currentTarget.selectionStart <= 0 &&\n currentTarget.selectionStart === currentTarget.selectionEnd\n ) {\n e.preventDefault();\n this.prevFocus();\n }\n }\n if (e.keyCode === 8) {\n if (currentTarget.value.length === 0) {\n e.preventDefault();\n this.prevFocus();\n }\n }\n };\n}\n\nexport { Hours, Minutes };\n"],"file":"PickerInput.js"}
|
package/lib/cjs/TimePicker.js
CHANGED
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
|
|
4
|
-
|
|
5
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
6
4
|
|
|
5
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
6
|
+
|
|
7
7
|
Object.defineProperty(exports, "__esModule", {
|
|
8
8
|
value: true
|
|
9
9
|
});
|
|
10
|
+
exports["default"] = void 0;
|
|
11
|
+
exports.formatHoursTo12 = formatHoursTo12;
|
|
12
|
+
exports.formatHoursTo24 = formatHoursTo24;
|
|
13
|
+
exports.intOrDefault = intOrDefault;
|
|
14
|
+
exports.meridiemByHours = meridiemByHours;
|
|
10
15
|
exports.nextInput = nextInput;
|
|
11
16
|
exports.prevInput = prevInput;
|
|
12
|
-
exports.intOrDefault = intOrDefault;
|
|
13
17
|
exports.withLeadingZero = withLeadingZero;
|
|
14
|
-
exports.meridiemByHours = meridiemByHours;
|
|
15
|
-
exports.formatHoursTo12 = formatHoursTo12;
|
|
16
|
-
exports.formatHoursTo24 = formatHoursTo24;
|
|
17
|
-
exports["default"] = void 0;
|
|
18
18
|
|
|
19
19
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
20
20
|
|
|
@@ -44,9 +44,13 @@ var _PickerInput = require("./PickerInput");
|
|
|
44
44
|
|
|
45
45
|
var _PickerFormat = _interopRequireDefault(require("./PickerFormat"));
|
|
46
46
|
|
|
47
|
-
function
|
|
47
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
48
|
+
|
|
49
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
50
|
+
|
|
51
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
48
52
|
|
|
49
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]
|
|
53
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
50
54
|
|
|
51
55
|
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
|
|
52
56
|
|
|
@@ -57,22 +61,22 @@ var style = (
|
|
|
57
61
|
/*__reshadow_css_start__*/
|
|
58
62
|
_core.sstyled.insert(
|
|
59
63
|
/*__inner_css_start__*/
|
|
60
|
-
".
|
|
64
|
+
".___STimePicker_y9vhd_gg_{position:relative;width:auto}.___STimePicker_y9vhd_gg_.__disabled_y9vhd_gg_{color:rgba(51,51,51,.3);cursor:default}.___SPickerInput_y9vhd_gg_{box-sizing:content-box;text-align:center;z-index:1}.___SPickerInput_y9vhd_gg_.__placeholder_y9vhd_gg_{text-overflow:clip}.___SPickerInput_y9vhd_gg_._size_m_y9vhd_gg_{width:17px}.___SPickerInput_y9vhd_gg_._size_l_y9vhd_gg_{width:18px}.___SPickerInput_y9vhd_gg_._size_xl_y9vhd_gg_{width:22px}.___SPickerFormat_y9vhd_gg_{flex-shrink:0;position:relative;display:inline-flex;padding:0;margin:0 -1px 0 0;white-space:nowrap;font-family:inherit;font-weight:400;line-height:normal;text-decoration:none;align-items:center;border:1px solid transparent;outline:0;box-shadow:none;cursor:pointer;box-sizing:border-box;overflow:visible;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;touch-action:manipulation;-webkit-tap-highlight-color:transparent;color:#666666;border-color:#a6b0b3;background-color:rgba(166,176,179,.1)}.___SPickerFormat_y9vhd_gg_:hover{background-color:rgba(166,176,179,.2)}.___SPickerFormat_y9vhd_gg_:active,.___SPickerFormat_y9vhd_gg_.__active_y9vhd_gg_{background-color:rgba(166,176,179,.3)}.___SPickerFormat_y9vhd_gg_._size_m_y9vhd_gg_{height:26px;font-size:12px;border-radius:0 3px 3px 0}.___SPickerFormat_y9vhd_gg_._size_l_y9vhd_gg_{height:32px;font-size:14px;border-radius:0 4px 4px 0}.___SPickerFormat_y9vhd_gg_._size_l_y9vhd_gg_ .___SPickerFormatText_y9vhd_gg_,.___SPickerFormat_y9vhd_gg_._size_m_y9vhd_gg_ .___SPickerFormatText_y9vhd_gg_{margin:0 8px}.___SPickerFormat_y9vhd_gg_._size_xl_y9vhd_gg_{height:42px;font-size:16px;border-radius:0 5px 5px 0}.___SPickerFormat_y9vhd_gg_._size_xl_y9vhd_gg_ .___SPickerFormatText_y9vhd_gg_{margin:0 12px}.___SPickerFormat_y9vhd_gg_.__disabled_y9vhd_gg_{opacity:0.3;cursor:default;pointer-events:none;border-color:transparent transparent transparent #a6b0b3}.___SPickerFormat_y9vhd_gg_.__keyboardFocused_y9vhd_gg_{box-shadow:0 0 0 3px rgba(43, 148, 225, 0.3)}"
|
|
61
65
|
/*__inner_css_end__*/
|
|
62
66
|
, "buqesv_gg_")
|
|
63
67
|
/*__reshadow_css_end__*/
|
|
64
68
|
, {
|
|
65
|
-
"__STimePicker": "
|
|
66
|
-
"_disabled": "
|
|
67
|
-
"__SPickerInput": "
|
|
68
|
-
"_placeholder": "
|
|
69
|
-
"_size_m": "
|
|
70
|
-
"_size_l": "
|
|
71
|
-
"_size_xl": "
|
|
72
|
-
"__SPickerFormat": "
|
|
73
|
-
"_active": "
|
|
74
|
-
"__SPickerFormatText": "
|
|
75
|
-
"_keyboardFocused": "
|
|
69
|
+
"__STimePicker": "___STimePicker_y9vhd_gg_",
|
|
70
|
+
"_disabled": "__disabled_y9vhd_gg_",
|
|
71
|
+
"__SPickerInput": "___SPickerInput_y9vhd_gg_",
|
|
72
|
+
"_placeholder": "__placeholder_y9vhd_gg_",
|
|
73
|
+
"_size_m": "_size_m_y9vhd_gg_",
|
|
74
|
+
"_size_l": "_size_l_y9vhd_gg_",
|
|
75
|
+
"_size_xl": "_size_xl_y9vhd_gg_",
|
|
76
|
+
"__SPickerFormat": "___SPickerFormat_y9vhd_gg_",
|
|
77
|
+
"_active": "__active_y9vhd_gg_",
|
|
78
|
+
"__SPickerFormatText": "___SPickerFormatText_y9vhd_gg_",
|
|
79
|
+
"_keyboardFocused": "__keyboardFocused_y9vhd_gg_"
|
|
76
80
|
});
|
|
77
81
|
var MAP_MERIDIEM = {
|
|
78
82
|
AM: 'PM',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/TimePicker.js"],"names":["MAP_MERIDIEM","AM","PM","MAP_FIELD_TO_TIME","hours","minutes","nextInput","element","nextElementSibling","tagName","prevInput","previousElementSibling","intOrDefault","value","def","number","Number","parseInt","isNaN","withLeadingZero","String","length","meridiemByHours","formatHoursTo12","nHours","NaN","formatHoursTo24","meridiem","TimePickerRoot","field","event","is12Hour","asProps","time","split","timeToValue","handlers","size","disabled","valueToTime","$onValueChange","handleValueChange","getHoursProps","disablePortal","onClick","handleMeridiemClick","undefined","_lastMeridiem","STimePicker","Input","styles","Children","Component","style","defaultValue","children","Separator","React","createRef","$el","current","focus","Box","handlerClick","TimePicker","Hours","Minutes","Format"],"mappings":"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","sourcesContent":["import React from 'react';\nimport createComponent, { Component, sstyled, Root } from '@semcore/core';\nimport Input from '@semcore/input';\nimport { Box } from '@semcore/flex-box';\nimport { Hours, Minutes } from './PickerInput';\nimport Format from './PickerFormat';\n\nimport style from './style/time-picker.shadow.css';\n\nconst MAP_MERIDIEM = {\n AM: 'PM',\n PM: 'AM',\n};\nconst MAP_FIELD_TO_TIME = {\n hours: 0,\n minutes: 1,\n};\n\nexport function nextInput(element) {\n do {\n element = element.nextElementSibling;\n } while (element && element.tagName !== 'INPUT');\n return element;\n}\n\nexport function prevInput(element) {\n do {\n element = element.previousElementSibling;\n } while (element && element.tagName !== 'INPUT');\n return element;\n}\n\nexport function intOrDefault(value, def = 0) {\n const number = Number.parseInt(value);\n return Number.isNaN(number) ? def : number;\n}\n\nexport function withLeadingZero(value) {\n value = String(value);\n if (value.length === 1) return `0${value}`;\n return String(value);\n}\n\nexport function meridiemByHours(hours) {\n return hours >= 12 ? 'PM' : 'AM';\n}\n\nexport function formatHoursTo12(hours /* hours by 24 */) {\n const nHours = intOrDefault(hours, NaN); // if not (:00)\n if (Number.isNaN(nHours)) return hours;\n\n // if not (HH:00)\n if (nHours === 0) return 12; // 0 => 12 PM\n if (nHours > 12) return nHours - 12; // 22 => 12 PM\n\n return hours;\n}\n\nexport function formatHoursTo24(hours /* hours by 12 */, meridiem) {\n const nHours = intOrDefault(hours, NaN); // if not (:00)\n\n if (Number.isNaN(nHours)) return hours;\n\n if (meridiem === 'AM') {\n if (nHours === 12) return 0; // 12 AM => 0\n }\n\n if (meridiem === 'PM') {\n if (nHours < 12) return nHours + 12; // 10 PM => 22\n }\n\n return hours;\n}\n\nclass TimePickerRoot extends Component {\n static displayName = 'TimePicker';\n static style = style;\n static defaultProps = ({ is12Hour }) => ({\n defaultValue: '',\n size: 'm',\n children: (\n <>\n <TimePicker.Hours />\n <TimePicker.Separator />\n <TimePicker.Minutes />\n {is12Hour && <TimePicker.Format />}\n </>\n ),\n });\n\n _lastMeridiem = 'AM'; // default AM\n\n uncontrolledProps() {\n return {\n value: null,\n };\n }\n\n get value() {\n const { value } = this.asProps;\n return value === null || value === undefined ? ':' : value;\n }\n\n get meridiem() {\n const { value } = this.asProps;\n const [hours = ''] = value.split(':');\n\n const nHours = intOrDefault(hours, NaN);\n\n if (!Number.isNaN(nHours)) {\n this._lastMeridiem = meridiemByHours(nHours);\n }\n\n return this._lastMeridiem;\n }\n\n valueToTime(value) {\n const { is12Hour } = this.asProps;\n let [hours = '', minutes = ''] = value.split(':');\n\n if (is12Hour) hours = formatHoursTo12(hours);\n\n hours = withLeadingZero(hours);\n minutes = withLeadingZero(minutes);\n\n return [hours, minutes];\n }\n\n timeToValue(time, meridiem) {\n const { is12Hour } = this.asProps;\n let [hours = '', minutes = ''] = time;\n\n hours = intOrDefault(hours, hours); // 03 => 3\n minutes = intOrDefault(minutes, minutes); // MM => MM\n\n if (is12Hour) hours = formatHoursTo24(hours, meridiem); // 12 PM -> 0\n\n return `${hours}:${minutes}`;\n }\n\n handleValueChange = (value, field, event) => {\n const { is12Hour } = this.asProps;\n const { meridiem } = this;\n\n let time;\n if (field) {\n time = this.value.split(':');\n time[MAP_FIELD_TO_TIME[field]] = value;\n } else {\n time = value.split(':');\n }\n\n let [hours = '', minutes = ''] = time;\n\n if (is12Hour) hours = String(formatHoursTo12(hours));\n\n value = this.timeToValue([hours, minutes], meridiem);\n this.handlers.value(value, event);\n };\n\n handleMeridiemClick = (event) => {\n const { is12Hour } = this.asProps;\n let { value, meridiem } = this;\n let [hours = '', minutes = ''] = value.split(':');\n\n if (is12Hour) hours = String(formatHoursTo12(hours));\n\n value = this.timeToValue([hours, minutes], MAP_MERIDIEM[meridiem]);\n this.handlers.value(value, event);\n };\n\n getHoursProps = () => {\n const { is12Hour, size, disabled } = this.asProps;\n const time = this.valueToTime(this.value);\n\n return {\n time,\n size,\n is12Hour,\n disabled,\n $onValueChange: this.handleValueChange,\n };\n };\n\n getMinutesProps = () => {\n return this.getHoursProps();\n };\n\n getFormatProps = () => {\n const { size, disabled, disablePortal } = this.asProps;\n return {\n size,\n disabled,\n disablePortal,\n meridiem: this.meridiem,\n onClick: this.handleMeridiemClick,\n };\n };\n\n render() {\n const STimePicker = Root;\n const { styles, Children } = this.asProps;\n\n return sstyled(styles)(<STimePicker render={Input}><Children /></STimePicker>);\n }\n}\n\nclass Separator extends Component {\n static\n defaultProps = {\n children: ':',\n };\n\n $el = React.createRef();\n\n handlerClick = () => {\n if (this.$el.current) {\n prevInput(this.$el.current)?.focus();\n }\n };\n\n render() {\n return <Root render={Box} ref={this.$el} onClick={this.handlerClick} />;\n }\n}\n\nconst TimePicker = createComponent(TimePickerRoot,\n {\n Hours,\n Minutes,\n Separator,\n Format,\n },\n);\n\nexport default TimePicker;\n"],"file":"TimePicker.js"}
|
|
1
|
+
{"version":3,"sources":["../../src/TimePicker.js"],"names":["MAP_MERIDIEM","AM","PM","MAP_FIELD_TO_TIME","hours","minutes","nextInput","element","nextElementSibling","tagName","prevInput","previousElementSibling","intOrDefault","value","def","number","Number","parseInt","isNaN","withLeadingZero","String","length","meridiemByHours","formatHoursTo12","nHours","NaN","formatHoursTo24","meridiem","TimePickerRoot","field","event","is12Hour","asProps","time","split","timeToValue","handlers","size","disabled","valueToTime","$onValueChange","handleValueChange","getHoursProps","disablePortal","onClick","handleMeridiemClick","undefined","_lastMeridiem","STimePicker","Input","styles","Children","Component","style","defaultValue","children","Separator","React","createRef","$el","current","focus","Box","handlerClick","TimePicker","Hours","Minutes","Format"],"mappings":"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","sourcesContent":["import React from 'react';\nimport createComponent, { Component, sstyled, Root } from '@semcore/core';\nimport Input from '@semcore/input';\nimport { Box } from '@semcore/flex-box';\nimport { Hours, Minutes } from './PickerInput';\nimport Format from './PickerFormat';\n\nimport style from './style/time-picker.shadow.css';\n\nconst MAP_MERIDIEM = {\n AM: 'PM',\n PM: 'AM',\n};\nconst MAP_FIELD_TO_TIME = {\n hours: 0,\n minutes: 1,\n};\n\nexport function nextInput(element) {\n do {\n element = element.nextElementSibling;\n } while (element && element.tagName !== 'INPUT');\n return element;\n}\n\nexport function prevInput(element) {\n do {\n element = element.previousElementSibling;\n } while (element && element.tagName !== 'INPUT');\n return element;\n}\n\nexport function intOrDefault(value, def = 0) {\n const number = Number.parseInt(value);\n return Number.isNaN(number) ? def : number;\n}\n\nexport function withLeadingZero(value) {\n value = String(value);\n if (value.length === 1) return `0${value}`;\n return String(value);\n}\n\nexport function meridiemByHours(hours) {\n return hours >= 12 ? 'PM' : 'AM';\n}\n\nexport function formatHoursTo12(hours /* hours by 24 */) {\n const nHours = intOrDefault(hours, NaN); // if not (:00)\n if (Number.isNaN(nHours)) return hours;\n\n // if not (HH:00)\n if (nHours === 0) return 12; // 0 => 12 PM\n if (nHours > 12) return nHours - 12; // 22 => 12 PM\n\n return hours;\n}\n\nexport function formatHoursTo24(hours /* hours by 12 */, meridiem) {\n const nHours = intOrDefault(hours, NaN); // if not (:00)\n\n if (Number.isNaN(nHours)) return hours;\n\n if (meridiem === 'AM') {\n if (nHours === 12) return 0; // 12 AM => 0\n }\n\n if (meridiem === 'PM') {\n if (nHours < 12) return nHours + 12; // 10 PM => 22\n }\n\n return hours;\n}\n\nclass TimePickerRoot extends Component {\n static displayName = 'TimePicker';\n static style = style;\n static defaultProps = ({ is12Hour }) => ({\n defaultValue: '',\n size: 'm',\n children: (\n <>\n <TimePicker.Hours />\n <TimePicker.Separator />\n <TimePicker.Minutes />\n {is12Hour && <TimePicker.Format />}\n </>\n ),\n });\n\n _lastMeridiem = 'AM'; // default AM\n\n uncontrolledProps() {\n return {\n value: null,\n };\n }\n\n get value() {\n const { value } = this.asProps;\n return value === null || value === undefined ? ':' : value;\n }\n\n get meridiem() {\n const { value } = this.asProps;\n const [hours = ''] = value.split(':');\n\n const nHours = intOrDefault(hours, NaN);\n\n if (!Number.isNaN(nHours)) {\n this._lastMeridiem = meridiemByHours(nHours);\n }\n\n return this._lastMeridiem;\n }\n\n valueToTime(value) {\n const { is12Hour } = this.asProps;\n let [hours = '', minutes = ''] = value.split(':');\n\n if (is12Hour) hours = formatHoursTo12(hours);\n\n hours = withLeadingZero(hours);\n minutes = withLeadingZero(minutes);\n\n return [hours, minutes];\n }\n\n timeToValue(time, meridiem) {\n const { is12Hour } = this.asProps;\n let [hours = '', minutes = ''] = time;\n\n hours = intOrDefault(hours, hours); // 03 => 3\n minutes = intOrDefault(minutes, minutes); // MM => MM\n\n if (is12Hour) hours = formatHoursTo24(hours, meridiem); // 12 PM -> 0\n\n return `${hours}:${minutes}`;\n }\n\n handleValueChange = (value, field, event) => {\n const { is12Hour } = this.asProps;\n const { meridiem } = this;\n\n let time;\n if (field) {\n time = this.value.split(':');\n time[MAP_FIELD_TO_TIME[field]] = value;\n } else {\n time = value.split(':');\n }\n\n let [hours = '', minutes = ''] = time;\n\n if (is12Hour) hours = String(formatHoursTo12(hours));\n\n value = this.timeToValue([hours, minutes], meridiem);\n this.handlers.value(value, event);\n };\n\n handleMeridiemClick = (event) => {\n const { is12Hour } = this.asProps;\n let { value, meridiem } = this;\n let [hours = '', minutes = ''] = value.split(':');\n\n if (is12Hour) hours = String(formatHoursTo12(hours));\n\n value = this.timeToValue([hours, minutes], MAP_MERIDIEM[meridiem]);\n this.handlers.value(value, event);\n };\n\n getHoursProps = () => {\n const { is12Hour, size, disabled } = this.asProps;\n const time = this.valueToTime(this.value);\n\n return {\n time,\n size,\n is12Hour,\n disabled,\n $onValueChange: this.handleValueChange,\n };\n };\n\n getMinutesProps = () => {\n return this.getHoursProps();\n };\n\n getFormatProps = () => {\n const { size, disabled, disablePortal } = this.asProps;\n return {\n size,\n disabled,\n disablePortal,\n meridiem: this.meridiem,\n onClick: this.handleMeridiemClick,\n };\n };\n\n render() {\n const STimePicker = Root;\n const { styles, Children } = this.asProps;\n\n return sstyled(styles)(\n <STimePicker render={Input}>\n <Children />\n </STimePicker>,\n );\n }\n}\n\nclass Separator extends Component {\n static defaultProps = {\n children: ':',\n };\n\n $el = React.createRef();\n\n handlerClick = () => {\n if (this.$el.current) {\n prevInput(this.$el.current)?.focus();\n }\n };\n\n render() {\n return <Root render={Box} ref={this.$el} onClick={this.handlerClick} />;\n }\n}\n\nconst TimePicker = createComponent(TimePickerRoot, {\n Hours,\n Minutes,\n Separator,\n Format,\n});\n\nexport default TimePicker;\n"],"file":"TimePicker.js"}
|
package/lib/cjs/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
4
4
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
value: true
|
|
@@ -26,4 +26,8 @@ Object.keys(_TimePicker).forEach(function (key) {
|
|
|
26
26
|
}
|
|
27
27
|
});
|
|
28
28
|
});
|
|
29
|
+
|
|
30
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
31
|
+
|
|
32
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
29
33
|
//# sourceMappingURL=index.js.map
|
package/lib/es6/PickerFormat.js
CHANGED
|
@@ -6,9 +6,9 @@ import _getPrototypeOf from "@babel/runtime/helpers/getPrototypeOf";
|
|
|
6
6
|
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
7
7
|
import { assignProps as _assignProps } from "@semcore/core";
|
|
8
8
|
|
|
9
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object);
|
|
9
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
10
10
|
|
|
11
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]
|
|
11
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
12
12
|
|
|
13
13
|
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); }; }
|
|
14
14
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/PickerFormat.js"],"names":["React","Component","sstyled","Root","Box","keyboardFocusEnhance","TimePickerFormat","SPickerFormat","asProps","Children","meridiem","styles","SPickerFormatText","origin"],"mappings":";;;;;;;;;;;;;;;;AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,SAASC,SAAT,EAAoBC,OAApB,EAA6BC,IAA7B,QAAyC,eAAzC;AACA,SAASC,GAAT,QAAoB,mBAApB;AACA,OAAOC,oBAAP,MAAiC,kDAAjC;;IAEMC,gB;;;;;;;;;;;;;WAEJ,kBAAS;AAAA;AAAA;;AACP,UAAMC,aAAa,GAKMH,GALzB;
|
|
1
|
+
{"version":3,"sources":["../../src/PickerFormat.js"],"names":["React","Component","sstyled","Root","Box","keyboardFocusEnhance","TimePickerFormat","SPickerFormat","asProps","Children","meridiem","styles","SPickerFormatText","origin"],"mappings":";;;;;;;;;;;;;;;;AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,SAASC,SAAT,EAAoBC,OAApB,EAA6BC,IAA7B,QAAyC,eAAzC;AACA,SAASC,GAAT,QAAoB,mBAApB;AACA,OAAOC,oBAAP,MAAiC,kDAAjC;;IAEMC,gB;;;;;;;;;;;;;WAEJ,kBAAS;AAAA;AAAA;;AACP,UAAMC,aAAa,GAKMH,GALzB;AACA,0BAAuC,KAAKI,OAA5C;AAAA,UAAQC,QAAR,iBAAQA,QAAR;AAAA,UAAkBC,QAAlB,iBAAkBA,QAAlB;AAAA,UAA4BC,MAA5B,iBAA4BA,MAA5B;AACA,UAAMC,iBAAiB,GAAG,MAA1B;AAEA,qBAAOV,OAAO,CAACS,MAAD,CAAd,eACE,oBAAC,aAAD;AAAA,gBAAiC,QAAjC;AAAA,eAA8C;AAA9C,kBACGF,QAAQ,CAACI,MAAT,gBACC,oBAAC,QAAD,2BADD,gBAGC,uDACE,oBAAC,iBAAD,qCAAoBH,QAApB,CADF,CAJJ,CADF;AAWD;;;;EAlB4BT,S;;gBAAzBK,gB,aACa,CAACD,oBAAoB,EAArB,C;;AAoBnB,eAAeC,gBAAf","sourcesContent":["import React from 'react';\nimport { Component, sstyled, Root } from '@semcore/core';\nimport { Box } from '@semcore/flex-box';\nimport keyboardFocusEnhance from '@semcore/utils/lib/enhances/keyboardFocusEnhance';\n\nclass TimePickerFormat extends Component {\n static enhance = [keyboardFocusEnhance()];\n render() {\n const SPickerFormat = Root;\n const { Children, meridiem, styles } = this.asProps;\n const SPickerFormatText = 'span';\n\n return sstyled(styles)(\n <SPickerFormat render={Box} type=\"button\" tag=\"button\">\n {Children.origin ? (\n <Children />\n ) : (\n <>\n <SPickerFormatText>{meridiem}</SPickerFormatText>\n </>\n )}\n </SPickerFormat>,\n );\n }\n}\n\nexport default TimePickerFormat;\n"],"file":"PickerFormat.js"}
|
package/lib/es6/PickerInput.js
CHANGED
|
@@ -8,10 +8,11 @@ import _possibleConstructorReturn from "@babel/runtime/helpers/possibleConstruct
|
|
|
8
8
|
import _getPrototypeOf from "@babel/runtime/helpers/getPrototypeOf";
|
|
9
9
|
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
10
10
|
import { assignProps as _assignProps } from "@semcore/core";
|
|
11
|
+
var _excluded = ["styles", "step", "onSelect", "time", "size", "disabled", "onVisibleChange"];
|
|
11
12
|
|
|
12
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object);
|
|
13
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
13
14
|
|
|
14
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]
|
|
15
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
15
16
|
|
|
16
17
|
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); }; }
|
|
17
18
|
|
|
@@ -158,7 +159,7 @@ var ItemPicker = /*#__PURE__*/function (_Component) {
|
|
|
158
159
|
size = _this$asProps.size,
|
|
159
160
|
disabled = _this$asProps.disabled,
|
|
160
161
|
onVisibleChange = _this$asProps.onVisibleChange,
|
|
161
|
-
other = _objectWithoutProperties(_this$asProps,
|
|
162
|
+
other = _objectWithoutProperties(_this$asProps, _excluded);
|
|
162
163
|
|
|
163
164
|
var _this$state = this.state,
|
|
164
165
|
dirtyValue = _this$state.dirtyValue,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/PickerInput.js"],"names":["React","Input","Select","intOrDefault","nextInput","prevInput","withLeadingZero","Component","sstyled","Root","callAllEventHandlers","MAP_FIELD_TO_TIME","hours","minutes","MAP_SIZE_SELECT","m","l","xl","getOptions","min","max","step","length","Number","toFixed","options","Array","fill","numValue","map","i","index","value","String","ItemPicker","createRef","dirtyValue","undefined","visible","minMax","Math","e","stopPropagation","numberValue","NaN","isNaN","setState","slice","submitChanges","$input","current","select","dispatchOnChange","event","asProps","$onValueChange","field","state","parseValueWithMinMax","SPickerInput","Trigger","styles","onSelect","time","size","disabled","onVisibleChange","other","timeValue","handleSelect","handleVisibleChange","Value","handleChange","handleBlur","handleFocus","handleKeyDown","placeholder","Hours","currentTarget","keyCode","selectionStart","selectionEnd","preventDefault","is12Hour","focus","prevProps","prevState","Minutes","prevFocus"],"mappings":"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","sourcesContent":["import React from 'react';\nimport Input from '@semcore/input';\nimport Select from '@semcore/select';\nimport { intOrDefault, nextInput, prevInput, withLeadingZero } from './TimePicker';\nimport { Component, sstyled, Root } from '@semcore/core';\nimport { callAllEventHandlers } from '@semcore/utils/lib/assignProps';\n\nconst MAP_FIELD_TO_TIME = {\n hours: 0,\n minutes: 1,\n};\n\nconst MAP_SIZE_SELECT = {\n m: 'm',\n l: 'l',\n xl: 'l',\n};\n\nfunction getOptions(min, max, step = 1) {\n const length = Number(((max + 1 - min) / step).toFixed(0));\n const options = Array(length).fill('');\n let numValue = min;\n return options.map((i, index) => {\n numValue = index === 0 ? numValue : numValue + step;\n const value = withLeadingZero(String(numValue));\n return (\n <Select.Option value={value} key={value}>\n {value}\n </Select.Option>\n );\n });\n}\n\nclass ItemPicker extends Component {\n static defaultProps = {\n placeholder: '00',\n };\n\n $input = React.createRef();\n\n minMax() {\n return [];\n }\n\n state = {\n dirtyValue: undefined,\n visible: false,\n };\n\n parseValueWithMinMax = (value) => {\n const [min, max] = this.minMax();\n return String(Math.max(min, Math.min(max, value)));\n };\n\n dispatchOnChange(value, event) {\n this.setState({ dirtyValue: undefined });\n this.asProps.$onValueChange(value, this.field, event);\n }\n\n submitChanges(event) {\n let { dirtyValue } = this.state;\n if (dirtyValue !== undefined) {\n // if changes value\n if (dirtyValue) dirtyValue = this.parseValueWithMinMax(dirtyValue); // if not \"\"\n this.dispatchOnChange(dirtyValue, event);\n }\n }\n\n handleChange = (value, e) => {\n /* hide props for bubbling events */\n e.stopPropagation();\n const numberValue = intOrDefault(Number(value), NaN);\n\n if (!Number.isNaN(numberValue)) {\n this.setState({ dirtyValue: value.slice(-2) });\n }\n };\n\n handleBlur = (e) => this.submitChanges(e);\n\n handleFocus = () => {\n this.$input?.current.select();\n };\n\n /* rewrite method */\n handleKeyDown = () => {};\n\n handleSelect = (value, e) => {\n this.dispatchOnChange(value, e);\n };\n\n handleVisibleChange = (visible) => this.setState({ visible });\n\n render() {\n const SPickerInput = Root;\n const {\n styles,\n step,\n onSelect,\n time,\n size,\n disabled,\n onVisibleChange,\n ...other\n } = this.asProps;\n const { dirtyValue, visible } = this.state;\n const timeValue = time[MAP_FIELD_TO_TIME[this.field]];\n const value = dirtyValue === undefined ? timeValue : dirtyValue;\n const [min, max] = this.minMax();\n\n return sstyled(styles)(\n <Select\n {...other}\n interaction=\"focus\"\n size={size ? MAP_SIZE_SELECT[size] : false}\n onChange={callAllEventHandlers(onSelect, this.handleSelect)}\n onVisibleChange={callAllEventHandlers(onVisibleChange, this.handleVisibleChange)}\n visible={visible}\n value={timeValue}\n >\n <SPickerInput\n interaction=\"focus\"\n render={Select.Trigger}\n tag={Input.Value}\n ref={this.$input}\n size={size}\n disabled={disabled}\n neighborLocation={false}\n value={value}\n aria-label={`Search ${this.field}`}\n onChange={this.handleChange}\n onBlur={this.handleBlur}\n onFocus={this.handleFocus}\n onKeyDown={this.handleKeyDown}\n />\n <Select.Menu hMax={180}>{getOptions(min, max, step)}</Select.Menu>\n </Select>,\n );\n }\n}\n\nclass Hours extends ItemPicker {\n field = 'hours';\n\n minMax() {\n const { is12Hour } = this.asProps;\n if (is12Hour) {\n return [1, 12];\n } else {\n return [0, 23];\n }\n }\n\n nextInput() {\n if (this.$input.current) {\n const $input = nextInput(this.$input.current);\n if ($input) {\n this.setState({ visible: false });\n $input.focus();\n }\n }\n }\n\n handleKeyDown = (e) => {\n const { currentTarget } = e;\n if (e.keyCode === 13) this.submitChanges(e);\n if (e.keyCode === 39) {\n if (\n currentTarget.selectionStart >= currentTarget.value.length &&\n currentTarget.selectionStart === currentTarget.selectionEnd\n ) {\n e.preventDefault();\n this.nextInput();\n }\n }\n };\n\n componentDidUpdate(prevProps, prevState) {\n const { dirtyValue } = this.state;\n if (prevState.dirtyValue === undefined || dirtyValue === undefined) return;\n\n if (prevState.dirtyValue.length === 1 && dirtyValue.length === 2) {\n this.nextInput();\n }\n }\n}\n\nclass Minutes extends ItemPicker {\n field = 'minutes';\n\n minMax() {\n return [0, 59];\n }\n\n prevFocus() {\n if (this.$input.current) {\n const $input = prevInput(this.$input.current);\n if ($input) {\n this.setState({ visible: false });\n $input.focus();\n }\n }\n }\n\n handleKeyDown = (e) => {\n const { currentTarget } = e;\n if (e.keyCode === 13) this.submitChanges(e);\n if (e.keyCode === 37) {\n if (\n currentTarget.selectionStart <= 0 &&\n currentTarget.selectionStart === currentTarget.selectionEnd\n ) {\n e.preventDefault();\n this.prevFocus();\n }\n }\n if (e.keyCode === 8) {\n if (currentTarget.value.length === 0) {\n e.preventDefault();\n this.prevFocus();\n }\n }\n };\n}\n\nexport { Hours, Minutes };\n"],"file":"PickerInput.js"}
|
|
1
|
+
{"version":3,"sources":["../../src/PickerInput.js"],"names":["React","Input","Select","intOrDefault","nextInput","prevInput","withLeadingZero","Component","sstyled","Root","callAllEventHandlers","MAP_FIELD_TO_TIME","hours","minutes","MAP_SIZE_SELECT","m","l","xl","getOptions","min","max","step","length","Number","toFixed","options","Array","fill","numValue","map","i","index","value","String","ItemPicker","createRef","dirtyValue","undefined","visible","minMax","Math","e","stopPropagation","numberValue","NaN","isNaN","setState","slice","submitChanges","$input","current","select","dispatchOnChange","event","asProps","$onValueChange","field","state","parseValueWithMinMax","SPickerInput","Trigger","styles","onSelect","time","size","disabled","onVisibleChange","other","timeValue","handleSelect","handleVisibleChange","Value","handleChange","handleBlur","handleFocus","handleKeyDown","placeholder","Hours","currentTarget","keyCode","selectionStart","selectionEnd","preventDefault","is12Hour","focus","prevProps","prevState","Minutes","prevFocus"],"mappings":"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","sourcesContent":["import React from 'react';\nimport Input from '@semcore/input';\nimport Select from '@semcore/select';\nimport { intOrDefault, nextInput, prevInput, withLeadingZero } from './TimePicker';\nimport { Component, sstyled, Root } from '@semcore/core';\nimport { callAllEventHandlers } from '@semcore/utils/lib/assignProps';\n\nconst MAP_FIELD_TO_TIME = {\n hours: 0,\n minutes: 1,\n};\n\nconst MAP_SIZE_SELECT = {\n m: 'm',\n l: 'l',\n xl: 'l',\n};\n\nfunction getOptions(min, max, step = 1) {\n const length = Number(((max + 1 - min) / step).toFixed(0));\n const options = Array(length).fill('');\n let numValue = min;\n return options.map((i, index) => {\n numValue = index === 0 ? numValue : numValue + step;\n const value = withLeadingZero(String(numValue));\n return (\n <Select.Option value={value} key={value}>\n {value}\n </Select.Option>\n );\n });\n}\n\nclass ItemPicker extends Component {\n static defaultProps = {\n placeholder: '00',\n };\n\n $input = React.createRef();\n\n minMax() {\n return [];\n }\n\n state = {\n dirtyValue: undefined,\n visible: false,\n };\n\n parseValueWithMinMax = (value) => {\n const [min, max] = this.minMax();\n return String(Math.max(min, Math.min(max, value)));\n };\n\n dispatchOnChange(value, event) {\n this.setState({ dirtyValue: undefined });\n this.asProps.$onValueChange(value, this.field, event);\n }\n\n submitChanges(event) {\n let { dirtyValue } = this.state;\n if (dirtyValue !== undefined) {\n // if changes value\n if (dirtyValue) dirtyValue = this.parseValueWithMinMax(dirtyValue); // if not \"\"\n this.dispatchOnChange(dirtyValue, event);\n }\n }\n\n handleChange = (value, e) => {\n /* hide props for bubbling events */\n e.stopPropagation();\n const numberValue = intOrDefault(Number(value), NaN);\n\n if (!Number.isNaN(numberValue)) {\n this.setState({ dirtyValue: value.slice(-2) });\n }\n };\n\n handleBlur = (e) => this.submitChanges(e);\n\n handleFocus = () => {\n this.$input?.current.select();\n };\n\n /* rewrite method */\n handleKeyDown = () => {};\n\n handleSelect = (value, e) => {\n this.dispatchOnChange(value, e);\n };\n\n handleVisibleChange = (visible) => this.setState({ visible });\n\n render() {\n const SPickerInput = Root;\n const {\n styles,\n step,\n onSelect,\n time,\n size,\n disabled,\n onVisibleChange,\n ...other\n } = this.asProps;\n const { dirtyValue, visible } = this.state;\n const timeValue = time[MAP_FIELD_TO_TIME[this.field]];\n const value = dirtyValue === undefined ? timeValue : dirtyValue;\n const [min, max] = this.minMax();\n\n return sstyled(styles)(\n <Select\n {...other}\n interaction=\"focus\"\n size={size ? MAP_SIZE_SELECT[size] : false}\n onChange={callAllEventHandlers(onSelect, this.handleSelect)}\n onVisibleChange={callAllEventHandlers(onVisibleChange, this.handleVisibleChange)}\n visible={visible}\n value={timeValue}\n >\n <SPickerInput\n interaction=\"focus\"\n render={Select.Trigger}\n tag={Input.Value}\n ref={this.$input}\n size={size}\n disabled={disabled}\n neighborLocation={false}\n value={value}\n aria-label={`Search ${this.field}`}\n onChange={this.handleChange}\n onBlur={this.handleBlur}\n onFocus={this.handleFocus}\n onKeyDown={this.handleKeyDown}\n />\n <Select.Menu hMax={180}>{getOptions(min, max, step)}</Select.Menu>\n </Select>,\n );\n }\n}\n\nclass Hours extends ItemPicker {\n field = 'hours';\n\n minMax() {\n const { is12Hour } = this.asProps;\n if (is12Hour) {\n return [1, 12];\n } else {\n return [0, 23];\n }\n }\n\n nextInput() {\n if (this.$input.current) {\n const $input = nextInput(this.$input.current);\n if ($input) {\n this.setState({ visible: false });\n $input.focus();\n }\n }\n }\n\n handleKeyDown = (e) => {\n const { currentTarget } = e;\n if (e.keyCode === 13) this.submitChanges(e);\n if (e.keyCode === 39) {\n if (\n currentTarget.selectionStart >= currentTarget.value.length &&\n currentTarget.selectionStart === currentTarget.selectionEnd\n ) {\n e.preventDefault();\n this.nextInput();\n }\n }\n };\n\n componentDidUpdate(prevProps, prevState) {\n const { dirtyValue } = this.state;\n if (prevState.dirtyValue === undefined || dirtyValue === undefined) return;\n\n if (prevState.dirtyValue.length === 1 && dirtyValue.length === 2) {\n this.nextInput();\n }\n }\n}\n\nclass Minutes extends ItemPicker {\n field = 'minutes';\n\n minMax() {\n return [0, 59];\n }\n\n prevFocus() {\n if (this.$input.current) {\n const $input = prevInput(this.$input.current);\n if ($input) {\n this.setState({ visible: false });\n $input.focus();\n }\n }\n }\n\n handleKeyDown = (e) => {\n const { currentTarget } = e;\n if (e.keyCode === 13) this.submitChanges(e);\n if (e.keyCode === 37) {\n if (\n currentTarget.selectionStart <= 0 &&\n currentTarget.selectionStart === currentTarget.selectionEnd\n ) {\n e.preventDefault();\n this.prevFocus();\n }\n }\n if (e.keyCode === 8) {\n if (currentTarget.value.length === 0) {\n e.preventDefault();\n this.prevFocus();\n }\n }\n };\n}\n\nexport { Hours, Minutes };\n"],"file":"PickerInput.js"}
|
package/lib/es6/TimePicker.js
CHANGED
|
@@ -10,9 +10,9 @@ import { sstyled as _sstyled } from "@semcore/core";
|
|
|
10
10
|
import { assignProps as _assignProps2 } from "@semcore/core";
|
|
11
11
|
import { assignProps as _assignProps } from "@semcore/core";
|
|
12
12
|
|
|
13
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object);
|
|
13
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
14
14
|
|
|
15
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]
|
|
15
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
16
16
|
|
|
17
17
|
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); }; }
|
|
18
18
|
|
|
@@ -30,22 +30,22 @@ var style = (
|
|
|
30
30
|
/*__reshadow_css_start__*/
|
|
31
31
|
_sstyled.insert(
|
|
32
32
|
/*__inner_css_start__*/
|
|
33
|
-
".
|
|
33
|
+
".___STimePicker_y9vhd_gg_{position:relative;width:auto}.___STimePicker_y9vhd_gg_.__disabled_y9vhd_gg_{color:rgba(51,51,51,.3);cursor:default}.___SPickerInput_y9vhd_gg_{box-sizing:content-box;text-align:center;z-index:1}.___SPickerInput_y9vhd_gg_.__placeholder_y9vhd_gg_{text-overflow:clip}.___SPickerInput_y9vhd_gg_._size_m_y9vhd_gg_{width:17px}.___SPickerInput_y9vhd_gg_._size_l_y9vhd_gg_{width:18px}.___SPickerInput_y9vhd_gg_._size_xl_y9vhd_gg_{width:22px}.___SPickerFormat_y9vhd_gg_{flex-shrink:0;position:relative;display:inline-flex;padding:0;margin:0 -1px 0 0;white-space:nowrap;font-family:inherit;font-weight:400;line-height:normal;text-decoration:none;align-items:center;border:1px solid transparent;outline:0;box-shadow:none;cursor:pointer;box-sizing:border-box;overflow:visible;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;touch-action:manipulation;-webkit-tap-highlight-color:transparent;color:#666666;border-color:#a6b0b3;background-color:rgba(166,176,179,.1)}.___SPickerFormat_y9vhd_gg_:hover{background-color:rgba(166,176,179,.2)}.___SPickerFormat_y9vhd_gg_:active,.___SPickerFormat_y9vhd_gg_.__active_y9vhd_gg_{background-color:rgba(166,176,179,.3)}.___SPickerFormat_y9vhd_gg_._size_m_y9vhd_gg_{height:26px;font-size:12px;border-radius:0 3px 3px 0}.___SPickerFormat_y9vhd_gg_._size_l_y9vhd_gg_{height:32px;font-size:14px;border-radius:0 4px 4px 0}.___SPickerFormat_y9vhd_gg_._size_l_y9vhd_gg_ .___SPickerFormatText_y9vhd_gg_,.___SPickerFormat_y9vhd_gg_._size_m_y9vhd_gg_ .___SPickerFormatText_y9vhd_gg_{margin:0 8px}.___SPickerFormat_y9vhd_gg_._size_xl_y9vhd_gg_{height:42px;font-size:16px;border-radius:0 5px 5px 0}.___SPickerFormat_y9vhd_gg_._size_xl_y9vhd_gg_ .___SPickerFormatText_y9vhd_gg_{margin:0 12px}.___SPickerFormat_y9vhd_gg_.__disabled_y9vhd_gg_{opacity:0.3;cursor:default;pointer-events:none;border-color:transparent transparent transparent #a6b0b3}.___SPickerFormat_y9vhd_gg_.__keyboardFocused_y9vhd_gg_{box-shadow:0 0 0 3px rgba(43, 148, 225, 0.3)}"
|
|
34
34
|
/*__inner_css_end__*/
|
|
35
35
|
, "buqesv_gg_")
|
|
36
36
|
/*__reshadow_css_end__*/
|
|
37
37
|
, {
|
|
38
|
-
"__STimePicker": "
|
|
39
|
-
"_disabled": "
|
|
40
|
-
"__SPickerInput": "
|
|
41
|
-
"_placeholder": "
|
|
42
|
-
"_size_m": "
|
|
43
|
-
"_size_l": "
|
|
44
|
-
"_size_xl": "
|
|
45
|
-
"__SPickerFormat": "
|
|
46
|
-
"_active": "
|
|
47
|
-
"__SPickerFormatText": "
|
|
48
|
-
"_keyboardFocused": "
|
|
38
|
+
"__STimePicker": "___STimePicker_y9vhd_gg_",
|
|
39
|
+
"_disabled": "__disabled_y9vhd_gg_",
|
|
40
|
+
"__SPickerInput": "___SPickerInput_y9vhd_gg_",
|
|
41
|
+
"_placeholder": "__placeholder_y9vhd_gg_",
|
|
42
|
+
"_size_m": "_size_m_y9vhd_gg_",
|
|
43
|
+
"_size_l": "_size_l_y9vhd_gg_",
|
|
44
|
+
"_size_xl": "_size_xl_y9vhd_gg_",
|
|
45
|
+
"__SPickerFormat": "___SPickerFormat_y9vhd_gg_",
|
|
46
|
+
"_active": "__active_y9vhd_gg_",
|
|
47
|
+
"__SPickerFormatText": "___SPickerFormatText_y9vhd_gg_",
|
|
48
|
+
"_keyboardFocused": "__keyboardFocused_y9vhd_gg_"
|
|
49
49
|
});
|
|
50
50
|
var MAP_MERIDIEM = {
|
|
51
51
|
AM: 'PM',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/TimePicker.js"],"names":["React","createComponent","Component","sstyled","Root","Input","Box","Hours","Minutes","Format","MAP_MERIDIEM","AM","PM","MAP_FIELD_TO_TIME","hours","minutes","nextInput","element","nextElementSibling","tagName","prevInput","previousElementSibling","intOrDefault","value","def","number","Number","parseInt","isNaN","withLeadingZero","String","length","meridiemByHours","formatHoursTo12","nHours","NaN","formatHoursTo24","meridiem","TimePickerRoot","field","event","is12Hour","asProps","time","split","timeToValue","handlers","size","disabled","valueToTime","$onValueChange","handleValueChange","getHoursProps","disablePortal","onClick","handleMeridiemClick","undefined","_lastMeridiem","STimePicker","styles","Children","style","defaultValue","children","Separator","createRef","$el","current","focus","handlerClick","TimePicker"],"mappings":"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","sourcesContent":["import React from 'react';\nimport createComponent, { Component, sstyled, Root } from '@semcore/core';\nimport Input from '@semcore/input';\nimport { Box } from '@semcore/flex-box';\nimport { Hours, Minutes } from './PickerInput';\nimport Format from './PickerFormat';\n\nimport style from './style/time-picker.shadow.css';\n\nconst MAP_MERIDIEM = {\n AM: 'PM',\n PM: 'AM',\n};\nconst MAP_FIELD_TO_TIME = {\n hours: 0,\n minutes: 1,\n};\n\nexport function nextInput(element) {\n do {\n element = element.nextElementSibling;\n } while (element && element.tagName !== 'INPUT');\n return element;\n}\n\nexport function prevInput(element) {\n do {\n element = element.previousElementSibling;\n } while (element && element.tagName !== 'INPUT');\n return element;\n}\n\nexport function intOrDefault(value, def = 0) {\n const number = Number.parseInt(value);\n return Number.isNaN(number) ? def : number;\n}\n\nexport function withLeadingZero(value) {\n value = String(value);\n if (value.length === 1) return `0${value}`;\n return String(value);\n}\n\nexport function meridiemByHours(hours) {\n return hours >= 12 ? 'PM' : 'AM';\n}\n\nexport function formatHoursTo12(hours /* hours by 24 */) {\n const nHours = intOrDefault(hours, NaN); // if not (:00)\n if (Number.isNaN(nHours)) return hours;\n\n // if not (HH:00)\n if (nHours === 0) return 12; // 0 => 12 PM\n if (nHours > 12) return nHours - 12; // 22 => 12 PM\n\n return hours;\n}\n\nexport function formatHoursTo24(hours /* hours by 12 */, meridiem) {\n const nHours = intOrDefault(hours, NaN); // if not (:00)\n\n if (Number.isNaN(nHours)) return hours;\n\n if (meridiem === 'AM') {\n if (nHours === 12) return 0; // 12 AM => 0\n }\n\n if (meridiem === 'PM') {\n if (nHours < 12) return nHours + 12; // 10 PM => 22\n }\n\n return hours;\n}\n\nclass TimePickerRoot extends Component {\n static displayName = 'TimePicker';\n static style = style;\n static defaultProps = ({ is12Hour }) => ({\n defaultValue: '',\n size: 'm',\n children: (\n <>\n <TimePicker.Hours />\n <TimePicker.Separator />\n <TimePicker.Minutes />\n {is12Hour && <TimePicker.Format />}\n </>\n ),\n });\n\n _lastMeridiem = 'AM'; // default AM\n\n uncontrolledProps() {\n return {\n value: null,\n };\n }\n\n get value() {\n const { value } = this.asProps;\n return value === null || value === undefined ? ':' : value;\n }\n\n get meridiem() {\n const { value } = this.asProps;\n const [hours = ''] = value.split(':');\n\n const nHours = intOrDefault(hours, NaN);\n\n if (!Number.isNaN(nHours)) {\n this._lastMeridiem = meridiemByHours(nHours);\n }\n\n return this._lastMeridiem;\n }\n\n valueToTime(value) {\n const { is12Hour } = this.asProps;\n let [hours = '', minutes = ''] = value.split(':');\n\n if (is12Hour) hours = formatHoursTo12(hours);\n\n hours = withLeadingZero(hours);\n minutes = withLeadingZero(minutes);\n\n return [hours, minutes];\n }\n\n timeToValue(time, meridiem) {\n const { is12Hour } = this.asProps;\n let [hours = '', minutes = ''] = time;\n\n hours = intOrDefault(hours, hours); // 03 => 3\n minutes = intOrDefault(minutes, minutes); // MM => MM\n\n if (is12Hour) hours = formatHoursTo24(hours, meridiem); // 12 PM -> 0\n\n return `${hours}:${minutes}`;\n }\n\n handleValueChange = (value, field, event) => {\n const { is12Hour } = this.asProps;\n const { meridiem } = this;\n\n let time;\n if (field) {\n time = this.value.split(':');\n time[MAP_FIELD_TO_TIME[field]] = value;\n } else {\n time = value.split(':');\n }\n\n let [hours = '', minutes = ''] = time;\n\n if (is12Hour) hours = String(formatHoursTo12(hours));\n\n value = this.timeToValue([hours, minutes], meridiem);\n this.handlers.value(value, event);\n };\n\n handleMeridiemClick = (event) => {\n const { is12Hour } = this.asProps;\n let { value, meridiem } = this;\n let [hours = '', minutes = ''] = value.split(':');\n\n if (is12Hour) hours = String(formatHoursTo12(hours));\n\n value = this.timeToValue([hours, minutes], MAP_MERIDIEM[meridiem]);\n this.handlers.value(value, event);\n };\n\n getHoursProps = () => {\n const { is12Hour, size, disabled } = this.asProps;\n const time = this.valueToTime(this.value);\n\n return {\n time,\n size,\n is12Hour,\n disabled,\n $onValueChange: this.handleValueChange,\n };\n };\n\n getMinutesProps = () => {\n return this.getHoursProps();\n };\n\n getFormatProps = () => {\n const { size, disabled, disablePortal } = this.asProps;\n return {\n size,\n disabled,\n disablePortal,\n meridiem: this.meridiem,\n onClick: this.handleMeridiemClick,\n };\n };\n\n render() {\n const STimePicker = Root;\n const { styles, Children } = this.asProps;\n\n return sstyled(styles)(<STimePicker render={Input}><Children /></STimePicker>);\n }\n}\n\nclass Separator extends Component {\n static\n defaultProps = {\n children: ':',\n };\n\n $el = React.createRef();\n\n handlerClick = () => {\n if (this.$el.current) {\n prevInput(this.$el.current)?.focus();\n }\n };\n\n render() {\n return <Root render={Box} ref={this.$el} onClick={this.handlerClick} />;\n }\n}\n\nconst TimePicker = createComponent(TimePickerRoot,\n {\n Hours,\n Minutes,\n Separator,\n Format,\n },\n);\n\nexport default TimePicker;\n"],"file":"TimePicker.js"}
|
|
1
|
+
{"version":3,"sources":["../../src/TimePicker.js"],"names":["React","createComponent","Component","sstyled","Root","Input","Box","Hours","Minutes","Format","MAP_MERIDIEM","AM","PM","MAP_FIELD_TO_TIME","hours","minutes","nextInput","element","nextElementSibling","tagName","prevInput","previousElementSibling","intOrDefault","value","def","number","Number","parseInt","isNaN","withLeadingZero","String","length","meridiemByHours","formatHoursTo12","nHours","NaN","formatHoursTo24","meridiem","TimePickerRoot","field","event","is12Hour","asProps","time","split","timeToValue","handlers","size","disabled","valueToTime","$onValueChange","handleValueChange","getHoursProps","disablePortal","onClick","handleMeridiemClick","undefined","_lastMeridiem","STimePicker","styles","Children","style","defaultValue","children","Separator","createRef","$el","current","focus","handlerClick","TimePicker"],"mappings":"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","sourcesContent":["import React from 'react';\nimport createComponent, { Component, sstyled, Root } from '@semcore/core';\nimport Input from '@semcore/input';\nimport { Box } from '@semcore/flex-box';\nimport { Hours, Minutes } from './PickerInput';\nimport Format from './PickerFormat';\n\nimport style from './style/time-picker.shadow.css';\n\nconst MAP_MERIDIEM = {\n AM: 'PM',\n PM: 'AM',\n};\nconst MAP_FIELD_TO_TIME = {\n hours: 0,\n minutes: 1,\n};\n\nexport function nextInput(element) {\n do {\n element = element.nextElementSibling;\n } while (element && element.tagName !== 'INPUT');\n return element;\n}\n\nexport function prevInput(element) {\n do {\n element = element.previousElementSibling;\n } while (element && element.tagName !== 'INPUT');\n return element;\n}\n\nexport function intOrDefault(value, def = 0) {\n const number = Number.parseInt(value);\n return Number.isNaN(number) ? def : number;\n}\n\nexport function withLeadingZero(value) {\n value = String(value);\n if (value.length === 1) return `0${value}`;\n return String(value);\n}\n\nexport function meridiemByHours(hours) {\n return hours >= 12 ? 'PM' : 'AM';\n}\n\nexport function formatHoursTo12(hours /* hours by 24 */) {\n const nHours = intOrDefault(hours, NaN); // if not (:00)\n if (Number.isNaN(nHours)) return hours;\n\n // if not (HH:00)\n if (nHours === 0) return 12; // 0 => 12 PM\n if (nHours > 12) return nHours - 12; // 22 => 12 PM\n\n return hours;\n}\n\nexport function formatHoursTo24(hours /* hours by 12 */, meridiem) {\n const nHours = intOrDefault(hours, NaN); // if not (:00)\n\n if (Number.isNaN(nHours)) return hours;\n\n if (meridiem === 'AM') {\n if (nHours === 12) return 0; // 12 AM => 0\n }\n\n if (meridiem === 'PM') {\n if (nHours < 12) return nHours + 12; // 10 PM => 22\n }\n\n return hours;\n}\n\nclass TimePickerRoot extends Component {\n static displayName = 'TimePicker';\n static style = style;\n static defaultProps = ({ is12Hour }) => ({\n defaultValue: '',\n size: 'm',\n children: (\n <>\n <TimePicker.Hours />\n <TimePicker.Separator />\n <TimePicker.Minutes />\n {is12Hour && <TimePicker.Format />}\n </>\n ),\n });\n\n _lastMeridiem = 'AM'; // default AM\n\n uncontrolledProps() {\n return {\n value: null,\n };\n }\n\n get value() {\n const { value } = this.asProps;\n return value === null || value === undefined ? ':' : value;\n }\n\n get meridiem() {\n const { value } = this.asProps;\n const [hours = ''] = value.split(':');\n\n const nHours = intOrDefault(hours, NaN);\n\n if (!Number.isNaN(nHours)) {\n this._lastMeridiem = meridiemByHours(nHours);\n }\n\n return this._lastMeridiem;\n }\n\n valueToTime(value) {\n const { is12Hour } = this.asProps;\n let [hours = '', minutes = ''] = value.split(':');\n\n if (is12Hour) hours = formatHoursTo12(hours);\n\n hours = withLeadingZero(hours);\n minutes = withLeadingZero(minutes);\n\n return [hours, minutes];\n }\n\n timeToValue(time, meridiem) {\n const { is12Hour } = this.asProps;\n let [hours = '', minutes = ''] = time;\n\n hours = intOrDefault(hours, hours); // 03 => 3\n minutes = intOrDefault(minutes, minutes); // MM => MM\n\n if (is12Hour) hours = formatHoursTo24(hours, meridiem); // 12 PM -> 0\n\n return `${hours}:${minutes}`;\n }\n\n handleValueChange = (value, field, event) => {\n const { is12Hour } = this.asProps;\n const { meridiem } = this;\n\n let time;\n if (field) {\n time = this.value.split(':');\n time[MAP_FIELD_TO_TIME[field]] = value;\n } else {\n time = value.split(':');\n }\n\n let [hours = '', minutes = ''] = time;\n\n if (is12Hour) hours = String(formatHoursTo12(hours));\n\n value = this.timeToValue([hours, minutes], meridiem);\n this.handlers.value(value, event);\n };\n\n handleMeridiemClick = (event) => {\n const { is12Hour } = this.asProps;\n let { value, meridiem } = this;\n let [hours = '', minutes = ''] = value.split(':');\n\n if (is12Hour) hours = String(formatHoursTo12(hours));\n\n value = this.timeToValue([hours, minutes], MAP_MERIDIEM[meridiem]);\n this.handlers.value(value, event);\n };\n\n getHoursProps = () => {\n const { is12Hour, size, disabled } = this.asProps;\n const time = this.valueToTime(this.value);\n\n return {\n time,\n size,\n is12Hour,\n disabled,\n $onValueChange: this.handleValueChange,\n };\n };\n\n getMinutesProps = () => {\n return this.getHoursProps();\n };\n\n getFormatProps = () => {\n const { size, disabled, disablePortal } = this.asProps;\n return {\n size,\n disabled,\n disablePortal,\n meridiem: this.meridiem,\n onClick: this.handleMeridiemClick,\n };\n };\n\n render() {\n const STimePicker = Root;\n const { styles, Children } = this.asProps;\n\n return sstyled(styles)(\n <STimePicker render={Input}>\n <Children />\n </STimePicker>,\n );\n }\n}\n\nclass Separator extends Component {\n static defaultProps = {\n children: ':',\n };\n\n $el = React.createRef();\n\n handlerClick = () => {\n if (this.$el.current) {\n prevInput(this.$el.current)?.focus();\n }\n };\n\n render() {\n return <Root render={Box} ref={this.$el} onClick={this.handlerClick} />;\n }\n}\n\nconst TimePicker = createComponent(TimePickerRoot, {\n Hours,\n Minutes,\n Separator,\n Format,\n});\n\nexport default TimePicker;\n"],"file":"TimePicker.js"}
|
package/package.json
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@semcore/time-picker",
|
|
3
3
|
"description": "SEMRush TimePicker Component",
|
|
4
|
-
"version": "2.4.
|
|
4
|
+
"version": "2.4.6",
|
|
5
5
|
"main": "lib/cjs/index.js",
|
|
6
6
|
"module": "lib/es6/index.js",
|
|
7
7
|
"typings": "lib/types/index.d.ts",
|
|
8
|
+
"sideEffects": false,
|
|
8
9
|
"author": "Roman Lysov <r.lysov@semrush.com>",
|
|
9
10
|
"license": "MIT",
|
|
10
11
|
"scripts": {
|
|
@@ -23,6 +24,6 @@
|
|
|
23
24
|
"react": "16.8 - 17"
|
|
24
25
|
},
|
|
25
26
|
"jest": {
|
|
26
|
-
"preset": "jest-preset-ui"
|
|
27
|
+
"preset": "@semcore/jest-preset-ui"
|
|
27
28
|
}
|
|
28
29
|
}
|
package/src/TimePicker.js
CHANGED
|
@@ -201,13 +201,16 @@ class TimePickerRoot extends Component {
|
|
|
201
201
|
const STimePicker = Root;
|
|
202
202
|
const { styles, Children } = this.asProps;
|
|
203
203
|
|
|
204
|
-
return sstyled(styles)(
|
|
204
|
+
return sstyled(styles)(
|
|
205
|
+
<STimePicker render={Input}>
|
|
206
|
+
<Children />
|
|
207
|
+
</STimePicker>,
|
|
208
|
+
);
|
|
205
209
|
}
|
|
206
210
|
}
|
|
207
211
|
|
|
208
212
|
class Separator extends Component {
|
|
209
|
-
static
|
|
210
|
-
defaultProps = {
|
|
213
|
+
static defaultProps = {
|
|
211
214
|
children: ':',
|
|
212
215
|
};
|
|
213
216
|
|
|
@@ -224,13 +227,11 @@ class Separator extends Component {
|
|
|
224
227
|
}
|
|
225
228
|
}
|
|
226
229
|
|
|
227
|
-
const TimePicker = createComponent(TimePickerRoot,
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
},
|
|
234
|
-
);
|
|
230
|
+
const TimePicker = createComponent(TimePickerRoot, {
|
|
231
|
+
Hours,
|
|
232
|
+
Minutes,
|
|
233
|
+
Separator,
|
|
234
|
+
Format,
|
|
235
|
+
});
|
|
235
236
|
|
|
236
237
|
export default TimePicker;
|