@semcore/time-picker 3.3.2 → 3.4.0

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.
Files changed (43) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/lib/cjs/PickerFormat.js +5 -2
  3. package/lib/cjs/PickerFormat.js.map +1 -1
  4. package/lib/cjs/PickerInput.js +7 -1
  5. package/lib/cjs/PickerInput.js.map +1 -1
  6. package/lib/cjs/TimePicker.js +34 -20
  7. package/lib/cjs/TimePicker.js.map +1 -1
  8. package/lib/cjs/index.d.js.map +1 -1
  9. package/lib/cjs/translations/__intergalactic-dynamic-locales.js +46 -0
  10. package/lib/cjs/translations/__intergalactic-dynamic-locales.js.map +1 -0
  11. package/lib/cjs/translations/de.json +7 -0
  12. package/lib/cjs/translations/en.json +7 -0
  13. package/lib/cjs/translations/es.json +7 -0
  14. package/lib/cjs/translations/fr.json +7 -0
  15. package/lib/cjs/translations/it.json +7 -0
  16. package/lib/cjs/translations/ja.json +7 -0
  17. package/lib/cjs/translations/ko.json +7 -0
  18. package/lib/cjs/translations/pt.json +7 -0
  19. package/lib/cjs/translations/tr.json +7 -0
  20. package/lib/cjs/translations/vi.json +7 -0
  21. package/lib/cjs/translations/zh.json +7 -0
  22. package/lib/es6/PickerFormat.js +5 -2
  23. package/lib/es6/PickerFormat.js.map +1 -1
  24. package/lib/es6/PickerInput.js +8 -1
  25. package/lib/es6/PickerInput.js.map +1 -1
  26. package/lib/es6/TimePicker.js +33 -20
  27. package/lib/es6/TimePicker.js.map +1 -1
  28. package/lib/es6/index.d.js.map +1 -1
  29. package/lib/es6/translations/__intergalactic-dynamic-locales.js +25 -0
  30. package/lib/es6/translations/__intergalactic-dynamic-locales.js.map +1 -0
  31. package/lib/es6/translations/de.json +7 -0
  32. package/lib/es6/translations/en.json +7 -0
  33. package/lib/es6/translations/es.json +7 -0
  34. package/lib/es6/translations/fr.json +7 -0
  35. package/lib/es6/translations/it.json +7 -0
  36. package/lib/es6/translations/ja.json +7 -0
  37. package/lib/es6/translations/ko.json +7 -0
  38. package/lib/es6/translations/pt.json +7 -0
  39. package/lib/es6/translations/tr.json +7 -0
  40. package/lib/es6/translations/vi.json +7 -0
  41. package/lib/es6/translations/zh.json +7 -0
  42. package/lib/types/index.d.ts +1 -0
  43. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -2,6 +2,12 @@
2
2
 
3
3
  CHANGELOG.md standards are inspired by [keepachangelog.com](https://keepachangelog.com/en/1.0.0/).
4
4
 
5
+ ## [3.4.0] - 2022-12-14
6
+
7
+ ### Added
8
+
9
+ - Added internationalization of aria attributes.
10
+
5
11
  ## [3.3.2] - 2022-12-13
6
12
 
7
13
  ### Changed
@@ -55,9 +55,12 @@ var TimePickerFormat = /*#__PURE__*/function (_Component) {
55
55
  var _this$asProps = this.asProps,
56
56
  Children = _this$asProps.Children,
57
57
  meridiem = _this$asProps.meridiem,
58
- styles = _this$asProps.styles;
58
+ styles = _this$asProps.styles,
59
+ getI18nText = _this$asProps.getI18nText;
59
60
  var SPickerFormatText = 'span';
60
- var label = "Time format ".concat(meridiem);
61
+ var label = getI18nText('format', {
62
+ meridiem: meridiem
63
+ });
61
64
  return _ref2 = (0, _core.sstyled)(styles), /*#__PURE__*/_react["default"].createElement(SPickerFormat, _ref2.cn("SPickerFormat", _objectSpread({}, (0, _core.assignProps)({
62
65
  "type": "button",
63
66
  "tag": "button",
@@ -1 +1 @@
1
- {"version":3,"file":"PickerFormat.js","names":["TimePickerFormat","SPickerFormat","Box","asProps","Children","meridiem","styles","SPickerFormatText","label","sstyled","origin","Component","keyboardFocusEnhance"],"sources":["../../src/PickerFormat.jsx"],"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 const label = `Time format ${meridiem}`;\n\n return sstyled(styles)(\n <SPickerFormat render={Box} type=\"button\" tag=\"button\" role=\"switch\" aria-label={label}>\n {Children.origin ? <Children /> : <SPickerFormatText>{meridiem}</SPickerFormatText>}\n </SPickerFormat>,\n );\n }\n}\n\nexport default TimePickerFormat;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AACA;;AADA;;AAEA;;AACA;;;;;;;;;;IAEMA,gB;;;;;;;;;;;;WAEJ,kBAAS;MAAA;MAAA;;MACP,IAAMC,aAAa,GAOMC,YAPzB;MACA,oBAAuC,KAAKC,OAA5C;MAAA,IAAQC,QAAR,iBAAQA,QAAR;MAAA,IAAkBC,QAAlB,iBAAkBA,QAAlB;MAAA,IAA4BC,MAA5B,iBAA4BA,MAA5B;MACA,IAAMC,iBAAiB,GAAG,MAA1B;MAEA,IAAMC,KAAK,yBAAkBH,QAAlB,CAAX;MAEA,eAAO,IAAAI,aAAA,EAAQH,MAAR,CAAP,eACE,gCAAC,aAAD;QAAA,QAAiC,QAAjC;QAAA,OAA8C,QAA9C;QAAA,QAA4D,QAA5D;QAAA,cAAiFE;MAAjF,YACGJ,QAAQ,CAACM,MAAT,gBAAkB,gCAAC,QAAD,2BAAlB,gBAAiC,gCAAC,iBAAD,qCAAoBL,QAApB,CADpC,CADF;IAKD;;;EAd4BM,e;;iCAAzBX,gB,aACa,CAAC,IAAAY,gCAAA,GAAD,C;eAgBJZ,gB"}
1
+ {"version":3,"file":"PickerFormat.js","names":["TimePickerFormat","SPickerFormat","Box","asProps","Children","meridiem","styles","getI18nText","SPickerFormatText","label","sstyled","origin","Component","keyboardFocusEnhance"],"sources":["../../src/PickerFormat.jsx"],"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, getI18nText } = this.asProps;\n const SPickerFormatText = 'span';\n\n const label = getI18nText('format', { meridiem });\n\n return sstyled(styles)(\n <SPickerFormat render={Box} type=\"button\" tag=\"button\" role=\"switch\" aria-label={label}>\n {Children.origin ? <Children /> : <SPickerFormatText>{meridiem}</SPickerFormatText>}\n </SPickerFormat>,\n );\n }\n}\n\nexport default TimePickerFormat;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AACA;;AADA;;AAEA;;AACA;;;;;;;;;;IAEMA,gB;;;;;;;;;;;;WAEJ,kBAAS;MAAA;MAAA;;MACP,IAAMC,aAAa,GAOMC,YAPzB;MACA,oBAAoD,KAAKC,OAAzD;MAAA,IAAQC,QAAR,iBAAQA,QAAR;MAAA,IAAkBC,QAAlB,iBAAkBA,QAAlB;MAAA,IAA4BC,MAA5B,iBAA4BA,MAA5B;MAAA,IAAoCC,WAApC,iBAAoCA,WAApC;MACA,IAAMC,iBAAiB,GAAG,MAA1B;MAEA,IAAMC,KAAK,GAAGF,WAAW,CAAC,QAAD,EAAW;QAAEF,QAAQ,EAARA;MAAF,CAAX,CAAzB;MAEA,eAAO,IAAAK,aAAA,EAAQJ,MAAR,CAAP,eACE,gCAAC,aAAD;QAAA,QAAiC,QAAjC;QAAA,OAA8C,QAA9C;QAAA,QAA4D,QAA5D;QAAA,cAAiFG;MAAjF,YACGL,QAAQ,CAACO,MAAT,gBAAkB,gCAAC,QAAD,2BAAlB,gBAAiC,gCAAC,iBAAD,qCAAoBN,QAApB,CADpC,CADF;IAKD;;;EAd4BO,e;;iCAAzBZ,gB,aACa,CAAC,IAAAa,gCAAA,GAAD,C;eAgBJb,gB"}
@@ -122,6 +122,12 @@ var ItemPicker = /*#__PURE__*/function (_Component) {
122
122
  visible: visible
123
123
  });
124
124
  });
125
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "getAriaLabel", function () {
126
+ var getI18nText = _this.asProps._getI18nText;
127
+ if (_this.field === 'hours') return getI18nText('hours');
128
+ if (_this.field === 'minutes') return getI18nText('minutes');
129
+ return undefined;
130
+ });
125
131
  return _this;
126
132
  }
127
133
 
@@ -191,7 +197,7 @@ var ItemPicker = /*#__PURE__*/function (_Component) {
191
197
  "disabled": disabled,
192
198
  "neighborLocation": false,
193
199
  "value": value,
194
- "aria-label": "".concat(this.field, " field"),
200
+ "aria-label": this.getAriaLabel(),
195
201
  "__excludeProps": ['aria-haspopup', 'aria-controls', 'aria-flowto', 'aria-expanded', 'aria-autocomplete', 'role'],
196
202
  "onChange": this.handleChange,
197
203
  "onBlur": this.handleBlur,
@@ -1 +1 @@
1
- {"version":3,"file":"PickerInput.js","names":["MAP_FIELD_TO_TIME","hours","minutes","MAP_SIZE_SELECT","m","l","getOptions","min","max","step","length","Number","toFixed","options","Array","fill","numValue","map","i","index","value","withLeadingZero","String","ItemPicker","React","createRef","dirtyValue","undefined","visible","minMax","Math","e","stopPropagation","numberValue","intOrDefault","NaN","isNaN","setState","slice","submitChanges","dispatchOnChange","event","asProps","$onValueChange","field","state","parseValueWithMinMax","SPickerInput","Select","Trigger","styles","onSelect","time","size","disabled","onVisibleChange","other","timeValue","sstyled","callAllEventHandlers","handleSelect","handleVisibleChange","Input","Value","inputRef","handleChange","handleBlur","handleKeyDown","Component","placeholder","Hours","currentTarget","keyCode","selectionStart","selectionEnd","preventDefault","nextInput","is12Hour","minutesInputRef","current","focus","prevProps","prevState","Minutes","prevFocus","hoursInputRef"],"sources":["../../src/PickerInput.jsx"],"sourcesContent":["import React from 'react';\nimport Input from '@semcore/input';\nimport Select from '@semcore/select';\nimport { intOrDefault, 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};\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 inputRef = 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 /* 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 { styles, step, onSelect, time, size, disabled, onVisibleChange, ...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 render={Select.Trigger}\n tag={Input.Value}\n ref={this.inputRef}\n size={size}\n disabled={disabled}\n neighborLocation={false}\n value={value}\n aria-label={`${this.field} field`}\n __excludeProps={[\n 'aria-haspopup',\n 'aria-controls',\n 'aria-flowto',\n 'aria-expanded',\n 'aria-autocomplete',\n 'role',\n ]}\n onChange={this.handleChange}\n onBlur={this.handleBlur}\n onKeyDown={this.handleKeyDown}\n />\n <Select.Menu aria-hidden=\"true\" hMax={180}>\n {getOptions(min, max, step)}\n </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.asProps.minutesInputRef.current) {\n this.setState({ visible: false });\n this.asProps.minutesInputRef.current.focus();\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.asProps.hoursInputRef.current) {\n this.setState({ visible: false });\n this.asProps.hoursInputRef.current.focus();\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"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA;;AAJA;;AACA;;AACA;;AACA;;AAEA;;;;;;;;;;;;AAEA,IAAMA,iBAAiB,GAAG;EACxBC,KAAK,EAAE,CADiB;EAExBC,OAAO,EAAE;AAFe,CAA1B;AAKA,IAAMC,eAAe,GAAG;EACtBC,CAAC,EAAE,GADmB;EAEtBC,CAAC,EAAE;AAFmB,CAAxB;;AAKA,SAASC,UAAT,CAAoBC,GAApB,EAAyBC,GAAzB,EAAwC;EAAA,IAAVC,IAAU,uEAAH,CAAG;EACtC,IAAMC,MAAM,GAAGC,MAAM,CAAC,CAAC,CAACH,GAAG,GAAG,CAAN,GAAUD,GAAX,IAAkBE,IAAnB,EAAyBG,OAAzB,CAAiC,CAAjC,CAAD,CAArB;EACA,IAAMC,OAAO,GAAGC,KAAK,CAACJ,MAAD,CAAL,CAAcK,IAAd,CAAmB,EAAnB,CAAhB;EACA,IAAIC,QAAQ,GAAGT,GAAf;EACA,OAAOM,OAAO,CAACI,GAAR,CAAY,UAACC,CAAD,EAAIC,KAAJ,EAAc;IAC/BH,QAAQ,GAAGG,KAAK,KAAK,CAAV,GAAcH,QAAd,GAAyBA,QAAQ,GAAGP,IAA/C;IACA,IAAMW,KAAK,GAAG,IAAAC,2BAAA,EAAgBC,MAAM,CAACN,QAAD,CAAtB,CAAd;IACA,oBACE,gCAAC,kBAAD,CAAQ,MAAR;MAAe,KAAK,EAAEI,KAAtB;MAA6B,GAAG,EAAEA;IAAlC,GACGA,KADH,CADF;EAKD,CARM,CAAP;AASD;;IAEKG,U;;;;;;;;;;;;;;;8GAKOC,iBAAA,CAAMC,SAAN,E;8FAMH;MACNC,UAAU,EAAEC,SADN;MAENC,OAAO,EAAE;IAFH,C;6GAKe,UAACR,KAAD,EAAW;MAChC,mBAAmB,MAAKS,MAAL,EAAnB;MAAA;MAAA,IAAOtB,GAAP;MAAA,IAAYC,GAAZ;;MACA,OAAOc,MAAM,CAACQ,IAAI,CAACtB,GAAL,CAASD,GAAT,EAAcuB,IAAI,CAACvB,GAAL,CAASC,GAAT,EAAcY,KAAd,CAAd,CAAD,CAAb;IACD,C;qGAgBc,UAACA,KAAD,EAAQW,CAAR,EAAc;MAC3B;MACAA,CAAC,CAACC,eAAF;MACA,IAAMC,WAAW,GAAG,IAAAC,wBAAA,EAAavB,MAAM,CAACS,KAAD,CAAnB,EAA4Be,GAA5B,CAApB;;MAEA,IAAI,CAACxB,MAAM,CAACyB,KAAP,CAAaH,WAAb,CAAL,EAAgC;QAC9B,MAAKI,QAAL,CAAc;UAAEX,UAAU,EAAEN,KAAK,CAACkB,KAAN,CAAY,CAAC,CAAb;QAAd,CAAd;MACD;IACF,C;mGAEY,UAACP,CAAD;MAAA,OAAO,MAAKQ,aAAL,CAAmBR,CAAnB,CAAP;IAAA,C;sGAGG,YAAM,CAAE,C;qGAET,UAACX,KAAD,EAAQW,CAAR,EAAc;MAC3B,MAAKS,gBAAL,CAAsBpB,KAAtB,EAA6BW,CAA7B;IACD,C;4GAEqB,UAACH,OAAD;MAAA,OAAa,MAAKS,QAAL,CAAc;QAAET,OAAO,EAAPA;MAAF,CAAd,CAAb;IAAA,C;;;;;;WA/CtB,kBAAS;MACP,OAAO,EAAP;IACD;;;WAYD,0BAAiBR,KAAjB,EAAwBqB,KAAxB,EAA+B;MAC7B,KAAKJ,QAAL,CAAc;QAAEX,UAAU,EAAEC;MAAd,CAAd;MACA,KAAKe,OAAL,CAAaC,cAAb,CAA4BvB,KAA5B,EAAmC,KAAKwB,KAAxC,EAA+CH,KAA/C;IACD;;;WAED,uBAAcA,KAAd,EAAqB;MACnB,IAAMf,UAAN,GAAqB,KAAKmB,KAA1B,CAAMnB,UAAN;;MACA,IAAIA,UAAU,KAAKC,SAAnB,EAA8B;QAC5B;QACA,IAAID,UAAJ,EAAgBA,UAAU,GAAG,KAAKoB,oBAAL,CAA0BpB,UAA1B,CAAb,CAFY,CAEwC;;QACpE,KAAKc,gBAAL,CAAsBd,UAAtB,EAAkCe,KAAlC;MACD;IACF;;;WAuBD,kBAAS;MAAA;MAAA;;MACP,IAAMM,YAAY,GAmBJC,kBAAA,CAAOC,OAnBrB;MACA,oBACE,KAAKP,OADP;MAAA,IAAQQ,MAAR,iBAAQA,MAAR;MAAA,IAAgBzC,IAAhB,iBAAgBA,IAAhB;MAAA,IAAsB0C,QAAtB,iBAAsBA,QAAtB;MAAA,IAAgCC,IAAhC,iBAAgCA,IAAhC;MAAA,IAAsCC,IAAtC,iBAAsCA,IAAtC;MAAA,IAA4CC,QAA5C,iBAA4CA,QAA5C;MAAA,IAAsDC,eAAtD,iBAAsDA,eAAtD;MAAA,IAA0EC,KAA1E;MAEA,kBAAgC,KAAKX,KAArC;MAAA,IAAQnB,UAAR,eAAQA,UAAR;MAAA,IAAoBE,OAApB,eAAoBA,OAApB;MACA,IAAM6B,SAAS,GAAGL,IAAI,CAACpD,iBAAiB,CAAC,KAAK4C,KAAN,CAAlB,CAAtB;MACA,IAAMxB,KAAK,GAAGM,UAAU,KAAKC,SAAf,GAA2B8B,SAA3B,GAAuC/B,UAArD;;MACA,oBAAmB,KAAKG,MAAL,EAAnB;MAAA;MAAA,IAAOtB,GAAP;MAAA,IAAYC,GAAZ;;MAEA,eAAO,IAAAkD,aAAA,EAAQR,MAAR,CAAP,eACE,gCAAC,kBAAD,qDACMM,KADN;QAAA,eAEc,OAFd;QAAA,QAGQH,IAAI,GAAGlD,eAAe,CAACkD,IAAD,CAAlB,GAA2B,KAHvC;QAAA,YAIY,IAAAM,kCAAA,EAAqBR,QAArB,EAA+B,KAAKS,YAApC,CAJZ;QAAA,mBAKmB,IAAAD,kCAAA,EAAqBJ,eAArB,EAAsC,KAAKM,mBAA3C,CALnB;QAAA,WAMWjC,OANX;QAAA,SAOS6B;MAPT,kBASE,gCAAC,YAAD;QAAA,OAEOK,iBAAA,CAAMC,KAFb;QAAA,OAGO,KAAKC,QAHZ;QAAA,QAIQX,IAJR;QAAA,YAKYC,QALZ;QAAA,oBAMoB,KANpB;QAAA,SAOSlC,KAPT;QAAA,wBAQiB,KAAKwB,KARtB;QAAA,kBASkB,CACd,eADc,EAEd,eAFc,EAGd,aAHc,EAId,eAJc,EAKd,mBALc,EAMd,MANc,CATlB;QAAA,YAiBY,KAAKqB,YAjBjB;QAAA,UAkBU,KAAKC,UAlBf;QAAA,aAmBa,KAAKC;MAnBlB,WATF,eA8BE,gCAAC,kBAAD,CAAQ,IAAR;QAAa,eAAY,MAAzB;QAAgC,IAAI,EAAE;MAAtC,GACG7D,UAAU,CAACC,GAAD,EAAMC,GAAN,EAAWC,IAAX,CADb,CA9BF,CADF;IAoCD;;;EArGsB2D,e;;iCAAnB7C,U,kBACkB;EACpB8C,WAAW,EAAE;AADO,C;;IAuGlBC,K;;;;;;;;;;;;;;;+FACI,O;uGAkBQ,UAACvC,CAAD,EAAO;MACrB,IAAQwC,aAAR,GAA0BxC,CAA1B,CAAQwC,aAAR;MACA,IAAIxC,CAAC,CAACyC,OAAF,KAAc,EAAlB,EAAsB,OAAKjC,aAAL,CAAmBR,CAAnB;;MACtB,IAAIA,CAAC,CAACyC,OAAF,KAAc,EAAlB,EAAsB;QACpB,IACED,aAAa,CAACE,cAAd,IAAgCF,aAAa,CAACnD,KAAd,CAAoBV,MAApD,IACA6D,aAAa,CAACE,cAAd,KAAiCF,aAAa,CAACG,YAFjD,EAGE;UACA3C,CAAC,CAAC4C,cAAF;;UACA,OAAKC,SAAL;QACD;MACF;IACF,C;;;;;;WA5BD,kBAAS;MACP,IAAQC,QAAR,GAAqB,KAAKnC,OAA1B,CAAQmC,QAAR;;MACA,IAAIA,QAAJ,EAAc;QACZ,OAAO,CAAC,CAAD,EAAI,EAAJ,CAAP;MACD,CAFD,MAEO;QACL,OAAO,CAAC,CAAD,EAAI,EAAJ,CAAP;MACD;IACF;;;WAED,qBAAY;MACV,IAAI,KAAKnC,OAAL,CAAaoC,eAAb,CAA6BC,OAAjC,EAA0C;QACxC,KAAK1C,QAAL,CAAc;UAAET,OAAO,EAAE;QAAX,CAAd;QACA,KAAKc,OAAL,CAAaoC,eAAb,CAA6BC,OAA7B,CAAqCC,KAArC;MACD;IACF;;;WAgBD,4BAAmBC,SAAnB,EAA8BC,SAA9B,EAAyC;MACvC,IAAQxD,UAAR,GAAuB,KAAKmB,KAA5B,CAAQnB,UAAR;MACA,IAAIwD,SAAS,CAACxD,UAAV,KAAyBC,SAAzB,IAAsCD,UAAU,KAAKC,SAAzD,EAAoE;;MAEpE,IAAIuD,SAAS,CAACxD,UAAV,CAAqBhB,MAArB,KAAgC,CAAhC,IAAqCgB,UAAU,CAAChB,MAAX,KAAsB,CAA/D,EAAkE;QAChE,KAAKkE,SAAL;MACD;IACF;;;EAxCiBrD,U;;;;IA2Cd4D,O;;;;;;;;;;;;;;;+FACI,S;uGAaQ,UAACpD,CAAD,EAAO;MACrB,IAAQwC,aAAR,GAA0BxC,CAA1B,CAAQwC,aAAR;MACA,IAAIxC,CAAC,CAACyC,OAAF,KAAc,EAAlB,EAAsB,OAAKjC,aAAL,CAAmBR,CAAnB;;MACtB,IAAIA,CAAC,CAACyC,OAAF,KAAc,EAAlB,EAAsB;QACpB,IACED,aAAa,CAACE,cAAd,IAAgC,CAAhC,IACAF,aAAa,CAACE,cAAd,KAAiCF,aAAa,CAACG,YAFjD,EAGE;UACA3C,CAAC,CAAC4C,cAAF;;UACA,OAAKS,SAAL;QACD;MACF;;MACD,IAAIrD,CAAC,CAACyC,OAAF,KAAc,CAAlB,EAAqB;QACnB,IAAID,aAAa,CAACnD,KAAd,CAAoBV,MAApB,KAA+B,CAAnC,EAAsC;UACpCqB,CAAC,CAAC4C,cAAF;;UACA,OAAKS,SAAL;QACD;MACF;IACF,C;;;;;;WA7BD,kBAAS;MACP,OAAO,CAAC,CAAD,EAAI,EAAJ,CAAP;IACD;;;WAED,qBAAY;MACV,IAAI,KAAK1C,OAAL,CAAa2C,aAAb,CAA2BN,OAA/B,EAAwC;QACtC,KAAK1C,QAAL,CAAc;UAAET,OAAO,EAAE;QAAX,CAAd;QACA,KAAKc,OAAL,CAAa2C,aAAb,CAA2BN,OAA3B,CAAmCC,KAAnC;MACD;IACF;;;EAZmBzD,U"}
1
+ {"version":3,"file":"PickerInput.js","names":["MAP_FIELD_TO_TIME","hours","minutes","MAP_SIZE_SELECT","m","l","getOptions","min","max","step","length","Number","toFixed","options","Array","fill","numValue","map","i","index","value","withLeadingZero","String","ItemPicker","React","createRef","dirtyValue","undefined","visible","minMax","Math","e","stopPropagation","numberValue","intOrDefault","NaN","isNaN","setState","slice","submitChanges","dispatchOnChange","getI18nText","asProps","_getI18nText","field","event","$onValueChange","state","parseValueWithMinMax","SPickerInput","Select","Trigger","styles","onSelect","time","size","disabled","onVisibleChange","other","timeValue","sstyled","callAllEventHandlers","handleSelect","handleVisibleChange","Input","Value","inputRef","getAriaLabel","handleChange","handleBlur","handleKeyDown","Component","placeholder","Hours","currentTarget","keyCode","selectionStart","selectionEnd","preventDefault","nextInput","is12Hour","minutesInputRef","current","focus","prevProps","prevState","Minutes","prevFocus","hoursInputRef"],"sources":["../../src/PickerInput.jsx"],"sourcesContent":["import React from 'react';\nimport Input from '@semcore/input';\nimport Select from '@semcore/select';\nimport { intOrDefault, 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};\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 inputRef = 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 /* rewrite method */\n handleKeyDown = () => {};\n\n handleSelect = (value, e) => {\n this.dispatchOnChange(value, e);\n };\n\n handleVisibleChange = (visible) => this.setState({ visible });\n\n getAriaLabel = () => {\n const { _getI18nText: getI18nText } = this.asProps;\n if (this.field === 'hours') return getI18nText('hours');\n if (this.field === 'minutes') return getI18nText('minutes');\n return undefined;\n };\n\n render() {\n const SPickerInput = Root;\n const { styles, step, onSelect, time, size, disabled, onVisibleChange, ...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 render={Select.Trigger}\n tag={Input.Value}\n ref={this.inputRef}\n size={size}\n disabled={disabled}\n neighborLocation={false}\n value={value}\n aria-label={this.getAriaLabel()}\n __excludeProps={[\n 'aria-haspopup',\n 'aria-controls',\n 'aria-flowto',\n 'aria-expanded',\n 'aria-autocomplete',\n 'role',\n ]}\n onChange={this.handleChange}\n onBlur={this.handleBlur}\n onKeyDown={this.handleKeyDown}\n />\n <Select.Menu aria-hidden=\"true\" hMax={180}>\n {getOptions(min, max, step)}\n </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.asProps.minutesInputRef.current) {\n this.setState({ visible: false });\n this.asProps.minutesInputRef.current.focus();\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.asProps.hoursInputRef.current) {\n this.setState({ visible: false });\n this.asProps.hoursInputRef.current.focus();\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"],"mappings":"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"}
@@ -42,6 +42,10 @@ var _PickerInput = require("./PickerInput");
42
42
 
43
43
  var _PickerFormat = _interopRequireDefault(require("./PickerFormat"));
44
44
 
45
+ var _intergalacticDynamicLocales = require("./translations/__intergalactic-dynamic-locales");
46
+
47
+ var _i18nEnhance = _interopRequireDefault(require("@semcore/utils/lib/enhances/i18nEnhance"));
48
+
45
49
  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); }
46
50
 
47
51
  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; }
@@ -59,22 +63,22 @@ var style = (
59
63
  /*__reshadow_css_start__*/
60
64
  _core.sstyled.insert(
61
65
  /*__inner_css_start__*/
62
- ".___STimePicker_9vxve_gg_{position:relative;width:auto}.___STimePicker_9vxve_gg_.__disabled_9vxve_gg_{color:var(--intergalactic-text-secondary,#6c6e79);cursor:default}.___SPickerInput_9vxve_gg_{box-sizing:content-box;text-align:center;z-index:1}.___SPickerInput_9vxve_gg_.__placeholder_9vxve_gg_{text-overflow:clip}.___SPickerInput_9vxve_gg_._size_m_9vxve_gg_{width:19px}.___SPickerInput_9vxve_gg_._size_l_9vxve_gg_{width:21px}.___SPickerFormat_9vxve_gg_{flex-shrink:0;position:relative;display:inline-flex;padding:0;white-space:nowrap;font-family:inherit;font-weight:var(--intergalactic-medium,500);line-height:normal;text-decoration:none;align-items:center;border:1px solid var(--intergalactic-border-primary,#c4c7cf);border-radius:0 var(--intergalactic-rounded-medium,6px) var(--intergalactic-rounded-medium,6px) 0;outline:0;box-shadow:none;cursor:pointer;box-sizing:border-box;overflow:visible;-webkit-user-select:none;-moz-user-select:none;user-select:none;touch-action:manipulation;-webkit-tap-highlight-color:transparent;color:var(--intergalactic-text-secondary,#6c6e79);background-color:var(--intergalactic-bg-secondary-neutral,#f4f5f9)}.___SPickerFormat_9vxve_gg_:hover{color:var(--intergalactic-text-secondary,#6c6e79);background-color:var(--intergalactic-bg-secondary-neutral-hover,#e0e1e9)}.___SPickerFormat_9vxve_gg_:active,.___SPickerFormat_9vxve_gg_.__active_9vxve_gg_{color:var(--intergalactic-text-secondary,#6c6e79);background-color:var(--intergalactic-bg-secondary-neutral-active,#c4c7cf)}.___SPickerFormat_9vxve_gg_._size_m_9vxve_gg_{height:var(--intergalactic-form-control-m,28px);font-size:var(--intergalactic-fs-200,14px);margin:0 -1px 0 0}.___SPickerFormat_9vxve_gg_._size_m_9vxve_gg_ .___SPickerFormatText_9vxve_gg_{margin:0 var(--intergalactic-spacing-2x,8px)}.___SPickerFormat_9vxve_gg_._size_l_9vxve_gg_{height:var(--intergalactic-form-control-l,40px);font-size:var(--intergalactic-fs-300,16px);margin:0 calc(var(--intergalactic-spacing-1x, 4px)*-1) 0 0}.___SPickerFormat_9vxve_gg_._size_l_9vxve_gg_ .___SPickerFormatText_9vxve_gg_{margin:0 var(--intergalactic-spacing-3x,12px)}.___SPickerFormat_9vxve_gg_.__disabled_9vxve_gg_{opacity:var(--intergalactic-disabled-opacity,.3);cursor:default;pointer-events:none;border-color:transparent transparent transparent var(--intergalactic-border-primary,#c4c7cf)}.___SPickerFormat_9vxve_gg_.__keyboardFocused_9vxve_gg_{box-shadow:var(--intergalactic-keyboard-focus,0 0 0 3px rgba(0,143,248,.3))}.___STimePickerSeparator_9vxve_gg_.__disabled_9vxve_gg_{opacity:var(--intergalactic-disabled-opacity,.3);pointer-events:none}"
66
+ ".___STimePicker_1h8bl_gg_{position:relative;width:auto}.___STimePicker_1h8bl_gg_.__disabled_1h8bl_gg_{color:var(--intergalactic-text-secondary,#6c6e79);cursor:default}.___SPickerInput_1h8bl_gg_{box-sizing:content-box;text-align:center;z-index:1}.___SPickerInput_1h8bl_gg_.__placeholder_1h8bl_gg_{text-overflow:clip}.___SPickerInput_1h8bl_gg_._size_m_1h8bl_gg_{width:19px}.___SPickerInput_1h8bl_gg_._size_l_1h8bl_gg_{width:21px}.___SPickerFormat_1h8bl_gg_{flex-shrink:0;position:relative;display:inline-flex;padding:0;white-space:nowrap;font-family:inherit;font-weight:var(--intergalactic-medium,500);line-height:normal;text-decoration:none;align-items:center;border:1px solid var(--intergalactic-border-primary,#c4c7cf);border-radius:0 var(--intergalactic-rounded-medium,6px) var(--intergalactic-rounded-medium,6px) 0;outline:0;box-shadow:none;cursor:pointer;box-sizing:border-box;overflow:visible;-webkit-user-select:none;-moz-user-select:none;user-select:none;touch-action:manipulation;-webkit-tap-highlight-color:transparent;color:var(--intergalactic-text-secondary,#6c6e79);background-color:var(--intergalactic-bg-secondary-neutral,#f4f5f9)}.___SPickerFormat_1h8bl_gg_:hover{color:var(--intergalactic-text-secondary,#6c6e79);background-color:var(--intergalactic-bg-secondary-neutral-hover,#e0e1e9)}.___SPickerFormat_1h8bl_gg_:active,.___SPickerFormat_1h8bl_gg_.__active_1h8bl_gg_{color:var(--intergalactic-text-secondary,#6c6e79);background-color:var(--intergalactic-bg-secondary-neutral-active,#c4c7cf)}.___SPickerFormat_1h8bl_gg_._size_m_1h8bl_gg_{height:var(--intergalactic-form-control-m,28px);font-size:var(--intergalactic-fs-200,14px);margin:0 -1px 0 0}.___SPickerFormat_1h8bl_gg_._size_m_1h8bl_gg_ .___SPickerFormatText_1h8bl_gg_{margin:0 var(--intergalactic-spacing-2x,8px)}.___SPickerFormat_1h8bl_gg_._size_l_1h8bl_gg_{height:var(--intergalactic-form-control-l,40px);font-size:var(--intergalactic-fs-300,16px);margin:0 calc(var(--intergalactic-spacing-1x, 4px)*-1) 0 0}.___SPickerFormat_1h8bl_gg_._size_l_1h8bl_gg_ .___SPickerFormatText_1h8bl_gg_{margin:0 var(--intergalactic-spacing-3x,12px)}.___SPickerFormat_1h8bl_gg_.__disabled_1h8bl_gg_{opacity:var(--intergalactic-disabled-opacity,.3);cursor:default;pointer-events:none;border-color:transparent transparent transparent var(--intergalactic-border-primary,#c4c7cf)}.___SPickerFormat_1h8bl_gg_.__keyboardFocused_1h8bl_gg_{box-shadow:var(--intergalactic-keyboard-focus,0 0 0 3px rgba(0,143,248,.3))}.___STimePickerSeparator_1h8bl_gg_.__disabled_1h8bl_gg_{opacity:var(--intergalactic-disabled-opacity,.3);pointer-events:none}"
63
67
  /*__inner_css_end__*/
64
- , "9vxve_gg_")
68
+ , "1h8bl_gg_")
65
69
  /*__reshadow_css_end__*/
66
70
  , {
67
- "__STimePicker": "___STimePicker_9vxve_gg_",
68
- "_disabled": "__disabled_9vxve_gg_",
69
- "__SPickerInput": "___SPickerInput_9vxve_gg_",
70
- "_placeholder": "__placeholder_9vxve_gg_",
71
- "_size_m": "_size_m_9vxve_gg_",
72
- "_size_l": "_size_l_9vxve_gg_",
73
- "__SPickerFormat": "___SPickerFormat_9vxve_gg_",
74
- "_active": "__active_9vxve_gg_",
75
- "__SPickerFormatText": "___SPickerFormatText_9vxve_gg_",
76
- "_keyboardFocused": "__keyboardFocused_9vxve_gg_",
77
- "__STimePickerSeparator": "___STimePickerSeparator_9vxve_gg_"
71
+ "__STimePicker": "___STimePicker_1h8bl_gg_",
72
+ "_disabled": "__disabled_1h8bl_gg_",
73
+ "__SPickerInput": "___SPickerInput_1h8bl_gg_",
74
+ "_placeholder": "__placeholder_1h8bl_gg_",
75
+ "_size_m": "_size_m_1h8bl_gg_",
76
+ "_size_l": "_size_l_1h8bl_gg_",
77
+ "__SPickerFormat": "___SPickerFormat_1h8bl_gg_",
78
+ "_active": "__active_1h8bl_gg_",
79
+ "__SPickerFormatText": "___SPickerFormatText_1h8bl_gg_",
80
+ "_keyboardFocused": "__keyboardFocused_1h8bl_gg_",
81
+ "__STimePickerSeparator": "___STimePickerSeparator_1h8bl_gg_"
78
82
  });
79
83
  var MAP_MERIDIEM = {
80
84
  AM: 'PM',
@@ -201,7 +205,8 @@ var TimePickerRoot = /*#__PURE__*/function (_Component) {
201
205
  var _this$asProps = _this.asProps,
202
206
  is12Hour = _this$asProps.is12Hour,
203
207
  size = _this$asProps.size,
204
- disabled = _this$asProps.disabled;
208
+ disabled = _this$asProps.disabled,
209
+ getI18nText = _this$asProps.getI18nText;
205
210
 
206
211
  var time = _this.valueToTime(_this.value);
207
212
 
@@ -212,7 +217,8 @@ var TimePickerRoot = /*#__PURE__*/function (_Component) {
212
217
  disabled: disabled,
213
218
  $onValueChange: _this.handleValueChange,
214
219
  minutesInputRef: _this.minutesInputRef,
215
- hoursInputRef: _this.hoursInputRef
220
+ hoursInputRef: _this.hoursInputRef,
221
+ _getI18nText: getI18nText
216
222
  };
217
223
  });
218
224
  (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "getHoursProps", _this._getHoursAndMinutesProps);
@@ -305,7 +311,8 @@ var TimePickerRoot = /*#__PURE__*/function (_Component) {
305
311
  size = _this$asProps2.size,
306
312
  disabled = _this$asProps2.disabled,
307
313
  disablePortal = _this$asProps2.disablePortal,
308
- value = _this$asProps2.value;
314
+ value = _this$asProps2.value,
315
+ getI18nText = _this$asProps2.getI18nText;
309
316
  var valueFulfilled = value === null || value === void 0 ? void 0 : value.split(':').every(function (chunk) {
310
317
  return chunk.length > 0;
311
318
  });
@@ -313,7 +320,7 @@ var TimePickerRoot = /*#__PURE__*/function (_Component) {
313
320
  size: size,
314
321
  disabled: disabled,
315
322
  disablePortal: disablePortal
316
- }, (0, _defineProperty2["default"])(_ref4, 'aria-hidden', !valueFulfilled), (0, _defineProperty2["default"])(_ref4, "meridiem", this.meridiem), (0, _defineProperty2["default"])(_ref4, "onClick", this.handleMeridiemClick), _ref4;
323
+ }, (0, _defineProperty2["default"])(_ref4, 'aria-hidden', !valueFulfilled), (0, _defineProperty2["default"])(_ref4, "meridiem", this.meridiem), (0, _defineProperty2["default"])(_ref4, "onClick", this.handleMeridiemClick), (0, _defineProperty2["default"])(_ref4, "getI18nText", getI18nText), _ref4;
317
324
  }
318
325
  }, {
319
326
  key: "render",
@@ -326,8 +333,12 @@ var TimePickerRoot = /*#__PURE__*/function (_Component) {
326
333
  styles = _this$asProps3.styles,
327
334
  Children = _this$asProps3.Children,
328
335
  value = _this$asProps3.value,
329
- is12Hour = _this$asProps3.is12Hour;
330
- var label = value ? "Time input, entered time is ".concat(value, " ").concat(is12Hour ? this.meridiem : '') : "Time input, no time entered";
336
+ is12Hour = _this$asProps3.is12Hour,
337
+ getI18nText = _this$asProps3.getI18nText;
338
+ var label = value ? getI18nText('title', {
339
+ time: value,
340
+ meridiem: is12Hour ? this.meridiem : ''
341
+ }) : getI18nText('titleEmpty');
331
342
  return _ref3 = (0, _core.sstyled)(styles), /*#__PURE__*/_react["default"].createElement(STimePicker, _ref3.cn("STimePicker", _objectSpread({}, (0, _core.assignProps)({
332
343
  "aria-label": label,
333
344
  "aria-valuenow": value || undefined,
@@ -340,12 +351,15 @@ var TimePickerRoot = /*#__PURE__*/function (_Component) {
340
351
 
341
352
  (0, _defineProperty2["default"])(TimePickerRoot, "displayName", 'TimePicker');
342
353
  (0, _defineProperty2["default"])(TimePickerRoot, "style", style);
354
+ (0, _defineProperty2["default"])(TimePickerRoot, "enhance", [(0, _i18nEnhance["default"])(_intergalacticDynamicLocales.localizedMessages)]);
343
355
  (0, _defineProperty2["default"])(TimePickerRoot, "defaultProps", function (_ref5) {
344
356
  var is12Hour = _ref5.is12Hour;
345
357
  return {
346
358
  defaultValue: '',
347
359
  size: 'm',
348
- children: /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(TimePicker.Hours, null), /*#__PURE__*/_react["default"].createElement(TimePicker.Separator, null), /*#__PURE__*/_react["default"].createElement(TimePicker.Minutes, null), is12Hour && /*#__PURE__*/_react["default"].createElement(TimePicker.Format, null))
360
+ children: /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(TimePicker.Hours, null), /*#__PURE__*/_react["default"].createElement(TimePicker.Separator, null), /*#__PURE__*/_react["default"].createElement(TimePicker.Minutes, null), is12Hour && /*#__PURE__*/_react["default"].createElement(TimePicker.Format, null)),
361
+ i18n: _intergalacticDynamicLocales.localizedMessages,
362
+ locale: 'en'
349
363
  };
350
364
  });
351
365
 
@@ -1 +1 @@
1
- {"version":3,"file":"TimePicker.js","names":["MAP_MERIDIEM","AM","PM","MAP_FIELD_TO_TIME","hours","minutes","intOrDefault","value","def","number","Number","parseInt","isNaN","withLeadingZero","String","length","meridiemByHours","formatHoursTo12","nHours","NaN","formatHoursTo24","meridiem","TimePickerRoot","React","createRef","field","event","is12Hour","asProps","time","split","timeToValue","handlers","size","disabled","valueToTime","$onValueChange","handleValueChange","minutesInputRef","hoursInputRef","_getHoursAndMinutesProps","undefined","_lastMeridiem","disablePortal","valueFulfilled","every","chunk","handleMeridiemClick","STimePicker","Input","styles","Children","label","sstyled","Component","style","defaultValue","children","Separator","current","focus","STimePickerSeparator","Box","handlerClick","TimePicker","createComponent","Hours","Minutes","Format"],"sources":["../../src/TimePicker.jsx"],"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 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 hoursInputRef = React.createRef();\n minutesInputRef = React.createRef();\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 _getHoursAndMinutesProps = () => {\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 minutesInputRef: this.minutesInputRef,\n hoursInputRef: this.hoursInputRef,\n };\n };\n\n getHoursProps = this._getHoursAndMinutesProps;\n getMinutesProps = this._getHoursAndMinutesProps;\n\n getSeparatorProps() {\n return {\n disabled: this.asProps.disabled,\n hoursInputRef: this.hoursInputRef,\n };\n }\n\n getFormatProps() {\n const { size, disabled, disablePortal, value } = this.asProps;\n const valueFulfilled = value?.split(':').every((chunk) => chunk.length > 0);\n\n return {\n size,\n disabled,\n disablePortal,\n ['aria-hidden']: !valueFulfilled,\n meridiem: this.meridiem,\n onClick: this.handleMeridiemClick,\n };\n }\n\n render() {\n const STimePicker = Root;\n const { styles, Children, value, is12Hour } = this.asProps;\n const label = value\n ? `Time input, entered time is ${value} ${is12Hour ? this.meridiem : ''}`\n : `Time input, no time entered`;\n\n return sstyled(styles)(\n <STimePicker\n render={Input}\n aria-label={label}\n aria-valuenow={value || undefined}\n tabIndex={0}\n >\n <Children />\n </STimePicker>,\n );\n }\n}\n\nclass Separator extends Component {\n static defaultProps = {\n children: ':',\n };\n\n handlerClick = () => {\n if (this.asProps.hoursInputRef.current) {\n this.asProps.hoursInputRef.current?.focus();\n }\n };\n\n render() {\n const STimePickerSeparator = Root;\n return <STimePickerSeparator render={Box} onClick={this.handlerClick} aria-hidden=\"true\" />;\n }\n}\n\nconst TimePicker = createComponent(TimePickerRoot, {\n Hours,\n Minutes,\n Separator,\n Format,\n});\n\nexport default TimePicker;\n"],"mappings":"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"}
1
+ {"version":3,"file":"TimePicker.js","names":["MAP_MERIDIEM","AM","PM","MAP_FIELD_TO_TIME","hours","minutes","intOrDefault","value","def","number","Number","parseInt","isNaN","withLeadingZero","String","length","meridiemByHours","formatHoursTo12","nHours","NaN","formatHoursTo24","meridiem","TimePickerRoot","React","createRef","field","event","is12Hour","asProps","time","split","timeToValue","handlers","size","disabled","getI18nText","valueToTime","$onValueChange","handleValueChange","minutesInputRef","hoursInputRef","_getI18nText","_getHoursAndMinutesProps","undefined","_lastMeridiem","disablePortal","valueFulfilled","every","chunk","handleMeridiemClick","STimePicker","Input","styles","Children","label","sstyled","Component","style","i18nEnhance","localizedMessages","defaultValue","children","i18n","locale","Separator","current","focus","STimePickerSeparator","Box","handlerClick","TimePicker","createComponent","Hours","Minutes","Format"],"sources":["../../src/TimePicker.jsx"],"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';\nimport { localizedMessages } from './translations/__intergalactic-dynamic-locales';\nimport i18nEnhance from '@semcore/utils/lib/enhances/i18nEnhance';\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 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 enhance = [i18nEnhance(localizedMessages)];\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 i18n: localizedMessages,\n locale: 'en',\n });\n\n hoursInputRef = React.createRef();\n minutesInputRef = React.createRef();\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 _getHoursAndMinutesProps = () => {\n const { is12Hour, size, disabled, getI18nText } = 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 minutesInputRef: this.minutesInputRef,\n hoursInputRef: this.hoursInputRef,\n _getI18nText: getI18nText,\n };\n };\n\n getHoursProps = this._getHoursAndMinutesProps;\n getMinutesProps = this._getHoursAndMinutesProps;\n\n getSeparatorProps() {\n return {\n disabled: this.asProps.disabled,\n hoursInputRef: this.hoursInputRef,\n };\n }\n\n getFormatProps() {\n const { size, disabled, disablePortal, value, getI18nText } = this.asProps;\n const valueFulfilled = value?.split(':').every((chunk) => chunk.length > 0);\n\n return {\n size,\n disabled,\n disablePortal,\n ['aria-hidden']: !valueFulfilled,\n meridiem: this.meridiem,\n onClick: this.handleMeridiemClick,\n getI18nText,\n };\n }\n\n render() {\n const STimePicker = Root;\n const { styles, Children, value, is12Hour, getI18nText } = this.asProps;\n const label = value\n ? getI18nText('title', { time: value, meridiem: is12Hour ? this.meridiem : '' })\n : getI18nText('titleEmpty');\n\n return sstyled(styles)(\n <STimePicker\n render={Input}\n aria-label={label}\n aria-valuenow={value || undefined}\n tabIndex={0}\n >\n <Children />\n </STimePicker>,\n );\n }\n}\n\nclass Separator extends Component {\n static defaultProps = {\n children: ':',\n };\n\n handlerClick = () => {\n if (this.asProps.hoursInputRef.current) {\n this.asProps.hoursInputRef.current?.focus();\n }\n };\n\n render() {\n const STimePickerSeparator = Root;\n return <STimePickerSeparator render={Box} onClick={this.handlerClick} aria-hidden=\"true\" />;\n }\n}\n\nconst TimePicker = createComponent(TimePickerRoot, {\n Hours,\n Minutes,\n Separator,\n Format,\n});\n\nexport default TimePicker;\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.js","names":[],"sources":["../../src/index.d.ts"],"sourcesContent":["import React from 'react';\nimport { CProps, PropGetterFn, ReturnEl } from '@semcore/core';\nimport { IInputProps, IInputValueProps } from '@semcore/input';\nimport { Box, IBoxProps } from '@semcore/flex-box';\nimport { IKeyboardFocusProps } from '@semcore/utils/lib/enhances/keyboardFocusEnhance';\n\nexport interface ITimePickerProps extends Omit<IInputProps, 'size'> {\n /** Time in the hh:mm format */\n value?: string;\n /** Default value if `value` property is not provided */\n defaultValue?: string;\n /** The event responses upon time changing */\n onChange?: (time: string, event?: React.SyntheticEvent) => void;\n /** In charge of the component blocking */\n disabled?: boolean;\n /** Control size\n * @default m */\n size?: 'm' | 'l';\n /** 12-hour time format */\n is12Hour?: boolean;\n}\n\nexport interface ITimePickerItemProps extends IInputValueProps {\n /** Step for changing of the values in the dropdown list */\n step?: number;\n}\n\nexport interface ITimePickerFormatProps extends IBoxProps, IKeyboardFocusProps {}\n\nexport interface ITimePickerContext {\n getHoursProps: PropGetterFn;\n getFormatProps: PropGetterFn;\n getMinutesProps: PropGetterFn;\n}\n\nexport interface ITimePickerHandlers {\n value: (value: string) => void;\n}\n\ndeclare const TimePicker: (<T>(\n props: CProps<ITimePickerProps & T, ITimePickerContext, ITimePickerHandlers>,\n) => ReturnEl) & {\n Hours: <T>(props: ITimePickerItemProps & T) => ReturnEl;\n Minutes: <T>(props: ITimePickerItemProps & T) => ReturnEl;\n Separator: typeof Box;\n Format: <T>(props: ITimePickerFormatProps & T) => ReturnEl;\n};\n\nexport default TimePicker;\n"],"mappings":""}
1
+ {"version":3,"file":"index.d.js","names":[],"sources":["../../src/index.d.ts"],"sourcesContent":["import React from 'react';\nimport { CProps, PropGetterFn, ReturnEl } from '@semcore/core';\nimport { IInputProps, IInputValueProps } from '@semcore/input';\nimport { Box, IBoxProps } from '@semcore/flex-box';\nimport { IKeyboardFocusProps } from '@semcore/utils/lib/enhances/keyboardFocusEnhance';\n\nexport interface ITimePickerProps extends Omit<IInputProps, 'size'> {\n /** Time in the hh:mm format */\n value?: string;\n /** Default value if `value` property is not provided */\n defaultValue?: string;\n /** The event responses upon time changing */\n onChange?: (time: string, event?: React.SyntheticEvent) => void;\n /** In charge of the component blocking */\n disabled?: boolean;\n /** Control size\n * @default m */\n size?: 'm' | 'l';\n /** 12-hour time format */\n is12Hour?: boolean;\n locale?: string;\n}\n\nexport interface ITimePickerItemProps extends IInputValueProps {\n /** Step for changing of the values in the dropdown list */\n step?: number;\n}\n\nexport interface ITimePickerFormatProps extends IBoxProps, IKeyboardFocusProps {}\n\nexport interface ITimePickerContext {\n getHoursProps: PropGetterFn;\n getFormatProps: PropGetterFn;\n getMinutesProps: PropGetterFn;\n}\n\nexport interface ITimePickerHandlers {\n value: (value: string) => void;\n}\n\ndeclare const TimePicker: (<T>(\n props: CProps<ITimePickerProps & T, ITimePickerContext, ITimePickerHandlers>,\n) => ReturnEl) & {\n Hours: <T>(props: ITimePickerItemProps & T) => ReturnEl;\n Minutes: <T>(props: ITimePickerItemProps & T) => ReturnEl;\n Separator: typeof Box;\n Format: <T>(props: ITimePickerFormatProps & T) => ReturnEl;\n};\n\nexport default TimePicker;\n"],"mappings":""}
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.localizedMessages = void 0;
9
+
10
+ var _de = _interopRequireDefault(require("./de.json"));
11
+
12
+ var _en = _interopRequireDefault(require("./en.json"));
13
+
14
+ var _es = _interopRequireDefault(require("./es.json"));
15
+
16
+ var _fr = _interopRequireDefault(require("./fr.json"));
17
+
18
+ var _it = _interopRequireDefault(require("./it.json"));
19
+
20
+ var _ja = _interopRequireDefault(require("./ja.json"));
21
+
22
+ var _ko = _interopRequireDefault(require("./ko.json"));
23
+
24
+ var _pt = _interopRequireDefault(require("./pt.json"));
25
+
26
+ var _tr = _interopRequireDefault(require("./tr.json"));
27
+
28
+ var _vi = _interopRequireDefault(require("./vi.json"));
29
+
30
+ var _zh = _interopRequireDefault(require("./zh.json"));
31
+
32
+ var localizedMessages = {
33
+ de: _de["default"],
34
+ en: _en["default"],
35
+ es: _es["default"],
36
+ fr: _fr["default"],
37
+ it: _it["default"],
38
+ ja: _ja["default"],
39
+ ko: _ko["default"],
40
+ pt: _pt["default"],
41
+ tr: _tr["default"],
42
+ vi: _vi["default"],
43
+ zh: _zh["default"]
44
+ };
45
+ exports.localizedMessages = localizedMessages;
46
+ //# sourceMappingURL=__intergalactic-dynamic-locales.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"__intergalactic-dynamic-locales.js","names":["localizedMessages","de","en","es","fr","it","ja","ko","pt","tr","vi","zh"],"sources":["../../../src/translations/__intergalactic-dynamic-locales.ts"],"sourcesContent":["import de from './de.json';\nimport en from './en.json';\nimport es from './es.json';\nimport fr from './fr.json';\nimport it from './it.json';\nimport ja from './ja.json';\nimport ko from './ko.json';\nimport pt from './pt.json';\nimport tr from './tr.json';\nimport vi from './vi.json';\nimport zh from './zh.json';\n\nexport const localizedMessages = {\n de,\n en,\n es,\n fr,\n it,\n ja,\n ko,\n pt,\n tr,\n vi,\n zh,\n};\n"],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAEO,IAAMA,iBAAiB,GAAG;EAC/BC,EAAE,EAAFA,cAD+B;EAE/BC,EAAE,EAAFA,cAF+B;EAG/BC,EAAE,EAAFA,cAH+B;EAI/BC,EAAE,EAAFA,cAJ+B;EAK/BC,EAAE,EAAFA,cAL+B;EAM/BC,EAAE,EAAFA,cAN+B;EAO/BC,EAAE,EAAFA,cAP+B;EAQ/BC,EAAE,EAAFA,cAR+B;EAS/BC,EAAE,EAAFA,cAT+B;EAU/BC,EAAE,EAAFA,cAV+B;EAW/BC,EAAE,EAAFA;AAX+B,CAA1B"}
@@ -0,0 +1,7 @@
1
+ {
2
+ "title": "Zeiteingabe, eingegebene Zeit ist {time} {meridiem}",
3
+ "titleEmpty": "Zeiteingabe, keine Zeit eingegeben",
4
+ "hours": "Eingabefeld Stunden",
5
+ "minutes": "Eingabefeld Minuten",
6
+ "format": "Zeitformat {meridiem}"
7
+ }
@@ -0,0 +1,7 @@
1
+ {
2
+ "title": "Time input, entered time is {time} {meridiem}",
3
+ "titleEmpty": "Time input, no time entered",
4
+ "hours": "Hours input field",
5
+ "minutes": "Minutes input field",
6
+ "format": "Time format {meridiem}"
7
+ }
@@ -0,0 +1,7 @@
1
+ {
2
+ "title": "Introducción de la hora, la hora introducida es {time} {meridiem}",
3
+ "titleEmpty": "Introducción de la hora, no se ha introducido la hora",
4
+ "hours": "Campo de entrada de horas",
5
+ "minutes": "Campo de input de minutos",
6
+ "format": "Formato de tiempo {meridiem}"
7
+ }
@@ -0,0 +1,7 @@
1
+ {
2
+ "title": "Saisie de l’heure, l’heure saisie est {time} {meridiem}",
3
+ "titleEmpty": "Saisie de l’heure, aucune heure n’a été saisie",
4
+ "hours": "Champ de saisie des heures",
5
+ "minutes": "Champ de saisie des minutes",
6
+ "format": "Format de l’heure {meridiem}"
7
+ }
@@ -0,0 +1,7 @@
1
+ {
2
+ "title": "Input dell'orario, l'orario inserito è {time} {meridiem}",
3
+ "titleEmpty": "Input dell'orario, nessun orario inserito",
4
+ "hours": "Campo input ore",
5
+ "minutes": "Campo input minuti",
6
+ "format": "Formato orario {meridiem}"
7
+ }
@@ -0,0 +1,7 @@
1
+ {
2
+ "title": "時刻入力、入力された時刻は{time} {meridiem} です",
3
+ "titleEmpty": "時刻入力、時刻は入力されていません",
4
+ "hours": "時間入力フィールド",
5
+ "minutes": "分入力フィールド",
6
+ "format": "時刻フォーマット{meridiem}"
7
+ }
@@ -0,0 +1,7 @@
1
+ {
2
+ "title": "시간 입력값, 입력된 시간은 {time} {meridiem}",
3
+ "titleEmpty": "시간 입력값, 입력된 시간 없음",
4
+ "hours": "시간 입력란",
5
+ "minutes": "분 입력란",
6
+ "format": "시간 형식 {meridiem}"
7
+ }
@@ -0,0 +1,7 @@
1
+ {
2
+ "title": "Entrada de hora – a hora informada é {time} {meridiem}",
3
+ "titleEmpty": "Entrada de hora – hora não foi informada",
4
+ "hours": "Campo de entrada de horas",
5
+ "minutes": "Campo de entrada de minutos",
6
+ "format": "Formato de hora {meridiem}"
7
+ }
@@ -0,0 +1,7 @@
1
+ {
2
+ "title": "Saat girişi, girilen saat {time} {meridiem}",
3
+ "titleEmpty": "Saat girişi, saat girilmedi",
4
+ "hours": "Saat giriş alanı",
5
+ "minutes": "Dakika giriş alanı",
6
+ "format": "Saat formatı {meridiem}"
7
+ }
@@ -0,0 +1,7 @@
1
+ {
2
+ "title": "Nhập thời gian, thời gian đã nhập là {time} {meridiem}",
3
+ "titleEmpty": "Nhập thời gian, không có thời gian đã nhập",
4
+ "hours": "Trường nhập số giờ",
5
+ "minutes": "Trường nhập số phút",
6
+ "format": "Định dạng thời gian {meridiem}"
7
+ }
@@ -0,0 +1,7 @@
1
+ {
2
+ "title": "时间输入,输入的时间是 {time} {meridiem}",
3
+ "titleEmpty": "时间输入,未输入时间",
4
+ "hours": "小时输入字段",
5
+ "minutes": "分钟输入字段",
6
+ "format": "时间格式 {meridiem}"
7
+ }
@@ -40,9 +40,12 @@ var TimePickerFormat = /*#__PURE__*/function (_Component) {
40
40
  var _this$asProps = this.asProps,
41
41
  Children = _this$asProps.Children,
42
42
  meridiem = _this$asProps.meridiem,
43
- styles = _this$asProps.styles;
43
+ styles = _this$asProps.styles,
44
+ getI18nText = _this$asProps.getI18nText;
44
45
  var SPickerFormatText = 'span';
45
- var label = "Time format ".concat(meridiem);
46
+ var label = getI18nText('format', {
47
+ meridiem: meridiem
48
+ });
46
49
  return _ref2 = sstyled(styles), /*#__PURE__*/React.createElement(SPickerFormat, _ref2.cn("SPickerFormat", _objectSpread({}, _assignProps({
47
50
  "type": "button",
48
51
  "tag": "button",
@@ -1 +1 @@
1
- {"version":3,"file":"PickerFormat.js","names":["React","Component","sstyled","Root","Box","keyboardFocusEnhance","TimePickerFormat","SPickerFormat","asProps","Children","meridiem","styles","SPickerFormatText","label","origin"],"sources":["../../src/PickerFormat.jsx"],"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 const label = `Time format ${meridiem}`;\n\n return sstyled(styles)(\n <SPickerFormat render={Box} type=\"button\" tag=\"button\" role=\"switch\" aria-label={label}>\n {Children.origin ? <Children /> : <SPickerFormatText>{meridiem}</SPickerFormatText>}\n </SPickerFormat>,\n );\n }\n}\n\nexport default TimePickerFormat;\n"],"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;MAAA;MAAA;;MACP,IAAMC,aAAa,GAOMH,GAPzB;MACA,oBAAuC,KAAKI,OAA5C;MAAA,IAAQC,QAAR,iBAAQA,QAAR;MAAA,IAAkBC,QAAlB,iBAAkBA,QAAlB;MAAA,IAA4BC,MAA5B,iBAA4BA,MAA5B;MACA,IAAMC,iBAAiB,GAAG,MAA1B;MAEA,IAAMC,KAAK,yBAAkBH,QAAlB,CAAX;MAEA,eAAOR,OAAO,CAACS,MAAD,CAAd,eACE,oBAAC,aAAD;QAAA,QAAiC,QAAjC;QAAA,OAA8C,QAA9C;QAAA,QAA4D,QAA5D;QAAA,cAAiFE;MAAjF,YACGJ,QAAQ,CAACK,MAAT,gBAAkB,oBAAC,QAAD,2BAAlB,gBAAiC,oBAAC,iBAAD,qCAAoBJ,QAApB,CADpC,CADF;IAKD;;;;EAd4BT,S;;gBAAzBK,gB,aACa,CAACD,oBAAoB,EAArB,C;;AAgBnB,eAAeC,gBAAf"}
1
+ {"version":3,"file":"PickerFormat.js","names":["React","Component","sstyled","Root","Box","keyboardFocusEnhance","TimePickerFormat","SPickerFormat","asProps","Children","meridiem","styles","getI18nText","SPickerFormatText","label","origin"],"sources":["../../src/PickerFormat.jsx"],"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, getI18nText } = this.asProps;\n const SPickerFormatText = 'span';\n\n const label = getI18nText('format', { meridiem });\n\n return sstyled(styles)(\n <SPickerFormat render={Box} type=\"button\" tag=\"button\" role=\"switch\" aria-label={label}>\n {Children.origin ? <Children /> : <SPickerFormatText>{meridiem}</SPickerFormatText>}\n </SPickerFormat>,\n );\n }\n}\n\nexport default TimePickerFormat;\n"],"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;MAAA;MAAA;;MACP,IAAMC,aAAa,GAOMH,GAPzB;MACA,oBAAoD,KAAKI,OAAzD;MAAA,IAAQC,QAAR,iBAAQA,QAAR;MAAA,IAAkBC,QAAlB,iBAAkBA,QAAlB;MAAA,IAA4BC,MAA5B,iBAA4BA,MAA5B;MAAA,IAAoCC,WAApC,iBAAoCA,WAApC;MACA,IAAMC,iBAAiB,GAAG,MAA1B;MAEA,IAAMC,KAAK,GAAGF,WAAW,CAAC,QAAD,EAAW;QAAEF,QAAQ,EAARA;MAAF,CAAX,CAAzB;MAEA,eAAOR,OAAO,CAACS,MAAD,CAAd,eACE,oBAAC,aAAD;QAAA,QAAiC,QAAjC;QAAA,OAA8C,QAA9C;QAAA,QAA4D,QAA5D;QAAA,cAAiFG;MAAjF,YACGL,QAAQ,CAACM,MAAT,gBAAkB,oBAAC,QAAD,2BAAlB,gBAAiC,oBAAC,iBAAD,qCAAoBL,QAApB,CADpC,CADF;IAKD;;;;EAd4BT,S;;gBAAzBK,gB,aACa,CAACD,oBAAoB,EAArB,C;;AAgBnB,eAAeC,gBAAf"}
@@ -108,6 +108,13 @@ var ItemPicker = /*#__PURE__*/function (_Component) {
108
108
  });
109
109
  });
110
110
 
111
+ _defineProperty(_assertThisInitialized(_this), "getAriaLabel", function () {
112
+ var getI18nText = _this.asProps._getI18nText;
113
+ if (_this.field === 'hours') return getI18nText('hours');
114
+ if (_this.field === 'minutes') return getI18nText('minutes');
115
+ return undefined;
116
+ });
117
+
111
118
  return _this;
112
119
  }
113
120
 
@@ -179,7 +186,7 @@ var ItemPicker = /*#__PURE__*/function (_Component) {
179
186
  "disabled": disabled,
180
187
  "neighborLocation": false,
181
188
  "value": value,
182
- "aria-label": "".concat(this.field, " field"),
189
+ "aria-label": this.getAriaLabel(),
183
190
  "__excludeProps": ['aria-haspopup', 'aria-controls', 'aria-flowto', 'aria-expanded', 'aria-autocomplete', 'role'],
184
191
  "onChange": this.handleChange,
185
192
  "onBlur": this.handleBlur,
@@ -1 +1 @@
1
- {"version":3,"file":"PickerInput.js","names":["React","Input","Select","intOrDefault","withLeadingZero","Component","sstyled","Root","callAllEventHandlers","MAP_FIELD_TO_TIME","hours","minutes","MAP_SIZE_SELECT","m","l","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","dispatchOnChange","event","asProps","$onValueChange","field","state","parseValueWithMinMax","SPickerInput","Trigger","styles","onSelect","time","size","disabled","onVisibleChange","other","timeValue","handleSelect","handleVisibleChange","Value","inputRef","handleChange","handleBlur","handleKeyDown","placeholder","Hours","currentTarget","keyCode","selectionStart","selectionEnd","preventDefault","nextInput","is12Hour","minutesInputRef","current","focus","prevProps","prevState","Minutes","prevFocus","hoursInputRef"],"sources":["../../src/PickerInput.jsx"],"sourcesContent":["import React from 'react';\nimport Input from '@semcore/input';\nimport Select from '@semcore/select';\nimport { intOrDefault, 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};\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 inputRef = 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 /* 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 { styles, step, onSelect, time, size, disabled, onVisibleChange, ...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 render={Select.Trigger}\n tag={Input.Value}\n ref={this.inputRef}\n size={size}\n disabled={disabled}\n neighborLocation={false}\n value={value}\n aria-label={`${this.field} field`}\n __excludeProps={[\n 'aria-haspopup',\n 'aria-controls',\n 'aria-flowto',\n 'aria-expanded',\n 'aria-autocomplete',\n 'role',\n ]}\n onChange={this.handleChange}\n onBlur={this.handleBlur}\n onKeyDown={this.handleKeyDown}\n />\n <Select.Menu aria-hidden=\"true\" hMax={180}>\n {getOptions(min, max, step)}\n </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.asProps.minutesInputRef.current) {\n this.setState({ visible: false });\n this.asProps.minutesInputRef.current.focus();\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.asProps.hoursInputRef.current) {\n this.setState({ visible: false });\n this.asProps.hoursInputRef.current.focus();\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"],"mappings":"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"}
1
+ {"version":3,"file":"PickerInput.js","names":["React","Input","Select","intOrDefault","withLeadingZero","Component","sstyled","Root","callAllEventHandlers","MAP_FIELD_TO_TIME","hours","minutes","MAP_SIZE_SELECT","m","l","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","dispatchOnChange","getI18nText","asProps","_getI18nText","field","event","$onValueChange","state","parseValueWithMinMax","SPickerInput","Trigger","styles","onSelect","time","size","disabled","onVisibleChange","other","timeValue","handleSelect","handleVisibleChange","Value","inputRef","getAriaLabel","handleChange","handleBlur","handleKeyDown","placeholder","Hours","currentTarget","keyCode","selectionStart","selectionEnd","preventDefault","nextInput","is12Hour","minutesInputRef","current","focus","prevProps","prevState","Minutes","prevFocus","hoursInputRef"],"sources":["../../src/PickerInput.jsx"],"sourcesContent":["import React from 'react';\nimport Input from '@semcore/input';\nimport Select from '@semcore/select';\nimport { intOrDefault, 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};\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 inputRef = 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 /* rewrite method */\n handleKeyDown = () => {};\n\n handleSelect = (value, e) => {\n this.dispatchOnChange(value, e);\n };\n\n handleVisibleChange = (visible) => this.setState({ visible });\n\n getAriaLabel = () => {\n const { _getI18nText: getI18nText } = this.asProps;\n if (this.field === 'hours') return getI18nText('hours');\n if (this.field === 'minutes') return getI18nText('minutes');\n return undefined;\n };\n\n render() {\n const SPickerInput = Root;\n const { styles, step, onSelect, time, size, disabled, onVisibleChange, ...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 render={Select.Trigger}\n tag={Input.Value}\n ref={this.inputRef}\n size={size}\n disabled={disabled}\n neighborLocation={false}\n value={value}\n aria-label={this.getAriaLabel()}\n __excludeProps={[\n 'aria-haspopup',\n 'aria-controls',\n 'aria-flowto',\n 'aria-expanded',\n 'aria-autocomplete',\n 'role',\n ]}\n onChange={this.handleChange}\n onBlur={this.handleBlur}\n onKeyDown={this.handleKeyDown}\n />\n <Select.Menu aria-hidden=\"true\" hMax={180}>\n {getOptions(min, max, step)}\n </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.asProps.minutesInputRef.current) {\n this.setState({ visible: false });\n this.asProps.minutesInputRef.current.focus();\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.asProps.hoursInputRef.current) {\n this.setState({ visible: false });\n this.asProps.hoursInputRef.current.focus();\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"],"mappings":"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"}
@@ -24,28 +24,30 @@ import Input from '@semcore/input';
24
24
  import { Box } from '@semcore/flex-box';
25
25
  import { Hours, Minutes } from './PickerInput';
26
26
  import Format from './PickerFormat';
27
+ import { localizedMessages } from './translations/__intergalactic-dynamic-locales';
28
+ import i18nEnhance from '@semcore/utils/lib/enhances/i18nEnhance';
27
29
 
28
30
  /*__reshadow-styles__:"./style/time-picker.shadow.css"*/
29
31
  var style = (
30
32
  /*__reshadow_css_start__*/
31
33
  _sstyled.insert(
32
34
  /*__inner_css_start__*/
33
- ".___STimePicker_9vxve_gg_{position:relative;width:auto}.___STimePicker_9vxve_gg_.__disabled_9vxve_gg_{color:var(--intergalactic-text-secondary,#6c6e79);cursor:default}.___SPickerInput_9vxve_gg_{box-sizing:content-box;text-align:center;z-index:1}.___SPickerInput_9vxve_gg_.__placeholder_9vxve_gg_{text-overflow:clip}.___SPickerInput_9vxve_gg_._size_m_9vxve_gg_{width:19px}.___SPickerInput_9vxve_gg_._size_l_9vxve_gg_{width:21px}.___SPickerFormat_9vxve_gg_{flex-shrink:0;position:relative;display:inline-flex;padding:0;white-space:nowrap;font-family:inherit;font-weight:var(--intergalactic-medium,500);line-height:normal;text-decoration:none;align-items:center;border:1px solid var(--intergalactic-border-primary,#c4c7cf);border-radius:0 var(--intergalactic-rounded-medium,6px) var(--intergalactic-rounded-medium,6px) 0;outline:0;box-shadow:none;cursor:pointer;box-sizing:border-box;overflow:visible;-webkit-user-select:none;-moz-user-select:none;user-select:none;touch-action:manipulation;-webkit-tap-highlight-color:transparent;color:var(--intergalactic-text-secondary,#6c6e79);background-color:var(--intergalactic-bg-secondary-neutral,#f4f5f9)}.___SPickerFormat_9vxve_gg_:hover{color:var(--intergalactic-text-secondary,#6c6e79);background-color:var(--intergalactic-bg-secondary-neutral-hover,#e0e1e9)}.___SPickerFormat_9vxve_gg_:active,.___SPickerFormat_9vxve_gg_.__active_9vxve_gg_{color:var(--intergalactic-text-secondary,#6c6e79);background-color:var(--intergalactic-bg-secondary-neutral-active,#c4c7cf)}.___SPickerFormat_9vxve_gg_._size_m_9vxve_gg_{height:var(--intergalactic-form-control-m,28px);font-size:var(--intergalactic-fs-200,14px);margin:0 -1px 0 0}.___SPickerFormat_9vxve_gg_._size_m_9vxve_gg_ .___SPickerFormatText_9vxve_gg_{margin:0 var(--intergalactic-spacing-2x,8px)}.___SPickerFormat_9vxve_gg_._size_l_9vxve_gg_{height:var(--intergalactic-form-control-l,40px);font-size:var(--intergalactic-fs-300,16px);margin:0 calc(var(--intergalactic-spacing-1x, 4px)*-1) 0 0}.___SPickerFormat_9vxve_gg_._size_l_9vxve_gg_ .___SPickerFormatText_9vxve_gg_{margin:0 var(--intergalactic-spacing-3x,12px)}.___SPickerFormat_9vxve_gg_.__disabled_9vxve_gg_{opacity:var(--intergalactic-disabled-opacity,.3);cursor:default;pointer-events:none;border-color:transparent transparent transparent var(--intergalactic-border-primary,#c4c7cf)}.___SPickerFormat_9vxve_gg_.__keyboardFocused_9vxve_gg_{box-shadow:var(--intergalactic-keyboard-focus,0 0 0 3px rgba(0,143,248,.3))}.___STimePickerSeparator_9vxve_gg_.__disabled_9vxve_gg_{opacity:var(--intergalactic-disabled-opacity,.3);pointer-events:none}"
35
+ ".___STimePicker_1h8bl_gg_{position:relative;width:auto}.___STimePicker_1h8bl_gg_.__disabled_1h8bl_gg_{color:var(--intergalactic-text-secondary,#6c6e79);cursor:default}.___SPickerInput_1h8bl_gg_{box-sizing:content-box;text-align:center;z-index:1}.___SPickerInput_1h8bl_gg_.__placeholder_1h8bl_gg_{text-overflow:clip}.___SPickerInput_1h8bl_gg_._size_m_1h8bl_gg_{width:19px}.___SPickerInput_1h8bl_gg_._size_l_1h8bl_gg_{width:21px}.___SPickerFormat_1h8bl_gg_{flex-shrink:0;position:relative;display:inline-flex;padding:0;white-space:nowrap;font-family:inherit;font-weight:var(--intergalactic-medium,500);line-height:normal;text-decoration:none;align-items:center;border:1px solid var(--intergalactic-border-primary,#c4c7cf);border-radius:0 var(--intergalactic-rounded-medium,6px) var(--intergalactic-rounded-medium,6px) 0;outline:0;box-shadow:none;cursor:pointer;box-sizing:border-box;overflow:visible;-webkit-user-select:none;-moz-user-select:none;user-select:none;touch-action:manipulation;-webkit-tap-highlight-color:transparent;color:var(--intergalactic-text-secondary,#6c6e79);background-color:var(--intergalactic-bg-secondary-neutral,#f4f5f9)}.___SPickerFormat_1h8bl_gg_:hover{color:var(--intergalactic-text-secondary,#6c6e79);background-color:var(--intergalactic-bg-secondary-neutral-hover,#e0e1e9)}.___SPickerFormat_1h8bl_gg_:active,.___SPickerFormat_1h8bl_gg_.__active_1h8bl_gg_{color:var(--intergalactic-text-secondary,#6c6e79);background-color:var(--intergalactic-bg-secondary-neutral-active,#c4c7cf)}.___SPickerFormat_1h8bl_gg_._size_m_1h8bl_gg_{height:var(--intergalactic-form-control-m,28px);font-size:var(--intergalactic-fs-200,14px);margin:0 -1px 0 0}.___SPickerFormat_1h8bl_gg_._size_m_1h8bl_gg_ .___SPickerFormatText_1h8bl_gg_{margin:0 var(--intergalactic-spacing-2x,8px)}.___SPickerFormat_1h8bl_gg_._size_l_1h8bl_gg_{height:var(--intergalactic-form-control-l,40px);font-size:var(--intergalactic-fs-300,16px);margin:0 calc(var(--intergalactic-spacing-1x, 4px)*-1) 0 0}.___SPickerFormat_1h8bl_gg_._size_l_1h8bl_gg_ .___SPickerFormatText_1h8bl_gg_{margin:0 var(--intergalactic-spacing-3x,12px)}.___SPickerFormat_1h8bl_gg_.__disabled_1h8bl_gg_{opacity:var(--intergalactic-disabled-opacity,.3);cursor:default;pointer-events:none;border-color:transparent transparent transparent var(--intergalactic-border-primary,#c4c7cf)}.___SPickerFormat_1h8bl_gg_.__keyboardFocused_1h8bl_gg_{box-shadow:var(--intergalactic-keyboard-focus,0 0 0 3px rgba(0,143,248,.3))}.___STimePickerSeparator_1h8bl_gg_.__disabled_1h8bl_gg_{opacity:var(--intergalactic-disabled-opacity,.3);pointer-events:none}"
34
36
  /*__inner_css_end__*/
35
- , "9vxve_gg_")
37
+ , "1h8bl_gg_")
36
38
  /*__reshadow_css_end__*/
37
39
  , {
38
- "__STimePicker": "___STimePicker_9vxve_gg_",
39
- "_disabled": "__disabled_9vxve_gg_",
40
- "__SPickerInput": "___SPickerInput_9vxve_gg_",
41
- "_placeholder": "__placeholder_9vxve_gg_",
42
- "_size_m": "_size_m_9vxve_gg_",
43
- "_size_l": "_size_l_9vxve_gg_",
44
- "__SPickerFormat": "___SPickerFormat_9vxve_gg_",
45
- "_active": "__active_9vxve_gg_",
46
- "__SPickerFormatText": "___SPickerFormatText_9vxve_gg_",
47
- "_keyboardFocused": "__keyboardFocused_9vxve_gg_",
48
- "__STimePickerSeparator": "___STimePickerSeparator_9vxve_gg_"
40
+ "__STimePicker": "___STimePicker_1h8bl_gg_",
41
+ "_disabled": "__disabled_1h8bl_gg_",
42
+ "__SPickerInput": "___SPickerInput_1h8bl_gg_",
43
+ "_placeholder": "__placeholder_1h8bl_gg_",
44
+ "_size_m": "_size_m_1h8bl_gg_",
45
+ "_size_l": "_size_l_1h8bl_gg_",
46
+ "__SPickerFormat": "___SPickerFormat_1h8bl_gg_",
47
+ "_active": "__active_1h8bl_gg_",
48
+ "__SPickerFormatText": "___SPickerFormatText_1h8bl_gg_",
49
+ "_keyboardFocused": "__keyboardFocused_1h8bl_gg_",
50
+ "__STimePickerSeparator": "___STimePickerSeparator_1h8bl_gg_"
49
51
  });
50
52
  var MAP_MERIDIEM = {
51
53
  AM: 'PM',
@@ -173,7 +175,8 @@ var TimePickerRoot = /*#__PURE__*/function (_Component) {
173
175
  var _this$asProps = _this.asProps,
174
176
  is12Hour = _this$asProps.is12Hour,
175
177
  size = _this$asProps.size,
176
- disabled = _this$asProps.disabled;
178
+ disabled = _this$asProps.disabled,
179
+ getI18nText = _this$asProps.getI18nText;
177
180
 
178
181
  var time = _this.valueToTime(_this.value);
179
182
 
@@ -184,7 +187,8 @@ var TimePickerRoot = /*#__PURE__*/function (_Component) {
184
187
  disabled: disabled,
185
188
  $onValueChange: _this.handleValueChange,
186
189
  minutesInputRef: _this.minutesInputRef,
187
- hoursInputRef: _this.hoursInputRef
190
+ hoursInputRef: _this.hoursInputRef,
191
+ _getI18nText: getI18nText
188
192
  };
189
193
  });
190
194
 
@@ -280,7 +284,8 @@ var TimePickerRoot = /*#__PURE__*/function (_Component) {
280
284
  size = _this$asProps2.size,
281
285
  disabled = _this$asProps2.disabled,
282
286
  disablePortal = _this$asProps2.disablePortal,
283
- value = _this$asProps2.value;
287
+ value = _this$asProps2.value,
288
+ getI18nText = _this$asProps2.getI18nText;
284
289
  var valueFulfilled = value === null || value === void 0 ? void 0 : value.split(':').every(function (chunk) {
285
290
  return chunk.length > 0;
286
291
  });
@@ -288,7 +293,7 @@ var TimePickerRoot = /*#__PURE__*/function (_Component) {
288
293
  size: size,
289
294
  disabled: disabled,
290
295
  disablePortal: disablePortal
291
- }, _defineProperty(_ref4, 'aria-hidden', !valueFulfilled), _defineProperty(_ref4, "meridiem", this.meridiem), _defineProperty(_ref4, "onClick", this.handleMeridiemClick), _ref4;
296
+ }, _defineProperty(_ref4, 'aria-hidden', !valueFulfilled), _defineProperty(_ref4, "meridiem", this.meridiem), _defineProperty(_ref4, "onClick", this.handleMeridiemClick), _defineProperty(_ref4, "getI18nText", getI18nText), _ref4;
292
297
  }
293
298
  }, {
294
299
  key: "render",
@@ -301,8 +306,12 @@ var TimePickerRoot = /*#__PURE__*/function (_Component) {
301
306
  styles = _this$asProps3.styles,
302
307
  Children = _this$asProps3.Children,
303
308
  value = _this$asProps3.value,
304
- is12Hour = _this$asProps3.is12Hour;
305
- var label = value ? "Time input, entered time is ".concat(value, " ").concat(is12Hour ? this.meridiem : '') : "Time input, no time entered";
309
+ is12Hour = _this$asProps3.is12Hour,
310
+ getI18nText = _this$asProps3.getI18nText;
311
+ var label = value ? getI18nText('title', {
312
+ time: value,
313
+ meridiem: is12Hour ? this.meridiem : ''
314
+ }) : getI18nText('titleEmpty');
306
315
  return _ref3 = sstyled(styles), /*#__PURE__*/React.createElement(STimePicker, _ref3.cn("STimePicker", _objectSpread({}, _assignProps({
307
316
  "aria-label": label,
308
317
  "aria-valuenow": value || undefined,
@@ -318,12 +327,16 @@ _defineProperty(TimePickerRoot, "displayName", 'TimePicker');
318
327
 
319
328
  _defineProperty(TimePickerRoot, "style", style);
320
329
 
330
+ _defineProperty(TimePickerRoot, "enhance", [i18nEnhance(localizedMessages)]);
331
+
321
332
  _defineProperty(TimePickerRoot, "defaultProps", function (_ref5) {
322
333
  var is12Hour = _ref5.is12Hour;
323
334
  return {
324
335
  defaultValue: '',
325
336
  size: 'm',
326
- children: /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(TimePicker.Hours, null), /*#__PURE__*/React.createElement(TimePicker.Separator, null), /*#__PURE__*/React.createElement(TimePicker.Minutes, null), is12Hour && /*#__PURE__*/React.createElement(TimePicker.Format, null))
337
+ children: /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(TimePicker.Hours, null), /*#__PURE__*/React.createElement(TimePicker.Separator, null), /*#__PURE__*/React.createElement(TimePicker.Minutes, null), is12Hour && /*#__PURE__*/React.createElement(TimePicker.Format, null)),
338
+ i18n: localizedMessages,
339
+ locale: 'en'
327
340
  };
328
341
  });
329
342
 
@@ -1 +1 @@
1
- {"version":3,"file":"TimePicker.js","names":["React","createComponent","Component","sstyled","Root","Input","Box","Hours","Minutes","Format","MAP_MERIDIEM","AM","PM","MAP_FIELD_TO_TIME","hours","minutes","intOrDefault","value","def","number","Number","parseInt","isNaN","withLeadingZero","String","length","meridiemByHours","formatHoursTo12","nHours","NaN","formatHoursTo24","meridiem","TimePickerRoot","createRef","field","event","is12Hour","asProps","time","split","timeToValue","handlers","size","disabled","valueToTime","$onValueChange","handleValueChange","minutesInputRef","hoursInputRef","_getHoursAndMinutesProps","undefined","_lastMeridiem","disablePortal","valueFulfilled","every","chunk","handleMeridiemClick","STimePicker","styles","Children","label","style","defaultValue","children","Separator","current","focus","STimePickerSeparator","handlerClick","TimePicker"],"sources":["../../src/TimePicker.jsx"],"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 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 hoursInputRef = React.createRef();\n minutesInputRef = React.createRef();\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 _getHoursAndMinutesProps = () => {\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 minutesInputRef: this.minutesInputRef,\n hoursInputRef: this.hoursInputRef,\n };\n };\n\n getHoursProps = this._getHoursAndMinutesProps;\n getMinutesProps = this._getHoursAndMinutesProps;\n\n getSeparatorProps() {\n return {\n disabled: this.asProps.disabled,\n hoursInputRef: this.hoursInputRef,\n };\n }\n\n getFormatProps() {\n const { size, disabled, disablePortal, value } = this.asProps;\n const valueFulfilled = value?.split(':').every((chunk) => chunk.length > 0);\n\n return {\n size,\n disabled,\n disablePortal,\n ['aria-hidden']: !valueFulfilled,\n meridiem: this.meridiem,\n onClick: this.handleMeridiemClick,\n };\n }\n\n render() {\n const STimePicker = Root;\n const { styles, Children, value, is12Hour } = this.asProps;\n const label = value\n ? `Time input, entered time is ${value} ${is12Hour ? this.meridiem : ''}`\n : `Time input, no time entered`;\n\n return sstyled(styles)(\n <STimePicker\n render={Input}\n aria-label={label}\n aria-valuenow={value || undefined}\n tabIndex={0}\n >\n <Children />\n </STimePicker>,\n );\n }\n}\n\nclass Separator extends Component {\n static defaultProps = {\n children: ':',\n };\n\n handlerClick = () => {\n if (this.asProps.hoursInputRef.current) {\n this.asProps.hoursInputRef.current?.focus();\n }\n };\n\n render() {\n const STimePickerSeparator = Root;\n return <STimePickerSeparator render={Box} onClick={this.handlerClick} aria-hidden=\"true\" />;\n }\n}\n\nconst TimePicker = createComponent(TimePickerRoot, {\n Hours,\n Minutes,\n Separator,\n Format,\n});\n\nexport default TimePicker;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,OAAOC,eAAP,IAA0BC,SAA1B,EAAqCC,OAArC,EAA8CC,IAA9C,QAA0D,eAA1D;AACA,OAAOC,KAAP,MAAkB,gBAAlB;AACA,SAASC,GAAT,QAAoB,mBAApB;AACA,SAASC,KAAT,EAAgBC,OAAhB,QAA+B,eAA/B;AACA,OAAOC,MAAP,MAAmB,gBAAnB;;;;;;;;;;;;;;;;;;;;;;;;AAIA,IAAMC,YAAY,GAAG;EACnBC,EAAE,EAAE,IADe;EAEnBC,EAAE,EAAE;AAFe,CAArB;AAIA,IAAMC,iBAAiB,GAAG;EACxBC,KAAK,EAAE,CADiB;EAExBC,OAAO,EAAE;AAFe,CAA1B;AAKA,OAAO,SAASC,YAAT,CAAsBC,KAAtB,EAAsC;EAAA,IAATC,GAAS,uEAAH,CAAG;EAC3C,IAAMC,MAAM,GAAGC,MAAM,CAACC,QAAP,CAAgBJ,KAAhB,CAAf;EACA,OAAOG,MAAM,CAACE,KAAP,CAAaH,MAAb,IAAuBD,GAAvB,GAA6BC,MAApC;AACD;AAED,OAAO,SAASI,eAAT,CAAyBN,KAAzB,EAAgC;EACrCA,KAAK,GAAGO,MAAM,CAACP,KAAD,CAAd;EACA,IAAIA,KAAK,CAACQ,MAAN,KAAiB,CAArB,EAAwB,kBAAWR,KAAX;EACxB,OAAOO,MAAM,CAACP,KAAD,CAAb;AACD;AAED,OAAO,SAASS,eAAT,CAAyBZ,KAAzB,EAAgC;EACrC,OAAOA,KAAK,IAAI,EAAT,GAAc,IAAd,GAAqB,IAA5B;AACD;AAED,OAAO,SAASa,eAAT,CAAyBb;AAAM;AAA/B,EAAkD;EACvD,IAAMc,MAAM,GAAGZ,YAAY,CAACF,KAAD,EAAQe,GAAR,CAA3B,CADuD,CACd;;EACzC,IAAIT,MAAM,CAACE,KAAP,CAAaM,MAAb,CAAJ,EAA0B,OAAOd,KAAP,CAF6B,CAIvD;;EACA,IAAIc,MAAM,KAAK,CAAf,EAAkB,OAAO,EAAP,CALqC,CAK1B;;EAC7B,IAAIA,MAAM,GAAG,EAAb,EAAiB,OAAOA,MAAM,GAAG,EAAhB,CANsC,CAMlB;;EAErC,OAAOd,KAAP;AACD;AAED,OAAO,SAASgB,eAAT,CAAyBhB;AAAM;AAA/B,EAAkDiB,QAAlD,EAA4D;EACjE,IAAMH,MAAM,GAAGZ,YAAY,CAACF,KAAD,EAAQe,GAAR,CAA3B,CADiE,CACxB;;EAEzC,IAAIT,MAAM,CAACE,KAAP,CAAaM,MAAb,CAAJ,EAA0B,OAAOd,KAAP;;EAE1B,IAAIiB,QAAQ,KAAK,IAAjB,EAAuB;IACrB,IAAIH,MAAM,KAAK,EAAf,EAAmB,OAAO,CAAP,CADE,CACQ;EAC9B;;EAED,IAAIG,QAAQ,KAAK,IAAjB,EAAuB;IACrB,IAAIH,MAAM,GAAG,EAAb,EAAiB,OAAOA,MAAM,GAAG,EAAhB,CADI,CACgB;EACtC;;EAED,OAAOd,KAAP;AACD;;IAEKkB,c;;;;;;;;;;;;;;;;iFAgBYhC,KAAK,CAACiC,SAAN,E;;mFACEjC,KAAK,CAACiC,SAAN,E;;oEAEF,I;;wEAkDI,UAAChB,KAAD,EAAQiB,KAAR,EAAeC,KAAf,EAAyB;MAC3C,IAAQC,QAAR,GAAqB,MAAKC,OAA1B,CAAQD,QAAR;;MACA;MAAA,IAAQL,QAAR,yBAAQA,QAAR;;MAEA,IAAIO,IAAJ;;MACA,IAAIJ,KAAJ,EAAW;QACTI,IAAI,GAAG,MAAKrB,KAAL,CAAWsB,KAAX,CAAiB,GAAjB,CAAP;QACAD,IAAI,CAACzB,iBAAiB,CAACqB,KAAD,CAAlB,CAAJ,GAAiCjB,KAAjC;MACD,CAHD,MAGO;QACLqB,IAAI,GAAGrB,KAAK,CAACsB,KAAN,CAAY,GAAZ,CAAP;MACD;;MAED,YAAiCD,IAAjC;MAAA;MAAA;MAAA,IAAKxB,KAAL,wBAAa,EAAb;MAAA;MAAA,IAAiBC,OAAjB,yBAA2B,EAA3B;;MAEA,IAAIqB,QAAJ,EAActB,KAAK,GAAGU,MAAM,CAACG,eAAe,CAACb,KAAD,CAAhB,CAAd;MAEdG,KAAK,GAAG,MAAKuB,WAAL,CAAiB,CAAC1B,KAAD,EAAQC,OAAR,CAAjB,EAAmCgB,QAAnC,CAAR;;MACA,MAAKU,QAAL,CAAcxB,KAAd,CAAoBA,KAApB,EAA2BkB,KAA3B;IACD,C;;0EAEqB,UAACA,KAAD,EAAW;MAC/B,IAAQC,QAAR,GAAqB,MAAKC,OAA1B,CAAQD,QAAR;;MACA;MAAA,IAAMnB,KAAN,0BAAMA,KAAN;MAAA,IAAac,QAAb,0BAAaA,QAAb;;MACA,mBAAiCd,KAAK,CAACsB,KAAN,CAAY,GAAZ,CAAjC;MAAA;MAAA;MAAA,IAAKzB,KAAL,+BAAa,EAAb;MAAA;MAAA,IAAiBC,OAAjB,gCAA2B,EAA3B;;MAEA,IAAIqB,QAAJ,EAActB,KAAK,GAAGU,MAAM,CAACG,eAAe,CAACb,KAAD,CAAhB,CAAd;MAEdG,KAAK,GAAG,MAAKuB,WAAL,CAAiB,CAAC1B,KAAD,EAAQC,OAAR,CAAjB,EAAmCL,YAAY,CAACqB,QAAD,CAA/C,CAAR;;MACA,MAAKU,QAAL,CAAcxB,KAAd,CAAoBA,KAApB,EAA2BkB,KAA3B;IACD,C;;+EAE0B,YAAM;MAC/B,oBAAqC,MAAKE,OAA1C;MAAA,IAAQD,QAAR,iBAAQA,QAAR;MAAA,IAAkBM,IAAlB,iBAAkBA,IAAlB;MAAA,IAAwBC,QAAxB,iBAAwBA,QAAxB;;MACA,IAAML,IAAI,GAAG,MAAKM,WAAL,CAAiB,MAAK3B,KAAtB,CAAb;;MAEA,OAAO;QACLqB,IAAI,EAAJA,IADK;QAELI,IAAI,EAAJA,IAFK;QAGLN,QAAQ,EAARA,QAHK;QAILO,QAAQ,EAARA,QAJK;QAKLE,cAAc,EAAE,MAAKC,iBALhB;QAMLC,eAAe,EAAE,MAAKA,eANjB;QAOLC,aAAa,EAAE,MAAKA;MAPf,CAAP;IASD,C;;oEAEe,MAAKC,wB;;sEACH,MAAKA,wB;;;;;;;WAjGD;IAEtB,6BAAoB;MAClB,OAAO;QACLhC,KAAK,EAAE;MADF,CAAP;IAGD;;;SAED,eAAY;MACV,IAAQA,KAAR,GAAkB,KAAKoB,OAAvB,CAAQpB,KAAR;MACA,OAAOA,KAAK,KAAK,IAAV,IAAkBA,KAAK,KAAKiC,SAA5B,GAAwC,GAAxC,GAA8CjC,KAArD;IACD;;;SAED,eAAe;MACb,IAAQA,KAAR,GAAkB,KAAKoB,OAAvB,CAAQpB,KAAR;;MACA,oBAAqBA,KAAK,CAACsB,KAAN,CAAY,GAAZ,CAArB;MAAA;MAAA;MAAA,IAAOzB,KAAP,+BAAe,EAAf;;MAEA,IAAMc,MAAM,GAAGZ,YAAY,CAACF,KAAD,EAAQe,GAAR,CAA3B;;MAEA,IAAI,CAACT,MAAM,CAACE,KAAP,CAAaM,MAAb,CAAL,EAA2B;QACzB,KAAKuB,aAAL,GAAqBzB,eAAe,CAACE,MAAD,CAApC;MACD;;MAED,OAAO,KAAKuB,aAAZ;IACD;;;WAED,qBAAYlC,KAAZ,EAAmB;MACjB,IAAQmB,QAAR,GAAqB,KAAKC,OAA1B,CAAQD,QAAR;;MACA,oBAAiCnB,KAAK,CAACsB,KAAN,CAAY,GAAZ,CAAjC;MAAA;MAAA;MAAA,IAAKzB,KAAL,+BAAa,EAAb;MAAA;MAAA,IAAiBC,OAAjB,gCAA2B,EAA3B;;MAEA,IAAIqB,QAAJ,EAActB,KAAK,GAAGa,eAAe,CAACb,KAAD,CAAvB;MAEdA,KAAK,GAAGS,eAAe,CAACT,KAAD,CAAvB;MACAC,OAAO,GAAGQ,eAAe,CAACR,OAAD,CAAzB;MAEA,OAAO,CAACD,KAAD,EAAQC,OAAR,CAAP;IACD;;;WAED,qBAAYuB,IAAZ,EAAkBP,QAAlB,EAA4B;MAC1B,IAAQK,QAAR,GAAqB,KAAKC,OAA1B,CAAQD,QAAR;;MACA,4BAAiCE,IAAjC;MAAA;MAAA,IAAKxB,KAAL,wBAAa,EAAb;MAAA;MAAA,IAAiBC,OAAjB,yBAA2B,EAA3B;;MAEAD,KAAK,GAAGE,YAAY,CAACF,KAAD,EAAQA,KAAR,CAApB,CAJ0B,CAIU;;MACpCC,OAAO,GAAGC,YAAY,CAACD,OAAD,EAAUA,OAAV,CAAtB,CAL0B,CAKgB;;MAE1C,IAAIqB,QAAJ,EAActB,KAAK,GAAGgB,eAAe,CAAChB,KAAD,EAAQiB,QAAR,CAAvB,CAPY,CAO8B;;MAExD,iBAAUjB,KAAV,cAAmBC,OAAnB;IACD;;;WAmDD,6BAAoB;MAClB,OAAO;QACL4B,QAAQ,EAAE,KAAKN,OAAL,CAAaM,QADlB;QAELK,aAAa,EAAE,KAAKA;MAFf,CAAP;IAID;;;WAED,0BAAiB;MAAA;;MACf,qBAAiD,KAAKX,OAAtD;MAAA,IAAQK,IAAR,kBAAQA,IAAR;MAAA,IAAcC,QAAd,kBAAcA,QAAd;MAAA,IAAwBS,aAAxB,kBAAwBA,aAAxB;MAAA,IAAuCnC,KAAvC,kBAAuCA,KAAvC;MACA,IAAMoC,cAAc,GAAGpC,KAAH,aAAGA,KAAH,uBAAGA,KAAK,CAAEsB,KAAP,CAAa,GAAb,EAAkBe,KAAlB,CAAwB,UAACC,KAAD;QAAA,OAAWA,KAAK,CAAC9B,MAAN,GAAe,CAA1B;MAAA,CAAxB,CAAvB;MAEA;QACEiB,IAAI,EAAJA,IADF;QAEEC,QAAQ,EAARA,QAFF;QAGES,aAAa,EAAbA;MAHF,0BAIG,aAJH,EAImB,CAACC,cAJpB,sCAKY,KAAKtB,QALjB,qCAMW,KAAKyB,mBANhB;IAQD;;;WAED,kBAAS;MAAA;MAAA;;MACP,IAAMC,WAAW,GAQLpD,KARZ;MACA,qBAA8C,KAAKgC,OAAnD;MAAA,IAAQqB,MAAR,kBAAQA,MAAR;MAAA,IAAgBC,QAAhB,kBAAgBA,QAAhB;MAAA,IAA0B1C,KAA1B,kBAA0BA,KAA1B;MAAA,IAAiCmB,QAAjC,kBAAiCA,QAAjC;MACA,IAAMwB,KAAK,GAAG3C,KAAK,yCACgBA,KADhB,cACyBmB,QAAQ,GAAG,KAAKL,QAAR,GAAmB,EADpD,iCAAnB;MAIA,eAAO5B,OAAO,CAACuD,MAAD,CAAd,eACE,oBAAC,WAAD;QAAA,cAEcE,KAFd;QAAA,iBAGiB3C,KAAK,IAAIiC,SAH1B;QAAA,YAIY;MAJZ,yBAME,oBAAC,QAAD,2BANF,CADF;IAUD;;;;EA5J0BhD,S;;gBAAvB8B,c,iBACiB,Y;;gBADjBA,c,WAEW6B,K;;gBAFX7B,c,kBAGkB;EAAA,IAAGI,QAAH,SAAGA,QAAH;EAAA,OAAmB;IACvC0B,YAAY,EAAE,EADyB;IAEvCpB,IAAI,EAAE,GAFiC;IAGvCqB,QAAQ,eACN,uDACE,oBAAC,UAAD,CAAY,KAAZ,OADF,eAEE,oBAAC,UAAD,CAAY,SAAZ,OAFF,eAGE,oBAAC,UAAD,CAAY,OAAZ,OAHF,EAIG3B,QAAQ,iBAAI,oBAAC,UAAD,CAAY,MAAZ,OAJf;EAJqC,CAAnB;AAAA,C;;IA4JlB4B,S;;;;;;;;;;;;;;;;oEAKW,YAAM;MACnB,IAAI,OAAK3B,OAAL,CAAaW,aAAb,CAA2BiB,OAA/B,EAAwC;QAAA;;QACtC,gCAAK5B,OAAL,CAAaW,aAAb,CAA2BiB,OAA3B,gFAAoCC,KAApC;MACD;IACF,C;;;;;;;WAED,kBAAS;MAAA;MACP,IAAMC,oBAAoB,GACW7D,GADrC;MACA,oBAAO,oBAAC,oBAAD;QAAA,WAA4C,KAAK8D,YAAjD;QAAA,eAA2E;MAA3E,UAAP;IACD;;;;EAdqBlE,S;;gBAAlB8D,S,kBACkB;EACpBD,QAAQ,EAAE;AADU,C;;AAgBxB,IAAMM,UAAU,GAAGpE,eAAe,CAAC+B,cAAD,EAAiB;EACjDzB,KAAK,EAALA,KADiD;EAEjDC,OAAO,EAAPA,OAFiD;EAGjDwD,SAAS,EAATA,SAHiD;EAIjDvD,MAAM,EAANA;AAJiD,CAAjB,CAAlC;AAOA,eAAe4D,UAAf"}
1
+ {"version":3,"file":"TimePicker.js","names":["React","createComponent","Component","sstyled","Root","Input","Box","Hours","Minutes","Format","localizedMessages","i18nEnhance","MAP_MERIDIEM","AM","PM","MAP_FIELD_TO_TIME","hours","minutes","intOrDefault","value","def","number","Number","parseInt","isNaN","withLeadingZero","String","length","meridiemByHours","formatHoursTo12","nHours","NaN","formatHoursTo24","meridiem","TimePickerRoot","createRef","field","event","is12Hour","asProps","time","split","timeToValue","handlers","size","disabled","getI18nText","valueToTime","$onValueChange","handleValueChange","minutesInputRef","hoursInputRef","_getI18nText","_getHoursAndMinutesProps","undefined","_lastMeridiem","disablePortal","valueFulfilled","every","chunk","handleMeridiemClick","STimePicker","styles","Children","label","style","defaultValue","children","i18n","locale","Separator","current","focus","STimePickerSeparator","handlerClick","TimePicker"],"sources":["../../src/TimePicker.jsx"],"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';\nimport { localizedMessages } from './translations/__intergalactic-dynamic-locales';\nimport i18nEnhance from '@semcore/utils/lib/enhances/i18nEnhance';\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 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 enhance = [i18nEnhance(localizedMessages)];\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 i18n: localizedMessages,\n locale: 'en',\n });\n\n hoursInputRef = React.createRef();\n minutesInputRef = React.createRef();\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 _getHoursAndMinutesProps = () => {\n const { is12Hour, size, disabled, getI18nText } = 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 minutesInputRef: this.minutesInputRef,\n hoursInputRef: this.hoursInputRef,\n _getI18nText: getI18nText,\n };\n };\n\n getHoursProps = this._getHoursAndMinutesProps;\n getMinutesProps = this._getHoursAndMinutesProps;\n\n getSeparatorProps() {\n return {\n disabled: this.asProps.disabled,\n hoursInputRef: this.hoursInputRef,\n };\n }\n\n getFormatProps() {\n const { size, disabled, disablePortal, value, getI18nText } = this.asProps;\n const valueFulfilled = value?.split(':').every((chunk) => chunk.length > 0);\n\n return {\n size,\n disabled,\n disablePortal,\n ['aria-hidden']: !valueFulfilled,\n meridiem: this.meridiem,\n onClick: this.handleMeridiemClick,\n getI18nText,\n };\n }\n\n render() {\n const STimePicker = Root;\n const { styles, Children, value, is12Hour, getI18nText } = this.asProps;\n const label = value\n ? getI18nText('title', { time: value, meridiem: is12Hour ? this.meridiem : '' })\n : getI18nText('titleEmpty');\n\n return sstyled(styles)(\n <STimePicker\n render={Input}\n aria-label={label}\n aria-valuenow={value || undefined}\n tabIndex={0}\n >\n <Children />\n </STimePicker>,\n );\n }\n}\n\nclass Separator extends Component {\n static defaultProps = {\n children: ':',\n };\n\n handlerClick = () => {\n if (this.asProps.hoursInputRef.current) {\n this.asProps.hoursInputRef.current?.focus();\n }\n };\n\n render() {\n const STimePickerSeparator = Root;\n return <STimePickerSeparator render={Box} onClick={this.handlerClick} aria-hidden=\"true\" />;\n }\n}\n\nconst TimePicker = createComponent(TimePickerRoot, {\n Hours,\n Minutes,\n Separator,\n Format,\n});\n\nexport default TimePicker;\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.js","names":[],"sources":["../../src/index.d.ts"],"sourcesContent":["import React from 'react';\nimport { CProps, PropGetterFn, ReturnEl } from '@semcore/core';\nimport { IInputProps, IInputValueProps } from '@semcore/input';\nimport { Box, IBoxProps } from '@semcore/flex-box';\nimport { IKeyboardFocusProps } from '@semcore/utils/lib/enhances/keyboardFocusEnhance';\n\nexport interface ITimePickerProps extends Omit<IInputProps, 'size'> {\n /** Time in the hh:mm format */\n value?: string;\n /** Default value if `value` property is not provided */\n defaultValue?: string;\n /** The event responses upon time changing */\n onChange?: (time: string, event?: React.SyntheticEvent) => void;\n /** In charge of the component blocking */\n disabled?: boolean;\n /** Control size\n * @default m */\n size?: 'm' | 'l';\n /** 12-hour time format */\n is12Hour?: boolean;\n}\n\nexport interface ITimePickerItemProps extends IInputValueProps {\n /** Step for changing of the values in the dropdown list */\n step?: number;\n}\n\nexport interface ITimePickerFormatProps extends IBoxProps, IKeyboardFocusProps {}\n\nexport interface ITimePickerContext {\n getHoursProps: PropGetterFn;\n getFormatProps: PropGetterFn;\n getMinutesProps: PropGetterFn;\n}\n\nexport interface ITimePickerHandlers {\n value: (value: string) => void;\n}\n\ndeclare const TimePicker: (<T>(\n props: CProps<ITimePickerProps & T, ITimePickerContext, ITimePickerHandlers>,\n) => ReturnEl) & {\n Hours: <T>(props: ITimePickerItemProps & T) => ReturnEl;\n Minutes: <T>(props: ITimePickerItemProps & T) => ReturnEl;\n Separator: typeof Box;\n Format: <T>(props: ITimePickerFormatProps & T) => ReturnEl;\n};\n\nexport default TimePicker;\n"],"mappings":""}
1
+ {"version":3,"file":"index.d.js","names":[],"sources":["../../src/index.d.ts"],"sourcesContent":["import React from 'react';\nimport { CProps, PropGetterFn, ReturnEl } from '@semcore/core';\nimport { IInputProps, IInputValueProps } from '@semcore/input';\nimport { Box, IBoxProps } from '@semcore/flex-box';\nimport { IKeyboardFocusProps } from '@semcore/utils/lib/enhances/keyboardFocusEnhance';\n\nexport interface ITimePickerProps extends Omit<IInputProps, 'size'> {\n /** Time in the hh:mm format */\n value?: string;\n /** Default value if `value` property is not provided */\n defaultValue?: string;\n /** The event responses upon time changing */\n onChange?: (time: string, event?: React.SyntheticEvent) => void;\n /** In charge of the component blocking */\n disabled?: boolean;\n /** Control size\n * @default m */\n size?: 'm' | 'l';\n /** 12-hour time format */\n is12Hour?: boolean;\n locale?: string;\n}\n\nexport interface ITimePickerItemProps extends IInputValueProps {\n /** Step for changing of the values in the dropdown list */\n step?: number;\n}\n\nexport interface ITimePickerFormatProps extends IBoxProps, IKeyboardFocusProps {}\n\nexport interface ITimePickerContext {\n getHoursProps: PropGetterFn;\n getFormatProps: PropGetterFn;\n getMinutesProps: PropGetterFn;\n}\n\nexport interface ITimePickerHandlers {\n value: (value: string) => void;\n}\n\ndeclare const TimePicker: (<T>(\n props: CProps<ITimePickerProps & T, ITimePickerContext, ITimePickerHandlers>,\n) => ReturnEl) & {\n Hours: <T>(props: ITimePickerItemProps & T) => ReturnEl;\n Minutes: <T>(props: ITimePickerItemProps & T) => ReturnEl;\n Separator: typeof Box;\n Format: <T>(props: ITimePickerFormatProps & T) => ReturnEl;\n};\n\nexport default TimePicker;\n"],"mappings":""}
@@ -0,0 +1,25 @@
1
+ import de from './de.json';
2
+ import en from './en.json';
3
+ import es from './es.json';
4
+ import fr from './fr.json';
5
+ import it from './it.json';
6
+ import ja from './ja.json';
7
+ import ko from './ko.json';
8
+ import pt from './pt.json';
9
+ import tr from './tr.json';
10
+ import vi from './vi.json';
11
+ import zh from './zh.json';
12
+ export var localizedMessages = {
13
+ de: de,
14
+ en: en,
15
+ es: es,
16
+ fr: fr,
17
+ it: it,
18
+ ja: ja,
19
+ ko: ko,
20
+ pt: pt,
21
+ tr: tr,
22
+ vi: vi,
23
+ zh: zh
24
+ };
25
+ //# sourceMappingURL=__intergalactic-dynamic-locales.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"__intergalactic-dynamic-locales.js","names":["de","en","es","fr","it","ja","ko","pt","tr","vi","zh","localizedMessages"],"sources":["../../../src/translations/__intergalactic-dynamic-locales.ts"],"sourcesContent":["import de from './de.json';\nimport en from './en.json';\nimport es from './es.json';\nimport fr from './fr.json';\nimport it from './it.json';\nimport ja from './ja.json';\nimport ko from './ko.json';\nimport pt from './pt.json';\nimport tr from './tr.json';\nimport vi from './vi.json';\nimport zh from './zh.json';\n\nexport const localizedMessages = {\n de,\n en,\n es,\n fr,\n it,\n ja,\n ko,\n pt,\n tr,\n vi,\n zh,\n};\n"],"mappings":"AAAA,OAAOA,EAAP,MAAe,WAAf;AACA,OAAOC,EAAP,MAAe,WAAf;AACA,OAAOC,EAAP,MAAe,WAAf;AACA,OAAOC,EAAP,MAAe,WAAf;AACA,OAAOC,EAAP,MAAe,WAAf;AACA,OAAOC,EAAP,MAAe,WAAf;AACA,OAAOC,EAAP,MAAe,WAAf;AACA,OAAOC,EAAP,MAAe,WAAf;AACA,OAAOC,EAAP,MAAe,WAAf;AACA,OAAOC,EAAP,MAAe,WAAf;AACA,OAAOC,EAAP,MAAe,WAAf;AAEA,OAAO,IAAMC,iBAAiB,GAAG;EAC/BX,EAAE,EAAFA,EAD+B;EAE/BC,EAAE,EAAFA,EAF+B;EAG/BC,EAAE,EAAFA,EAH+B;EAI/BC,EAAE,EAAFA,EAJ+B;EAK/BC,EAAE,EAAFA,EAL+B;EAM/BC,EAAE,EAAFA,EAN+B;EAO/BC,EAAE,EAAFA,EAP+B;EAQ/BC,EAAE,EAAFA,EAR+B;EAS/BC,EAAE,EAAFA,EAT+B;EAU/BC,EAAE,EAAFA,EAV+B;EAW/BC,EAAE,EAAFA;AAX+B,CAA1B"}
@@ -0,0 +1,7 @@
1
+ {
2
+ "title": "Zeiteingabe, eingegebene Zeit ist {time} {meridiem}",
3
+ "titleEmpty": "Zeiteingabe, keine Zeit eingegeben",
4
+ "hours": "Eingabefeld Stunden",
5
+ "minutes": "Eingabefeld Minuten",
6
+ "format": "Zeitformat {meridiem}"
7
+ }
@@ -0,0 +1,7 @@
1
+ {
2
+ "title": "Time input, entered time is {time} {meridiem}",
3
+ "titleEmpty": "Time input, no time entered",
4
+ "hours": "Hours input field",
5
+ "minutes": "Minutes input field",
6
+ "format": "Time format {meridiem}"
7
+ }
@@ -0,0 +1,7 @@
1
+ {
2
+ "title": "Introducción de la hora, la hora introducida es {time} {meridiem}",
3
+ "titleEmpty": "Introducción de la hora, no se ha introducido la hora",
4
+ "hours": "Campo de entrada de horas",
5
+ "minutes": "Campo de input de minutos",
6
+ "format": "Formato de tiempo {meridiem}"
7
+ }
@@ -0,0 +1,7 @@
1
+ {
2
+ "title": "Saisie de l’heure, l’heure saisie est {time} {meridiem}",
3
+ "titleEmpty": "Saisie de l’heure, aucune heure n’a été saisie",
4
+ "hours": "Champ de saisie des heures",
5
+ "minutes": "Champ de saisie des minutes",
6
+ "format": "Format de l’heure {meridiem}"
7
+ }
@@ -0,0 +1,7 @@
1
+ {
2
+ "title": "Input dell'orario, l'orario inserito è {time} {meridiem}",
3
+ "titleEmpty": "Input dell'orario, nessun orario inserito",
4
+ "hours": "Campo input ore",
5
+ "minutes": "Campo input minuti",
6
+ "format": "Formato orario {meridiem}"
7
+ }
@@ -0,0 +1,7 @@
1
+ {
2
+ "title": "時刻入力、入力された時刻は{time} {meridiem} です",
3
+ "titleEmpty": "時刻入力、時刻は入力されていません",
4
+ "hours": "時間入力フィールド",
5
+ "minutes": "分入力フィールド",
6
+ "format": "時刻フォーマット{meridiem}"
7
+ }
@@ -0,0 +1,7 @@
1
+ {
2
+ "title": "시간 입력값, 입력된 시간은 {time} {meridiem}",
3
+ "titleEmpty": "시간 입력값, 입력된 시간 없음",
4
+ "hours": "시간 입력란",
5
+ "minutes": "분 입력란",
6
+ "format": "시간 형식 {meridiem}"
7
+ }
@@ -0,0 +1,7 @@
1
+ {
2
+ "title": "Entrada de hora – a hora informada é {time} {meridiem}",
3
+ "titleEmpty": "Entrada de hora – hora não foi informada",
4
+ "hours": "Campo de entrada de horas",
5
+ "minutes": "Campo de entrada de minutos",
6
+ "format": "Formato de hora {meridiem}"
7
+ }
@@ -0,0 +1,7 @@
1
+ {
2
+ "title": "Saat girişi, girilen saat {time} {meridiem}",
3
+ "titleEmpty": "Saat girişi, saat girilmedi",
4
+ "hours": "Saat giriş alanı",
5
+ "minutes": "Dakika giriş alanı",
6
+ "format": "Saat formatı {meridiem}"
7
+ }
@@ -0,0 +1,7 @@
1
+ {
2
+ "title": "Nhập thời gian, thời gian đã nhập là {time} {meridiem}",
3
+ "titleEmpty": "Nhập thời gian, không có thời gian đã nhập",
4
+ "hours": "Trường nhập số giờ",
5
+ "minutes": "Trường nhập số phút",
6
+ "format": "Định dạng thời gian {meridiem}"
7
+ }
@@ -0,0 +1,7 @@
1
+ {
2
+ "title": "时间输入,输入的时间是 {time} {meridiem}",
3
+ "titleEmpty": "时间输入,未输入时间",
4
+ "hours": "小时输入字段",
5
+ "minutes": "分钟输入字段",
6
+ "format": "时间格式 {meridiem}"
7
+ }
@@ -18,6 +18,7 @@ export interface ITimePickerProps extends Omit<IInputProps, 'size'> {
18
18
  size?: 'm' | 'l';
19
19
  /** 12-hour time format */
20
20
  is12Hour?: boolean;
21
+ locale?: string;
21
22
  }
22
23
 
23
24
  export interface ITimePickerItemProps extends IInputValueProps {
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@semcore/time-picker",
3
3
  "description": "Semrush TimePicker Component",
4
- "version": "3.3.2",
4
+ "version": "3.4.0",
5
5
  "main": "lib/cjs/index.js",
6
6
  "module": "lib/es6/index.js",
7
7
  "typings": "lib/types/index.d.ts",