@razorpay/blade 11.18.2 → 11.19.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.
- package/build/lib/native/components/Button/BaseButton/BaseButton.js +1 -1
- package/build/lib/native/components/Button/BaseButton/BaseButton.js.map +1 -1
- package/build/lib/native/components/Button/BaseButton/buttonTokens.js +1 -1
- package/build/lib/native/components/Button/BaseButton/buttonTokens.js.map +1 -1
- package/build/lib/native/components/DatePicker/DatePicker.native.js +7 -0
- package/build/lib/native/components/DatePicker/DatePicker.native.js.map +1 -0
- package/build/lib/native/components/index.js +1 -0
- package/build/lib/native/components/index.js.map +1 -1
- package/build/lib/native/tokens/global/size.js +1 -1
- package/build/lib/native/tokens/global/size.js.map +1 -1
- package/build/lib/native/utils/metaAttribute/metaConstants.js +1 -1
- package/build/lib/native/utils/metaAttribute/metaConstants.js.map +1 -1
- package/build/lib/web/development/components/BottomSheet/BottomSheetBody.web.js +6 -4
- package/build/lib/web/development/components/BottomSheet/BottomSheetBody.web.js.map +1 -1
- package/build/lib/web/development/components/Button/BaseButton/BaseButton.js +1 -1
- package/build/lib/web/development/components/Button/BaseButton/BaseButton.js.map +1 -1
- package/build/lib/web/development/components/Button/BaseButton/buttonTokens.js +2 -2
- package/build/lib/web/development/components/Button/BaseButton/buttonTokens.js.map +1 -1
- package/build/lib/web/development/components/DatePicker/Calendar.web.js +182 -0
- package/build/lib/web/development/components/DatePicker/Calendar.web.js.map +1 -0
- package/build/lib/web/development/components/DatePicker/CalendarFooter.web.js +46 -0
- package/build/lib/web/development/components/DatePicker/CalendarFooter.web.js.map +1 -0
- package/build/lib/web/development/components/DatePicker/CalendarHeader.web.js +162 -0
- package/build/lib/web/development/components/DatePicker/CalendarHeader.web.js.map +1 -0
- package/build/lib/web/development/components/DatePicker/CalendarStyles.web.js +310 -0
- package/build/lib/web/development/components/DatePicker/CalendarStyles.web.js.map +1 -0
- package/build/lib/web/development/components/DatePicker/DateInput.web.js +185 -0
- package/build/lib/web/development/components/DatePicker/DateInput.web.js.map +1 -0
- package/build/lib/web/development/components/DatePicker/DatePicker.web.js +364 -0
- package/build/lib/web/development/components/DatePicker/DatePicker.web.js.map +1 -0
- package/build/lib/web/development/components/DatePicker/QuickSelection/PresetSideBar.web.js +86 -0
- package/build/lib/web/development/components/DatePicker/QuickSelection/PresetSideBar.web.js.map +1 -0
- package/build/lib/web/development/components/DatePicker/QuickSelection/QuickSelectionItem.web.js +43 -0
- package/build/lib/web/development/components/DatePicker/QuickSelection/QuickSelectionItem.web.js.map +1 -0
- package/build/lib/web/development/components/DatePicker/constants.js +22 -0
- package/build/lib/web/development/components/DatePicker/constants.js.map +1 -0
- package/build/lib/web/development/components/DatePicker/index.js +2 -0
- package/build/lib/web/development/components/DatePicker/index.js.map +1 -0
- package/build/lib/web/development/components/DatePicker/useControlledDates.js +75 -0
- package/build/lib/web/development/components/DatePicker/useControlledDates.js.map +1 -0
- package/build/lib/web/development/components/DatePicker/useDatesState.js +149 -0
- package/build/lib/web/development/components/DatePicker/useDatesState.js.map +1 -0
- package/build/lib/web/development/components/DatePicker/usePopup.js +90 -0
- package/build/lib/web/development/components/DatePicker/usePopup.js.map +1 -0
- package/build/lib/web/development/components/DatePicker/utils.js +39 -0
- package/build/lib/web/development/components/DatePicker/utils.js.map +1 -0
- package/build/lib/web/development/components/Input/PhoneNumberInput/PhoneNumberInput.web.js +3 -2
- package/build/lib/web/development/components/Input/PhoneNumberInput/PhoneNumberInput.web.js.map +1 -1
- package/build/lib/web/development/components/index.js +2 -0
- package/build/lib/web/development/components/index.js.map +1 -1
- package/build/lib/web/development/tokens/global/size.js +2 -0
- package/build/lib/web/development/tokens/global/size.js.map +1 -1
- package/build/lib/web/development/utils/getFocusRingStyles/getFocusRingStyles.web.js +6 -3
- package/build/lib/web/development/utils/getFocusRingStyles/getFocusRingStyles.web.js.map +1 -1
- package/build/lib/web/development/utils/metaAttribute/metaConstants.js +2 -0
- package/build/lib/web/development/utils/metaAttribute/metaConstants.js.map +1 -1
- package/build/lib/web/production/components/BottomSheet/BottomSheetBody.web.js +6 -4
- package/build/lib/web/production/components/BottomSheet/BottomSheetBody.web.js.map +1 -1
- package/build/lib/web/production/components/Button/BaseButton/BaseButton.js +1 -1
- package/build/lib/web/production/components/Button/BaseButton/BaseButton.js.map +1 -1
- package/build/lib/web/production/components/Button/BaseButton/buttonTokens.js +2 -2
- package/build/lib/web/production/components/Button/BaseButton/buttonTokens.js.map +1 -1
- package/build/lib/web/production/components/DatePicker/Calendar.web.js +182 -0
- package/build/lib/web/production/components/DatePicker/Calendar.web.js.map +1 -0
- package/build/lib/web/production/components/DatePicker/CalendarFooter.web.js +46 -0
- package/build/lib/web/production/components/DatePicker/CalendarFooter.web.js.map +1 -0
- package/build/lib/web/production/components/DatePicker/CalendarHeader.web.js +162 -0
- package/build/lib/web/production/components/DatePicker/CalendarHeader.web.js.map +1 -0
- package/build/lib/web/production/components/DatePicker/CalendarStyles.web.js +310 -0
- package/build/lib/web/production/components/DatePicker/CalendarStyles.web.js.map +1 -0
- package/build/lib/web/production/components/DatePicker/DateInput.web.js +185 -0
- package/build/lib/web/production/components/DatePicker/DateInput.web.js.map +1 -0
- package/build/lib/web/production/components/DatePicker/DatePicker.web.js +364 -0
- package/build/lib/web/production/components/DatePicker/DatePicker.web.js.map +1 -0
- package/build/lib/web/production/components/DatePicker/QuickSelection/PresetSideBar.web.js +86 -0
- package/build/lib/web/production/components/DatePicker/QuickSelection/PresetSideBar.web.js.map +1 -0
- package/build/lib/web/production/components/DatePicker/QuickSelection/QuickSelectionItem.web.js +43 -0
- package/build/lib/web/production/components/DatePicker/QuickSelection/QuickSelectionItem.web.js.map +1 -0
- package/build/lib/web/production/components/DatePicker/constants.js +22 -0
- package/build/lib/web/production/components/DatePicker/constants.js.map +1 -0
- package/build/lib/web/production/components/DatePicker/index.js +2 -0
- package/build/lib/web/production/components/DatePicker/index.js.map +1 -0
- package/build/lib/web/production/components/DatePicker/useControlledDates.js +75 -0
- package/build/lib/web/production/components/DatePicker/useControlledDates.js.map +1 -0
- package/build/lib/web/production/components/DatePicker/useDatesState.js +149 -0
- package/build/lib/web/production/components/DatePicker/useDatesState.js.map +1 -0
- package/build/lib/web/production/components/DatePicker/usePopup.js +90 -0
- package/build/lib/web/production/components/DatePicker/usePopup.js.map +1 -0
- package/build/lib/web/production/components/DatePicker/utils.js +39 -0
- package/build/lib/web/production/components/DatePicker/utils.js.map +1 -0
- package/build/lib/web/production/components/Input/PhoneNumberInput/PhoneNumberInput.web.js +3 -2
- package/build/lib/web/production/components/Input/PhoneNumberInput/PhoneNumberInput.web.js.map +1 -1
- package/build/lib/web/production/components/index.js +2 -0
- package/build/lib/web/production/components/index.js.map +1 -1
- package/build/lib/web/production/tokens/global/size.js +2 -0
- package/build/lib/web/production/tokens/global/size.js.map +1 -1
- package/build/lib/web/production/utils/getFocusRingStyles/getFocusRingStyles.web.js +6 -3
- package/build/lib/web/production/utils/getFocusRingStyles/getFocusRingStyles.web.js.map +1 -1
- package/build/lib/web/production/utils/metaAttribute/metaConstants.js +2 -0
- package/build/lib/web/production/utils/metaAttribute/metaConstants.js.map +1 -1
- package/build/types/components/index.d.ts +1242 -527
- package/build/types/components/index.native.d.ts +550 -406
- package/build/types/tokens/index.d.ts +2 -0
- package/build/types/tokens/index.native.d.ts +2 -0
- package/package.json +7 -3
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import _defineProperty from '@babel/runtime/helpers/defineProperty';
|
|
2
|
+
import { QuickSelectionItem } from './QuickSelectionItem.web.js';
|
|
3
|
+
import '../../Box/index.js';
|
|
4
|
+
import '../../../utils/index.js';
|
|
5
|
+
import '../../Chip/index.js';
|
|
6
|
+
import '../../Divider/index.js';
|
|
7
|
+
import '../../Box/BaseBox/index.js';
|
|
8
|
+
import '../../../utils/makeAccessible/index.js';
|
|
9
|
+
import '../../../tokens/global/index.js';
|
|
10
|
+
import { jsx, Fragment, jsxs } from 'react/jsx-runtime';
|
|
11
|
+
import { Box } from '../../Box/Box.js';
|
|
12
|
+
import { Divider } from '../../Divider/Divider.js';
|
|
13
|
+
import { ChipGroup } from '../../Chip/ChipGroup.js';
|
|
14
|
+
import { Chip } from '../../Chip/Chip.js';
|
|
15
|
+
import { BaseBox } from '../../Box/BaseBox/BaseBox.web.js';
|
|
16
|
+
import { makeSpace } from '../../../utils/makeSpace/makeSpace.js';
|
|
17
|
+
import { size } from '../../../tokens/global/size.js';
|
|
18
|
+
import { makeAccessible } from '../../../utils/makeAccessible/makeAccessible.web.js';
|
|
19
|
+
|
|
20
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
21
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
22
|
+
var isSamePreset = function isSamePreset(value1, value2) {
|
|
23
|
+
if (!(value1 !== null && value1 !== void 0 && value1[0]) || !(value1 !== null && value1 !== void 0 && value1[1])) return false;
|
|
24
|
+
if (!(value2 !== null && value2 !== void 0 && value2[0]) || !(value2 !== null && value2 !== void 0 && value2[1])) return false;
|
|
25
|
+
return value1[0].toDateString() === value2[0].toDateString() && value1[1].toDateString() === value2[1].toDateString();
|
|
26
|
+
};
|
|
27
|
+
var PresetSideBar = function PresetSideBar(_ref) {
|
|
28
|
+
var date = _ref.date,
|
|
29
|
+
presets = _ref.presets,
|
|
30
|
+
selectedPreset = _ref.selectedPreset,
|
|
31
|
+
onSelection = _ref.onSelection,
|
|
32
|
+
isMobile = _ref.isMobile;
|
|
33
|
+
if (!presets) return /*#__PURE__*/jsx(Fragment, {});
|
|
34
|
+
if (isMobile) {
|
|
35
|
+
return /*#__PURE__*/jsxs(Box, {
|
|
36
|
+
children: [/*#__PURE__*/jsx(Divider, {
|
|
37
|
+
marginTop: "spacing.4"
|
|
38
|
+
}), /*#__PURE__*/jsx(ChipGroup, {
|
|
39
|
+
marginTop: "spacing.7",
|
|
40
|
+
size: "small",
|
|
41
|
+
selectionType: "single",
|
|
42
|
+
accessibilityLabel: "Select Presets",
|
|
43
|
+
onChange: function onChange(_ref2) {
|
|
44
|
+
var values = _ref2.values;
|
|
45
|
+
onSelection(presets.find(function (preset) {
|
|
46
|
+
return preset.label === values[0];
|
|
47
|
+
}).value);
|
|
48
|
+
},
|
|
49
|
+
children: presets.map(function (preset, index) {
|
|
50
|
+
return /*#__PURE__*/jsx(Chip, {
|
|
51
|
+
value: preset.label,
|
|
52
|
+
children: preset.label
|
|
53
|
+
}, index);
|
|
54
|
+
})
|
|
55
|
+
})]
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
return /*#__PURE__*/jsx(BaseBox, _objectSpread(_objectSpread({
|
|
59
|
+
padding: "spacing.5",
|
|
60
|
+
display: "flex",
|
|
61
|
+
flexDirection: "column",
|
|
62
|
+
gap: "spacing.2",
|
|
63
|
+
backgroundColor: "surface.background.gray.moderate",
|
|
64
|
+
minWidth: makeSpace(size[160]),
|
|
65
|
+
borderRightColor: "surface.border.gray.muted",
|
|
66
|
+
borderRightStyle: "solid",
|
|
67
|
+
borderRightWidth: "thin"
|
|
68
|
+
}, makeAccessible({
|
|
69
|
+
role: 'listbox',
|
|
70
|
+
label: 'Select Presets'
|
|
71
|
+
})), {}, {
|
|
72
|
+
children: presets.map(function (preset, index) {
|
|
73
|
+
var isSelected = isSamePreset(selectedPreset, preset.value(date));
|
|
74
|
+
return /*#__PURE__*/jsx(QuickSelectionItem, {
|
|
75
|
+
isSelected: isSelected,
|
|
76
|
+
onClick: function onClick() {
|
|
77
|
+
return onSelection(preset.value);
|
|
78
|
+
},
|
|
79
|
+
children: preset.label
|
|
80
|
+
}, index);
|
|
81
|
+
})
|
|
82
|
+
}));
|
|
83
|
+
};
|
|
84
|
+
|
|
85
|
+
export { PresetSideBar };
|
|
86
|
+
//# sourceMappingURL=PresetSideBar.web.js.map
|
package/build/lib/web/development/components/DatePicker/QuickSelection/PresetSideBar.web.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PresetSideBar.web.js","sources":["../../../../../../../src/components/DatePicker/QuickSelection/PresetSideBar.web.tsx"],"sourcesContent":["import type { CalendarProps, DatesRangeValue } from '../types';\nimport { QuickSelectionItem } from './QuickSelectionItem.web';\nimport { Box } from '~components/Box';\nimport { makeSpace } from '~utils';\nimport { Chip, ChipGroup } from '~components/Chip';\nimport { Divider } from '~components/Divider';\nimport BaseBox from '~components/Box/BaseBox';\nimport { makeAccessible } from '~utils/makeAccessible';\nimport { size } from '~tokens/global';\n\nconst isSamePreset = (value1: DatesRangeValue | null, value2: DatesRangeValue | null): boolean => {\n if (!value1?.[0] || !value1?.[1]) return false;\n if (!value2?.[0] || !value2?.[1]) return false;\n\n return (\n value1[0].toDateString() === value2[0].toDateString() &&\n value1[1].toDateString() === value2[1].toDateString()\n );\n};\n\ntype PresetSideBarProps = {\n isMobile?: boolean;\n date: Date;\n presets: CalendarProps<'single'>['presets'];\n onSelection: (value: (date: Date) => DatesRangeValue) => void;\n selectedPreset: DatesRangeValue | null;\n};\n\nconst PresetSideBar = ({\n date,\n presets,\n selectedPreset,\n onSelection,\n isMobile,\n}: PresetSideBarProps): React.ReactElement => {\n if (!presets) return <></>;\n\n if (isMobile) {\n return (\n <Box>\n <Divider marginTop=\"spacing.4\" />\n <ChipGroup\n marginTop=\"spacing.7\"\n size=\"small\"\n selectionType=\"single\"\n accessibilityLabel=\"Select Presets\"\n onChange={({ values }) => {\n onSelection(presets.find((preset) => preset.label === values[0])!.value);\n }}\n >\n {presets.map((preset, index) => {\n return (\n <Chip value={preset.label} key={index}>\n {preset.label}\n </Chip>\n );\n })}\n </ChipGroup>\n </Box>\n );\n }\n\n return (\n <BaseBox\n padding=\"spacing.5\"\n display=\"flex\"\n flexDirection=\"column\"\n gap=\"spacing.2\"\n backgroundColor=\"surface.background.gray.moderate\"\n minWidth={makeSpace(size[160])}\n borderRightColor=\"surface.border.gray.muted\"\n borderRightStyle=\"solid\"\n borderRightWidth=\"thin\"\n {...makeAccessible({ role: 'listbox', label: 'Select Presets' })}\n >\n {presets.map((preset, index) => {\n const isSelected = isSamePreset(selectedPreset, preset.value(date));\n return (\n <QuickSelectionItem\n key={index}\n isSelected={isSelected}\n onClick={() => onSelection(preset.value)}\n >\n {preset.label}\n </QuickSelectionItem>\n );\n })}\n </BaseBox>\n );\n};\n\nexport { PresetSideBar };\n"],"names":["isSamePreset","value1","value2","toDateString","PresetSideBar","_ref","date","presets","selectedPreset","onSelection","isMobile","_jsx","_Fragment","_jsxs","Box","children","Divider","marginTop","ChipGroup","size","selectionType","accessibilityLabel","onChange","_ref2","values","find","preset","label","value","map","index","Chip","BaseBox","_objectSpread","padding","display","flexDirection","gap","backgroundColor","minWidth","makeSpace","borderRightColor","borderRightStyle","borderRightWidth","makeAccessible","role","isSelected","QuickSelectionItem","onClick"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAUA,IAAMA,YAAY,GAAG,SAAfA,YAAYA,CAAIC,MAA8B,EAAEC,MAA8B,EAAc;EAChG,IAAI,EAACD,MAAM,KAANA,IAAAA,IAAAA,MAAM,eAANA,MAAM,CAAG,CAAC,CAAC,CAAA,IAAI,EAACA,MAAM,KAAA,IAAA,IAANA,MAAM,KAANA,KAAAA,CAAAA,IAAAA,MAAM,CAAG,CAAC,CAAC,CAAE,EAAA,OAAO,KAAK,CAAA;EAC9C,IAAI,EAACC,MAAM,KAANA,IAAAA,IAAAA,MAAM,eAANA,MAAM,CAAG,CAAC,CAAC,CAAA,IAAI,EAACA,MAAM,KAAA,IAAA,IAANA,MAAM,KAANA,KAAAA,CAAAA,IAAAA,MAAM,CAAG,CAAC,CAAC,CAAE,EAAA,OAAO,KAAK,CAAA;AAE9C,EAAA,OACED,MAAM,CAAC,CAAC,CAAC,CAACE,YAAY,EAAE,KAAKD,MAAM,CAAC,CAAC,CAAC,CAACC,YAAY,EAAE,IACrDF,MAAM,CAAC,CAAC,CAAC,CAACE,YAAY,EAAE,KAAKD,MAAM,CAAC,CAAC,CAAC,CAACC,YAAY,EAAE,CAAA;AAEzD,CAAC,CAAA;AAUD,IAAMC,aAAa,GAAG,SAAhBA,aAAaA,CAAAC,IAAA,EAM2B;AAAA,EAAA,IAL5CC,IAAI,GAAAD,IAAA,CAAJC,IAAI;IACJC,OAAO,GAAAF,IAAA,CAAPE,OAAO;IACPC,cAAc,GAAAH,IAAA,CAAdG,cAAc;IACdC,WAAW,GAAAJ,IAAA,CAAXI,WAAW;IACXC,QAAQ,GAAAL,IAAA,CAARK,QAAQ,CAAA;EAER,IAAI,CAACH,OAAO,EAAE,oBAAOI,GAAA,CAAAC,QAAA,IAAI,CAAC,CAAA;AAE1B,EAAA,IAAIF,QAAQ,EAAE;IACZ,oBACEG,IAAA,CAACC,GAAG,EAAA;MAAAC,QAAA,EAAA,cACFJ,GAAA,CAACK,OAAO,EAAA;AAACC,QAAAA,SAAS,EAAC,WAAA;AAAW,OAAE,CAAC,eACjCN,GAAA,CAACO,SAAS,EAAA;AACRD,QAAAA,SAAS,EAAC,WAAW;AACrBE,QAAAA,IAAI,EAAC,OAAO;AACZC,QAAAA,aAAa,EAAC,QAAQ;AACtBC,QAAAA,kBAAkB,EAAC,gBAAgB;AACnCC,QAAAA,QAAQ,EAAE,SAAAA,QAAAC,CAAAA,KAAA,EAAgB;AAAA,UAAA,IAAbC,MAAM,GAAAD,KAAA,CAANC,MAAM,CAAA;AACjBf,UAAAA,WAAW,CAACF,OAAO,CAACkB,IAAI,CAAC,UAACC,MAAM,EAAA;AAAA,YAAA,OAAKA,MAAM,CAACC,KAAK,KAAKH,MAAM,CAAC,CAAC,CAAC,CAAA;WAAC,CAAA,CAAEI,KAAK,CAAC,CAAA;SACxE;QAAAb,QAAA,EAEDR,OAAO,CAACsB,GAAG,CAAC,UAACH,MAAM,EAAEI,KAAK,EAAK;UAC9B,oBACEnB,GAAA,CAACoB,IAAI,EAAA;YAACH,KAAK,EAAEF,MAAM,CAACC,KAAM;YAAAZ,QAAA,EACvBW,MAAM,CAACC,KAAAA;AAAK,WAAA,EADiBG,KAE1B,CAAC,CAAA;SAEV,CAAA;AAAC,OACO,CAAC,CAAA;AAAA,KACT,CAAC,CAAA;AAEV,GAAA;AAEA,EAAA,oBACEnB,GAAA,CAACqB,OAAO,EAAAC,aAAA,CAAAA,aAAA,CAAA;AACNC,IAAAA,OAAO,EAAC,WAAW;AACnBC,IAAAA,OAAO,EAAC,MAAM;AACdC,IAAAA,aAAa,EAAC,QAAQ;AACtBC,IAAAA,GAAG,EAAC,WAAW;AACfC,IAAAA,eAAe,EAAC,kCAAkC;AAClDC,IAAAA,QAAQ,EAAEC,SAAS,CAACrB,IAAI,CAAC,GAAG,CAAC,CAAE;AAC/BsB,IAAAA,gBAAgB,EAAC,2BAA2B;AAC5CC,IAAAA,gBAAgB,EAAC,OAAO;AACxBC,IAAAA,gBAAgB,EAAC,MAAA;AAAM,GAAA,EACnBC,cAAc,CAAC;AAAEC,IAAAA,IAAI,EAAE,SAAS;AAAElB,IAAAA,KAAK,EAAE,gBAAA;AAAiB,GAAC,CAAC,CAAA,EAAA,EAAA,EAAA;IAAAZ,QAAA,EAE/DR,OAAO,CAACsB,GAAG,CAAC,UAACH,MAAM,EAAEI,KAAK,EAAK;AAC9B,MAAA,IAAMgB,UAAU,GAAG9C,YAAY,CAACQ,cAAc,EAAEkB,MAAM,CAACE,KAAK,CAACtB,IAAI,CAAC,CAAC,CAAA;MACnE,oBACEK,GAAA,CAACoC,kBAAkB,EAAA;AAEjBD,QAAAA,UAAU,EAAEA,UAAW;QACvBE,OAAO,EAAE,SAAAA,OAAA,GAAA;AAAA,UAAA,OAAMvC,WAAW,CAACiB,MAAM,CAACE,KAAK,CAAC,CAAA;SAAC;QAAAb,QAAA,EAExCW,MAAM,CAACC,KAAAA;AAAK,OAAA,EAJRG,KAKa,CAAC,CAAA;KAExB,CAAA;AAAC,GAAA,CACK,CAAC,CAAA;AAEd;;;;"}
|
package/build/lib/web/development/components/DatePicker/QuickSelection/QuickSelectionItem.web.js
ADDED
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import _defineProperty from '@babel/runtime/helpers/defineProperty';
|
|
2
|
+
import { StyledActionListItem } from '../../ActionList/styles/StyledActionListItem.web.js';
|
|
3
|
+
import '../../Typography/index.js';
|
|
4
|
+
import '../../../utils/index.js';
|
|
5
|
+
import '../../../utils/makeAccessible/index.js';
|
|
6
|
+
import { useIsMobile } from '../../../utils/useIsMobile.js';
|
|
7
|
+
import { jsx } from 'react/jsx-runtime';
|
|
8
|
+
import { isReactNative } from '../../../utils/platform/isReactNative.js';
|
|
9
|
+
import { makeAccessible } from '../../../utils/makeAccessible/makeAccessible.web.js';
|
|
10
|
+
import { Text } from '../../Typography/Text/Text.js';
|
|
11
|
+
|
|
12
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
13
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
14
|
+
var QuickSelectionItem = function QuickSelectionItem(_ref) {
|
|
15
|
+
var children = _ref.children,
|
|
16
|
+
onClick = _ref.onClick,
|
|
17
|
+
isSelected = _ref.isSelected;
|
|
18
|
+
var isMobile = useIsMobile();
|
|
19
|
+
return /*#__PURE__*/jsx(StyledActionListItem, _objectSpread(_objectSpread({
|
|
20
|
+
as: !isReactNative() ? 'button' : undefined,
|
|
21
|
+
selectionType: "single",
|
|
22
|
+
hasDescription: true,
|
|
23
|
+
isMobile: isMobile,
|
|
24
|
+
isKeydownPressed: false,
|
|
25
|
+
isSelected: isSelected,
|
|
26
|
+
onClick: onClick,
|
|
27
|
+
isVisible: true
|
|
28
|
+
}, makeAccessible({
|
|
29
|
+
selected: isSelected,
|
|
30
|
+
current: true,
|
|
31
|
+
role: 'option'
|
|
32
|
+
})), {}, {
|
|
33
|
+
children: /*#__PURE__*/jsx(Text, {
|
|
34
|
+
size: "small",
|
|
35
|
+
weight: "medium",
|
|
36
|
+
color: "interactive.text.gray.normal",
|
|
37
|
+
children: children
|
|
38
|
+
})
|
|
39
|
+
}));
|
|
40
|
+
};
|
|
41
|
+
|
|
42
|
+
export { QuickSelectionItem };
|
|
43
|
+
//# sourceMappingURL=QuickSelectionItem.web.js.map
|
package/build/lib/web/development/components/DatePicker/QuickSelection/QuickSelectionItem.web.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"QuickSelectionItem.web.js","sources":["../../../../../../../src/components/DatePicker/QuickSelection/QuickSelectionItem.web.tsx"],"sourcesContent":["import { StyledActionListItem } from '~components/ActionList/styles/StyledActionListItem';\nimport { Text } from '~components/Typography';\nimport { isReactNative } from '~utils';\nimport { makeAccessible } from '~utils/makeAccessible';\nimport { useIsMobile } from '~utils/useIsMobile';\n\ntype QuickSelectionItemProps = {\n children: React.ReactNode;\n isSelected: boolean;\n onClick?: React.MouseEventHandler<HTMLButtonElement>;\n};\nconst QuickSelectionItem = ({\n children,\n onClick,\n isSelected,\n}: QuickSelectionItemProps): React.ReactElement => {\n const isMobile = useIsMobile();\n return (\n <StyledActionListItem\n as={!isReactNative() ? 'button' : undefined}\n selectionType=\"single\"\n hasDescription={true}\n isMobile={isMobile}\n isKeydownPressed={false}\n isSelected={isSelected}\n onClick={onClick}\n isVisible\n {...makeAccessible({\n selected: isSelected,\n current: true,\n role: 'option',\n })}\n >\n <Text size=\"small\" weight=\"medium\" color=\"interactive.text.gray.normal\">\n {children}\n </Text>\n </StyledActionListItem>\n );\n};\n\nexport { QuickSelectionItem };\n"],"names":["QuickSelectionItem","_ref","children","onClick","isSelected","isMobile","useIsMobile","_jsx","StyledActionListItem","_objectSpread","as","isReactNative","undefined","selectionType","hasDescription","isKeydownPressed","isVisible","makeAccessible","selected","current","role","Text","size","weight","color"],"mappings":";;;;;;;;;;;;;AAWA,IAAMA,kBAAkB,GAAG,SAArBA,kBAAkBA,CAAAC,IAAA,EAI2B;AAAA,EAAA,IAHjDC,QAAQ,GAAAD,IAAA,CAARC,QAAQ;IACRC,OAAO,GAAAF,IAAA,CAAPE,OAAO;IACPC,UAAU,GAAAH,IAAA,CAAVG,UAAU,CAAA;AAEV,EAAA,IAAMC,QAAQ,GAAGC,WAAW,EAAE,CAAA;AAC9B,EAAA,oBACEC,GAAA,CAACC,oBAAoB,EAAAC,aAAA,CAAAA,aAAA,CAAA;IACnBC,EAAE,EAAE,CAACC,aAAa,EAAE,GAAG,QAAQ,GAAGC,SAAU;AAC5CC,IAAAA,aAAa,EAAC,QAAQ;AACtBC,IAAAA,cAAc,EAAE,IAAK;AACrBT,IAAAA,QAAQ,EAAEA,QAAS;AACnBU,IAAAA,gBAAgB,EAAE,KAAM;AACxBX,IAAAA,UAAU,EAAEA,UAAW;AACvBD,IAAAA,OAAO,EAAEA,OAAQ;IACjBa,SAAS,EAAA,IAAA;AAAA,GAAA,EACLC,cAAc,CAAC;AACjBC,IAAAA,QAAQ,EAAEd,UAAU;AACpBe,IAAAA,OAAO,EAAE,IAAI;AACbC,IAAAA,IAAI,EAAE,QAAA;AACR,GAAC,CAAC,CAAA,EAAA,EAAA,EAAA;IAAAlB,QAAA,eAEFK,GAAA,CAACc,IAAI,EAAA;AAACC,MAAAA,IAAI,EAAC,OAAO;AAACC,MAAAA,MAAM,EAAC,QAAQ;AAACC,MAAAA,KAAK,EAAC,8BAA8B;AAAAtB,MAAAA,QAAA,EACpEA,QAAAA;KACG,CAAA;AAAC,GAAA,CACa,CAAC,CAAA;AAE3B;;;;"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
var classes = {
|
|
2
|
+
levelsGroup: 'DatePicker-levelsGroup',
|
|
3
|
+
dayCell: 'DatePicker-cell',
|
|
4
|
+
monthsListControl: 'DatePicker-cell',
|
|
5
|
+
yearsListControl: 'DatePicker-cell',
|
|
6
|
+
calendarHeader: 'DatePicker-header',
|
|
7
|
+
row: 'DatePicker-row',
|
|
8
|
+
weekday: 'DatePicker-weekday'
|
|
9
|
+
};
|
|
10
|
+
var pickerToLevel = {
|
|
11
|
+
day: 'month',
|
|
12
|
+
month: 'year',
|
|
13
|
+
year: 'decade'
|
|
14
|
+
};
|
|
15
|
+
var levelToPicker = {
|
|
16
|
+
month: 'day',
|
|
17
|
+
year: 'month',
|
|
18
|
+
decade: 'year'
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
export { classes, levelToPicker, pickerToLevel };
|
|
22
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sources":["../../../../../../src/components/DatePicker/constants.ts"],"sourcesContent":["const classes = {\n levelsGroup: 'DatePicker-levelsGroup',\n dayCell: 'DatePicker-cell',\n monthsListControl: 'DatePicker-cell',\n yearsListControl: 'DatePicker-cell',\n calendarHeader: 'DatePicker-header',\n row: 'DatePicker-row',\n weekday: 'DatePicker-weekday',\n} as const;\n\nconst pickerToLevel = {\n day: 'month',\n month: 'year',\n year: 'decade',\n} as const;\n\nconst levelToPicker = {\n month: 'day',\n year: 'month',\n decade: 'year',\n} as const;\n\nexport { levelToPicker, pickerToLevel, classes };\n"],"names":["classes","levelsGroup","dayCell","monthsListControl","yearsListControl","calendarHeader","row","weekday","pickerToLevel","day","month","year","levelToPicker","decade"],"mappings":"AAAA,IAAMA,OAAO,GAAG;AACdC,EAAAA,WAAW,EAAE,wBAAwB;AACrCC,EAAAA,OAAO,EAAE,iBAAiB;AAC1BC,EAAAA,iBAAiB,EAAE,iBAAiB;AACpCC,EAAAA,gBAAgB,EAAE,iBAAiB;AACnCC,EAAAA,cAAc,EAAE,mBAAmB;AACnCC,EAAAA,GAAG,EAAE,gBAAgB;AACrBC,EAAAA,OAAO,EAAE,oBAAA;AACX,EAAU;AAEV,IAAMC,aAAa,GAAG;AACpBC,EAAAA,GAAG,EAAE,OAAO;AACZC,EAAAA,KAAK,EAAE,MAAM;AACbC,EAAAA,IAAI,EAAE,QAAA;AACR,EAAU;AAEV,IAAMC,aAAa,GAAG;AACpBF,EAAAA,KAAK,EAAE,KAAK;AACZC,EAAAA,IAAI,EAAE,OAAO;AACbE,EAAAA,MAAM,EAAE,MAAA;AACV;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
|
|
2
|
+
import { useRef } from 'react';
|
|
3
|
+
import { useUncontrolled } from '@mantine/hooks';
|
|
4
|
+
import { useDatesContext, shiftTimezone } from '@mantine/dates';
|
|
5
|
+
import '../../utils/logger/index.js';
|
|
6
|
+
import { throwBladeError } from '../../utils/logger/logger.js';
|
|
7
|
+
|
|
8
|
+
var getEmptyValue = function getEmptyValue(type) {
|
|
9
|
+
return type === 'range' ? [null, null] : type === 'multiple' ? [] : null;
|
|
10
|
+
};
|
|
11
|
+
function useUncontrolledDates(_ref) {
|
|
12
|
+
var type = _ref.type,
|
|
13
|
+
value = _ref.value,
|
|
14
|
+
defaultValue = _ref.defaultValue,
|
|
15
|
+
_onChange = _ref.onChange,
|
|
16
|
+
_ref$applyTimezone = _ref.applyTimezone,
|
|
17
|
+
applyTimezone = _ref$applyTimezone === void 0 ? true : _ref$applyTimezone;
|
|
18
|
+
var storedType = useRef(type);
|
|
19
|
+
var ctx = useDatesContext();
|
|
20
|
+
var _useUncontrolled = useUncontrolled({
|
|
21
|
+
value: shiftTimezone('add', value, ctx.getTimezone(), !applyTimezone),
|
|
22
|
+
defaultValue: shiftTimezone('add', defaultValue, ctx.getTimezone(), !applyTimezone),
|
|
23
|
+
finalValue: getEmptyValue(type),
|
|
24
|
+
onChange: function onChange(newDate) {
|
|
25
|
+
_onChange === null || _onChange === void 0 ? void 0 : _onChange(shiftTimezone('remove', newDate, ctx.getTimezone(), !applyTimezone));
|
|
26
|
+
}
|
|
27
|
+
}),
|
|
28
|
+
_useUncontrolled2 = _slicedToArray(_useUncontrolled, 3),
|
|
29
|
+
_value = _useUncontrolled2[0],
|
|
30
|
+
_setValue = _useUncontrolled2[1],
|
|
31
|
+
controlled = _useUncontrolled2[2];
|
|
32
|
+
var _finalValue = _value;
|
|
33
|
+
if (storedType.current !== type) {
|
|
34
|
+
// Type has changed. Do some checks or resets
|
|
35
|
+
|
|
36
|
+
storedType.current = type;
|
|
37
|
+
if (value === undefined) {
|
|
38
|
+
// Reset uncontrolled value as types aren't compatible
|
|
39
|
+
_finalValue = defaultValue !== undefined ? defaultValue : getEmptyValue(type);
|
|
40
|
+
_setValue(_finalValue);
|
|
41
|
+
} else if (true) {
|
|
42
|
+
// Throw errors in dev mode in case type of value isn't correct
|
|
43
|
+
switch (type) {
|
|
44
|
+
case 'default':
|
|
45
|
+
if (value !== null && typeof value !== 'string') {
|
|
46
|
+
throwBladeError({
|
|
47
|
+
message: 'Value must be type of `null` or `string`',
|
|
48
|
+
moduleName: 'useControlledDates'
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
break;
|
|
52
|
+
case 'multiple':
|
|
53
|
+
if (!(value instanceof Array)) {
|
|
54
|
+
throwBladeError({
|
|
55
|
+
message: 'Value must be type of `string[]`',
|
|
56
|
+
moduleName: 'useControlledDates'
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
break;
|
|
60
|
+
case 'range':
|
|
61
|
+
if (!(value instanceof Array) || value.length !== 2) {
|
|
62
|
+
throwBladeError({
|
|
63
|
+
message: 'Value must be type of `[string, string]`',
|
|
64
|
+
moduleName: 'useControlledDates'
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
break;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
return [_finalValue, _setValue, controlled];
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
export { useUncontrolledDates };
|
|
75
|
+
//# sourceMappingURL=useControlledDates.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useControlledDates.js","sources":["../../../../../../src/components/DatePicker/useControlledDates.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable default-case */\n/* eslint-disable @typescript-eslint/explicit-function-return-type */\nimport { useRef } from 'react';\nimport { useUncontrolled } from '@mantine/hooks';\nimport type { DatePickerType, DatePickerValue } from '@mantine/dates';\nimport { shiftTimezone, useDatesContext } from '@mantine/dates';\nimport { throwBladeError } from '~utils/logger';\n\ninterface UseUncontrolledDates<Type extends DatePickerType = 'default'> {\n type: Type;\n value: DatePickerValue<Type> | undefined;\n defaultValue: DatePickerValue<Type> | undefined;\n onChange: ((value: DatePickerValue<Type>) => void) | undefined;\n applyTimezone?: boolean;\n}\n\nconst getEmptyValue = <Type extends DatePickerType = 'default'>(type: Type) =>\n type === 'range' ? [null, null] : type === 'multiple' ? [] : null;\n\nfunction useUncontrolledDates<Type extends DatePickerType = 'default'>({\n type,\n value,\n defaultValue,\n onChange,\n applyTimezone = true,\n}: UseUncontrolledDates<Type>) {\n const storedType = useRef<Type>(type);\n const ctx = useDatesContext();\n const [_value, _setValue, controlled] = useUncontrolled<any>({\n value: shiftTimezone('add', value, ctx.getTimezone(), !applyTimezone),\n defaultValue: shiftTimezone('add', defaultValue, ctx.getTimezone(), !applyTimezone),\n finalValue: getEmptyValue(type),\n onChange: (newDate) => {\n onChange?.(shiftTimezone('remove', newDate, ctx.getTimezone(), !applyTimezone));\n },\n });\n\n let _finalValue = _value;\n\n if (storedType.current !== type) {\n // Type has changed. Do some checks or resets\n\n storedType.current = type;\n if (value === undefined) {\n // Reset uncontrolled value as types aren't compatible\n _finalValue = defaultValue !== undefined ? defaultValue : getEmptyValue(type);\n _setValue(_finalValue);\n } else if (__DEV__) {\n // Throw errors in dev mode in case type of value isn't correct\n switch (type) {\n case 'default':\n if (value !== null && typeof value !== 'string') {\n throwBladeError({\n message: 'Value must be type of `null` or `string`',\n moduleName: 'useControlledDates',\n });\n }\n break;\n case 'multiple':\n if (!(value instanceof Array)) {\n throwBladeError({\n message: 'Value must be type of `string[]`',\n moduleName: 'useControlledDates',\n });\n }\n break;\n case 'range':\n if (!(value instanceof Array) || value.length !== 2) {\n throwBladeError({\n message: 'Value must be type of `[string, string]`',\n moduleName: 'useControlledDates',\n });\n }\n break;\n }\n }\n }\n\n return [_finalValue, _setValue, controlled];\n}\n\nexport { useUncontrolledDates };\n"],"names":["getEmptyValue","type","useUncontrolledDates","_ref","value","defaultValue","onChange","_ref$applyTimezone","applyTimezone","storedType","useRef","ctx","useDatesContext","_useUncontrolled","useUncontrolled","shiftTimezone","getTimezone","finalValue","newDate","_useUncontrolled2","_slicedToArray","_value","_setValue","controlled","_finalValue","current","undefined","throwBladeError","message","moduleName","Array","length"],"mappings":"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"}
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
|
|
2
|
+
import _toConsumableArray from '@babel/runtime/helpers/toConsumableArray';
|
|
3
|
+
import dayjs from 'dayjs';
|
|
4
|
+
import { useState, useEffect } from 'react';
|
|
5
|
+
import { useUncontrolledDates } from './useControlledDates.js';
|
|
6
|
+
|
|
7
|
+
function isInRange(date, range) {
|
|
8
|
+
var _range = _toConsumableArray(range).sort(function (a, b) {
|
|
9
|
+
return a.getTime() - b.getTime();
|
|
10
|
+
});
|
|
11
|
+
return dayjs(_range[0]).startOf('day').subtract(1, 'ms').isBefore(date) && dayjs(_range[1]).endOf('day').add(1, 'ms').isAfter(date);
|
|
12
|
+
}
|
|
13
|
+
function useDatesState(_ref) {
|
|
14
|
+
var type = _ref.type,
|
|
15
|
+
level = _ref.level,
|
|
16
|
+
value = _ref.value,
|
|
17
|
+
defaultValue = _ref.defaultValue,
|
|
18
|
+
onChange = _ref.onChange,
|
|
19
|
+
allowSingleDateInRange = _ref.allowSingleDateInRange,
|
|
20
|
+
allowDeselect = _ref.allowDeselect,
|
|
21
|
+
onMouseLeave = _ref.onMouseLeave,
|
|
22
|
+
_ref$applyTimezone = _ref.applyTimezone,
|
|
23
|
+
applyTimezone = _ref$applyTimezone === void 0 ? true : _ref$applyTimezone;
|
|
24
|
+
var _useUncontrolledDates = useUncontrolledDates({
|
|
25
|
+
type: type,
|
|
26
|
+
value: value,
|
|
27
|
+
defaultValue: defaultValue,
|
|
28
|
+
onChange: onChange,
|
|
29
|
+
applyTimezone: applyTimezone
|
|
30
|
+
}),
|
|
31
|
+
_useUncontrolledDates2 = _slicedToArray(_useUncontrolledDates, 2),
|
|
32
|
+
_value = _useUncontrolledDates2[0],
|
|
33
|
+
setValue = _useUncontrolledDates2[1];
|
|
34
|
+
var _useState = useState(type === 'range' ? _value[0] && !_value[1] ? _value[0] : null : null),
|
|
35
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
36
|
+
pickedDate = _useState2[0],
|
|
37
|
+
setPickedDate = _useState2[1];
|
|
38
|
+
var _useState3 = useState(null),
|
|
39
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
40
|
+
hoveredDate = _useState4[0],
|
|
41
|
+
setHoveredDate = _useState4[1];
|
|
42
|
+
var onDateChange = function onDateChange(date) {
|
|
43
|
+
if (type === 'range') {
|
|
44
|
+
if (pickedDate instanceof Date && !_value[1]) {
|
|
45
|
+
if (dayjs(date).isSame(pickedDate, level) && !allowSingleDateInRange) {
|
|
46
|
+
setPickedDate(null);
|
|
47
|
+
setHoveredDate(null);
|
|
48
|
+
setValue([null, null]);
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
var result = [date, pickedDate];
|
|
52
|
+
result.sort(function (a, b) {
|
|
53
|
+
return a.getTime() - b.getTime();
|
|
54
|
+
});
|
|
55
|
+
setValue(result);
|
|
56
|
+
setHoveredDate(null);
|
|
57
|
+
setPickedDate(null);
|
|
58
|
+
return;
|
|
59
|
+
}
|
|
60
|
+
if (_value[0] && !_value[1] && dayjs(date).isSame(_value[0], level) && !allowSingleDateInRange) {
|
|
61
|
+
setPickedDate(null);
|
|
62
|
+
setHoveredDate(null);
|
|
63
|
+
setValue([null, null]);
|
|
64
|
+
return;
|
|
65
|
+
}
|
|
66
|
+
setValue([date, null]);
|
|
67
|
+
setHoveredDate(null);
|
|
68
|
+
setPickedDate(date);
|
|
69
|
+
return;
|
|
70
|
+
}
|
|
71
|
+
if (_value && allowDeselect && dayjs(date).isSame(_value, level)) {
|
|
72
|
+
setValue(null);
|
|
73
|
+
} else {
|
|
74
|
+
setValue(date);
|
|
75
|
+
}
|
|
76
|
+
};
|
|
77
|
+
var isDateInRange = function isDateInRange(date) {
|
|
78
|
+
if (pickedDate instanceof Date && hoveredDate instanceof Date) {
|
|
79
|
+
return isInRange(date, [hoveredDate, pickedDate]);
|
|
80
|
+
}
|
|
81
|
+
if (_value[0] instanceof Date && _value[1] instanceof Date) {
|
|
82
|
+
return isInRange(date, _value);
|
|
83
|
+
}
|
|
84
|
+
return false;
|
|
85
|
+
};
|
|
86
|
+
var onRootMouseLeave = type === 'range' ? function (event) {
|
|
87
|
+
onMouseLeave === null || onMouseLeave === void 0 ? void 0 : onMouseLeave(event);
|
|
88
|
+
setHoveredDate(null);
|
|
89
|
+
} : onMouseLeave;
|
|
90
|
+
var isFirstInRange = function isFirstInRange(date) {
|
|
91
|
+
if (!(_value[0] instanceof Date)) {
|
|
92
|
+
return false;
|
|
93
|
+
}
|
|
94
|
+
if (dayjs(date).isSame(_value[0], level)) {
|
|
95
|
+
return !(hoveredDate && dayjs(hoveredDate).isBefore(_value[0]));
|
|
96
|
+
}
|
|
97
|
+
return false;
|
|
98
|
+
};
|
|
99
|
+
var isLastInRange = function isLastInRange(date) {
|
|
100
|
+
if (_value[1] instanceof Date) {
|
|
101
|
+
return dayjs(date).isSame(_value[1], level);
|
|
102
|
+
}
|
|
103
|
+
if (!(_value[0] instanceof Date) || !hoveredDate) {
|
|
104
|
+
return false;
|
|
105
|
+
}
|
|
106
|
+
return dayjs(hoveredDate).isBefore(_value[0]) && dayjs(date).isSame(_value[0], level);
|
|
107
|
+
};
|
|
108
|
+
var getControlProps = function getControlProps(date) {
|
|
109
|
+
if (type === 'range') {
|
|
110
|
+
return {
|
|
111
|
+
selected: _value.some(function (selection) {
|
|
112
|
+
return selection && dayjs(selection).isSame(date, level);
|
|
113
|
+
}),
|
|
114
|
+
inRange: isDateInRange(date),
|
|
115
|
+
firstInRange: isFirstInRange(date),
|
|
116
|
+
lastInRange: isLastInRange(date),
|
|
117
|
+
'data-autofocus': !!_value[0] && dayjs(_value[0]).isSame(date, level) || undefined,
|
|
118
|
+
'data-celltype': level,
|
|
119
|
+
'data-date': "".concat(date.getMonth(), "-").concat(date.getDate())
|
|
120
|
+
};
|
|
121
|
+
}
|
|
122
|
+
var selected = dayjs(_value).isSame(date, level);
|
|
123
|
+
return {
|
|
124
|
+
selected: selected,
|
|
125
|
+
'data-autofocus': selected || undefined,
|
|
126
|
+
'data-celltype': level,
|
|
127
|
+
'data-date': "".concat(date.getMonth(), "-").concat(date.getDate())
|
|
128
|
+
};
|
|
129
|
+
};
|
|
130
|
+
var onHoveredDateChange = type === 'range' && pickedDate ? setHoveredDate : function () {};
|
|
131
|
+
useEffect(function () {
|
|
132
|
+
if (type === 'range' && !_value[0] && !_value[1]) {
|
|
133
|
+
setPickedDate(null);
|
|
134
|
+
}
|
|
135
|
+
}, [value]);
|
|
136
|
+
return {
|
|
137
|
+
onDateChange: onDateChange,
|
|
138
|
+
onRootMouseLeave: onRootMouseLeave,
|
|
139
|
+
onHoveredDateChange: onHoveredDateChange,
|
|
140
|
+
getControlProps: getControlProps,
|
|
141
|
+
setPickedDate: setPickedDate,
|
|
142
|
+
pickedDate: pickedDate,
|
|
143
|
+
controlledValue: _value,
|
|
144
|
+
setControlledValue: setValue
|
|
145
|
+
};
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
export { useDatesState };
|
|
149
|
+
//# sourceMappingURL=useDatesState.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useDatesState.js","sources":["../../../../../../src/components/DatePicker/useDatesState.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-empty-function */\n/* eslint-disable @typescript-eslint/explicit-function-return-type */\nimport type { DatePickerType, PickerBaseProps } from '@mantine/dates';\nimport dayjs from 'dayjs';\nimport { useEffect, useState } from 'react';\nimport { useUncontrolledDates } from './useControlledDates';\n\ninterface UseDatesRangeInput<Type extends DatePickerType = 'default'>\n extends PickerBaseProps<Type> {\n level: 'year' | 'month' | 'day';\n type: Type;\n onMouseLeave?: (event: React.MouseEvent<HTMLDivElement>) => void;\n applyTimezone?: boolean;\n}\n\nfunction isInRange(date: Date, range: [Date, Date]) {\n const _range = [...range].sort((a, b) => a.getTime() - b.getTime());\n return (\n dayjs(_range[0]).startOf('day').subtract(1, 'ms').isBefore(date) &&\n dayjs(_range[1]).endOf('day').add(1, 'ms').isAfter(date)\n );\n}\n\nexport function useDatesState<Type extends DatePickerType = 'default'>({\n type,\n level,\n value,\n defaultValue,\n onChange,\n allowSingleDateInRange,\n allowDeselect,\n onMouseLeave,\n applyTimezone = true,\n}: UseDatesRangeInput<Type>) {\n const [_value, setValue] = useUncontrolledDates({\n type,\n value,\n defaultValue,\n onChange,\n applyTimezone,\n });\n\n const [pickedDate, setPickedDate] = useState<Date | null>(\n type === 'range' ? (_value[0] && !_value[1] ? _value[0] : null) : null,\n );\n const [hoveredDate, setHoveredDate] = useState<Date | null>(null);\n\n const onDateChange = (date: Date) => {\n if (type === 'range') {\n if (pickedDate instanceof Date && !_value[1]) {\n if (dayjs(date).isSame(pickedDate, level) && !allowSingleDateInRange) {\n setPickedDate(null);\n setHoveredDate(null);\n setValue([null, null]);\n return;\n }\n\n const result: [Date, Date] = [date, pickedDate];\n result.sort((a, b) => a.getTime() - b.getTime());\n setValue(result);\n setHoveredDate(null);\n setPickedDate(null);\n return;\n }\n\n if (\n _value[0] &&\n !_value[1] &&\n dayjs(date).isSame(_value[0], level) &&\n !allowSingleDateInRange\n ) {\n setPickedDate(null);\n setHoveredDate(null);\n setValue([null, null]);\n return;\n }\n\n setValue([date, null]);\n setHoveredDate(null);\n setPickedDate(date);\n return;\n }\n\n if (_value && allowDeselect && dayjs(date).isSame(_value, level)) {\n setValue(null);\n } else {\n setValue(date);\n }\n };\n\n const isDateInRange = (date: Date) => {\n if (pickedDate instanceof Date && hoveredDate instanceof Date) {\n return isInRange(date, [hoveredDate, pickedDate]);\n }\n\n if (_value[0] instanceof Date && _value[1] instanceof Date) {\n return isInRange(date, _value);\n }\n\n return false;\n };\n\n const onRootMouseLeave =\n type === 'range'\n ? (event: React.MouseEvent<HTMLDivElement>) => {\n onMouseLeave?.(event);\n setHoveredDate(null);\n }\n : onMouseLeave;\n\n const isFirstInRange = (date: Date) => {\n if (!(_value[0] instanceof Date)) {\n return false;\n }\n\n if (dayjs(date).isSame(_value[0], level)) {\n return !(hoveredDate && dayjs(hoveredDate).isBefore(_value[0]));\n }\n\n return false;\n };\n\n const isLastInRange = (date: Date) => {\n if (_value[1] instanceof Date) {\n return dayjs(date).isSame(_value[1], level);\n }\n\n if (!(_value[0] instanceof Date) || !hoveredDate) {\n return false;\n }\n\n return dayjs(hoveredDate).isBefore(_value[0]) && dayjs(date).isSame(_value[0], level);\n };\n\n const getControlProps = (date: Date) => {\n if (type === 'range') {\n return {\n selected: _value.some(\n (selection: Date) => selection && dayjs(selection).isSame(date, level),\n ),\n inRange: isDateInRange(date),\n firstInRange: isFirstInRange(date),\n lastInRange: isLastInRange(date),\n 'data-autofocus': (!!_value[0] && dayjs(_value[0]).isSame(date, level)) || undefined,\n 'data-celltype': level,\n 'data-date': `${date.getMonth()}-${date.getDate()}`,\n };\n }\n\n const selected = dayjs(_value).isSame(date, level);\n return {\n selected,\n 'data-autofocus': selected || undefined,\n 'data-celltype': level,\n 'data-date': `${date.getMonth()}-${date.getDate()}`,\n };\n };\n\n const onHoveredDateChange = type === 'range' && pickedDate ? setHoveredDate : () => {};\n\n useEffect(() => {\n if (type === 'range' && !_value[0] && !_value[1]) {\n setPickedDate(null);\n }\n }, [value]);\n\n return {\n onDateChange,\n onRootMouseLeave,\n onHoveredDateChange,\n getControlProps,\n setPickedDate,\n pickedDate,\n controlledValue: _value,\n setControlledValue: setValue,\n } as const;\n}\n"],"names":["isInRange","date","range","_range","_toConsumableArray","sort","a","b","getTime","dayjs","startOf","subtract","isBefore","endOf","add","isAfter","useDatesState","_ref","type","level","value","defaultValue","onChange","allowSingleDateInRange","allowDeselect","onMouseLeave","_ref$applyTimezone","applyTimezone","_useUncontrolledDates","useUncontrolledDates","_useUncontrolledDates2","_slicedToArray","_value","setValue","_useState","useState","_useState2","pickedDate","setPickedDate","_useState3","_useState4","hoveredDate","setHoveredDate","onDateChange","Date","isSame","result","isDateInRange","onRootMouseLeave","event","isFirstInRange","isLastInRange","getControlProps","selected","some","selection","inRange","firstInRange","lastInRange","undefined","concat","getMonth","getDate","onHoveredDateChange","useEffect","controlledValue","setControlledValue"],"mappings":"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"}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
|
|
2
|
+
import { useFloating, shift, flip, offset, autoUpdate, useTransitionStyles, useClick, useDismiss, useRole, useInteractions } from '@floating-ui/react';
|
|
3
|
+
import '../../tokens/global/index.js';
|
|
4
|
+
import '../../utils/index.js';
|
|
5
|
+
import { getFloatingPlacementParts } from '../../utils/getFloatingPlacementParts.js';
|
|
6
|
+
import { spacing } from '../../tokens/global/spacing.js';
|
|
7
|
+
import useTheme from '../BladeProvider/useTheme.js';
|
|
8
|
+
import { size } from '../../tokens/global/size.js';
|
|
9
|
+
|
|
10
|
+
var usePopup = function usePopup(_ref) {
|
|
11
|
+
var _ref$enabled = _ref.enabled,
|
|
12
|
+
enabled = _ref$enabled === void 0 ? true : _ref$enabled,
|
|
13
|
+
placement = _ref.placement,
|
|
14
|
+
open = _ref.open,
|
|
15
|
+
_onOpenChange = _ref.onOpenChange,
|
|
16
|
+
referenceRef = _ref.referenceRef;
|
|
17
|
+
var GAP = spacing[4];
|
|
18
|
+
var _useTheme = useTheme(),
|
|
19
|
+
theme = _useTheme.theme;
|
|
20
|
+
var _getFloatingPlacement = getFloatingPlacementParts(placement),
|
|
21
|
+
_getFloatingPlacement2 = _slicedToArray(_getFloatingPlacement, 1),
|
|
22
|
+
side = _getFloatingPlacement2[0];
|
|
23
|
+
var isOppositeAxis = side === 'right' || side === 'bottom';
|
|
24
|
+
var _useFloating = useFloating({
|
|
25
|
+
open: open,
|
|
26
|
+
onOpenChange: function onOpenChange(isOpen, event, reason) {
|
|
27
|
+
_onOpenChange === null || _onOpenChange === void 0 ? void 0 : _onOpenChange(isOpen, event, reason);
|
|
28
|
+
if (reason === 'escape-key') {
|
|
29
|
+
var _referenceRef$current;
|
|
30
|
+
(_referenceRef$current = referenceRef.current) === null || _referenceRef$current === void 0 ? void 0 : _referenceRef$current.focus();
|
|
31
|
+
}
|
|
32
|
+
},
|
|
33
|
+
placement: placement,
|
|
34
|
+
strategy: 'fixed',
|
|
35
|
+
elements: {
|
|
36
|
+
reference: referenceRef.current
|
|
37
|
+
},
|
|
38
|
+
middleware: [shift({
|
|
39
|
+
crossAxis: false,
|
|
40
|
+
padding: GAP
|
|
41
|
+
}), flip({
|
|
42
|
+
padding: GAP,
|
|
43
|
+
fallbackAxisSideDirection: 'end'
|
|
44
|
+
}), offset(GAP)],
|
|
45
|
+
whileElementsMounted: autoUpdate
|
|
46
|
+
}),
|
|
47
|
+
refs = _useFloating.refs,
|
|
48
|
+
floatingStyles = _useFloating.floatingStyles,
|
|
49
|
+
context = _useFloating.context,
|
|
50
|
+
computedPlacement = _useFloating.placement;
|
|
51
|
+
|
|
52
|
+
// we need to animate from the offset of the computed placement
|
|
53
|
+
// because placement can change dynamically based on available space
|
|
54
|
+
var _getFloatingPlacement3 = getFloatingPlacementParts(computedPlacement),
|
|
55
|
+
_getFloatingPlacement4 = _slicedToArray(_getFloatingPlacement3, 1),
|
|
56
|
+
computedSide = _getFloatingPlacement4[0];
|
|
57
|
+
var computedIsHorizontal = computedSide === 'left' || computedSide === 'right';
|
|
58
|
+
var animationOffset = isOppositeAxis ? -size[4] : size[4];
|
|
59
|
+
var _useTransitionStyles = useTransitionStyles(context, {
|
|
60
|
+
duration: theme.motion.duration.quick,
|
|
61
|
+
initial: {
|
|
62
|
+
opacity: 0,
|
|
63
|
+
transform: "translate".concat(computedIsHorizontal ? 'X' : 'Y', "(").concat(animationOffset, "px)")
|
|
64
|
+
}
|
|
65
|
+
}),
|
|
66
|
+
isMounted = _useTransitionStyles.isMounted,
|
|
67
|
+
animationStyles = _useTransitionStyles.styles;
|
|
68
|
+
|
|
69
|
+
// remove click handler if popover is controlled
|
|
70
|
+
var click = useClick(context);
|
|
71
|
+
var dismiss = useDismiss(context, {
|
|
72
|
+
enabled: enabled
|
|
73
|
+
});
|
|
74
|
+
var role = useRole(context);
|
|
75
|
+
var _useInteractions = useInteractions([click, dismiss, role]),
|
|
76
|
+
getReferenceProps = _useInteractions.getReferenceProps,
|
|
77
|
+
getFloatingProps = _useInteractions.getFloatingProps;
|
|
78
|
+
return {
|
|
79
|
+
refs: refs,
|
|
80
|
+
context: context,
|
|
81
|
+
isMounted: isMounted,
|
|
82
|
+
floatingStyles: floatingStyles,
|
|
83
|
+
animationStyles: animationStyles,
|
|
84
|
+
getReferenceProps: getReferenceProps,
|
|
85
|
+
getFloatingProps: getFloatingProps
|
|
86
|
+
};
|
|
87
|
+
};
|
|
88
|
+
|
|
89
|
+
export { usePopup };
|
|
90
|
+
//# sourceMappingURL=usePopup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"usePopup.js","sources":["../../../../../../src/components/DatePicker/usePopup.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/explicit-function-return-type */\nimport type { UseFloatingOptions } from '@floating-ui/react';\nimport {\n autoUpdate,\n flip,\n offset,\n shift,\n useClick,\n useDismiss,\n useFloating,\n useInteractions,\n useRole,\n useTransitionStyles,\n} from '@floating-ui/react';\nimport { size, spacing } from '~tokens/global';\nimport { useTheme } from '~utils';\nimport { getFloatingPlacementParts } from '~utils/getFloatingPlacementParts';\n\ntype UsePopupProps = {\n enabled?: boolean;\n open?: boolean;\n placement: UseFloatingOptions['placement'];\n onOpenChange?: UseFloatingOptions['onOpenChange'];\n referenceRef: React.RefObject<HTMLButtonElement>;\n};\n\nconst usePopup = ({\n enabled = true,\n placement,\n open,\n onOpenChange,\n referenceRef,\n}: UsePopupProps) => {\n const GAP = spacing[4];\n const { theme } = useTheme();\n const [side] = getFloatingPlacementParts(placement!);\n const isOppositeAxis = side === 'right' || side === 'bottom';\n\n const { refs, floatingStyles, context, placement: computedPlacement } = useFloating({\n open,\n onOpenChange: (isOpen, event, reason) => {\n onOpenChange?.(isOpen, event, reason);\n if (reason === 'escape-key') {\n referenceRef.current?.focus();\n }\n },\n placement,\n strategy: 'fixed',\n elements: {\n reference: referenceRef.current,\n },\n middleware: [\n shift({ crossAxis: false, padding: GAP }),\n flip({ padding: GAP, fallbackAxisSideDirection: 'end' }),\n offset(GAP),\n ],\n whileElementsMounted: autoUpdate,\n });\n\n // we need to animate from the offset of the computed placement\n // because placement can change dynamically based on available space\n const [computedSide] = getFloatingPlacementParts(computedPlacement);\n const computedIsHorizontal = computedSide === 'left' || computedSide === 'right';\n const animationOffset = isOppositeAxis ? -size[4] : size[4];\n const { isMounted, styles: animationStyles } = useTransitionStyles(context, {\n duration: theme.motion.duration.quick,\n initial: {\n opacity: 0,\n transform: `translate${computedIsHorizontal ? 'X' : 'Y'}(${animationOffset}px)`,\n },\n });\n\n // remove click handler if popover is controlled\n const click = useClick(context);\n const dismiss = useDismiss(context, { enabled });\n const role = useRole(context);\n const { getReferenceProps, getFloatingProps } = useInteractions([click, dismiss, role]);\n\n return {\n refs,\n context,\n isMounted,\n floatingStyles,\n animationStyles,\n getReferenceProps,\n getFloatingProps,\n } as const;\n};\n\nexport { usePopup };\n"],"names":["usePopup","_ref","_ref$enabled","enabled","placement","open","onOpenChange","referenceRef","GAP","spacing","_useTheme","useTheme","theme","_getFloatingPlacement","getFloatingPlacementParts","_getFloatingPlacement2","_slicedToArray","side","isOppositeAxis","_useFloating","useFloating","isOpen","event","reason","_referenceRef$current","current","focus","strategy","elements","reference","middleware","shift","crossAxis","padding","flip","fallbackAxisSideDirection","offset","whileElementsMounted","autoUpdate","refs","floatingStyles","context","computedPlacement","_getFloatingPlacement3","_getFloatingPlacement4","computedSide","computedIsHorizontal","animationOffset","size","_useTransitionStyles","useTransitionStyles","duration","motion","quick","initial","opacity","transform","concat","isMounted","animationStyles","styles","click","useClick","dismiss","useDismiss","role","useRole","_useInteractions","useInteractions","getReferenceProps","getFloatingProps"],"mappings":"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"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
var dayjs_locales = ['af', 'ar', 'ar-dz', 'ar-kw', 'ar-ly', 'ar-ma', 'ar-sa', 'ar-tn', 'az', 'be', 'bg', 'bm', 'bn', 'bo', 'br', 'bs', 'ca', 'cs', 'cv', 'cy', 'da', 'de', 'de-at', 'de-ch', 'dv', 'el', 'en', 'en-au', 'en-ca', 'en-gb', 'en-ie', 'en-il', 'en-nz', 'en-SG', 'eo', 'es', 'es-do', 'es-us', 'et', 'eu', 'fa', 'fi', 'fo', 'fr', 'fr-ca', 'fr-ch', 'fy', 'ga', 'gd', 'gl', 'gom-latn', 'gu', 'he', 'hi', 'hr', 'hu', 'hy-am', 'id', 'is', 'it', 'it-ch', 'ja', 'jv', 'ka', 'kk', 'km', 'kn', 'ko', 'ku', 'ky', 'lb', 'lo', 'lt', 'lv', 'me', 'mi', 'mk', 'ml', 'mn', 'mr', 'ms', 'ms-my', 'mt', 'my', 'nb', 'ne', 'nl', 'nl-be', 'nn', 'oc-lnc', 'pa-in', 'pl', 'pt', 'pt-br', 'ro', 'ru', 'sd', 'se', 'si', 'sk', 'sl', 'sq', 'sr', 'sr-cyrl', 'ss', 'sv', 'sw', 'ta', 'te', 'tet', 'tg', 'th', 'tl-ph', 'tlh', 'tr', 'tzl', 'tzm', 'tzm-latn', 'ug-cn', 'uk', 'ur', 'uz', 'uz-latn', 'vi', 'x-pseudo', 'yo', 'zh-cn', 'zh-hk', 'zh-tw'];
|
|
2
|
+
|
|
3
|
+
// https://github.com/iamkun/dayjs/issues/732#issuecomment-554383261
|
|
4
|
+
function patchLocale(locale) {
|
|
5
|
+
if (['en', 'en-us'].includes(locale)) return 'en';
|
|
6
|
+
if (locale === 'zn') return 'zh-cn';
|
|
7
|
+
if (locale === 'no') return 'nb';
|
|
8
|
+
if (dayjs_locales.includes(locale)) return locale;
|
|
9
|
+
return false;
|
|
10
|
+
}
|
|
11
|
+
function convertIntlToDayjsLocale(lang) {
|
|
12
|
+
lang = lang.toLowerCase();
|
|
13
|
+
var locale = patchLocale(lang) || lang.includes('-') && patchLocale(lang.split('-')[0]);
|
|
14
|
+
if (!locale) return 'en';
|
|
15
|
+
return "".concat(locale);
|
|
16
|
+
}
|
|
17
|
+
function isScriptLoaded(src) {
|
|
18
|
+
return Boolean(document.querySelector("script[src=\"".concat(src, "\"]")));
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* Used to dynamically load a script
|
|
23
|
+
*/
|
|
24
|
+
function loadScript(src, callback) {
|
|
25
|
+
if (isScriptLoaded(src)) {
|
|
26
|
+
callback === null || callback === void 0 ? void 0 : callback();
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
29
|
+
var localeScript = document.createElement('script');
|
|
30
|
+
localeScript.async = true;
|
|
31
|
+
localeScript.src = src;
|
|
32
|
+
localeScript.onload = function () {
|
|
33
|
+
return callback === null || callback === void 0 ? void 0 : callback();
|
|
34
|
+
};
|
|
35
|
+
document.head.appendChild(localeScript);
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
export { convertIntlToDayjsLocale, loadScript };
|
|
39
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sources":["../../../../../../src/components/DatePicker/utils.ts"],"sourcesContent":["const dayjs_locales = [\n 'af',\n 'ar',\n 'ar-dz',\n 'ar-kw',\n 'ar-ly',\n 'ar-ma',\n 'ar-sa',\n 'ar-tn',\n 'az',\n 'be',\n 'bg',\n 'bm',\n 'bn',\n 'bo',\n 'br',\n 'bs',\n 'ca',\n 'cs',\n 'cv',\n 'cy',\n 'da',\n 'de',\n 'de-at',\n 'de-ch',\n 'dv',\n 'el',\n 'en',\n 'en-au',\n 'en-ca',\n 'en-gb',\n 'en-ie',\n 'en-il',\n 'en-nz',\n 'en-SG',\n 'eo',\n 'es',\n 'es-do',\n 'es-us',\n 'et',\n 'eu',\n 'fa',\n 'fi',\n 'fo',\n 'fr',\n 'fr-ca',\n 'fr-ch',\n 'fy',\n 'ga',\n 'gd',\n 'gl',\n 'gom-latn',\n 'gu',\n 'he',\n 'hi',\n 'hr',\n 'hu',\n 'hy-am',\n 'id',\n 'is',\n 'it',\n 'it-ch',\n 'ja',\n 'jv',\n 'ka',\n 'kk',\n 'km',\n 'kn',\n 'ko',\n 'ku',\n 'ky',\n 'lb',\n 'lo',\n 'lt',\n 'lv',\n 'me',\n 'mi',\n 'mk',\n 'ml',\n 'mn',\n 'mr',\n 'ms',\n 'ms-my',\n 'mt',\n 'my',\n 'nb',\n 'ne',\n 'nl',\n 'nl-be',\n 'nn',\n 'oc-lnc',\n 'pa-in',\n 'pl',\n 'pt',\n 'pt-br',\n 'ro',\n 'ru',\n 'sd',\n 'se',\n 'si',\n 'sk',\n 'sl',\n 'sq',\n 'sr',\n 'sr-cyrl',\n 'ss',\n 'sv',\n 'sw',\n 'ta',\n 'te',\n 'tet',\n 'tg',\n 'th',\n 'tl-ph',\n 'tlh',\n 'tr',\n 'tzl',\n 'tzm',\n 'tzm-latn',\n 'ug-cn',\n 'uk',\n 'ur',\n 'uz',\n 'uz-latn',\n 'vi',\n 'x-pseudo',\n 'yo',\n 'zh-cn',\n 'zh-hk',\n 'zh-tw',\n];\n\n// https://github.com/iamkun/dayjs/issues/732#issuecomment-554383261\nfunction patchLocale(locale: string): string | boolean {\n if (['en', 'en-us'].includes(locale)) return 'en';\n if (locale === 'zn') return 'zh-cn';\n if (locale === 'no') return 'nb';\n if (dayjs_locales.includes(locale)) return locale;\n return false;\n}\n\nfunction convertIntlToDayjsLocale(lang: string): string {\n lang = lang.toLowerCase();\n const locale = patchLocale(lang) || (lang.includes('-') && patchLocale(lang.split('-')[0]));\n if (!locale) return 'en';\n\n return `${locale}`;\n}\n\nfunction isScriptLoaded(src: string): boolean {\n return Boolean(document.querySelector(`script[src=\"${src}\"]`));\n}\n\n/**\n * Used to dynamically load a script\n */\nfunction loadScript(src: string, callback?: () => void): void {\n if (isScriptLoaded(src)) {\n callback?.();\n return;\n }\n const localeScript = document.createElement('script');\n localeScript.async = true;\n localeScript.src = src;\n localeScript.onload = () => callback?.();\n document.head.appendChild(localeScript);\n}\n\nexport { convertIntlToDayjsLocale, loadScript };\n"],"names":["dayjs_locales","patchLocale","locale","includes","convertIntlToDayjsLocale","lang","toLowerCase","split","concat","isScriptLoaded","src","Boolean","document","querySelector","loadScript","callback","localeScript","createElement","async","onload","head","appendChild"],"mappings":"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"}
|