@activecollab/components 2.0.157 → 2.0.159
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/dist/cjs/components/DatePicker/DatePickerV2.js +2 -0
- package/dist/cjs/components/DatePicker/DatePickerV2.js.map +1 -1
- package/dist/cjs/utils/currencyUtils.js +5 -2
- package/dist/cjs/utils/currencyUtils.js.map +1 -1
- package/dist/cjs/utils/currencyUtils.test.js +38 -2
- package/dist/cjs/utils/currencyUtils.test.js.map +1 -1
- package/dist/esm/components/DatePicker/DatePickerV2.d.ts.map +1 -1
- package/dist/esm/components/DatePicker/DatePickerV2.js +2 -0
- package/dist/esm/components/DatePicker/DatePickerV2.js.map +1 -1
- package/dist/esm/utils/currencyUtils.d.ts.map +1 -1
- package/dist/esm/utils/currencyUtils.js +5 -2
- package/dist/esm/utils/currencyUtils.js.map +1 -1
- package/dist/esm/utils/currencyUtils.test.js +38 -2
- package/dist/esm/utils/currencyUtils.test.js.map +1 -1
- package/dist/index.js +7 -2
- package/dist/index.js.map +1 -1
- package/dist/index.min.js +1 -1
- package/dist/index.min.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"currencyUtils.test.js","names":["_currencyUtils","require","describe","it","each","value","thousandSeparator","decimalSeparator","trimDecimals","decimalSpaces","format","params","expected","expect","formatNumber","toEqual","number","fixedDecimalSpaces","toBe","result","numberWithSeparator","toFixed","getNumberFromString","currencyCode","currencyCodePosition","args","formatCurrency"],"sources":["../../../src/utils/currencyUtils.test.ts"],"sourcesContent":["import {\n formatNumber,\n getNumberFromString,\n numberWithSeparator,\n fixedDecimalSpaces,\n formatCurrency,\n} from \"./currencyUtils\";\nimport { FormatCurrencyArgs, FormatNumberArgs } from \"./types\";\n\ndescribe(\"format currency with thousandseparator set to ',' and decimalSeparator to '.'\", () => {\n // please try to leave unformatted - ignore works for this block only\n // prettier-ignore\n it.each<[FormatNumberArgs, string]>([\n [{ value: \"\" }, \"\"],\n [{ value: \"10\" }, \"10\"],\n [{ value: \"1000\" }, \"1,000\"],\n [{ value: \"1000.00\" }, \"1,000\"],\n [{ value: \"1200.50\" }, \"1,200.5\"],\n [{ value: \"1,200.00\" }, \"1,200\"],\n [{ value: \"2,240.00\" }, \"2,240\"],\n [{ value: \"22,240.00\" }, \"22,240\"],\n [{ value: \"50,000,000.00\" }, \"50,000,000\"],\n [{ value: \"-50,000.00\" }, \"-50,000\"],\n [{ value: \"-1,200\" }, \"-1,200\"],\n [{ value: \"-90,000,000.00\" }, \"-90,000,000\"],\n [{ value: \"900.25\" }, \"900.25\"],\n [{ value: 900.25, thousandSeparator: \".\", decimalSeparator: \",\" }, \"900,25\"],\n [{ value: \"900,25\", thousandSeparator: \".\", decimalSeparator: \",\" }, \"900,25\"],\n [{ value: 900.255556, thousandSeparator: \".\", decimalSeparator: \",\" }, \"900,25\"],\n [{ value: \"900,255556\", thousandSeparator: \".\", decimalSeparator: \",\" }, \"900,25\"],\n [{ value: 900.255556, thousandSeparator: \".\", decimalSeparator: \",\", trimDecimals: false, decimalSpaces: 6 }, \"900,255556\"],\n [{ value: \"900,255556\", thousandSeparator: \".\", decimalSeparator: \",\", trimDecimals: false }, \"900,25\"],\n [{ value: 900.25, thousandSeparator: \".\", decimalSeparator: \",\", trimDecimals: false, decimalSpaces: 3 }, \"900,250\"],\n [{ value: 900.25, thousandSeparator: \".\", decimalSeparator: \",\", trimDecimals: false, decimalSpaces: 3, format: \"long\" }, \"900,250\" ],\n [{ value: 1150.6666667, thousandSeparator: \",\", decimalSeparator: \".\", trimDecimals: true, decimalSpaces: 2, format: \"long\" }, \"1,150.66\" ],\n [{ value: \"1150.6666667\", thousandSeparator: \",\", decimalSeparator: \".\", trimDecimals: true, decimalSpaces: 2, format: \"long\" }, \"1,150.66\" ],\n [{ value: 1150.6666667, thousandSeparator: \",\", decimalSeparator: \".\", trimDecimals: true, decimalSpaces: 2, format: \"short\" }, \"1.2K\" ],\n [{ value: \"1150.6666667\", thousandSeparator: \",\", decimalSeparator: \".\", trimDecimals: true, decimalSpaces: 2, format: \"short\" }, \"1.2K\" ],\n [{ value: 1150.0, thousandSeparator: \",\", decimalSeparator: \".\", trimDecimals: true, decimalSpaces: 2, format: \"short\" }, \"1.1K\" ],\n [{ value: \"1150.00000\", thousandSeparator: \",\", decimalSeparator: \".\", trimDecimals: true, decimalSpaces: 2, format: \"short\" }, \"1.1K\" ],\n [{ value: 1150.6, thousandSeparator: \",\", decimalSeparator: \".\", trimDecimals: true, decimalSpaces: 2, format: \"long\" }, \"1,150.6\" ],\n [{ value: \"1150.60\", thousandSeparator: \",\", decimalSeparator: \".\", trimDecimals: true, decimalSpaces: 2, format: \"long\" }, \"1,150.6\"],\n [{ value: 1150.0, thousandSeparator: \",\", decimalSeparator: \".\", trimDecimals: true, decimalSpaces: 2, format: \"long\" }, \"1,150\" ],\n [{ value: \"1150.00\", thousandSeparator: \",\", decimalSeparator: \".\", trimDecimals: true, decimalSpaces: 2, format: \"long\" }, \"1,150\"],\n [{ value: 110.155557, thousandSeparator: \",\", decimalSeparator: \".\", trimDecimals: true, decimalSpaces: 2, format: \"long\" }, \"110.15\" ],\n [{ value: \"110.155557\", thousandSeparator: \",\", decimalSeparator: \".\", trimDecimals: true, decimalSpaces: 2, format: \"long\" }, \"110.15\" ],\n [{ value: 110.155557, thousandSeparator: \",\", decimalSeparator: \".\", trimDecimals: true, decimalSpaces: 2, format: \"short\" }, \"110.15\" ],\n [{ value: \"110.155557\", thousandSeparator: \",\", decimalSeparator: \".\", trimDecimals: true, decimalSpaces: 2, format: \"short\" }, \"110.15\" ],\n [{ value: 1501000.155557, thousandSeparator: \",\", decimalSeparator: \".\", trimDecimals: true, decimalSpaces: 2, format: \"long\" }, \"1,501,000.15\" ],\n [{ value: \"1501000.155557\", thousandSeparator: \",\", decimalSeparator: \".\", trimDecimals: true, decimalSpaces: 2, format: \"long\" }, \"1,501,000.15\" ],\n [{ value: 1501000.155557, thousandSeparator: \",\", decimalSeparator: \".\", trimDecimals: true, decimalSpaces: 2, format: \"short\" }, \"1.5M\"],\n [{ value: \"1501000.155557\", thousandSeparator: \",\", decimalSeparator: \".\", trimDecimals: true, decimalSpaces: 2, format: \"short\" }, \"1.5M\" ],\n ])(\"should format currency advanced\", (params, expected) => {\n const {\n value,\n thousandSeparator,\n decimalSeparator,\n trimDecimals,\n decimalSpaces,\n format,\n } = params;\n\n expect(\n formatNumber(\n value,\n thousandSeparator,\n decimalSeparator,\n trimDecimals,\n decimalSpaces,\n format\n )\n ).toEqual(expected);\n });\n\n //fixedDecimalSpaces\n it.each<[{ number: number; decimalSpaces: number }, number]>([\n [{ number: 123.456789, decimalSpaces: 3 }, 123.456],\n [{ number: 123.3, decimalSpaces: 2 }, 123.3],\n [{ number: 123.3, decimalSpaces: 0 }, 123],\n ])(\"should handle fixedDecimalSpaces\", (params, expected) => {\n expect(fixedDecimalSpaces(params.number, params.decimalSpaces)).toBe(\n expected\n );\n });\n\n //numberWithSeparator\n it(\"should format number with thousand separator\", () => {\n const result = numberWithSeparator((1000.0).toFixed(3), \",\", \".\");\n expect(result).toBe(\"1,000.000\");\n });\n\n it(\"should format string number with thousand separator\", () => {\n const result = numberWithSeparator(\"1000\", \",\");\n expect(result).toBe(\"1,000\");\n });\n\n it(\"should format decimal number with thousand separator and keep decimal part\", () => {\n const result = numberWithSeparator(12345.67, \",\");\n expect(result).toBe(\"12,345.67\");\n });\n\n it(\"should not format when format is set to false\", () => {\n const result = numberWithSeparator(1000, \",\", \".\", false);\n expect(result).toBe(1000);\n });\n\n it(\"should handle zero with thousand separator\", () => {\n const result = numberWithSeparator(0, \",\");\n expect(result).toBe(\"0\");\n });\n\n it(\"should handle negative number with thousand separator\", () => {\n const result = numberWithSeparator(-123456789, \",\");\n expect(result).toBe(\"-123,456,789\");\n });\n\n it(\"should not format\", () => {\n const result = numberWithSeparator(123456789, \",\", \".\", false);\n expect(result).toBe(123456789);\n });\n\n //getNumberFromString\n it.each([\n [\n {\n number: \"1.000.000,256\",\n thousandSeparator: \".\",\n decimalSeparator: \",\",\n },\n 1000000.256,\n ],\n [\n { number: 1000000.256, thousandSeparator: \".\", decimalSeparator: \",\" },\n 1000000.256,\n ],\n [\n {\n number: \"1,000,000.256\",\n thousandSeparator: \",\",\n decimalSeparator: \".\",\n },\n 1000000.256,\n ],\n [{ number: \",256\", thousandSeparator: \".\", decimalSeparator: \",\" }, 0.256],\n [{ number: \"1562\", thousandSeparator: \".\", decimalSeparator: \",\" }, 1562],\n [{ number: \"1,2,3.4\", thousandSeparator: \".\", decimalSeparator: \",\" }, 0],\n [{ number: \"1562\", thousandSeparator: \",\", decimalSeparator: \".\" }, 1562],\n [\n { number: \"-1.562,25\", thousandSeparator: \".\", decimalSeparator: \",\" },\n -1562.25,\n ],\n [\n { number: \"-1 562.25\", thousandSeparator: \" \", decimalSeparator: \".\" },\n -1562.25,\n ],\n ])(\"should handle getNumberFromString\", (params, expected) => {\n const { number, thousandSeparator, decimalSeparator } = params;\n\n expect(\n getNumberFromString(number, thousandSeparator, decimalSeparator)\n ).toBe(expected);\n });\n\n // please try to leave unformatted - ignore works for this block only\n // prettier-ignore\n it.each<[FormatCurrencyArgs, string]>([\n [\n { value: \"\", thousandSeparator: \",\", decimalSeparator: \".\", trimDecimals: false, decimalSpaces: 2, format: \"long\", currencyCode: \"\", currencyCodePosition: \"right\" },\n \"\",\n ],\n [\n { value: \"10\", thousandSeparator: \",\", decimalSeparator: \".\", trimDecimals: false, decimalSpaces: 2, format: \"long\", currencyCode: \"\", currencyCodePosition: \"right\" },\n \"10.00\",\n ],\n [\n { value: \"1000\", thousandSeparator: \",\", decimalSeparator: \".\", trimDecimals: false, decimalSpaces: 2, format: \"long\", currencyCode: \"USD\", currencyCodePosition: \"right\" },\n \"1,000.00 USD\",\n ],\n [\n { value: \"1000.00\", thousandSeparator: \",\", decimalSeparator: \".\", trimDecimals: true, decimalSpaces: 2, format: \"long\", currencyCode: \"USD\", currencyCodePosition: \"left\" },\n \"USD 1,000\",\n ],\n [\n { value: \"1200,50\", thousandSeparator: \".\", decimalSeparator: \",\", trimDecimals: false, decimalSpaces: 2, format: \"long\", currencyCode: \"EUR\", currencyCodePosition: \"right\" },\n \"1.200,50 EUR\",\n ],\n [\n { value: \"1200,50\", thousandSeparator: \".\", decimalSeparator: \",\", trimDecimals: false, decimalSpaces: 2, format: \"long\", currencyCode: \"\", currencyCodePosition: \"right\" },\n \"1.200,50\",\n ],\n [\n { value: \"900,25\", thousandSeparator: \".\", decimalSeparator: \",\", trimDecimals: false, decimalSpaces: 2, format: \"long\", currencyCode: \"GBP\", currencyCodePosition: \"left\" },\n \"GBP 900,25\",\n ],\n [\n { value: 900.25, thousandSeparator: \".\", decimalSeparator: \",\", trimDecimals: false, decimalSpaces: 2, format: \"long\", currencyCode: \"GBP\", currencyCodePosition: \"left\" },\n \"GBP 900,25\",\n ],\n [\n { value: 1150.6666667, thousandSeparator: \",\", decimalSeparator: \".\", trimDecimals: true, decimalSpaces: 2, format: \"short\", currencyCode: \"JPY\", currencyCodePosition: \"right\" },\n \"1.2K JPY\",\n ],\n [\n { value: 1501000.155557, thousandSeparator: \",\", decimalSeparator: \".\", trimDecimals: true, decimalSpaces: 2, format: \"short\", currencyCode: \"USD\", currencyCodePosition: \"left\" },\n \"USD 1.5M\",\n ],\n ])(\"should format currency correctly\", (args, expected) => {\n expect(\n formatCurrency(\n args.value,\n args.thousandSeparator,\n args.decimalSeparator,\n args.trimDecimals,\n args.decimalSpaces,\n args.format,\n args.currencyCode,\n args.currencyCodePosition\n )\n ).toEqual(expected);\n });\n});\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"currencyUtils.test.js","names":["_currencyUtils","require","describe","it","each","value","thousandSeparator","decimalSeparator","trimDecimals","decimalSpaces","format","params","expected","expect","formatNumber","toEqual","number","fixedDecimalSpaces","toBe","result","numberWithSeparator","toFixed","getNumberFromString","currencyCode","currencyCodePosition","args","formatCurrency"],"sources":["../../../src/utils/currencyUtils.test.ts"],"sourcesContent":["import {\n formatNumber,\n getNumberFromString,\n numberWithSeparator,\n fixedDecimalSpaces,\n formatCurrency,\n} from \"./currencyUtils\";\nimport { FormatCurrencyArgs, FormatNumberArgs } from \"./types\";\n\ndescribe(\"format currency with thousandseparator set to ',' and decimalSeparator to '.'\", () => {\n // please try to leave unformatted - ignore works for this block only\n // prettier-ignore\n it.each<[FormatNumberArgs, string]>([\n [{ value: \"\" }, \"\"],\n [{ value: \"10\" }, \"10\"],\n [{ value: \"1000\" }, \"1,000\"],\n [{ value: \"1000.00\" }, \"1,000\"],\n [{ value: \"1200.50\" }, \"1,200.5\"],\n [{ value: \"1,200.00\" }, \"1,200\"],\n [{ value: \"2,240.00\" }, \"2,240\"],\n [{ value: \"22,240.00\" }, \"22,240\"],\n [{ value: \"50,000,000.00\" }, \"50,000,000\"],\n [{ value: \"-50,000.00\" }, \"-50,000\"],\n [{ value: \"-1,200\" }, \"-1,200\"],\n [{ value: \"-90,000,000.00\" }, \"-90,000,000\"],\n [{ value: \"900.25\" }, \"900.25\"],\n [{ value: 900.25, thousandSeparator: \".\", decimalSeparator: \",\" }, \"900,25\"],\n [{ value: \"900,25\", thousandSeparator: \".\", decimalSeparator: \",\" }, \"900,25\"],\n [{ value: 900.255556, thousandSeparator: \".\", decimalSeparator: \",\" }, \"900,25\"],\n [{ value: \"900,255556\", thousandSeparator: \".\", decimalSeparator: \",\" }, \"900,25\"],\n [{ value: 900.255556, thousandSeparator: \".\", decimalSeparator: \",\", trimDecimals: false, decimalSpaces: 6 }, \"900,255556\"],\n [{ value: \"900,255556\", thousandSeparator: \".\", decimalSeparator: \",\", trimDecimals: false }, \"900,25\"],\n [{ value: 900.25, thousandSeparator: \".\", decimalSeparator: \",\", trimDecimals: false, decimalSpaces: 3 }, \"900,250\"],\n [{ value: 900.25, thousandSeparator: \".\", decimalSeparator: \",\", trimDecimals: false, decimalSpaces: 3, format: \"long\" }, \"900,250\" ],\n [{ value: 1150.6666667, thousandSeparator: \",\", decimalSeparator: \".\", trimDecimals: true, decimalSpaces: 2, format: \"long\" }, \"1,150.66\" ],\n [{ value: \"1150.6666667\", thousandSeparator: \",\", decimalSeparator: \".\", trimDecimals: true, decimalSpaces: 2, format: \"long\" }, \"1,150.66\" ],\n [{ value: 1150.6666667, thousandSeparator: \",\", decimalSeparator: \".\", trimDecimals: true, decimalSpaces: 2, format: \"short\" }, \"1.2K\" ],\n [{ value: \"1150.6666667\", thousandSeparator: \",\", decimalSeparator: \".\", trimDecimals: true, decimalSpaces: 2, format: \"short\" }, \"1.2K\" ],\n [{ value: 1150.0, thousandSeparator: \",\", decimalSeparator: \".\", trimDecimals: true, decimalSpaces: 2, format: \"short\" }, \"1.1K\" ],\n [{ value: \"1150.00000\", thousandSeparator: \",\", decimalSeparator: \".\", trimDecimals: true, decimalSpaces: 2, format: \"short\" }, \"1.1K\" ],\n [{ value: 1150.6, thousandSeparator: \",\", decimalSeparator: \".\", trimDecimals: true, decimalSpaces: 2, format: \"long\" }, \"1,150.6\" ],\n [{ value: \"1150.60\", thousandSeparator: \",\", decimalSeparator: \".\", trimDecimals: true, decimalSpaces: 2, format: \"long\" }, \"1,150.6\"],\n [{ value: 1150.0, thousandSeparator: \",\", decimalSeparator: \".\", trimDecimals: true, decimalSpaces: 2, format: \"long\" }, \"1,150\" ],\n [{ value: \"1150.00\", thousandSeparator: \",\", decimalSeparator: \".\", trimDecimals: true, decimalSpaces: 2, format: \"long\" }, \"1,150\"],\n [{ value: 110.155557, thousandSeparator: \",\", decimalSeparator: \".\", trimDecimals: true, decimalSpaces: 2, format: \"long\" }, \"110.15\" ],\n [{ value: \"110.155557\", thousandSeparator: \",\", decimalSeparator: \".\", trimDecimals: true, decimalSpaces: 2, format: \"long\" }, \"110.15\" ],\n [{ value: 110.155557, thousandSeparator: \",\", decimalSeparator: \".\", trimDecimals: true, decimalSpaces: 2, format: \"short\" }, \"110.15\" ],\n [{ value: \"110.155557\", thousandSeparator: \",\", decimalSeparator: \".\", trimDecimals: true, decimalSpaces: 2, format: \"short\" }, \"110.15\" ],\n [{ value: 1501000.155557, thousandSeparator: \",\", decimalSeparator: \".\", trimDecimals: true, decimalSpaces: 2, format: \"long\" }, \"1,501,000.15\" ],\n [{ value: \"1501000.155557\", thousandSeparator: \",\", decimalSeparator: \".\", trimDecimals: true, decimalSpaces: 2, format: \"long\" }, \"1,501,000.15\" ],\n [{ value: 1501000.155557, thousandSeparator: \",\", decimalSeparator: \".\", trimDecimals: true, decimalSpaces: 2, format: \"short\" }, \"1.5M\"],\n [{ value: \"1501000.155557\", thousandSeparator: \",\", decimalSeparator: \".\", trimDecimals: true, decimalSpaces: 2, format: \"short\" }, \"1.5M\" ],\n [{ value: \"1501000.155557\", thousandSeparator: \".\", decimalSeparator: \",\", trimDecimals: true, decimalSpaces: 2, format: \"short\" }, \"1,5M\" ],\n [{ value: \"1579.50\", thousandSeparator: \".\", decimalSeparator: \",\", trimDecimals: true, decimalSpaces: 2, format: \"short\" }, \"1,6K\" ],\n [{ value: \"1579,50\", thousandSeparator: \".\", decimalSeparator: \",\", trimDecimals: true, decimalSpaces: 2, format: \"short\" }, \"1,6K\" ],\n [{ value: \"1579.50\", thousandSeparator: \".\", decimalSeparator: \",\", trimDecimals: false, decimalSpaces: 2, format: \"long\" }, \"1.579,50\" ],\n ])(\"should format currency advanced\", (params, expected) => {\n const {\n value,\n thousandSeparator,\n decimalSeparator,\n trimDecimals,\n decimalSpaces,\n format,\n } = params;\n\n expect(\n formatNumber(\n value,\n thousandSeparator,\n decimalSeparator,\n trimDecimals,\n decimalSpaces,\n format\n )\n ).toEqual(expected);\n });\n\n //fixedDecimalSpaces\n it.each<[{ number: number; decimalSpaces: number }, number]>([\n [{ number: 123.456789, decimalSpaces: 3 }, 123.456],\n [{ number: 123.3, decimalSpaces: 2 }, 123.3],\n [{ number: 123.3, decimalSpaces: 0 }, 123],\n ])(\"should handle fixedDecimalSpaces\", (params, expected) => {\n expect(fixedDecimalSpaces(params.number, params.decimalSpaces)).toBe(\n expected\n );\n });\n\n //numberWithSeparator\n it(\"should format number with thousand separator\", () => {\n const result = numberWithSeparator((1000.0).toFixed(3), \",\", \".\");\n expect(result).toBe(\"1,000.000\");\n });\n\n it(\"should format string number with thousand separator\", () => {\n const result = numberWithSeparator(\"1000\", \",\");\n expect(result).toBe(\"1,000\");\n });\n\n it(\"should format decimal number with thousand separator and keep decimal part\", () => {\n const result = numberWithSeparator(12345.67, \",\");\n expect(result).toBe(\"12,345.67\");\n });\n\n it(\"should not format when format is set to false\", () => {\n const result = numberWithSeparator(1000, \",\", \".\", false);\n expect(result).toBe(1000);\n });\n\n it(\"should handle zero with thousand separator\", () => {\n const result = numberWithSeparator(0, \",\");\n expect(result).toBe(\"0\");\n });\n\n it(\"should handle negative number with thousand separator\", () => {\n const result = numberWithSeparator(-123456789, \",\");\n expect(result).toBe(\"-123,456,789\");\n });\n\n it(\"should not format\", () => {\n const result = numberWithSeparator(123456789, \",\", \".\", false);\n expect(result).toBe(123456789);\n });\n\n //getNumberFromString\n it.each([\n [\n {\n number: \"1.000.000,256\",\n thousandSeparator: \".\",\n decimalSeparator: \",\",\n },\n 1000000.256,\n ],\n [\n { number: 1000000.256, thousandSeparator: \".\", decimalSeparator: \",\" },\n 1000000.256,\n ],\n [\n {\n number: \"1,000,000.256\",\n thousandSeparator: \",\",\n decimalSeparator: \".\",\n },\n 1000000.256,\n ],\n [{ number: \",256\", thousandSeparator: \".\", decimalSeparator: \",\" }, 0.256],\n [{ number: \"1562\", thousandSeparator: \".\", decimalSeparator: \",\" }, 1562],\n [{ number: \"1,2,3.4\", thousandSeparator: \".\", decimalSeparator: \",\" }, 0],\n [{ number: \"1562\", thousandSeparator: \",\", decimalSeparator: \".\" }, 1562],\n [\n { number: \"-1.562,25\", thousandSeparator: \".\", decimalSeparator: \",\" },\n -1562.25,\n ],\n [\n { number: \"-1 562.25\", thousandSeparator: \" \", decimalSeparator: \".\" },\n -1562.25,\n ],\n [\n { number: \"1562.50\", thousandSeparator: \".\", decimalSeparator: \",\" },\n 1562.5,\n ],\n [{ number: \"1562.\", thousandSeparator: \".\", decimalSeparator: \",\" }, 1562],\n ])(\"should handle getNumberFromString\", (params, expected) => {\n const { number, thousandSeparator, decimalSeparator } = params;\n\n expect(\n getNumberFromString(number, thousandSeparator, decimalSeparator)\n ).toBe(expected);\n });\n\n // please try to leave unformatted - ignore works for this block only\n // prettier-ignore\n it.each<[FormatCurrencyArgs, string]>([\n [\n { value: \"\", thousandSeparator: \",\", decimalSeparator: \".\", trimDecimals: false, decimalSpaces: 2, format: \"long\", currencyCode: \"\", currencyCodePosition: \"right\" },\n \"\",\n ],\n [\n { value: \"10\", thousandSeparator: \",\", decimalSeparator: \".\", trimDecimals: false, decimalSpaces: 2, format: \"long\", currencyCode: \"\", currencyCodePosition: \"right\" },\n \"10.00\",\n ],\n [\n { value: \"1000\", thousandSeparator: \",\", decimalSeparator: \".\", trimDecimals: false, decimalSpaces: 2, format: \"long\", currencyCode: \"USD\", currencyCodePosition: \"right\" },\n \"1,000.00 USD\",\n ],\n [\n { value: \"1000.00\", thousandSeparator: \",\", decimalSeparator: \".\", trimDecimals: true, decimalSpaces: 2, format: \"long\", currencyCode: \"USD\", currencyCodePosition: \"left\" },\n \"USD 1,000\",\n ],\n [\n { value: \"1200,50\", thousandSeparator: \".\", decimalSeparator: \",\", trimDecimals: false, decimalSpaces: 2, format: \"long\", currencyCode: \"EUR\", currencyCodePosition: \"right\" },\n \"1.200,50 EUR\",\n ],\n [\n { value: \"1200,50\", thousandSeparator: \".\", decimalSeparator: \",\", trimDecimals: false, decimalSpaces: 2, format: \"long\", currencyCode: \"\", currencyCodePosition: \"right\" },\n \"1.200,50\",\n ],\n [\n { value: \"900,25\", thousandSeparator: \".\", decimalSeparator: \",\", trimDecimals: false, decimalSpaces: 2, format: \"long\", currencyCode: \"GBP\", currencyCodePosition: \"left\" },\n \"GBP 900,25\",\n ],\n [\n { value: 900.25, thousandSeparator: \".\", decimalSeparator: \",\", trimDecimals: false, decimalSpaces: 2, format: \"long\", currencyCode: \"GBP\", currencyCodePosition: \"left\" },\n \"GBP 900,25\",\n ],\n [\n { value: 1150.6666667, thousandSeparator: \",\", decimalSeparator: \".\", trimDecimals: true, decimalSpaces: 2, format: \"short\", currencyCode: \"JPY\", currencyCodePosition: \"right\" },\n \"1.2K JPY\",\n ],\n [\n { value: 1501000.155557, thousandSeparator: \",\", decimalSeparator: \".\", trimDecimals: true, decimalSpaces: 2, format: \"short\", currencyCode: \"USD\", currencyCodePosition: \"left\" },\n \"USD 1.5M\",\n ],\n ])(\"should format currency correctly\", (args, expected) => {\n expect(\n formatCurrency(\n args.value,\n args.thousandSeparator,\n args.decimalSeparator,\n args.trimDecimals,\n args.decimalSpaces,\n args.format,\n args.currencyCode,\n args.currencyCodePosition\n )\n ).toEqual(expected);\n });\n});\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DatePickerV2.d.ts","sourceRoot":"","sources":["../../../../src/components/DatePicker/DatePickerV2.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAMZ,aAAa,EACd,MAAM,OAAO,CAAC;AAEf,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AA2BhC,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAG3C,MAAM,MAAM,UAAU,GAClB,OAAO,GACP,QAAQ,GACR,SAAS,GACT,WAAW,GACX,QAAQ,CAAC;AAEb,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;CACnB;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IACtC,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;CACrC;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,EAAE,kBAAkB,CAAC;IAC9B,QAAQ,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,kBAAkB,KAAK,IAAI,CAAC;IAChD,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,kBAAkB,KAAK,IAAI,CAAC;IAC9C,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC;IACjC,IAAI,EAAE,UAAU,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,SAAS,CAAC,EAAE;QACV,CAAC,GAAG,EAAE,MAAM,GAAG,CAAC,GAAG,EAAE,IAAI,KAAK;YAAE,OAAO,EAAE,OAAO,CAAC;YAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;SAAE,CAAC;KAC1E,CAAC;IACF,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,cAAc,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC3C,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,uBAAuB;IACvB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,mBAAmB;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,wBAAwB;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,+BAA+B;IAC/B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,gCAAgC;IAChC,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,iCAAiC;IACjC,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,2BAA2B;IAC3B,kBAAkB,CAAC,EAAE,aAAa,CAAC;IACnC,+BAA+B;IAC/B,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,gBAAgB,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IAC5C,iCAAiC;IACjC,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IACxD,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AACD,eAAO,MAAM,QAAQ,UAAW,MAAM,GAAG,MAAM,GAAG,MAAM,QASvD,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,
|
|
1
|
+
{"version":3,"file":"DatePickerV2.d.ts","sourceRoot":"","sources":["../../../../src/components/DatePicker/DatePickerV2.tsx"],"names":[],"mappings":"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"}
|
|
@@ -568,6 +568,8 @@ export const DatePickerV2 = _ref => {
|
|
|
568
568
|
};
|
|
569
569
|
if (isOpen) {
|
|
570
570
|
window.addEventListener("keydown", handleKeyDown);
|
|
571
|
+
} else {
|
|
572
|
+
window.removeEventListener("keydown", handleKeyDown);
|
|
571
573
|
}
|
|
572
574
|
return () => {
|
|
573
575
|
window.removeEventListener("keydown", handleKeyDown);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DatePickerV2.js","names":["React","useState","useRef","useEffect","useCallback","useMemo","moment","StyledCalendarDate","StyledCalendarDates","StyledCalendarHeader","StyledCalendarSelector","StyledCaption","StyledClearInstantButton","StyledConfirmDialog","StyledControls","StyledControlsLeft","StyledDatePickerContainerInner","StyledDatePickerWrapper","StyledDayName","StyledDaysOfWeek","StyledMonthOption","StyledMonthSelect","StyledMonthSelector","StyledYearOption","StyledYearSelect","Button","IconButton","ArrowLeftIcon","ArrowRightIcon","CancelCrossIcon","Menu","Tooltip","toMoment","date","isMoment","utc","DatePickerV2","_ref","selected","defaultSelected","onChange","onSave","onClear","onClose","instant","target","mode","saveLabel","cancelLabel","clearLabel","disabledDaysBefore","disabledDaysAfter","disabled","disabledDays","modifiers","disableAnimations","firstDayOfWeek","forceClose","required","month","disableYearPicker","position","menuClassName","popperClassName","enableConfirmModal","modalHeaderText","modalDiscardMessage","modalDiscardBtnText","modalCancelBtnText","backgroundElementClass","popperTooltipClassName","popperTooltipStyle","open","onCalendarToggle","onDayClick","showControls","isOpen","setIsOpen","isYearSelectOpen","setIsYearSelectOpen","showDiscardModal","setShowDiscardModal","isMonthSelectOpen","setIsMonthSelectOpen","monthTransitionDirection","setMonthTransitionDirection","currentDate","setCurrentDate","from","targetDate","setTargetDate","setSelected","to","hoveredDate","setHoveredDate","timezone","defaultZone","name","tz","guess","currentDateInTimezone","format","today","selectedYearRef","datePickerRef","handleSelection","range","undefined","unix","toggleCalendar","toggleYearSelect","toggleMonthSelect","handleDateSelect","isSameMonth","isSame","direction","isBefore","handleDailySelection","handleWeeklySelection","handleCustomSelection","console","warn","_selected$from","currentDayOfWeek","day","daysToSubtract","startOfWeek","clone","subtract","startOf","endOfWeek","add","Number","newSelection","handleSave","handleMonthChange","prevDate","onAnimationEnd","handleYearSelect","year","handleMonthSelect","newDate","_selected$to","endOf","_selected$to2","quarterRange","isSameQuarter","current","_selectedYearRef$curr","scrollIntoView","behavior","block","renderDaysOfWeek","daysOfWeek","weekdaysShort","orderedDays","slice","map","createElement","key","animationClass","handleDayClick","getHoverRange","startMonth","endMonth","isAfter","renderCalendarDates","startOfMonth","startDate","isoWeekday","endDate","dates","hoverRange","clonedDate","isToday","isSelected","isBetween","isHovered","isDisabled","includes","modifierClasses","modifierTitles","titles","Object","keys","forEach","modifier","matched","title","toDate","push","length","toString","index","isOutside","disable","className","join","onClick","onMouseEnter","onMouseLeave","renderYearSelect","years","Array","_","i","isDisabledYear","ref","renderMonthSelect","months","monthDate","isDisabledMonth","isHoveredQuarter","substring","captionText","isCurrentYear","handleClear","handleClose","_selected$to3","handleBeforeClose","shouldClose","Wrapper","handleCaptionClick","handleCloseDiscardModal","handleSaveDiscardModal","wrapperProps","onBeforeClose","onOpen","handleKeyDown","event","window","addEventListener","removeEventListener","saveIsDisabled","variant","size","Fragment","zIndex","onCancel","onConfirm","dialogTitle","dialogContent","cancelBtnText","confirmBtnText"],"sources":["../../../../src/components/DatePicker/DatePickerV2.tsx"],"sourcesContent":["import React, {\n useState,\n useRef,\n useEffect,\n useCallback,\n useMemo,\n CSSProperties,\n} from \"react\";\n\nimport { Moment } from \"moment\";\nimport moment from \"moment-timezone\";\n\nimport {\n StyledCalendarDate,\n StyledCalendarDates,\n StyledCalendarHeader,\n StyledCalendarSelector,\n StyledCaption,\n StyledClearInstantButton,\n StyledConfirmDialog,\n StyledControls,\n StyledControlsLeft,\n StyledDatePickerContainerInner,\n StyledDatePickerWrapper,\n StyledDayName,\n StyledDaysOfWeek,\n StyledMonthOption,\n StyledMonthSelect,\n StyledMonthSelector,\n StyledYearOption,\n StyledYearSelect,\n} from \"./StylesV2\";\nimport { Button } from \"../Button\";\nimport { IconButton } from \"../IconButton\";\nimport { ArrowLeftIcon, ArrowRightIcon, CancelCrossIcon } from \"../Icons\";\nimport { Menu } from \"../Menu\";\nimport { Placement } from \"../Popper\";\nimport { ElementWithRef } from \"../Select\";\nimport { Tooltip } from \"../Tooltip\";\n\nexport type ChangeMode =\n | \"daily\"\n | \"weekly\"\n | \"monthly\"\n | \"quarterly\"\n | \"custom\";\n\nexport interface DateRange {\n from: Moment;\n to: Moment | null;\n}\n\nexport interface TimestampDateRange {\n from: number | string | Moment | null;\n to: number | string | Moment | null;\n}\n\nexport interface DatePickerProps {\n selected?: TimestampDateRange;\n onChange?: (range?: TimestampDateRange) => void;\n onSave?: (range?: TimestampDateRange) => void;\n onClear?: () => void;\n onClose?: () => void;\n instant?: boolean;\n target?: ElementWithRef<Element>;\n mode: ChangeMode;\n saveLabel?: string;\n cancelLabel?: string;\n clearLabel?: string;\n disabledDaysBefore?: Moment;\n disabledDaysAfter?: Moment;\n disabled?: number[];\n modifiers?: {\n [key: string]: (day: Date) => { matched: boolean; title: string | null };\n };\n disableAnimations?: boolean;\n firstDayOfWeek?: 0 | 1 | 2 | 3 | 4 | 5 | 6;\n forceClose?: boolean;\n required?: boolean;\n month?: Moment | number;\n disableYearPicker?: boolean;\n position?: Placement;\n /** Popper class name*/\n popperClassName?: string;\n backgroundElementClass?: string;\n /** Menu classes */\n menuClassName?: string;\n enableConfirmModal?: boolean;\n /** Modal header text */\n modalHeaderText?: string;\n /** Modal cancel button text */\n modalCancelBtnText?: string;\n /** Modal discard button text */\n modalDiscardBtnText?: string;\n /** Modal discard message text */\n modalDiscardMessage?: string;\n /** Popper Tooltip style */\n popperTooltipStyle?: CSSProperties;\n /** Popper Tooltip class name*/\n popperTooltipClassName?: string;\n open?: boolean;\n onCalendarToggle?: (value: boolean) => void;\n /** Called when day is clicked */\n onDayClick?: (day: Moment, modifiers: string[]) => void;\n showControls?: boolean;\n}\nexport const toMoment = (date?: string | number | Moment) => {\n if (moment.isMoment(date)) {\n return date;\n } else if (typeof date === \"number\") {\n return moment.utc(date * 1000);\n } else if (typeof date === \"string\") {\n return moment.utc(date);\n }\n return null;\n};\n\nexport const DatePickerV2: React.FC<DatePickerProps> = ({\n selected: defaultSelected,\n onChange,\n onSave,\n onClear,\n onClose,\n instant = true,\n target,\n mode = \"daily\",\n saveLabel = \"Save\",\n cancelLabel = \"Cancel\",\n clearLabel = \"Clear\",\n disabledDaysBefore,\n disabledDaysAfter,\n disabled: disabledDays = [],\n modifiers,\n disableAnimations,\n firstDayOfWeek = 0,\n forceClose,\n required,\n month,\n disableYearPicker,\n position = \"bottom-start\",\n menuClassName,\n popperClassName,\n enableConfirmModal = false,\n modalHeaderText = \"Discard changes?\",\n modalDiscardMessage = \"All unsaved changes will be lost.\",\n modalDiscardBtnText = \"OK\",\n modalCancelBtnText = \"Cancel\",\n backgroundElementClass,\n popperTooltipClassName,\n popperTooltipStyle,\n open,\n onCalendarToggle,\n onDayClick,\n showControls,\n}) => {\n const [isOpen, setIsOpen] = useState(open);\n const [isYearSelectOpen, setIsYearSelectOpen] = useState(false);\n const [showDiscardModal, setShowDiscardModal] = useState(false);\n const [isMonthSelectOpen, setIsMonthSelectOpen] = useState(\n mode === \"monthly\" || mode === \"quarterly\"\n );\n const [monthTransitionDirection, setMonthTransitionDirection] = useState<\n \"prev\" | \"next\" | null\n >(null);\n\n const [currentDate, setCurrentDate] = useState<Moment>(() => {\n if (defaultSelected && defaultSelected.from) {\n return toMoment(defaultSelected.from);\n }\n if (month) {\n return toMoment(month);\n }\n return moment.utc();\n });\n\n const [targetDate, setTargetDate] = useState<Moment | undefined>(() => {\n if (defaultSelected && defaultSelected.from) {\n return toMoment(defaultSelected.from);\n } else if (month) {\n return toMoment(month);\n }\n return moment.utc();\n });\n\n const [selected, setSelected] = useState<DateRange | null>(() => {\n if (!defaultSelected) {\n return null;\n }\n if (!defaultSelected.from) {\n return null;\n }\n return {\n from: toMoment(defaultSelected.from),\n to: defaultSelected.to ? toMoment(defaultSelected.to) : null,\n };\n });\n const [hoveredDate, setHoveredDate] = useState<Moment | null>(null);\n\n const timezone = moment.defaultZone\n ? moment.defaultZone.name\n : moment.tz.guess();\n\n const currentDateInTimezone = moment().tz(timezone).format(\"YYYY-MM-DD\");\n\n const today = moment.utc(currentDateInTimezone);\n\n const selectedYearRef = useRef<HTMLDivElement | null>(null);\n const datePickerRef = useRef<HTMLDivElement>(null);\n\n const handleSelection = useCallback(\n (range?: DateRange) => {\n if (!range) {\n setSelected(null);\n if (onChange) onChange(undefined);\n if (instant && onSave) {\n onSave(undefined);\n }\n } else {\n setSelected(range);\n if (onChange)\n onChange({\n from: range.from.utc().unix(),\n to: moment(range.to).utc().unix(),\n });\n if (instant && onSave) {\n onSave({\n from: range.from.utc().unix(),\n to: moment(range.to).utc().unix(),\n });\n }\n }\n },\n [onChange, onSave, instant]\n );\n\n const toggleCalendar = useCallback(() => {\n setIsOpen(!isOpen);\n if (onCalendarToggle) onCalendarToggle(!isOpen);\n }, [isOpen, onCalendarToggle]);\n\n const toggleYearSelect = useCallback(() => {\n setIsYearSelectOpen(!isYearSelectOpen);\n setIsMonthSelectOpen(true);\n }, [isYearSelectOpen]);\n\n const toggleMonthSelect = useCallback(() => {\n if (mode !== \"monthly\" && mode !== \"quarterly\") {\n setIsMonthSelectOpen(!isMonthSelectOpen);\n }\n }, [isMonthSelectOpen, mode]);\n\n useEffect(() => {\n if (defaultSelected && defaultSelected.from) {\n setSelected({\n from: toMoment(defaultSelected.from),\n to: defaultSelected.to ? toMoment(defaultSelected.to) : null,\n });\n setCurrentDate(toMoment(defaultSelected.from) || moment.utc());\n setTargetDate(toMoment(defaultSelected.from) || moment.utc());\n } else {\n setSelected(null);\n }\n }, [defaultSelected, month]);\n\n const handleDateSelect = (date: Moment) => {\n const isSameMonth = date.isSame(currentDate, \"month\");\n\n if (isSameMonth || disableAnimations) {\n setCurrentDate(date);\n setTargetDate(date);\n } else {\n const direction = date.isBefore(currentDate, \"month\") ? \"prev\" : \"next\";\n setTargetDate(date);\n setMonthTransitionDirection(direction);\n }\n\n switch (mode) {\n case \"daily\":\n handleDailySelection(date);\n break;\n case \"weekly\":\n handleWeeklySelection(date);\n break;\n case \"custom\":\n handleCustomSelection(date);\n break;\n default:\n console.warn(`Unhandled mode: ${mode}`);\n }\n\n if (instant && mode !== \"custom\" && forceClose) toggleCalendar();\n };\n\n const handleDailySelection = (date: Moment) => {\n if (!date.isSame(selected?.from)) {\n handleSelection({ from: date, to: date });\n } else if (!required) {\n handleSelection(undefined);\n }\n };\n\n const handleWeeklySelection = (date: Moment) => {\n const currentDayOfWeek = date.day();\n\n const daysToSubtract = (currentDayOfWeek - firstDayOfWeek + 7) % 7;\n\n const startOfWeek = date\n .clone()\n .subtract(daysToSubtract, \"days\")\n .startOf(\"day\");\n const endOfWeek = startOfWeek.clone().add(6, \"days\");\n\n if (!startOfWeek.isSame(selected?.from?.startOf(\"day\"))) {\n handleSelection({ from: startOfWeek, to: endOfWeek });\n } else if (!required) {\n handleSelection(undefined);\n }\n };\n\n const handleCustomSelection = (date: Moment) => {\n if (\n !selected ||\n selected?.from === moment.utc(Number(defaultSelected?.from) * 1000)\n ) {\n setSelected({ from: date.utc(), to: null });\n onChange && onChange({ from: date.utc().unix(), to: date.utc().unix() });\n return;\n }\n\n if (\n moment.isMoment(selected?.from) &&\n !selected?.to &&\n !selected?.from.isSame(date.utc(), \"day\")\n ) {\n const newSelection = selected?.from.isBefore(date)\n ? { from: selected.from, to: date.utc() }\n : { from: date.utc(), to: selected.from };\n setSelected(newSelection);\n onChange &&\n onChange({\n from: newSelection.from.utc().unix(),\n to: newSelection.to.utc().unix(),\n });\n } else if (\n moment.isMoment(selected?.from) &&\n moment.isMoment(selected?.to)\n ) {\n setSelected({ from: date.utc(), to: null });\n onChange && onChange({ from: date.utc().unix(), to: null });\n } else if (\n moment.isMoment(selected?.from) &&\n selected?.from.isSame(date.utc(), \"day\") &&\n !required\n ) {\n setSelected(null);\n onChange && onChange(undefined);\n } else if (selected.from === null && selected.to === null) {\n setSelected({ from: date.utc(), to: null });\n onChange && onChange({ from: date.utc().unix(), to: date.utc().unix() });\n }\n };\n\n const handleSave = () => {\n if (onSave) {\n toggleCalendar();\n if (mode === \"custom\" && !selected?.to) {\n setSelected({\n from: moment.utc(selected?.from),\n to: moment.utc(selected?.from),\n });\n }\n if (selected) {\n onSave({\n from: moment.utc(selected?.from).unix(),\n to: selected?.to\n ? moment.utc(selected?.to).unix()\n : moment.utc(selected?.from).unix(),\n });\n } else {\n if (!required) {\n onSave(undefined);\n setCurrentDate(moment.utc());\n setTargetDate(moment.utc());\n }\n }\n }\n };\n\n const handleMonthChange = useCallback(\n (direction: \"prev\" | \"next\") => {\n setMonthTransitionDirection(direction);\n if (isMonthSelectOpen) {\n setTargetDate((prevDate) => {\n if (prevDate) {\n return direction === \"prev\"\n ? prevDate.clone().subtract(1, \"year\")\n : prevDate.clone().add(1, \"year\");\n }\n return prevDate;\n });\n if (disableAnimations) {\n setCurrentDate((prevDate) =>\n direction === \"prev\"\n ? prevDate.clone().subtract(1, \"year\")\n : prevDate.clone().add(1, \"year\")\n );\n }\n } else {\n setTargetDate((prevDate) => {\n if (prevDate) {\n return direction === \"prev\"\n ? prevDate.clone().subtract(1, \"month\")\n : prevDate.clone().add(1, \"month\");\n }\n return prevDate;\n });\n if (disableAnimations) {\n setCurrentDate((prevDate) =>\n direction === \"prev\"\n ? prevDate.clone().subtract(1, \"month\")\n : prevDate.clone().add(1, \"month\")\n );\n }\n }\n },\n [disableAnimations, isMonthSelectOpen]\n );\n\n const onAnimationEnd = () => {\n if (targetDate) {\n setCurrentDate(targetDate);\n setMonthTransitionDirection(null);\n }\n };\n\n const handleYearSelect = (year: number) => {\n setCurrentDate(currentDate.clone().year(year));\n setTargetDate(currentDate.clone().year(year));\n setIsYearSelectOpen(false);\n setIsMonthSelectOpen(true);\n };\n\n const handleMonthSelect = (month: number) => {\n const newDate = currentDate.clone().utc().month(month);\n setCurrentDate(newDate);\n setTargetDate(newDate);\n\n if (mode === \"monthly\") {\n const range = {\n from: newDate.clone().startOf(\"month\"),\n to: newDate.clone().endOf(\"month\").startOf(\"day\"),\n };\n\n const isSameMonth =\n selected?.from.isSame(range.from, \"month\") &&\n selected?.to?.isSame(range.to, \"month\");\n\n if (isSameMonth) {\n if (!required) {\n handleSelection(undefined);\n if (instant && onSave) {\n setCurrentDate(moment.utc());\n setTargetDate(moment.utc());\n }\n }\n } else {\n handleSelection(range);\n }\n }\n\n if (mode === \"quarterly\") {\n const quarterRange = {\n from: newDate.clone().startOf(\"quarter\"),\n to: newDate.clone().endOf(\"quarter\").startOf(\"day\"),\n };\n\n const isSameQuarter =\n selected?.from.isSame(quarterRange.from, \"quarter\") &&\n selected?.to?.isSame(quarterRange.to, \"quarter\");\n\n if (isSameQuarter) {\n if (!required) {\n handleSelection(undefined);\n if (instant && onSave) {\n setCurrentDate(moment.utc());\n setTargetDate(moment.utc());\n }\n }\n } else {\n handleSelection(quarterRange);\n }\n }\n\n if (mode !== \"monthly\" && mode !== \"quarterly\") {\n setIsMonthSelectOpen(false);\n }\n if (instant && (mode === \"monthly\" || mode === \"quarterly\") && forceClose)\n toggleCalendar();\n };\n\n useEffect(() => {\n if (isYearSelectOpen && selectedYearRef.current) {\n selectedYearRef?.current?.scrollIntoView({\n behavior: \"smooth\",\n block: \"center\",\n });\n }\n }, [isYearSelectOpen]);\n\n const renderDaysOfWeek = () => {\n const daysOfWeek = moment.weekdaysShort();\n const orderedDays = [\n ...daysOfWeek.slice(firstDayOfWeek),\n ...daysOfWeek.slice(0, firstDayOfWeek),\n ];\n return orderedDays.map((day) => (\n <StyledDayName key={day}>{day[0]}</StyledDayName>\n ));\n };\n\n const animationClass = useMemo(() => {\n return monthTransitionDirection && !disableAnimations\n ? monthTransitionDirection === \"next\"\n ? \"slide-down\"\n : \"slide-up\"\n : \"\";\n }, [disableAnimations, monthTransitionDirection]);\n\n const handleDayClick = (day: Moment, modifiers: string[]) => {\n handleDateSelect(day);\n if (onDayClick) onDayClick(day, modifiers);\n };\n\n const getHoverRange = () => {\n if (!hoveredDate) return null;\n\n if (mode === \"quarterly\") {\n const startMonth = hoveredDate.clone().startOf(\"quarter\");\n const endMonth = hoveredDate.clone().endOf(\"quarter\");\n return { from: startMonth, to: endMonth };\n }\n\n if (mode === \"weekly\") {\n const currentDayOfWeek = hoveredDate.day();\n const daysToSubtract = (currentDayOfWeek - firstDayOfWeek + 7) % 7;\n const startOfWeek = hoveredDate\n .clone()\n .subtract(daysToSubtract, \"days\")\n .startOf(\"day\");\n const endOfWeek = startOfWeek.clone().add(6, \"days\");\n\n return { from: startOfWeek, to: endOfWeek };\n }\n\n if (mode === \"custom\" && selected?.from && !selected?.to) {\n const from = selected.from.isBefore(hoveredDate)\n ? selected.from\n : hoveredDate;\n const to = selected.from.isAfter(hoveredDate)\n ? selected.from\n : hoveredDate;\n return { from, to };\n }\n\n return null;\n };\n\n const renderCalendarDates = () => {\n const startOfMonth = currentDate.clone().startOf(\"month\");\n const startDate = startOfMonth.clone().isoWeekday(firstDayOfWeek);\n\n const endDate = startDate.clone().add(6, \"weeks\");\n const date = startDate.clone();\n const dates: React.JSX.Element[] = [];\n\n const hoverRange = getHoverRange();\n\n while (date.isBefore(endDate)) {\n const clonedDate = date.clone();\n const isToday = clonedDate.isSame(today, \"day\");\n const isSelected =\n selected &&\n (clonedDate.isBetween(selected.from, selected.to, \"day\", \"[]\") ||\n clonedDate.isSame(selected.from, \"day\") ||\n clonedDate.isSame(selected.to, \"day\"));\n\n const isHovered =\n hoverRange &&\n (mode === \"weekly\" || mode === \"custom\") &&\n clonedDate.isBetween(hoverRange.from, hoverRange.to, \"day\", \"[]\");\n\n const isDisabled =\n (disabledDaysBefore &&\n clonedDate.isBefore(disabledDaysBefore, \"day\")) ||\n (disabledDaysAfter && clonedDate.isAfter(disabledDaysAfter, \"day\")) ||\n disabledDays.includes(clonedDate.day());\n\n const modifierClasses: string[] = [];\n const modifierTitles: string[] = [];\n let titles;\n\n if (modifiers)\n Object.keys(modifiers || {}).forEach((modifier) => {\n const { matched, title } = modifiers[modifier](clonedDate.toDate());\n if (matched) {\n modifierClasses.push(modifier);\n if (title) modifierTitles.push(title);\n }\n });\n if (modifierTitles.length) {\n titles = (\n <div key={`title-wrapper-${clonedDate.toString()}`}>\n {modifierTitles.map((title: string, index: number) => (\n <div key={`title-text-${index}`}>{title}</div>\n ))}\n </div>\n );\n }\n\n const isOutside = !clonedDate.isSame(currentDate, \"month\");\n\n dates.push(\n <Tooltip\n title={titles}\n disable={!modifierTitles.length}\n key={clonedDate.toString()}\n popperTooltipClassName={popperTooltipClassName}\n popperTooltipStyle={popperTooltipStyle}\n >\n <StyledCalendarDate\n className={`${isSelected ? \"selected\" : \"\"} ${\n isToday ? \"today-day\" : \"\"\n }\n ${isDisabled ? \"disabled\" : \"\"} ${\n isHovered ? \"hovered\" : \"\"\n } ${modifierClasses.join(\" \")}\n ${isOutside ? \"outside\" : \"\"}`}\n onClick={() => handleDayClick(clonedDate, modifierClasses)}\n onMouseEnter={\n mode === \"weekly\" || mode === \"custom\"\n ? () => setHoveredDate(clonedDate)\n : undefined\n }\n onMouseLeave={\n mode === \"weekly\" || mode === \"custom\"\n ? () => setHoveredDate(null)\n : undefined\n }\n >\n {clonedDate.date()}\n </StyledCalendarDate>\n </Tooltip>\n );\n\n date.add(1, \"day\");\n }\n\n return dates;\n };\n\n const renderYearSelect = () => {\n const years = Array.from({ length: 200 }, (_, i) => 1900 + i);\n return (\n <StyledYearSelect>\n {years.map((year) => {\n const isSelected =\n selected &&\n ((selected?.to &&\n year >= selected.from.year() &&\n year <= selected.to.year()) ||\n year === selected.from.year() ||\n (selected?.to && year === selected.to.year()));\n\n const isDisabledYear =\n (disabledDaysBefore && year < disabledDaysBefore.year()) ||\n (disabledDaysAfter && year > disabledDaysAfter.year());\n\n return (\n <StyledYearOption\n key={year}\n ref={year === currentDate.year() ? selectedYearRef : null}\n className={`${isSelected ? \"selected\" : \"\"} ${\n year === today.year() ? \"today-year\" : \"\"\n } ${isDisabledYear ? \"disabled\" : \"\"}`}\n onClick={() => handleYearSelect(year)}\n >\n {year}\n </StyledYearOption>\n );\n })}\n </StyledYearSelect>\n );\n };\n\n const renderMonthSelect = () => {\n const months = moment.months();\n const hoverRange = getHoverRange();\n\n return (\n <StyledMonthSelect>\n {months.map((month, index) => {\n const monthDate = currentDate.clone().month(index);\n\n const isSelected =\n selected &&\n (monthDate.isBetween(selected.from, selected.to, \"month\", \"[]\") ||\n monthDate.isSame(selected.from, \"month\") ||\n monthDate.isSame(selected.to, \"month\"));\n\n const isDisabledMonth =\n (disabledDaysBefore &&\n monthDate.isBefore(disabledDaysBefore, \"month\")) ||\n (disabledDaysAfter &&\n monthDate.isAfter(disabledDaysAfter, \"month\"));\n\n const isHoveredQuarter =\n hoverRange &&\n mode === \"quarterly\" &&\n monthDate.isBetween(hoverRange.from, hoverRange.to, \"month\", \"[]\");\n\n return (\n <StyledMonthOption\n key={month}\n className={`${isSelected ? \"selected\" : \"\"} ${\n index === today.month() && currentDate.year() === today.year()\n ? \"today-month\"\n : \"\"\n } ${isDisabledMonth ? \"disabled\" : \"\"} ${\n isHoveredQuarter ? \"hovered\" : \"\"\n }`}\n onClick={() => handleMonthSelect(index)}\n onMouseEnter={\n mode === \"quarterly\"\n ? () => setHoveredDate(monthDate)\n : undefined\n }\n onMouseLeave={\n mode === \"quarterly\" ? () => setHoveredDate(null) : undefined\n }\n >\n {month.substring(0, 3)}\n </StyledMonthOption>\n );\n })}\n </StyledMonthSelect>\n );\n };\n\n const captionText = useMemo(() => {\n const isCurrentYear = currentDate.isSame(today, \"year\");\n\n return !isMonthSelectOpen && !isYearSelectOpen\n ? `${currentDate.format(\"MMMM\")}${\n isCurrentYear ? \"\" : ` ${currentDate.format(\"YYYY\")}`\n }`\n : currentDate.format(\"YYYY\");\n }, [currentDate, isMonthSelectOpen, isYearSelectOpen, today]);\n\n const handleClear = useCallback(() => {\n if (typeof onClear === \"function\") onClear();\n handleSelection(undefined);\n }, [handleSelection, onClear]);\n\n const handleClose = useCallback(() => {\n if (mode === \"custom\" && instant && selected) {\n setSelected({\n from: moment.utc(selected?.from),\n to: selected?.to\n ? moment.utc(selected?.to)\n : moment.utc(selected?.from),\n });\n }\n if (\n instant &&\n onSave &&\n mode === \"custom\" &&\n selected &&\n (!selected?.from.isSame(\n moment.utc(Number(defaultSelected?.from) * 1000)\n ) ||\n !selected?.to?.isSame(moment.utc(Number(defaultSelected?.to) * 1000)))\n ) {\n onSave({\n from: moment.utc(selected?.from).unix(),\n to: selected?.to\n ? moment.utc(selected?.to).unix()\n : moment.utc(selected?.from).unix(),\n });\n }\n if (mode === \"custom\" && instant && !selected && onSave) {\n onSave(undefined);\n }\n setCurrentDate(\n defaultSelected?.from\n ? toMoment(defaultSelected.from)\n : month\n ? toMoment(month)\n : moment.utc()\n );\n setTargetDate(\n defaultSelected?.from\n ? toMoment(defaultSelected.from)\n : month\n ? toMoment(month)\n : moment.utc()\n );\n setSelected(\n defaultSelected?.from\n ? {\n from: toMoment(defaultSelected.from),\n to: defaultSelected.to ? toMoment(defaultSelected.to) : null,\n }\n : null\n );\n toggleCalendar();\n setIsYearSelectOpen(false);\n setIsMonthSelectOpen(mode === \"monthly\" || mode === \"quarterly\");\n setMonthTransitionDirection(null);\n if (typeof onClose === \"function\") onClose();\n }, [\n defaultSelected,\n instant,\n mode,\n month,\n onClose,\n onSave,\n selected,\n toggleCalendar,\n ]);\n\n const handleBeforeClose = useCallback(() => {\n let shouldClose = true;\n if (!target || !enableConfirmModal || instant || required) {\n shouldClose = true;\n }\n if (\n target &&\n enableConfirmModal &&\n !instant &&\n !required &&\n ((selected && !defaultSelected) ||\n (!selected && defaultSelected) ||\n (selected?.from &&\n defaultSelected?.from &&\n !selected.from.isSame(toMoment(defaultSelected.from))) ||\n (selected?.to &&\n defaultSelected?.to &&\n !selected.to.isSame(toMoment(defaultSelected.to))))\n ) {\n shouldClose = false;\n setShowDiscardModal(true);\n }\n if (shouldClose) handleClose();\n return shouldClose;\n }, [\n defaultSelected,\n enableConfirmModal,\n handleClose,\n instant,\n required,\n selected,\n target,\n ]);\n\n const Wrapper = target ? Menu : \"div\";\n\n const handleCaptionClick = useCallback(() => {\n isMonthSelectOpen && !disableYearPicker\n ? toggleYearSelect()\n : toggleMonthSelect();\n }, [\n disableYearPicker,\n isMonthSelectOpen,\n toggleMonthSelect,\n toggleYearSelect,\n ]);\n\n const handleCloseDiscardModal = useCallback(() => {\n setShowDiscardModal(false);\n }, []);\n\n const handleSaveDiscardModal = useCallback(() => {\n setSelected(\n defaultSelected?.from\n ? {\n from: toMoment(defaultSelected.from),\n to: defaultSelected.to ? toMoment(defaultSelected.to) : null,\n }\n : null\n );\n setShowDiscardModal(false);\n handleClose();\n }, [defaultSelected, handleClose]);\n\n const wrapperProps = target\n ? {\n className: \"c-date-picker--calendar\",\n target,\n onBeforeClose: handleBeforeClose,\n onClose: handleClose,\n open: isOpen,\n onOpen: toggleCalendar,\n position,\n menuClassName,\n popperClassName,\n backgroundElementClass,\n }\n : { className: \"c-date-picker--calendar\" };\n\n useEffect(() => {\n const handleKeyDown = (event) => {\n if (event.key === \"ArrowRight\") {\n handleMonthChange(\"next\");\n } else if (event.key === \"ArrowLeft\") {\n handleMonthChange(\"prev\");\n }\n };\n\n if (isOpen) {\n window.addEventListener(\"keydown\", handleKeyDown);\n }\n\n return () => {\n window.removeEventListener(\"keydown\", handleKeyDown);\n };\n }, [isOpen, handleMonthChange]);\n\n const saveIsDisabled = () => {\n if (!defaultSelected && !selected) {\n return true;\n }\n if (\n defaultSelected &&\n selected &&\n defaultSelected.from &&\n selected.from.isSame(toMoment(defaultSelected.from)) &&\n defaultSelected.to &&\n selected.to &&\n selected.to.isSame(toMoment(defaultSelected.to))\n ) {\n return true;\n }\n return false;\n };\n\n return (\n <StyledDatePickerWrapper ref={datePickerRef}>\n <Wrapper {...wrapperProps}>\n <StyledDatePickerContainerInner>\n <StyledCalendarHeader>\n {isYearSelectOpen ? null : (\n <IconButton\n onClick={() => handleMonthChange(\"prev\")}\n variant=\"text gray\"\n size=\"small\"\n >\n <ArrowLeftIcon />\n </IconButton>\n )}\n <StyledCaption\n className={`${animationClass} ${\n isYearSelectOpen ? \"year-caption\" : \"\"\n }`}\n key={isMonthSelectOpen ? currentDate.year() : currentDate.month()}\n onClick={handleCaptionClick}\n onAnimationEnd={onAnimationEnd}\n >\n {captionText}\n </StyledCaption>\n {isYearSelectOpen ? null : (\n <IconButton\n onClick={() => handleMonthChange(\"next\")}\n variant=\"text gray\"\n size=\"small\"\n >\n <ArrowRightIcon />\n </IconButton>\n )}\n </StyledCalendarHeader>\n <StyledCalendarSelector>\n {isYearSelectOpen ? (\n renderYearSelect()\n ) : isMonthSelectOpen ? (\n <StyledMonthSelector\n className={animationClass}\n key={currentDate.year()}\n onAnimationEnd={onAnimationEnd}\n >\n {renderMonthSelect()}\n </StyledMonthSelector>\n ) : (\n <>\n <StyledDaysOfWeek>{renderDaysOfWeek()}</StyledDaysOfWeek>\n <StyledCalendarDates\n className={animationClass}\n key={currentDate.month()}\n >\n {renderCalendarDates()}\n </StyledCalendarDates>\n </>\n )}\n </StyledCalendarSelector>\n {(target || showControls) &&\n (!instant ? (\n <StyledControls>\n <StyledControlsLeft>\n <Button\n size=\"small\"\n variant=\"primary\"\n onClick={handleSave}\n disabled={saveIsDisabled()}\n >\n {saveLabel}\n </Button>\n <Tooltip\n title={cancelLabel}\n popperTooltipStyle={{ zIndex: 1301 }}\n >\n <IconButton\n size=\"small\"\n variant=\"text gray\"\n onClick={handleBeforeClose}\n >\n <CancelCrossIcon />\n </IconButton>\n </Tooltip>\n </StyledControlsLeft>\n {!required ? (\n <Button\n size=\"small\"\n onClick={handleClear}\n variant=\"text gray\"\n >\n {clearLabel}\n </Button>\n ) : null}\n </StyledControls>\n ) : !required ? (\n <StyledControls>\n <StyledClearInstantButton\n size=\"small\"\n onClick={handleClear}\n variant=\"text gray\"\n >\n {clearLabel}\n </StyledClearInstantButton>\n </StyledControls>\n ) : null)}\n </StyledDatePickerContainerInner>\n </Wrapper>\n {!instant && target && !required && enableConfirmModal ? (\n <StyledConfirmDialog\n className=\"modal-select-date\"\n open={showDiscardModal}\n onCancel={handleCloseDiscardModal}\n onConfirm={handleSaveDiscardModal}\n dialogTitle={modalHeaderText}\n dialogContent={modalDiscardMessage}\n cancelBtnText={modalCancelBtnText}\n confirmBtnText={modalDiscardBtnText}\n />\n ) : null}\n </StyledDatePickerWrapper>\n );\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"DatePickerV2.js","names":["React","useState","useRef","useEffect","useCallback","useMemo","moment","StyledCalendarDate","StyledCalendarDates","StyledCalendarHeader","StyledCalendarSelector","StyledCaption","StyledClearInstantButton","StyledConfirmDialog","StyledControls","StyledControlsLeft","StyledDatePickerContainerInner","StyledDatePickerWrapper","StyledDayName","StyledDaysOfWeek","StyledMonthOption","StyledMonthSelect","StyledMonthSelector","StyledYearOption","StyledYearSelect","Button","IconButton","ArrowLeftIcon","ArrowRightIcon","CancelCrossIcon","Menu","Tooltip","toMoment","date","isMoment","utc","DatePickerV2","_ref","selected","defaultSelected","onChange","onSave","onClear","onClose","instant","target","mode","saveLabel","cancelLabel","clearLabel","disabledDaysBefore","disabledDaysAfter","disabled","disabledDays","modifiers","disableAnimations","firstDayOfWeek","forceClose","required","month","disableYearPicker","position","menuClassName","popperClassName","enableConfirmModal","modalHeaderText","modalDiscardMessage","modalDiscardBtnText","modalCancelBtnText","backgroundElementClass","popperTooltipClassName","popperTooltipStyle","open","onCalendarToggle","onDayClick","showControls","isOpen","setIsOpen","isYearSelectOpen","setIsYearSelectOpen","showDiscardModal","setShowDiscardModal","isMonthSelectOpen","setIsMonthSelectOpen","monthTransitionDirection","setMonthTransitionDirection","currentDate","setCurrentDate","from","targetDate","setTargetDate","setSelected","to","hoveredDate","setHoveredDate","timezone","defaultZone","name","tz","guess","currentDateInTimezone","format","today","selectedYearRef","datePickerRef","handleSelection","range","undefined","unix","toggleCalendar","toggleYearSelect","toggleMonthSelect","handleDateSelect","isSameMonth","isSame","direction","isBefore","handleDailySelection","handleWeeklySelection","handleCustomSelection","console","warn","_selected$from","currentDayOfWeek","day","daysToSubtract","startOfWeek","clone","subtract","startOf","endOfWeek","add","Number","newSelection","handleSave","handleMonthChange","prevDate","onAnimationEnd","handleYearSelect","year","handleMonthSelect","newDate","_selected$to","endOf","_selected$to2","quarterRange","isSameQuarter","current","_selectedYearRef$curr","scrollIntoView","behavior","block","renderDaysOfWeek","daysOfWeek","weekdaysShort","orderedDays","slice","map","createElement","key","animationClass","handleDayClick","getHoverRange","startMonth","endMonth","isAfter","renderCalendarDates","startOfMonth","startDate","isoWeekday","endDate","dates","hoverRange","clonedDate","isToday","isSelected","isBetween","isHovered","isDisabled","includes","modifierClasses","modifierTitles","titles","Object","keys","forEach","modifier","matched","title","toDate","push","length","toString","index","isOutside","disable","className","join","onClick","onMouseEnter","onMouseLeave","renderYearSelect","years","Array","_","i","isDisabledYear","ref","renderMonthSelect","months","monthDate","isDisabledMonth","isHoveredQuarter","substring","captionText","isCurrentYear","handleClear","handleClose","_selected$to3","handleBeforeClose","shouldClose","Wrapper","handleCaptionClick","handleCloseDiscardModal","handleSaveDiscardModal","wrapperProps","onBeforeClose","onOpen","handleKeyDown","event","window","addEventListener","removeEventListener","saveIsDisabled","variant","size","Fragment","zIndex","onCancel","onConfirm","dialogTitle","dialogContent","cancelBtnText","confirmBtnText"],"sources":["../../../../src/components/DatePicker/DatePickerV2.tsx"],"sourcesContent":["import React, {\n useState,\n useRef,\n useEffect,\n useCallback,\n useMemo,\n CSSProperties,\n} from \"react\";\n\nimport { Moment } from \"moment\";\nimport moment from \"moment-timezone\";\n\nimport {\n StyledCalendarDate,\n StyledCalendarDates,\n StyledCalendarHeader,\n StyledCalendarSelector,\n StyledCaption,\n StyledClearInstantButton,\n StyledConfirmDialog,\n StyledControls,\n StyledControlsLeft,\n StyledDatePickerContainerInner,\n StyledDatePickerWrapper,\n StyledDayName,\n StyledDaysOfWeek,\n StyledMonthOption,\n StyledMonthSelect,\n StyledMonthSelector,\n StyledYearOption,\n StyledYearSelect,\n} from \"./StylesV2\";\nimport { Button } from \"../Button\";\nimport { IconButton } from \"../IconButton\";\nimport { ArrowLeftIcon, ArrowRightIcon, CancelCrossIcon } from \"../Icons\";\nimport { Menu } from \"../Menu\";\nimport { Placement } from \"../Popper\";\nimport { ElementWithRef } from \"../Select\";\nimport { Tooltip } from \"../Tooltip\";\n\nexport type ChangeMode =\n | \"daily\"\n | \"weekly\"\n | \"monthly\"\n | \"quarterly\"\n | \"custom\";\n\nexport interface DateRange {\n from: Moment;\n to: Moment | null;\n}\n\nexport interface TimestampDateRange {\n from: number | string | Moment | null;\n to: number | string | Moment | null;\n}\n\nexport interface DatePickerProps {\n selected?: TimestampDateRange;\n onChange?: (range?: TimestampDateRange) => void;\n onSave?: (range?: TimestampDateRange) => void;\n onClear?: () => void;\n onClose?: () => void;\n instant?: boolean;\n target?: ElementWithRef<Element>;\n mode: ChangeMode;\n saveLabel?: string;\n cancelLabel?: string;\n clearLabel?: string;\n disabledDaysBefore?: Moment;\n disabledDaysAfter?: Moment;\n disabled?: number[];\n modifiers?: {\n [key: string]: (day: Date) => { matched: boolean; title: string | null };\n };\n disableAnimations?: boolean;\n firstDayOfWeek?: 0 | 1 | 2 | 3 | 4 | 5 | 6;\n forceClose?: boolean;\n required?: boolean;\n month?: Moment | number;\n disableYearPicker?: boolean;\n position?: Placement;\n /** Popper class name*/\n popperClassName?: string;\n backgroundElementClass?: string;\n /** Menu classes */\n menuClassName?: string;\n enableConfirmModal?: boolean;\n /** Modal header text */\n modalHeaderText?: string;\n /** Modal cancel button text */\n modalCancelBtnText?: string;\n /** Modal discard button text */\n modalDiscardBtnText?: string;\n /** Modal discard message text */\n modalDiscardMessage?: string;\n /** Popper Tooltip style */\n popperTooltipStyle?: CSSProperties;\n /** Popper Tooltip class name*/\n popperTooltipClassName?: string;\n open?: boolean;\n onCalendarToggle?: (value: boolean) => void;\n /** Called when day is clicked */\n onDayClick?: (day: Moment, modifiers: string[]) => void;\n showControls?: boolean;\n}\nexport const toMoment = (date?: string | number | Moment) => {\n if (moment.isMoment(date)) {\n return date;\n } else if (typeof date === \"number\") {\n return moment.utc(date * 1000);\n } else if (typeof date === \"string\") {\n return moment.utc(date);\n }\n return null;\n};\n\nexport const DatePickerV2: React.FC<DatePickerProps> = ({\n selected: defaultSelected,\n onChange,\n onSave,\n onClear,\n onClose,\n instant = true,\n target,\n mode = \"daily\",\n saveLabel = \"Save\",\n cancelLabel = \"Cancel\",\n clearLabel = \"Clear\",\n disabledDaysBefore,\n disabledDaysAfter,\n disabled: disabledDays = [],\n modifiers,\n disableAnimations,\n firstDayOfWeek = 0,\n forceClose,\n required,\n month,\n disableYearPicker,\n position = \"bottom-start\",\n menuClassName,\n popperClassName,\n enableConfirmModal = false,\n modalHeaderText = \"Discard changes?\",\n modalDiscardMessage = \"All unsaved changes will be lost.\",\n modalDiscardBtnText = \"OK\",\n modalCancelBtnText = \"Cancel\",\n backgroundElementClass,\n popperTooltipClassName,\n popperTooltipStyle,\n open,\n onCalendarToggle,\n onDayClick,\n showControls,\n}) => {\n const [isOpen, setIsOpen] = useState(open);\n const [isYearSelectOpen, setIsYearSelectOpen] = useState(false);\n const [showDiscardModal, setShowDiscardModal] = useState(false);\n const [isMonthSelectOpen, setIsMonthSelectOpen] = useState(\n mode === \"monthly\" || mode === \"quarterly\"\n );\n const [monthTransitionDirection, setMonthTransitionDirection] = useState<\n \"prev\" | \"next\" | null\n >(null);\n\n const [currentDate, setCurrentDate] = useState<Moment>(() => {\n if (defaultSelected && defaultSelected.from) {\n return toMoment(defaultSelected.from);\n }\n if (month) {\n return toMoment(month);\n }\n return moment.utc();\n });\n\n const [targetDate, setTargetDate] = useState<Moment | undefined>(() => {\n if (defaultSelected && defaultSelected.from) {\n return toMoment(defaultSelected.from);\n } else if (month) {\n return toMoment(month);\n }\n return moment.utc();\n });\n\n const [selected, setSelected] = useState<DateRange | null>(() => {\n if (!defaultSelected) {\n return null;\n }\n if (!defaultSelected.from) {\n return null;\n }\n return {\n from: toMoment(defaultSelected.from),\n to: defaultSelected.to ? toMoment(defaultSelected.to) : null,\n };\n });\n const [hoveredDate, setHoveredDate] = useState<Moment | null>(null);\n\n const timezone = moment.defaultZone\n ? moment.defaultZone.name\n : moment.tz.guess();\n\n const currentDateInTimezone = moment().tz(timezone).format(\"YYYY-MM-DD\");\n\n const today = moment.utc(currentDateInTimezone);\n\n const selectedYearRef = useRef<HTMLDivElement | null>(null);\n const datePickerRef = useRef<HTMLDivElement>(null);\n\n const handleSelection = useCallback(\n (range?: DateRange) => {\n if (!range) {\n setSelected(null);\n if (onChange) onChange(undefined);\n if (instant && onSave) {\n onSave(undefined);\n }\n } else {\n setSelected(range);\n if (onChange)\n onChange({\n from: range.from.utc().unix(),\n to: moment(range.to).utc().unix(),\n });\n if (instant && onSave) {\n onSave({\n from: range.from.utc().unix(),\n to: moment(range.to).utc().unix(),\n });\n }\n }\n },\n [onChange, onSave, instant]\n );\n\n const toggleCalendar = useCallback(() => {\n setIsOpen(!isOpen);\n if (onCalendarToggle) onCalendarToggle(!isOpen);\n }, [isOpen, onCalendarToggle]);\n\n const toggleYearSelect = useCallback(() => {\n setIsYearSelectOpen(!isYearSelectOpen);\n setIsMonthSelectOpen(true);\n }, [isYearSelectOpen]);\n\n const toggleMonthSelect = useCallback(() => {\n if (mode !== \"monthly\" && mode !== \"quarterly\") {\n setIsMonthSelectOpen(!isMonthSelectOpen);\n }\n }, [isMonthSelectOpen, mode]);\n\n useEffect(() => {\n if (defaultSelected && defaultSelected.from) {\n setSelected({\n from: toMoment(defaultSelected.from),\n to: defaultSelected.to ? toMoment(defaultSelected.to) : null,\n });\n setCurrentDate(toMoment(defaultSelected.from) || moment.utc());\n setTargetDate(toMoment(defaultSelected.from) || moment.utc());\n } else {\n setSelected(null);\n }\n }, [defaultSelected, month]);\n\n const handleDateSelect = (date: Moment) => {\n const isSameMonth = date.isSame(currentDate, \"month\");\n\n if (isSameMonth || disableAnimations) {\n setCurrentDate(date);\n setTargetDate(date);\n } else {\n const direction = date.isBefore(currentDate, \"month\") ? \"prev\" : \"next\";\n setTargetDate(date);\n setMonthTransitionDirection(direction);\n }\n\n switch (mode) {\n case \"daily\":\n handleDailySelection(date);\n break;\n case \"weekly\":\n handleWeeklySelection(date);\n break;\n case \"custom\":\n handleCustomSelection(date);\n break;\n default:\n console.warn(`Unhandled mode: ${mode}`);\n }\n\n if (instant && mode !== \"custom\" && forceClose) toggleCalendar();\n };\n\n const handleDailySelection = (date: Moment) => {\n if (!date.isSame(selected?.from)) {\n handleSelection({ from: date, to: date });\n } else if (!required) {\n handleSelection(undefined);\n }\n };\n\n const handleWeeklySelection = (date: Moment) => {\n const currentDayOfWeek = date.day();\n\n const daysToSubtract = (currentDayOfWeek - firstDayOfWeek + 7) % 7;\n\n const startOfWeek = date\n .clone()\n .subtract(daysToSubtract, \"days\")\n .startOf(\"day\");\n const endOfWeek = startOfWeek.clone().add(6, \"days\");\n\n if (!startOfWeek.isSame(selected?.from?.startOf(\"day\"))) {\n handleSelection({ from: startOfWeek, to: endOfWeek });\n } else if (!required) {\n handleSelection(undefined);\n }\n };\n\n const handleCustomSelection = (date: Moment) => {\n if (\n !selected ||\n selected?.from === moment.utc(Number(defaultSelected?.from) * 1000)\n ) {\n setSelected({ from: date.utc(), to: null });\n onChange && onChange({ from: date.utc().unix(), to: date.utc().unix() });\n return;\n }\n\n if (\n moment.isMoment(selected?.from) &&\n !selected?.to &&\n !selected?.from.isSame(date.utc(), \"day\")\n ) {\n const newSelection = selected?.from.isBefore(date)\n ? { from: selected.from, to: date.utc() }\n : { from: date.utc(), to: selected.from };\n setSelected(newSelection);\n onChange &&\n onChange({\n from: newSelection.from.utc().unix(),\n to: newSelection.to.utc().unix(),\n });\n } else if (\n moment.isMoment(selected?.from) &&\n moment.isMoment(selected?.to)\n ) {\n setSelected({ from: date.utc(), to: null });\n onChange && onChange({ from: date.utc().unix(), to: null });\n } else if (\n moment.isMoment(selected?.from) &&\n selected?.from.isSame(date.utc(), \"day\") &&\n !required\n ) {\n setSelected(null);\n onChange && onChange(undefined);\n } else if (selected.from === null && selected.to === null) {\n setSelected({ from: date.utc(), to: null });\n onChange && onChange({ from: date.utc().unix(), to: date.utc().unix() });\n }\n };\n\n const handleSave = () => {\n if (onSave) {\n toggleCalendar();\n if (mode === \"custom\" && !selected?.to) {\n setSelected({\n from: moment.utc(selected?.from),\n to: moment.utc(selected?.from),\n });\n }\n if (selected) {\n onSave({\n from: moment.utc(selected?.from).unix(),\n to: selected?.to\n ? moment.utc(selected?.to).unix()\n : moment.utc(selected?.from).unix(),\n });\n } else {\n if (!required) {\n onSave(undefined);\n setCurrentDate(moment.utc());\n setTargetDate(moment.utc());\n }\n }\n }\n };\n\n const handleMonthChange = useCallback(\n (direction: \"prev\" | \"next\") => {\n setMonthTransitionDirection(direction);\n if (isMonthSelectOpen) {\n setTargetDate((prevDate) => {\n if (prevDate) {\n return direction === \"prev\"\n ? prevDate.clone().subtract(1, \"year\")\n : prevDate.clone().add(1, \"year\");\n }\n return prevDate;\n });\n if (disableAnimations) {\n setCurrentDate((prevDate) =>\n direction === \"prev\"\n ? prevDate.clone().subtract(1, \"year\")\n : prevDate.clone().add(1, \"year\")\n );\n }\n } else {\n setTargetDate((prevDate) => {\n if (prevDate) {\n return direction === \"prev\"\n ? prevDate.clone().subtract(1, \"month\")\n : prevDate.clone().add(1, \"month\");\n }\n return prevDate;\n });\n if (disableAnimations) {\n setCurrentDate((prevDate) =>\n direction === \"prev\"\n ? prevDate.clone().subtract(1, \"month\")\n : prevDate.clone().add(1, \"month\")\n );\n }\n }\n },\n [disableAnimations, isMonthSelectOpen]\n );\n\n const onAnimationEnd = () => {\n if (targetDate) {\n setCurrentDate(targetDate);\n setMonthTransitionDirection(null);\n }\n };\n\n const handleYearSelect = (year: number) => {\n setCurrentDate(currentDate.clone().year(year));\n setTargetDate(currentDate.clone().year(year));\n setIsYearSelectOpen(false);\n setIsMonthSelectOpen(true);\n };\n\n const handleMonthSelect = (month: number) => {\n const newDate = currentDate.clone().utc().month(month);\n setCurrentDate(newDate);\n setTargetDate(newDate);\n\n if (mode === \"monthly\") {\n const range = {\n from: newDate.clone().startOf(\"month\"),\n to: newDate.clone().endOf(\"month\").startOf(\"day\"),\n };\n\n const isSameMonth =\n selected?.from.isSame(range.from, \"month\") &&\n selected?.to?.isSame(range.to, \"month\");\n\n if (isSameMonth) {\n if (!required) {\n handleSelection(undefined);\n if (instant && onSave) {\n setCurrentDate(moment.utc());\n setTargetDate(moment.utc());\n }\n }\n } else {\n handleSelection(range);\n }\n }\n\n if (mode === \"quarterly\") {\n const quarterRange = {\n from: newDate.clone().startOf(\"quarter\"),\n to: newDate.clone().endOf(\"quarter\").startOf(\"day\"),\n };\n\n const isSameQuarter =\n selected?.from.isSame(quarterRange.from, \"quarter\") &&\n selected?.to?.isSame(quarterRange.to, \"quarter\");\n\n if (isSameQuarter) {\n if (!required) {\n handleSelection(undefined);\n if (instant && onSave) {\n setCurrentDate(moment.utc());\n setTargetDate(moment.utc());\n }\n }\n } else {\n handleSelection(quarterRange);\n }\n }\n\n if (mode !== \"monthly\" && mode !== \"quarterly\") {\n setIsMonthSelectOpen(false);\n }\n if (instant && (mode === \"monthly\" || mode === \"quarterly\") && forceClose)\n toggleCalendar();\n };\n\n useEffect(() => {\n if (isYearSelectOpen && selectedYearRef.current) {\n selectedYearRef?.current?.scrollIntoView({\n behavior: \"smooth\",\n block: \"center\",\n });\n }\n }, [isYearSelectOpen]);\n\n const renderDaysOfWeek = () => {\n const daysOfWeek = moment.weekdaysShort();\n const orderedDays = [\n ...daysOfWeek.slice(firstDayOfWeek),\n ...daysOfWeek.slice(0, firstDayOfWeek),\n ];\n return orderedDays.map((day) => (\n <StyledDayName key={day}>{day[0]}</StyledDayName>\n ));\n };\n\n const animationClass = useMemo(() => {\n return monthTransitionDirection && !disableAnimations\n ? monthTransitionDirection === \"next\"\n ? \"slide-down\"\n : \"slide-up\"\n : \"\";\n }, [disableAnimations, monthTransitionDirection]);\n\n const handleDayClick = (day: Moment, modifiers: string[]) => {\n handleDateSelect(day);\n if (onDayClick) onDayClick(day, modifiers);\n };\n\n const getHoverRange = () => {\n if (!hoveredDate) return null;\n\n if (mode === \"quarterly\") {\n const startMonth = hoveredDate.clone().startOf(\"quarter\");\n const endMonth = hoveredDate.clone().endOf(\"quarter\");\n return { from: startMonth, to: endMonth };\n }\n\n if (mode === \"weekly\") {\n const currentDayOfWeek = hoveredDate.day();\n const daysToSubtract = (currentDayOfWeek - firstDayOfWeek + 7) % 7;\n const startOfWeek = hoveredDate\n .clone()\n .subtract(daysToSubtract, \"days\")\n .startOf(\"day\");\n const endOfWeek = startOfWeek.clone().add(6, \"days\");\n\n return { from: startOfWeek, to: endOfWeek };\n }\n\n if (mode === \"custom\" && selected?.from && !selected?.to) {\n const from = selected.from.isBefore(hoveredDate)\n ? selected.from\n : hoveredDate;\n const to = selected.from.isAfter(hoveredDate)\n ? selected.from\n : hoveredDate;\n return { from, to };\n }\n\n return null;\n };\n\n const renderCalendarDates = () => {\n const startOfMonth = currentDate.clone().startOf(\"month\");\n const startDate = startOfMonth.clone().isoWeekday(firstDayOfWeek);\n\n const endDate = startDate.clone().add(6, \"weeks\");\n const date = startDate.clone();\n const dates: React.JSX.Element[] = [];\n\n const hoverRange = getHoverRange();\n\n while (date.isBefore(endDate)) {\n const clonedDate = date.clone();\n const isToday = clonedDate.isSame(today, \"day\");\n const isSelected =\n selected &&\n (clonedDate.isBetween(selected.from, selected.to, \"day\", \"[]\") ||\n clonedDate.isSame(selected.from, \"day\") ||\n clonedDate.isSame(selected.to, \"day\"));\n\n const isHovered =\n hoverRange &&\n (mode === \"weekly\" || mode === \"custom\") &&\n clonedDate.isBetween(hoverRange.from, hoverRange.to, \"day\", \"[]\");\n\n const isDisabled =\n (disabledDaysBefore &&\n clonedDate.isBefore(disabledDaysBefore, \"day\")) ||\n (disabledDaysAfter && clonedDate.isAfter(disabledDaysAfter, \"day\")) ||\n disabledDays.includes(clonedDate.day());\n\n const modifierClasses: string[] = [];\n const modifierTitles: string[] = [];\n let titles;\n\n if (modifiers)\n Object.keys(modifiers || {}).forEach((modifier) => {\n const { matched, title } = modifiers[modifier](clonedDate.toDate());\n if (matched) {\n modifierClasses.push(modifier);\n if (title) modifierTitles.push(title);\n }\n });\n if (modifierTitles.length) {\n titles = (\n <div key={`title-wrapper-${clonedDate.toString()}`}>\n {modifierTitles.map((title: string, index: number) => (\n <div key={`title-text-${index}`}>{title}</div>\n ))}\n </div>\n );\n }\n\n const isOutside = !clonedDate.isSame(currentDate, \"month\");\n\n dates.push(\n <Tooltip\n title={titles}\n disable={!modifierTitles.length}\n key={clonedDate.toString()}\n popperTooltipClassName={popperTooltipClassName}\n popperTooltipStyle={popperTooltipStyle}\n >\n <StyledCalendarDate\n className={`${isSelected ? \"selected\" : \"\"} ${\n isToday ? \"today-day\" : \"\"\n }\n ${isDisabled ? \"disabled\" : \"\"} ${\n isHovered ? \"hovered\" : \"\"\n } ${modifierClasses.join(\" \")}\n ${isOutside ? \"outside\" : \"\"}`}\n onClick={() => handleDayClick(clonedDate, modifierClasses)}\n onMouseEnter={\n mode === \"weekly\" || mode === \"custom\"\n ? () => setHoveredDate(clonedDate)\n : undefined\n }\n onMouseLeave={\n mode === \"weekly\" || mode === \"custom\"\n ? () => setHoveredDate(null)\n : undefined\n }\n >\n {clonedDate.date()}\n </StyledCalendarDate>\n </Tooltip>\n );\n\n date.add(1, \"day\");\n }\n\n return dates;\n };\n\n const renderYearSelect = () => {\n const years = Array.from({ length: 200 }, (_, i) => 1900 + i);\n return (\n <StyledYearSelect>\n {years.map((year) => {\n const isSelected =\n selected &&\n ((selected?.to &&\n year >= selected.from.year() &&\n year <= selected.to.year()) ||\n year === selected.from.year() ||\n (selected?.to && year === selected.to.year()));\n\n const isDisabledYear =\n (disabledDaysBefore && year < disabledDaysBefore.year()) ||\n (disabledDaysAfter && year > disabledDaysAfter.year());\n\n return (\n <StyledYearOption\n key={year}\n ref={year === currentDate.year() ? selectedYearRef : null}\n className={`${isSelected ? \"selected\" : \"\"} ${\n year === today.year() ? \"today-year\" : \"\"\n } ${isDisabledYear ? \"disabled\" : \"\"}`}\n onClick={() => handleYearSelect(year)}\n >\n {year}\n </StyledYearOption>\n );\n })}\n </StyledYearSelect>\n );\n };\n\n const renderMonthSelect = () => {\n const months = moment.months();\n const hoverRange = getHoverRange();\n\n return (\n <StyledMonthSelect>\n {months.map((month, index) => {\n const monthDate = currentDate.clone().month(index);\n\n const isSelected =\n selected &&\n (monthDate.isBetween(selected.from, selected.to, \"month\", \"[]\") ||\n monthDate.isSame(selected.from, \"month\") ||\n monthDate.isSame(selected.to, \"month\"));\n\n const isDisabledMonth =\n (disabledDaysBefore &&\n monthDate.isBefore(disabledDaysBefore, \"month\")) ||\n (disabledDaysAfter &&\n monthDate.isAfter(disabledDaysAfter, \"month\"));\n\n const isHoveredQuarter =\n hoverRange &&\n mode === \"quarterly\" &&\n monthDate.isBetween(hoverRange.from, hoverRange.to, \"month\", \"[]\");\n\n return (\n <StyledMonthOption\n key={month}\n className={`${isSelected ? \"selected\" : \"\"} ${\n index === today.month() && currentDate.year() === today.year()\n ? \"today-month\"\n : \"\"\n } ${isDisabledMonth ? \"disabled\" : \"\"} ${\n isHoveredQuarter ? \"hovered\" : \"\"\n }`}\n onClick={() => handleMonthSelect(index)}\n onMouseEnter={\n mode === \"quarterly\"\n ? () => setHoveredDate(monthDate)\n : undefined\n }\n onMouseLeave={\n mode === \"quarterly\" ? () => setHoveredDate(null) : undefined\n }\n >\n {month.substring(0, 3)}\n </StyledMonthOption>\n );\n })}\n </StyledMonthSelect>\n );\n };\n\n const captionText = useMemo(() => {\n const isCurrentYear = currentDate.isSame(today, \"year\");\n\n return !isMonthSelectOpen && !isYearSelectOpen\n ? `${currentDate.format(\"MMMM\")}${\n isCurrentYear ? \"\" : ` ${currentDate.format(\"YYYY\")}`\n }`\n : currentDate.format(\"YYYY\");\n }, [currentDate, isMonthSelectOpen, isYearSelectOpen, today]);\n\n const handleClear = useCallback(() => {\n if (typeof onClear === \"function\") onClear();\n handleSelection(undefined);\n }, [handleSelection, onClear]);\n\n const handleClose = useCallback(() => {\n if (mode === \"custom\" && instant && selected) {\n setSelected({\n from: moment.utc(selected?.from),\n to: selected?.to\n ? moment.utc(selected?.to)\n : moment.utc(selected?.from),\n });\n }\n if (\n instant &&\n onSave &&\n mode === \"custom\" &&\n selected &&\n (!selected?.from.isSame(\n moment.utc(Number(defaultSelected?.from) * 1000)\n ) ||\n !selected?.to?.isSame(moment.utc(Number(defaultSelected?.to) * 1000)))\n ) {\n onSave({\n from: moment.utc(selected?.from).unix(),\n to: selected?.to\n ? moment.utc(selected?.to).unix()\n : moment.utc(selected?.from).unix(),\n });\n }\n if (mode === \"custom\" && instant && !selected && onSave) {\n onSave(undefined);\n }\n setCurrentDate(\n defaultSelected?.from\n ? toMoment(defaultSelected.from)\n : month\n ? toMoment(month)\n : moment.utc()\n );\n setTargetDate(\n defaultSelected?.from\n ? toMoment(defaultSelected.from)\n : month\n ? toMoment(month)\n : moment.utc()\n );\n setSelected(\n defaultSelected?.from\n ? {\n from: toMoment(defaultSelected.from),\n to: defaultSelected.to ? toMoment(defaultSelected.to) : null,\n }\n : null\n );\n toggleCalendar();\n setIsYearSelectOpen(false);\n setIsMonthSelectOpen(mode === \"monthly\" || mode === \"quarterly\");\n setMonthTransitionDirection(null);\n if (typeof onClose === \"function\") onClose();\n }, [\n defaultSelected,\n instant,\n mode,\n month,\n onClose,\n onSave,\n selected,\n toggleCalendar,\n ]);\n\n const handleBeforeClose = useCallback(() => {\n let shouldClose = true;\n if (!target || !enableConfirmModal || instant || required) {\n shouldClose = true;\n }\n if (\n target &&\n enableConfirmModal &&\n !instant &&\n !required &&\n ((selected && !defaultSelected) ||\n (!selected && defaultSelected) ||\n (selected?.from &&\n defaultSelected?.from &&\n !selected.from.isSame(toMoment(defaultSelected.from))) ||\n (selected?.to &&\n defaultSelected?.to &&\n !selected.to.isSame(toMoment(defaultSelected.to))))\n ) {\n shouldClose = false;\n setShowDiscardModal(true);\n }\n if (shouldClose) handleClose();\n return shouldClose;\n }, [\n defaultSelected,\n enableConfirmModal,\n handleClose,\n instant,\n required,\n selected,\n target,\n ]);\n\n const Wrapper = target ? Menu : \"div\";\n\n const handleCaptionClick = useCallback(() => {\n isMonthSelectOpen && !disableYearPicker\n ? toggleYearSelect()\n : toggleMonthSelect();\n }, [\n disableYearPicker,\n isMonthSelectOpen,\n toggleMonthSelect,\n toggleYearSelect,\n ]);\n\n const handleCloseDiscardModal = useCallback(() => {\n setShowDiscardModal(false);\n }, []);\n\n const handleSaveDiscardModal = useCallback(() => {\n setSelected(\n defaultSelected?.from\n ? {\n from: toMoment(defaultSelected.from),\n to: defaultSelected.to ? toMoment(defaultSelected.to) : null,\n }\n : null\n );\n setShowDiscardModal(false);\n handleClose();\n }, [defaultSelected, handleClose]);\n\n const wrapperProps = target\n ? {\n className: \"c-date-picker--calendar\",\n target,\n onBeforeClose: handleBeforeClose,\n onClose: handleClose,\n open: isOpen,\n onOpen: toggleCalendar,\n position,\n menuClassName,\n popperClassName,\n backgroundElementClass,\n }\n : { className: \"c-date-picker--calendar\" };\n\n useEffect(() => {\n const handleKeyDown = (event) => {\n if (event.key === \"ArrowRight\") {\n handleMonthChange(\"next\");\n } else if (event.key === \"ArrowLeft\") {\n handleMonthChange(\"prev\");\n }\n };\n\n if (isOpen) {\n window.addEventListener(\"keydown\", handleKeyDown);\n } else {\n window.removeEventListener(\"keydown\", handleKeyDown);\n }\n\n return () => {\n window.removeEventListener(\"keydown\", handleKeyDown);\n };\n }, [isOpen, handleMonthChange]);\n\n const saveIsDisabled = () => {\n if (!defaultSelected && !selected) {\n return true;\n }\n if (\n defaultSelected &&\n selected &&\n defaultSelected.from &&\n selected.from.isSame(toMoment(defaultSelected.from)) &&\n defaultSelected.to &&\n selected.to &&\n selected.to.isSame(toMoment(defaultSelected.to))\n ) {\n return true;\n }\n return false;\n };\n\n return (\n <StyledDatePickerWrapper ref={datePickerRef}>\n <Wrapper {...wrapperProps}>\n <StyledDatePickerContainerInner>\n <StyledCalendarHeader>\n {isYearSelectOpen ? null : (\n <IconButton\n onClick={() => handleMonthChange(\"prev\")}\n variant=\"text gray\"\n size=\"small\"\n >\n <ArrowLeftIcon />\n </IconButton>\n )}\n <StyledCaption\n className={`${animationClass} ${\n isYearSelectOpen ? \"year-caption\" : \"\"\n }`}\n key={isMonthSelectOpen ? currentDate.year() : currentDate.month()}\n onClick={handleCaptionClick}\n onAnimationEnd={onAnimationEnd}\n >\n {captionText}\n </StyledCaption>\n {isYearSelectOpen ? null : (\n <IconButton\n onClick={() => handleMonthChange(\"next\")}\n variant=\"text gray\"\n size=\"small\"\n >\n <ArrowRightIcon />\n </IconButton>\n )}\n </StyledCalendarHeader>\n <StyledCalendarSelector>\n {isYearSelectOpen ? (\n renderYearSelect()\n ) : isMonthSelectOpen ? (\n <StyledMonthSelector\n className={animationClass}\n key={currentDate.year()}\n onAnimationEnd={onAnimationEnd}\n >\n {renderMonthSelect()}\n </StyledMonthSelector>\n ) : (\n <>\n <StyledDaysOfWeek>{renderDaysOfWeek()}</StyledDaysOfWeek>\n <StyledCalendarDates\n className={animationClass}\n key={currentDate.month()}\n >\n {renderCalendarDates()}\n </StyledCalendarDates>\n </>\n )}\n </StyledCalendarSelector>\n {(target || showControls) &&\n (!instant ? (\n <StyledControls>\n <StyledControlsLeft>\n <Button\n size=\"small\"\n variant=\"primary\"\n onClick={handleSave}\n disabled={saveIsDisabled()}\n >\n {saveLabel}\n </Button>\n <Tooltip\n title={cancelLabel}\n popperTooltipStyle={{ zIndex: 1301 }}\n >\n <IconButton\n size=\"small\"\n variant=\"text gray\"\n onClick={handleBeforeClose}\n >\n <CancelCrossIcon />\n </IconButton>\n </Tooltip>\n </StyledControlsLeft>\n {!required ? (\n <Button\n size=\"small\"\n onClick={handleClear}\n variant=\"text gray\"\n >\n {clearLabel}\n </Button>\n ) : null}\n </StyledControls>\n ) : !required ? (\n <StyledControls>\n <StyledClearInstantButton\n size=\"small\"\n onClick={handleClear}\n variant=\"text gray\"\n >\n {clearLabel}\n </StyledClearInstantButton>\n </StyledControls>\n ) : null)}\n </StyledDatePickerContainerInner>\n </Wrapper>\n {!instant && target && !required && enableConfirmModal ? (\n <StyledConfirmDialog\n className=\"modal-select-date\"\n open={showDiscardModal}\n onCancel={handleCloseDiscardModal}\n onConfirm={handleSaveDiscardModal}\n dialogTitle={modalHeaderText}\n dialogContent={modalDiscardMessage}\n cancelBtnText={modalCancelBtnText}\n confirmBtnText={modalDiscardBtnText}\n />\n ) : null}\n </StyledDatePickerWrapper>\n );\n};\n"],"mappings":"AAAA,OAAOA,KAAK,IACVC,QAAQ,EACRC,MAAM,EACNC,SAAS,EACTC,WAAW,EACXC,OAAO,QAEF,OAAO;AAGd,OAAOC,MAAM,MAAM,iBAAiB;AAEpC,SACEC,kBAAkB,EAClBC,mBAAmB,EACnBC,oBAAoB,EACpBC,sBAAsB,EACtBC,aAAa,EACbC,wBAAwB,EACxBC,mBAAmB,EACnBC,cAAc,EACdC,kBAAkB,EAClBC,8BAA8B,EAC9BC,uBAAuB,EACvBC,aAAa,EACbC,gBAAgB,EAChBC,iBAAiB,EACjBC,iBAAiB,EACjBC,mBAAmB,EACnBC,gBAAgB,EAChBC,gBAAgB,QACX,YAAY;AACnB,SAASC,MAAM,QAAQ,WAAW;AAClC,SAASC,UAAU,QAAQ,eAAe;AAC1C,SAASC,aAAa,EAAEC,cAAc,EAAEC,eAAe,QAAQ,UAAU;AACzE,SAASC,IAAI,QAAQ,SAAS;AAG9B,SAASC,OAAO,QAAQ,YAAY;AAoEpC,OAAO,MAAMC,QAAQ,GAAIC,IAA+B,IAAK;EAC3D,IAAI3B,MAAM,CAAC4B,QAAQ,CAACD,IAAI,CAAC,EAAE;IACzB,OAAOA,IAAI;EACb,CAAC,MAAM,IAAI,OAAOA,IAAI,KAAK,QAAQ,EAAE;IACnC,OAAO3B,MAAM,CAAC6B,GAAG,CAACF,IAAI,GAAG,IAAI,CAAC;EAChC,CAAC,MAAM,IAAI,OAAOA,IAAI,KAAK,QAAQ,EAAE;IACnC,OAAO3B,MAAM,CAAC6B,GAAG,CAACF,IAAI,CAAC;EACzB;EACA,OAAO,IAAI;AACb,CAAC;AAED,OAAO,MAAMG,YAAuC,GAAGC,IAAA,IAqCjD;EAAA,IArCkD;IACtDC,QAAQ,EAAEC,eAAe;IACzBC,QAAQ;IACRC,MAAM;IACNC,OAAO;IACPC,OAAO;IACPC,OAAO,GAAG,IAAI;IACdC,MAAM;IACNC,IAAI,GAAG,OAAO;IACdC,SAAS,GAAG,MAAM;IAClBC,WAAW,GAAG,QAAQ;IACtBC,UAAU,GAAG,OAAO;IACpBC,kBAAkB;IAClBC,iBAAiB;IACjBC,QAAQ,EAAEC,YAAY,GAAG,EAAE;IAC3BC,SAAS;IACTC,iBAAiB;IACjBC,cAAc,GAAG,CAAC;IAClBC,UAAU;IACVC,QAAQ;IACRC,KAAK;IACLC,iBAAiB;IACjBC,QAAQ,GAAG,cAAc;IACzBC,aAAa;IACbC,eAAe;IACfC,kBAAkB,GAAG,KAAK;IAC1BC,eAAe,GAAG,kBAAkB;IACpCC,mBAAmB,GAAG,mCAAmC;IACzDC,mBAAmB,GAAG,IAAI;IAC1BC,kBAAkB,GAAG,QAAQ;IAC7BC,sBAAsB;IACtBC,sBAAsB;IACtBC,kBAAkB;IAClBC,IAAI;IACJC,gBAAgB;IAChBC,UAAU;IACVC;EACF,CAAC,GAAAtC,IAAA;EACC,MAAM,CAACuC,MAAM,EAAEC,SAAS,CAAC,GAAG5E,QAAQ,CAACuE,IAAI,CAAC;EAC1C,MAAM,CAACM,gBAAgB,EAAEC,mBAAmB,CAAC,GAAG9E,QAAQ,CAAC,KAAK,CAAC;EAC/D,MAAM,CAAC+E,gBAAgB,EAAEC,mBAAmB,CAAC,GAAGhF,QAAQ,CAAC,KAAK,CAAC;EAC/D,MAAM,CAACiF,iBAAiB,EAAEC,oBAAoB,CAAC,GAAGlF,QAAQ,CACxD6C,IAAI,KAAK,SAAS,IAAIA,IAAI,KAAK,WACjC,CAAC;EACD,MAAM,CAACsC,wBAAwB,EAAEC,2BAA2B,CAAC,GAAGpF,QAAQ,CAEtE,IAAI,CAAC;EAEP,MAAM,CAACqF,WAAW,EAAEC,cAAc,CAAC,GAAGtF,QAAQ,CAAS,MAAM;IAC3D,IAAIsC,eAAe,IAAIA,eAAe,CAACiD,IAAI,EAAE;MAC3C,OAAOxD,QAAQ,CAACO,eAAe,CAACiD,IAAI,CAAC;IACvC;IACA,IAAI7B,KAAK,EAAE;MACT,OAAO3B,QAAQ,CAAC2B,KAAK,CAAC;IACxB;IACA,OAAOrD,MAAM,CAAC6B,GAAG,CAAC,CAAC;EACrB,CAAC,CAAC;EAEF,MAAM,CAACsD,UAAU,EAAEC,aAAa,CAAC,GAAGzF,QAAQ,CAAqB,MAAM;IACrE,IAAIsC,eAAe,IAAIA,eAAe,CAACiD,IAAI,EAAE;MAC3C,OAAOxD,QAAQ,CAACO,eAAe,CAACiD,IAAI,CAAC;IACvC,CAAC,MAAM,IAAI7B,KAAK,EAAE;MAChB,OAAO3B,QAAQ,CAAC2B,KAAK,CAAC;IACxB;IACA,OAAOrD,MAAM,CAAC6B,GAAG,CAAC,CAAC;EACrB,CAAC,CAAC;EAEF,MAAM,CAACG,QAAQ,EAAEqD,WAAW,CAAC,GAAG1F,QAAQ,CAAmB,MAAM;IAC/D,IAAI,CAACsC,eAAe,EAAE;MACpB,OAAO,IAAI;IACb;IACA,IAAI,CAACA,eAAe,CAACiD,IAAI,EAAE;MACzB,OAAO,IAAI;IACb;IACA,OAAO;MACLA,IAAI,EAAExD,QAAQ,CAACO,eAAe,CAACiD,IAAI,CAAC;MACpCI,EAAE,EAAErD,eAAe,CAACqD,EAAE,GAAG5D,QAAQ,CAACO,eAAe,CAACqD,EAAE,CAAC,GAAG;IAC1D,CAAC;EACH,CAAC,CAAC;EACF,MAAM,CAACC,WAAW,EAAEC,cAAc,CAAC,GAAG7F,QAAQ,CAAgB,IAAI,CAAC;EAEnE,MAAM8F,QAAQ,GAAGzF,MAAM,CAAC0F,WAAW,GAC/B1F,MAAM,CAAC0F,WAAW,CAACC,IAAI,GACvB3F,MAAM,CAAC4F,EAAE,CAACC,KAAK,CAAC,CAAC;EAErB,MAAMC,qBAAqB,GAAG9F,MAAM,CAAC,CAAC,CAAC4F,EAAE,CAACH,QAAQ,CAAC,CAACM,MAAM,CAAC,YAAY,CAAC;EAExE,MAAMC,KAAK,GAAGhG,MAAM,CAAC6B,GAAG,CAACiE,qBAAqB,CAAC;EAE/C,MAAMG,eAAe,GAAGrG,MAAM,CAAwB,IAAI,CAAC;EAC3D,MAAMsG,aAAa,GAAGtG,MAAM,CAAiB,IAAI,CAAC;EAElD,MAAMuG,eAAe,GAAGrG,WAAW,CAChCsG,KAAiB,IAAK;IACrB,IAAI,CAACA,KAAK,EAAE;MACVf,WAAW,CAAC,IAAI,CAAC;MACjB,IAAInD,QAAQ,EAAEA,QAAQ,CAACmE,SAAS,CAAC;MACjC,IAAI/D,OAAO,IAAIH,MAAM,EAAE;QACrBA,MAAM,CAACkE,SAAS,CAAC;MACnB;IACF,CAAC,MAAM;MACLhB,WAAW,CAACe,KAAK,CAAC;MAClB,IAAIlE,QAAQ,EACVA,QAAQ,CAAC;QACPgD,IAAI,EAAEkB,KAAK,CAAClB,IAAI,CAACrD,GAAG,CAAC,CAAC,CAACyE,IAAI,CAAC,CAAC;QAC7BhB,EAAE,EAAEtF,MAAM,CAACoG,KAAK,CAACd,EAAE,CAAC,CAACzD,GAAG,CAAC,CAAC,CAACyE,IAAI,CAAC;MAClC,CAAC,CAAC;MACJ,IAAIhE,OAAO,IAAIH,MAAM,EAAE;QACrBA,MAAM,CAAC;UACL+C,IAAI,EAAEkB,KAAK,CAAClB,IAAI,CAACrD,GAAG,CAAC,CAAC,CAACyE,IAAI,CAAC,CAAC;UAC7BhB,EAAE,EAAEtF,MAAM,CAACoG,KAAK,CAACd,EAAE,CAAC,CAACzD,GAAG,CAAC,CAAC,CAACyE,IAAI,CAAC;QAClC,CAAC,CAAC;MACJ;IACF;EACF,CAAC,EACD,CAACpE,QAAQ,EAAEC,MAAM,EAAEG,OAAO,CAC5B,CAAC;EAED,MAAMiE,cAAc,GAAGzG,WAAW,CAAC,MAAM;IACvCyE,SAAS,CAAC,CAACD,MAAM,CAAC;IAClB,IAAIH,gBAAgB,EAAEA,gBAAgB,CAAC,CAACG,MAAM,CAAC;EACjD,CAAC,EAAE,CAACA,MAAM,EAAEH,gBAAgB,CAAC,CAAC;EAE9B,MAAMqC,gBAAgB,GAAG1G,WAAW,CAAC,MAAM;IACzC2E,mBAAmB,CAAC,CAACD,gBAAgB,CAAC;IACtCK,oBAAoB,CAAC,IAAI,CAAC;EAC5B,CAAC,EAAE,CAACL,gBAAgB,CAAC,CAAC;EAEtB,MAAMiC,iBAAiB,GAAG3G,WAAW,CAAC,MAAM;IAC1C,IAAI0C,IAAI,KAAK,SAAS,IAAIA,IAAI,KAAK,WAAW,EAAE;MAC9CqC,oBAAoB,CAAC,CAACD,iBAAiB,CAAC;IAC1C;EACF,CAAC,EAAE,CAACA,iBAAiB,EAAEpC,IAAI,CAAC,CAAC;EAE7B3C,SAAS,CAAC,MAAM;IACd,IAAIoC,eAAe,IAAIA,eAAe,CAACiD,IAAI,EAAE;MAC3CG,WAAW,CAAC;QACVH,IAAI,EAAExD,QAAQ,CAACO,eAAe,CAACiD,IAAI,CAAC;QACpCI,EAAE,EAAErD,eAAe,CAACqD,EAAE,GAAG5D,QAAQ,CAACO,eAAe,CAACqD,EAAE,CAAC,GAAG;MAC1D,CAAC,CAAC;MACFL,cAAc,CAACvD,QAAQ,CAACO,eAAe,CAACiD,IAAI,CAAC,IAAIlF,MAAM,CAAC6B,GAAG,CAAC,CAAC,CAAC;MAC9DuD,aAAa,CAAC1D,QAAQ,CAACO,eAAe,CAACiD,IAAI,CAAC,IAAIlF,MAAM,CAAC6B,GAAG,CAAC,CAAC,CAAC;IAC/D,CAAC,MAAM;MACLwD,WAAW,CAAC,IAAI,CAAC;IACnB;EACF,CAAC,EAAE,CAACpD,eAAe,EAAEoB,KAAK,CAAC,CAAC;EAE5B,MAAMqD,gBAAgB,GAAI/E,IAAY,IAAK;IACzC,MAAMgF,WAAW,GAAGhF,IAAI,CAACiF,MAAM,CAAC5B,WAAW,EAAE,OAAO,CAAC;IAErD,IAAI2B,WAAW,IAAI1D,iBAAiB,EAAE;MACpCgC,cAAc,CAACtD,IAAI,CAAC;MACpByD,aAAa,CAACzD,IAAI,CAAC;IACrB,CAAC,MAAM;MACL,MAAMkF,SAAS,GAAGlF,IAAI,CAACmF,QAAQ,CAAC9B,WAAW,EAAE,OAAO,CAAC,GAAG,MAAM,GAAG,MAAM;MACvEI,aAAa,CAACzD,IAAI,CAAC;MACnBoD,2BAA2B,CAAC8B,SAAS,CAAC;IACxC;IAEA,QAAQrE,IAAI;MACV,KAAK,OAAO;QACVuE,oBAAoB,CAACpF,IAAI,CAAC;QAC1B;MACF,KAAK,QAAQ;QACXqF,qBAAqB,CAACrF,IAAI,CAAC;QAC3B;MACF,KAAK,QAAQ;QACXsF,qBAAqB,CAACtF,IAAI,CAAC;QAC3B;MACF;QACEuF,OAAO,CAACC,IAAI,sBAAoB3E,IAAM,CAAC;IAC3C;IAEA,IAAIF,OAAO,IAAIE,IAAI,KAAK,QAAQ,IAAIW,UAAU,EAAEoD,cAAc,CAAC,CAAC;EAClE,CAAC;EAED,MAAMQ,oBAAoB,GAAIpF,IAAY,IAAK;IAC7C,IAAI,CAACA,IAAI,CAACiF,MAAM,CAAC5E,QAAQ,oBAARA,QAAQ,CAAEkD,IAAI,CAAC,EAAE;MAChCiB,eAAe,CAAC;QAAEjB,IAAI,EAAEvD,IAAI;QAAE2D,EAAE,EAAE3D;MAAK,CAAC,CAAC;IAC3C,CAAC,MAAM,IAAI,CAACyB,QAAQ,EAAE;MACpB+C,eAAe,CAACE,SAAS,CAAC;IAC5B;EACF,CAAC;EAED,MAAMW,qBAAqB,GAAIrF,IAAY,IAAK;IAAA,IAAAyF,cAAA;IAC9C,MAAMC,gBAAgB,GAAG1F,IAAI,CAAC2F,GAAG,CAAC,CAAC;IAEnC,MAAMC,cAAc,GAAG,CAACF,gBAAgB,GAAGnE,cAAc,GAAG,CAAC,IAAI,CAAC;IAElE,MAAMsE,WAAW,GAAG7F,IAAI,CACrB8F,KAAK,CAAC,CAAC,CACPC,QAAQ,CAACH,cAAc,EAAE,MAAM,CAAC,CAChCI,OAAO,CAAC,KAAK,CAAC;IACjB,MAAMC,SAAS,GAAGJ,WAAW,CAACC,KAAK,CAAC,CAAC,CAACI,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC;IAEpD,IAAI,CAACL,WAAW,CAACZ,MAAM,CAAC5E,QAAQ,aAAAoF,cAAA,GAARpF,QAAQ,CAAEkD,IAAI,qBAAdkC,cAAA,CAAgBO,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE;MACvDxB,eAAe,CAAC;QAAEjB,IAAI,EAAEsC,WAAW;QAAElC,EAAE,EAAEsC;MAAU,CAAC,CAAC;IACvD,CAAC,MAAM,IAAI,CAACxE,QAAQ,EAAE;MACpB+C,eAAe,CAACE,SAAS,CAAC;IAC5B;EACF,CAAC;EAED,MAAMY,qBAAqB,GAAItF,IAAY,IAAK;IAC9C,IACE,CAACK,QAAQ,IACT,CAAAA,QAAQ,oBAARA,QAAQ,CAAEkD,IAAI,MAAKlF,MAAM,CAAC6B,GAAG,CAACiG,MAAM,CAAC7F,eAAe,oBAAfA,eAAe,CAAEiD,IAAI,CAAC,GAAG,IAAI,CAAC,EACnE;MACAG,WAAW,CAAC;QAAEH,IAAI,EAAEvD,IAAI,CAACE,GAAG,CAAC,CAAC;QAAEyD,EAAE,EAAE;MAAK,CAAC,CAAC;MAC3CpD,QAAQ,IAAIA,QAAQ,CAAC;QAAEgD,IAAI,EAAEvD,IAAI,CAACE,GAAG,CAAC,CAAC,CAACyE,IAAI,CAAC,CAAC;QAAEhB,EAAE,EAAE3D,IAAI,CAACE,GAAG,CAAC,CAAC,CAACyE,IAAI,CAAC;MAAE,CAAC,CAAC;MACxE;IACF;IAEA,IACEtG,MAAM,CAAC4B,QAAQ,CAACI,QAAQ,oBAARA,QAAQ,CAAEkD,IAAI,CAAC,IAC/B,EAAClD,QAAQ,YAARA,QAAQ,CAAEsD,EAAE,KACb,EAACtD,QAAQ,YAARA,QAAQ,CAAEkD,IAAI,CAAC0B,MAAM,CAACjF,IAAI,CAACE,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,GACzC;MACA,MAAMkG,YAAY,GAAG/F,QAAQ,YAARA,QAAQ,CAAEkD,IAAI,CAAC4B,QAAQ,CAACnF,IAAI,CAAC,GAC9C;QAAEuD,IAAI,EAAElD,QAAQ,CAACkD,IAAI;QAAEI,EAAE,EAAE3D,IAAI,CAACE,GAAG,CAAC;MAAE,CAAC,GACvC;QAAEqD,IAAI,EAAEvD,IAAI,CAACE,GAAG,CAAC,CAAC;QAAEyD,EAAE,EAAEtD,QAAQ,CAACkD;MAAK,CAAC;MAC3CG,WAAW,CAAC0C,YAAY,CAAC;MACzB7F,QAAQ,IACNA,QAAQ,CAAC;QACPgD,IAAI,EAAE6C,YAAY,CAAC7C,IAAI,CAACrD,GAAG,CAAC,CAAC,CAACyE,IAAI,CAAC,CAAC;QACpChB,EAAE,EAAEyC,YAAY,CAACzC,EAAE,CAACzD,GAAG,CAAC,CAAC,CAACyE,IAAI,CAAC;MACjC,CAAC,CAAC;IACN,CAAC,MAAM,IACLtG,MAAM,CAAC4B,QAAQ,CAACI,QAAQ,oBAARA,QAAQ,CAAEkD,IAAI,CAAC,IAC/BlF,MAAM,CAAC4B,QAAQ,CAACI,QAAQ,oBAARA,QAAQ,CAAEsD,EAAE,CAAC,EAC7B;MACAD,WAAW,CAAC;QAAEH,IAAI,EAAEvD,IAAI,CAACE,GAAG,CAAC,CAAC;QAAEyD,EAAE,EAAE;MAAK,CAAC,CAAC;MAC3CpD,QAAQ,IAAIA,QAAQ,CAAC;QAAEgD,IAAI,EAAEvD,IAAI,CAACE,GAAG,CAAC,CAAC,CAACyE,IAAI,CAAC,CAAC;QAAEhB,EAAE,EAAE;MAAK,CAAC,CAAC;IAC7D,CAAC,MAAM,IACLtF,MAAM,CAAC4B,QAAQ,CAACI,QAAQ,oBAARA,QAAQ,CAAEkD,IAAI,CAAC,IAC/BlD,QAAQ,YAARA,QAAQ,CAAEkD,IAAI,CAAC0B,MAAM,CAACjF,IAAI,CAACE,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,IACxC,CAACuB,QAAQ,EACT;MACAiC,WAAW,CAAC,IAAI,CAAC;MACjBnD,QAAQ,IAAIA,QAAQ,CAACmE,SAAS,CAAC;IACjC,CAAC,MAAM,IAAIrE,QAAQ,CAACkD,IAAI,KAAK,IAAI,IAAIlD,QAAQ,CAACsD,EAAE,KAAK,IAAI,EAAE;MACzDD,WAAW,CAAC;QAAEH,IAAI,EAAEvD,IAAI,CAACE,GAAG,CAAC,CAAC;QAAEyD,EAAE,EAAE;MAAK,CAAC,CAAC;MAC3CpD,QAAQ,IAAIA,QAAQ,CAAC;QAAEgD,IAAI,EAAEvD,IAAI,CAACE,GAAG,CAAC,CAAC,CAACyE,IAAI,CAAC,CAAC;QAAEhB,EAAE,EAAE3D,IAAI,CAACE,GAAG,CAAC,CAAC,CAACyE,IAAI,CAAC;MAAE,CAAC,CAAC;IAC1E;EACF,CAAC;EAED,MAAM0B,UAAU,GAAGA,CAAA,KAAM;IACvB,IAAI7F,MAAM,EAAE;MACVoE,cAAc,CAAC,CAAC;MAChB,IAAI/D,IAAI,KAAK,QAAQ,IAAI,EAACR,QAAQ,YAARA,QAAQ,CAAEsD,EAAE,GAAE;QACtCD,WAAW,CAAC;UACVH,IAAI,EAAElF,MAAM,CAAC6B,GAAG,CAACG,QAAQ,oBAARA,QAAQ,CAAEkD,IAAI,CAAC;UAChCI,EAAE,EAAEtF,MAAM,CAAC6B,GAAG,CAACG,QAAQ,oBAARA,QAAQ,CAAEkD,IAAI;QAC/B,CAAC,CAAC;MACJ;MACA,IAAIlD,QAAQ,EAAE;QACZG,MAAM,CAAC;UACL+C,IAAI,EAAElF,MAAM,CAAC6B,GAAG,CAACG,QAAQ,oBAARA,QAAQ,CAAEkD,IAAI,CAAC,CAACoB,IAAI,CAAC,CAAC;UACvChB,EAAE,EAAEtD,QAAQ,YAARA,QAAQ,CAAEsD,EAAE,GACZtF,MAAM,CAAC6B,GAAG,CAACG,QAAQ,oBAARA,QAAQ,CAAEsD,EAAE,CAAC,CAACgB,IAAI,CAAC,CAAC,GAC/BtG,MAAM,CAAC6B,GAAG,CAACG,QAAQ,oBAARA,QAAQ,CAAEkD,IAAI,CAAC,CAACoB,IAAI,CAAC;QACtC,CAAC,CAAC;MACJ,CAAC,MAAM;QACL,IAAI,CAAClD,QAAQ,EAAE;UACbjB,MAAM,CAACkE,SAAS,CAAC;UACjBpB,cAAc,CAACjF,MAAM,CAAC6B,GAAG,CAAC,CAAC,CAAC;UAC5BuD,aAAa,CAACpF,MAAM,CAAC6B,GAAG,CAAC,CAAC,CAAC;QAC7B;MACF;IACF;EACF,CAAC;EAED,MAAMoG,iBAAiB,GAAGnI,WAAW,CAClC+G,SAA0B,IAAK;IAC9B9B,2BAA2B,CAAC8B,SAAS,CAAC;IACtC,IAAIjC,iBAAiB,EAAE;MACrBQ,aAAa,CAAE8C,QAAQ,IAAK;QAC1B,IAAIA,QAAQ,EAAE;UACZ,OAAOrB,SAAS,KAAK,MAAM,GACvBqB,QAAQ,CAACT,KAAK,CAAC,CAAC,CAACC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC,GACpCQ,QAAQ,CAACT,KAAK,CAAC,CAAC,CAACI,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC;QACrC;QACA,OAAOK,QAAQ;MACjB,CAAC,CAAC;MACF,IAAIjF,iBAAiB,EAAE;QACrBgC,cAAc,CAAEiD,QAAQ,IACtBrB,SAAS,KAAK,MAAM,GAChBqB,QAAQ,CAACT,KAAK,CAAC,CAAC,CAACC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC,GACpCQ,QAAQ,CAACT,KAAK,CAAC,CAAC,CAACI,GAAG,CAAC,CAAC,EAAE,MAAM,CACpC,CAAC;MACH;IACF,CAAC,MAAM;MACLzC,aAAa,CAAE8C,QAAQ,IAAK;QAC1B,IAAIA,QAAQ,EAAE;UACZ,OAAOrB,SAAS,KAAK,MAAM,GACvBqB,QAAQ,CAACT,KAAK,CAAC,CAAC,CAACC,QAAQ,CAAC,CAAC,EAAE,OAAO,CAAC,GACrCQ,QAAQ,CAACT,KAAK,CAAC,CAAC,CAACI,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC;QACtC;QACA,OAAOK,QAAQ;MACjB,CAAC,CAAC;MACF,IAAIjF,iBAAiB,EAAE;QACrBgC,cAAc,CAAEiD,QAAQ,IACtBrB,SAAS,KAAK,MAAM,GAChBqB,QAAQ,CAACT,KAAK,CAAC,CAAC,CAACC,QAAQ,CAAC,CAAC,EAAE,OAAO,CAAC,GACrCQ,QAAQ,CAACT,KAAK,CAAC,CAAC,CAACI,GAAG,CAAC,CAAC,EAAE,OAAO,CACrC,CAAC;MACH;IACF;EACF,CAAC,EACD,CAAC5E,iBAAiB,EAAE2B,iBAAiB,CACvC,CAAC;EAED,MAAMuD,cAAc,GAAGA,CAAA,KAAM;IAC3B,IAAIhD,UAAU,EAAE;MACdF,cAAc,CAACE,UAAU,CAAC;MAC1BJ,2BAA2B,CAAC,IAAI,CAAC;IACnC;EACF,CAAC;EAED,MAAMqD,gBAAgB,GAAIC,IAAY,IAAK;IACzCpD,cAAc,CAACD,WAAW,CAACyC,KAAK,CAAC,CAAC,CAACY,IAAI,CAACA,IAAI,CAAC,CAAC;IAC9CjD,aAAa,CAACJ,WAAW,CAACyC,KAAK,CAAC,CAAC,CAACY,IAAI,CAACA,IAAI,CAAC,CAAC;IAC7C5D,mBAAmB,CAAC,KAAK,CAAC;IAC1BI,oBAAoB,CAAC,IAAI,CAAC;EAC5B,CAAC;EAED,MAAMyD,iBAAiB,GAAIjF,KAAa,IAAK;IAC3C,MAAMkF,OAAO,GAAGvD,WAAW,CAACyC,KAAK,CAAC,CAAC,CAAC5F,GAAG,CAAC,CAAC,CAACwB,KAAK,CAACA,KAAK,CAAC;IACtD4B,cAAc,CAACsD,OAAO,CAAC;IACvBnD,aAAa,CAACmD,OAAO,CAAC;IAEtB,IAAI/F,IAAI,KAAK,SAAS,EAAE;MAAA,IAAAgG,YAAA;MACtB,MAAMpC,KAAK,GAAG;QACZlB,IAAI,EAAEqD,OAAO,CAACd,KAAK,CAAC,CAAC,CAACE,OAAO,CAAC,OAAO,CAAC;QACtCrC,EAAE,EAAEiD,OAAO,CAACd,KAAK,CAAC,CAAC,CAACgB,KAAK,CAAC,OAAO,CAAC,CAACd,OAAO,CAAC,KAAK;MAClD,CAAC;MAED,MAAMhB,WAAW,GACf,CAAA3E,QAAQ,oBAARA,QAAQ,CAAEkD,IAAI,CAAC0B,MAAM,CAACR,KAAK,CAAClB,IAAI,EAAE,OAAO,CAAC,MAC1ClD,QAAQ,aAAAwG,YAAA,GAARxG,QAAQ,CAAEsD,EAAE,qBAAZkD,YAAA,CAAc5B,MAAM,CAACR,KAAK,CAACd,EAAE,EAAE,OAAO,CAAC;MAEzC,IAAIqB,WAAW,EAAE;QACf,IAAI,CAACvD,QAAQ,EAAE;UACb+C,eAAe,CAACE,SAAS,CAAC;UAC1B,IAAI/D,OAAO,IAAIH,MAAM,EAAE;YACrB8C,cAAc,CAACjF,MAAM,CAAC6B,GAAG,CAAC,CAAC,CAAC;YAC5BuD,aAAa,CAACpF,MAAM,CAAC6B,GAAG,CAAC,CAAC,CAAC;UAC7B;QACF;MACF,CAAC,MAAM;QACLsE,eAAe,CAACC,KAAK,CAAC;MACxB;IACF;IAEA,IAAI5D,IAAI,KAAK,WAAW,EAAE;MAAA,IAAAkG,aAAA;MACxB,MAAMC,YAAY,GAAG;QACnBzD,IAAI,EAAEqD,OAAO,CAACd,KAAK,CAAC,CAAC,CAACE,OAAO,CAAC,SAAS,CAAC;QACxCrC,EAAE,EAAEiD,OAAO,CAACd,KAAK,CAAC,CAAC,CAACgB,KAAK,CAAC,SAAS,CAAC,CAACd,OAAO,CAAC,KAAK;MACpD,CAAC;MAED,MAAMiB,aAAa,GACjB,CAAA5G,QAAQ,oBAARA,QAAQ,CAAEkD,IAAI,CAAC0B,MAAM,CAAC+B,YAAY,CAACzD,IAAI,EAAE,SAAS,CAAC,MACnDlD,QAAQ,aAAA0G,aAAA,GAAR1G,QAAQ,CAAEsD,EAAE,qBAAZoD,aAAA,CAAc9B,MAAM,CAAC+B,YAAY,CAACrD,EAAE,EAAE,SAAS,CAAC;MAElD,IAAIsD,aAAa,EAAE;QACjB,IAAI,CAACxF,QAAQ,EAAE;UACb+C,eAAe,CAACE,SAAS,CAAC;UAC1B,IAAI/D,OAAO,IAAIH,MAAM,EAAE;YACrB8C,cAAc,CAACjF,MAAM,CAAC6B,GAAG,CAAC,CAAC,CAAC;YAC5BuD,aAAa,CAACpF,MAAM,CAAC6B,GAAG,CAAC,CAAC,CAAC;UAC7B;QACF;MACF,CAAC,MAAM;QACLsE,eAAe,CAACwC,YAAY,CAAC;MAC/B;IACF;IAEA,IAAInG,IAAI,KAAK,SAAS,IAAIA,IAAI,KAAK,WAAW,EAAE;MAC9CqC,oBAAoB,CAAC,KAAK,CAAC;IAC7B;IACA,IAAIvC,OAAO,KAAKE,IAAI,KAAK,SAAS,IAAIA,IAAI,KAAK,WAAW,CAAC,IAAIW,UAAU,EACvEoD,cAAc,CAAC,CAAC;EACpB,CAAC;EAED1G,SAAS,CAAC,MAAM;IACd,IAAI2E,gBAAgB,IAAIyB,eAAe,CAAC4C,OAAO,EAAE;MAAA,IAAAC,qBAAA;MAC/C7C,eAAe,aAAA6C,qBAAA,GAAf7C,eAAe,CAAE4C,OAAO,aAAxBC,qBAAA,CAA0BC,cAAc,CAAC;QACvCC,QAAQ,EAAE,QAAQ;QAClBC,KAAK,EAAE;MACT,CAAC,CAAC;IACJ;EACF,CAAC,EAAE,CAACzE,gBAAgB,CAAC,CAAC;EAEtB,MAAM0E,gBAAgB,GAAGA,CAAA,KAAM;IAC7B,MAAMC,UAAU,GAAGnJ,MAAM,CAACoJ,aAAa,CAAC,CAAC;IACzC,MAAMC,WAAW,GAAG,CAClB,GAAGF,UAAU,CAACG,KAAK,CAACpG,cAAc,CAAC,EACnC,GAAGiG,UAAU,CAACG,KAAK,CAAC,CAAC,EAAEpG,cAAc,CAAC,CACvC;IACD,OAAOmG,WAAW,CAACE,GAAG,CAAEjC,GAAG,iBACzB5H,KAAA,CAAA8J,aAAA,CAAC5I,aAAa;MAAC6I,GAAG,EAAEnC;IAAI,GAAEA,GAAG,CAAC,CAAC,CAAiB,CACjD,CAAC;EACJ,CAAC;EAED,MAAMoC,cAAc,GAAG3J,OAAO,CAAC,MAAM;IACnC,OAAO+E,wBAAwB,IAAI,CAAC7B,iBAAiB,GACjD6B,wBAAwB,KAAK,MAAM,GACjC,YAAY,GACZ,UAAU,GACZ,EAAE;EACR,CAAC,EAAE,CAAC7B,iBAAiB,EAAE6B,wBAAwB,CAAC,CAAC;EAEjD,MAAM6E,cAAc,GAAGA,CAACrC,GAAW,EAAEtE,SAAmB,KAAK;IAC3D0D,gBAAgB,CAACY,GAAG,CAAC;IACrB,IAAIlD,UAAU,EAAEA,UAAU,CAACkD,GAAG,EAAEtE,SAAS,CAAC;EAC5C,CAAC;EAED,MAAM4G,aAAa,GAAGA,CAAA,KAAM;IAC1B,IAAI,CAACrE,WAAW,EAAE,OAAO,IAAI;IAE7B,IAAI/C,IAAI,KAAK,WAAW,EAAE;MACxB,MAAMqH,UAAU,GAAGtE,WAAW,CAACkC,KAAK,CAAC,CAAC,CAACE,OAAO,CAAC,SAAS,CAAC;MACzD,MAAMmC,QAAQ,GAAGvE,WAAW,CAACkC,KAAK,CAAC,CAAC,CAACgB,KAAK,CAAC,SAAS,CAAC;MACrD,OAAO;QAAEvD,IAAI,EAAE2E,UAAU;QAAEvE,EAAE,EAAEwE;MAAS,CAAC;IAC3C;IAEA,IAAItH,IAAI,KAAK,QAAQ,EAAE;MACrB,MAAM6E,gBAAgB,GAAG9B,WAAW,CAAC+B,GAAG,CAAC,CAAC;MAC1C,MAAMC,cAAc,GAAG,CAACF,gBAAgB,GAAGnE,cAAc,GAAG,CAAC,IAAI,CAAC;MAClE,MAAMsE,WAAW,GAAGjC,WAAW,CAC5BkC,KAAK,CAAC,CAAC,CACPC,QAAQ,CAACH,cAAc,EAAE,MAAM,CAAC,CAChCI,OAAO,CAAC,KAAK,CAAC;MACjB,MAAMC,SAAS,GAAGJ,WAAW,CAACC,KAAK,CAAC,CAAC,CAACI,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC;MAEpD,OAAO;QAAE3C,IAAI,EAAEsC,WAAW;QAAElC,EAAE,EAAEsC;MAAU,CAAC;IAC7C;IAEA,IAAIpF,IAAI,KAAK,QAAQ,IAAIR,QAAQ,YAARA,QAAQ,CAAEkD,IAAI,IAAI,EAAClD,QAAQ,YAARA,QAAQ,CAAEsD,EAAE,GAAE;MACxD,MAAMJ,IAAI,GAAGlD,QAAQ,CAACkD,IAAI,CAAC4B,QAAQ,CAACvB,WAAW,CAAC,GAC5CvD,QAAQ,CAACkD,IAAI,GACbK,WAAW;MACf,MAAMD,EAAE,GAAGtD,QAAQ,CAACkD,IAAI,CAAC6E,OAAO,CAACxE,WAAW,CAAC,GACzCvD,QAAQ,CAACkD,IAAI,GACbK,WAAW;MACf,OAAO;QAAEL,IAAI;QAAEI;MAAG,CAAC;IACrB;IAEA,OAAO,IAAI;EACb,CAAC;EAED,MAAM0E,mBAAmB,GAAGA,CAAA,KAAM;IAChC,MAAMC,YAAY,GAAGjF,WAAW,CAACyC,KAAK,CAAC,CAAC,CAACE,OAAO,CAAC,OAAO,CAAC;IACzD,MAAMuC,SAAS,GAAGD,YAAY,CAACxC,KAAK,CAAC,CAAC,CAAC0C,UAAU,CAACjH,cAAc,CAAC;IAEjE,MAAMkH,OAAO,GAAGF,SAAS,CAACzC,KAAK,CAAC,CAAC,CAACI,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC;IACjD,MAAMlG,IAAI,GAAGuI,SAAS,CAACzC,KAAK,CAAC,CAAC;IAC9B,MAAM4C,KAA0B,GAAG,EAAE;IAErC,MAAMC,UAAU,GAAGV,aAAa,CAAC,CAAC;IAElC,OAAOjI,IAAI,CAACmF,QAAQ,CAACsD,OAAO,CAAC,EAAE;MAC7B,MAAMG,UAAU,GAAG5I,IAAI,CAAC8F,KAAK,CAAC,CAAC;MAC/B,MAAM+C,OAAO,GAAGD,UAAU,CAAC3D,MAAM,CAACZ,KAAK,EAAE,KAAK,CAAC;MAC/C,MAAMyE,UAAU,GACdzI,QAAQ,KACPuI,UAAU,CAACG,SAAS,CAAC1I,QAAQ,CAACkD,IAAI,EAAElD,QAAQ,CAACsD,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,IAC5DiF,UAAU,CAAC3D,MAAM,CAAC5E,QAAQ,CAACkD,IAAI,EAAE,KAAK,CAAC,IACvCqF,UAAU,CAAC3D,MAAM,CAAC5E,QAAQ,CAACsD,EAAE,EAAE,KAAK,CAAC,CAAC;MAE1C,MAAMqF,SAAS,GACbL,UAAU,KACT9H,IAAI,KAAK,QAAQ,IAAIA,IAAI,KAAK,QAAQ,CAAC,IACxC+H,UAAU,CAACG,SAAS,CAACJ,UAAU,CAACpF,IAAI,EAAEoF,UAAU,CAAChF,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC;MAEnE,MAAMsF,UAAU,GACbhI,kBAAkB,IACjB2H,UAAU,CAACzD,QAAQ,CAAClE,kBAAkB,EAAE,KAAK,CAAC,IAC/CC,iBAAiB,IAAI0H,UAAU,CAACR,OAAO,CAAClH,iBAAiB,EAAE,KAAK,CAAE,IACnEE,YAAY,CAAC8H,QAAQ,CAACN,UAAU,CAACjD,GAAG,CAAC,CAAC,CAAC;MAEzC,MAAMwD,eAAyB,GAAG,EAAE;MACpC,MAAMC,cAAwB,GAAG,EAAE;MACnC,IAAIC,MAAM;MAEV,IAAIhI,SAAS,EACXiI,MAAM,CAACC,IAAI,CAAClI,SAAS,IAAI,CAAC,CAAC,CAAC,CAACmI,OAAO,CAAEC,QAAQ,IAAK;QACjD,MAAM;UAAEC,OAAO;UAAEC;QAAM,CAAC,GAAGtI,SAAS,CAACoI,QAAQ,CAAC,CAACb,UAAU,CAACgB,MAAM,CAAC,CAAC,CAAC;QACnE,IAAIF,OAAO,EAAE;UACXP,eAAe,CAACU,IAAI,CAACJ,QAAQ,CAAC;UAC9B,IAAIE,KAAK,EAAEP,cAAc,CAACS,IAAI,CAACF,KAAK,CAAC;QACvC;MACF,CAAC,CAAC;MACJ,IAAIP,cAAc,CAACU,MAAM,EAAE;QACzBT,MAAM,gBACJtL,KAAA,CAAA8J,aAAA;UAAKC,GAAG,qBAAmBc,UAAU,CAACmB,QAAQ,CAAC;QAAI,GAChDX,cAAc,CAACxB,GAAG,CAAC,CAAC+B,KAAa,EAAEK,KAAa,kBAC/CjM,KAAA,CAAA8J,aAAA;UAAKC,GAAG,kBAAgBkC;QAAQ,GAAEL,KAAW,CAC9C,CACE,CACN;MACH;MAEA,MAAMM,SAAS,GAAG,CAACrB,UAAU,CAAC3D,MAAM,CAAC5B,WAAW,EAAE,OAAO,CAAC;MAE1DqF,KAAK,CAACmB,IAAI,eACR9L,KAAA,CAAA8J,aAAA,CAAC/H,OAAO;QACN6J,KAAK,EAAEN,MAAO;QACda,OAAO,EAAE,CAACd,cAAc,CAACU,MAAO;QAChChC,GAAG,EAAEc,UAAU,CAACmB,QAAQ,CAAC,CAAE;QAC3B1H,sBAAsB,EAAEA,sBAAuB;QAC/CC,kBAAkB,EAAEA;MAAmB,gBAEvCvE,KAAA,CAAA8J,aAAA,CAACvJ,kBAAkB;QACjB6L,SAAS,GAAKrB,UAAU,GAAG,UAAU,GAAG,EAAE,WACxCD,OAAO,GAAG,WAAW,GAAG,EAAE,sBAE5BI,UAAU,GAAG,UAAU,GAAG,EAAE,WAC1BD,SAAS,GAAG,SAAS,GAAG,EAAE,UACxBG,eAAe,CAACiB,IAAI,CAAC,GAAG,CAAC,qBAC7BH,SAAS,GAAG,SAAS,GAAG,EAAE,CAAG;QAC7BI,OAAO,EAAEA,CAAA,KAAMrC,cAAc,CAACY,UAAU,EAAEO,eAAe,CAAE;QAC3DmB,YAAY,EACVzJ,IAAI,KAAK,QAAQ,IAAIA,IAAI,KAAK,QAAQ,GAClC,MAAMgD,cAAc,CAAC+E,UAAU,CAAC,GAChClE,SACL;QACD6F,YAAY,EACV1J,IAAI,KAAK,QAAQ,IAAIA,IAAI,KAAK,QAAQ,GAClC,MAAMgD,cAAc,CAAC,IAAI,CAAC,GAC1Ba;MACL,GAEAkE,UAAU,CAAC5I,IAAI,CAAC,CACC,CACb,CACX,CAAC;MAEDA,IAAI,CAACkG,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC;IACpB;IAEA,OAAOwC,KAAK;EACd,CAAC;EAED,MAAM8B,gBAAgB,GAAGA,CAAA,KAAM;IAC7B,MAAMC,KAAK,GAAGC,KAAK,CAACnH,IAAI,CAAC;MAAEuG,MAAM,EAAE;IAAI,CAAC,EAAE,CAACa,CAAC,EAAEC,CAAC,KAAK,IAAI,GAAGA,CAAC,CAAC;IAC7D,oBACE7M,KAAA,CAAA8J,aAAA,CAACtI,gBAAgB,QACdkL,KAAK,CAAC7C,GAAG,CAAElB,IAAI,IAAK;MACnB,MAAMoC,UAAU,GACdzI,QAAQ,KACN,CAAAA,QAAQ,oBAARA,QAAQ,CAAEsD,EAAE,KACZ+C,IAAI,IAAIrG,QAAQ,CAACkD,IAAI,CAACmD,IAAI,CAAC,CAAC,IAC5BA,IAAI,IAAIrG,QAAQ,CAACsD,EAAE,CAAC+C,IAAI,CAAC,CAAC,IAC1BA,IAAI,KAAKrG,QAAQ,CAACkD,IAAI,CAACmD,IAAI,CAAC,CAAC,IAC5B,CAAArG,QAAQ,oBAARA,QAAQ,CAAEsD,EAAE,KAAI+C,IAAI,KAAKrG,QAAQ,CAACsD,EAAE,CAAC+C,IAAI,CAAC,CAAE,CAAC;MAElD,MAAMmE,cAAc,GACjB5J,kBAAkB,IAAIyF,IAAI,GAAGzF,kBAAkB,CAACyF,IAAI,CAAC,CAAC,IACtDxF,iBAAiB,IAAIwF,IAAI,GAAGxF,iBAAiB,CAACwF,IAAI,CAAC,CAAE;MAExD,oBACE3I,KAAA,CAAA8J,aAAA,CAACvI,gBAAgB;QACfwI,GAAG,EAAEpB,IAAK;QACVoE,GAAG,EAAEpE,IAAI,KAAKrD,WAAW,CAACqD,IAAI,CAAC,CAAC,GAAGpC,eAAe,GAAG,IAAK;QAC1D6F,SAAS,GAAKrB,UAAU,GAAG,UAAU,GAAG,EAAE,WACxCpC,IAAI,KAAKrC,KAAK,CAACqC,IAAI,CAAC,CAAC,GAAG,YAAY,GAAG,EAAE,WACvCmE,cAAc,GAAG,UAAU,GAAG,EAAE,CAAG;QACvCR,OAAO,EAAEA,CAAA,KAAM5D,gBAAgB,CAACC,IAAI;MAAE,GAErCA,IACe,CAAC;IAEvB,CAAC,CACe,CAAC;EAEvB,CAAC;EAED,MAAMqE,iBAAiB,GAAGA,CAAA,KAAM;IAC9B,MAAMC,MAAM,GAAG3M,MAAM,CAAC2M,MAAM,CAAC,CAAC;IAC9B,MAAMrC,UAAU,GAAGV,aAAa,CAAC,CAAC;IAElC,oBACElK,KAAA,CAAA8J,aAAA,CAACzI,iBAAiB,QACf4L,MAAM,CAACpD,GAAG,CAAC,CAAClG,KAAK,EAAEsI,KAAK,KAAK;MAC5B,MAAMiB,SAAS,GAAG5H,WAAW,CAACyC,KAAK,CAAC,CAAC,CAACpE,KAAK,CAACsI,KAAK,CAAC;MAElD,MAAMlB,UAAU,GACdzI,QAAQ,KACP4K,SAAS,CAAClC,SAAS,CAAC1I,QAAQ,CAACkD,IAAI,EAAElD,QAAQ,CAACsD,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,IAC7DsH,SAAS,CAAChG,MAAM,CAAC5E,QAAQ,CAACkD,IAAI,EAAE,OAAO,CAAC,IACxC0H,SAAS,CAAChG,MAAM,CAAC5E,QAAQ,CAACsD,EAAE,EAAE,OAAO,CAAC,CAAC;MAE3C,MAAMuH,eAAe,GAClBjK,kBAAkB,IACjBgK,SAAS,CAAC9F,QAAQ,CAAClE,kBAAkB,EAAE,OAAO,CAAC,IAChDC,iBAAiB,IAChB+J,SAAS,CAAC7C,OAAO,CAAClH,iBAAiB,EAAE,OAAO,CAAE;MAElD,MAAMiK,gBAAgB,GACpBxC,UAAU,IACV9H,IAAI,KAAK,WAAW,IACpBoK,SAAS,CAAClC,SAAS,CAACJ,UAAU,CAACpF,IAAI,EAAEoF,UAAU,CAAChF,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC;MAEpE,oBACE5F,KAAA,CAAA8J,aAAA,CAAC1I,iBAAiB;QAChB2I,GAAG,EAAEpG,KAAM;QACXyI,SAAS,GAAKrB,UAAU,GAAG,UAAU,GAAG,EAAE,WACxCkB,KAAK,KAAK3F,KAAK,CAAC3C,KAAK,CAAC,CAAC,IAAI2B,WAAW,CAACqD,IAAI,CAAC,CAAC,KAAKrC,KAAK,CAACqC,IAAI,CAAC,CAAC,GAC1D,aAAa,GACb,EAAE,WACJwE,eAAe,GAAG,UAAU,GAAG,EAAE,WACnCC,gBAAgB,GAAG,SAAS,GAAG,EAAE,CAChC;QACHd,OAAO,EAAEA,CAAA,KAAM1D,iBAAiB,CAACqD,KAAK,CAAE;QACxCM,YAAY,EACVzJ,IAAI,KAAK,WAAW,GAChB,MAAMgD,cAAc,CAACoH,SAAS,CAAC,GAC/BvG,SACL;QACD6F,YAAY,EACV1J,IAAI,KAAK,WAAW,GAAG,MAAMgD,cAAc,CAAC,IAAI,CAAC,GAAGa;MACrD,GAEAhD,KAAK,CAAC0J,SAAS,CAAC,CAAC,EAAE,CAAC,CACJ,CAAC;IAExB,CAAC,CACgB,CAAC;EAExB,CAAC;EAED,MAAMC,WAAW,GAAGjN,OAAO,CAAC,MAAM;IAChC,MAAMkN,aAAa,GAAGjI,WAAW,CAAC4B,MAAM,CAACZ,KAAK,EAAE,MAAM,CAAC;IAEvD,OAAO,CAACpB,iBAAiB,IAAI,CAACJ,gBAAgB,QACvCQ,WAAW,CAACe,MAAM,CAAC,MAAM,CAAC,IAC3BkH,aAAa,GAAG,EAAE,SAAOjI,WAAW,CAACe,MAAM,CAAC,MAAM,CAAG,IAEvDf,WAAW,CAACe,MAAM,CAAC,MAAM,CAAC;EAChC,CAAC,EAAE,CAACf,WAAW,EAAEJ,iBAAiB,EAAEJ,gBAAgB,EAAEwB,KAAK,CAAC,CAAC;EAE7D,MAAMkH,WAAW,GAAGpN,WAAW,CAAC,MAAM;IACpC,IAAI,OAAOsC,OAAO,KAAK,UAAU,EAAEA,OAAO,CAAC,CAAC;IAC5C+D,eAAe,CAACE,SAAS,CAAC;EAC5B,CAAC,EAAE,CAACF,eAAe,EAAE/D,OAAO,CAAC,CAAC;EAE9B,MAAM+K,WAAW,GAAGrN,WAAW,CAAC,MAAM;IAAA,IAAAsN,aAAA;IACpC,IAAI5K,IAAI,KAAK,QAAQ,IAAIF,OAAO,IAAIN,QAAQ,EAAE;MAC5CqD,WAAW,CAAC;QACVH,IAAI,EAAElF,MAAM,CAAC6B,GAAG,CAACG,QAAQ,oBAARA,QAAQ,CAAEkD,IAAI,CAAC;QAChCI,EAAE,EAAEtD,QAAQ,YAARA,QAAQ,CAAEsD,EAAE,GACZtF,MAAM,CAAC6B,GAAG,CAACG,QAAQ,oBAARA,QAAQ,CAAEsD,EAAE,CAAC,GACxBtF,MAAM,CAAC6B,GAAG,CAACG,QAAQ,oBAARA,QAAQ,CAAEkD,IAAI;MAC/B,CAAC,CAAC;IACJ;IACA,IACE5C,OAAO,IACPH,MAAM,IACNK,IAAI,KAAK,QAAQ,IACjBR,QAAQ,KACP,EAACA,QAAQ,YAARA,QAAQ,CAAEkD,IAAI,CAAC0B,MAAM,CACrB5G,MAAM,CAAC6B,GAAG,CAACiG,MAAM,CAAC7F,eAAe,oBAAfA,eAAe,CAAEiD,IAAI,CAAC,GAAG,IAAI,CACjD,CAAC,KACC,EAAClD,QAAQ,aAAAoL,aAAA,GAARpL,QAAQ,CAAEsD,EAAE,aAAZ8H,aAAA,CAAcxG,MAAM,CAAC5G,MAAM,CAAC6B,GAAG,CAACiG,MAAM,CAAC7F,eAAe,oBAAfA,eAAe,CAAEqD,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,EAAC,EACxE;MACAnD,MAAM,CAAC;QACL+C,IAAI,EAAElF,MAAM,CAAC6B,GAAG,CAACG,QAAQ,oBAARA,QAAQ,CAAEkD,IAAI,CAAC,CAACoB,IAAI,CAAC,CAAC;QACvChB,EAAE,EAAEtD,QAAQ,YAARA,QAAQ,CAAEsD,EAAE,GACZtF,MAAM,CAAC6B,GAAG,CAACG,QAAQ,oBAARA,QAAQ,CAAEsD,EAAE,CAAC,CAACgB,IAAI,CAAC,CAAC,GAC/BtG,MAAM,CAAC6B,GAAG,CAACG,QAAQ,oBAARA,QAAQ,CAAEkD,IAAI,CAAC,CAACoB,IAAI,CAAC;MACtC,CAAC,CAAC;IACJ;IACA,IAAI9D,IAAI,KAAK,QAAQ,IAAIF,OAAO,IAAI,CAACN,QAAQ,IAAIG,MAAM,EAAE;MACvDA,MAAM,CAACkE,SAAS,CAAC;IACnB;IACApB,cAAc,CACZhD,eAAe,YAAfA,eAAe,CAAEiD,IAAI,GACjBxD,QAAQ,CAACO,eAAe,CAACiD,IAAI,CAAC,GAC9B7B,KAAK,GACL3B,QAAQ,CAAC2B,KAAK,CAAC,GACfrD,MAAM,CAAC6B,GAAG,CAAC,CACjB,CAAC;IACDuD,aAAa,CACXnD,eAAe,YAAfA,eAAe,CAAEiD,IAAI,GACjBxD,QAAQ,CAACO,eAAe,CAACiD,IAAI,CAAC,GAC9B7B,KAAK,GACL3B,QAAQ,CAAC2B,KAAK,CAAC,GACfrD,MAAM,CAAC6B,GAAG,CAAC,CACjB,CAAC;IACDwD,WAAW,CACTpD,eAAe,YAAfA,eAAe,CAAEiD,IAAI,GACjB;MACEA,IAAI,EAAExD,QAAQ,CAACO,eAAe,CAACiD,IAAI,CAAC;MACpCI,EAAE,EAAErD,eAAe,CAACqD,EAAE,GAAG5D,QAAQ,CAACO,eAAe,CAACqD,EAAE,CAAC,GAAG;IAC1D,CAAC,GACD,IACN,CAAC;IACDiB,cAAc,CAAC,CAAC;IAChB9B,mBAAmB,CAAC,KAAK,CAAC;IAC1BI,oBAAoB,CAACrC,IAAI,KAAK,SAAS,IAAIA,IAAI,KAAK,WAAW,CAAC;IAChEuC,2BAA2B,CAAC,IAAI,CAAC;IACjC,IAAI,OAAO1C,OAAO,KAAK,UAAU,EAAEA,OAAO,CAAC,CAAC;EAC9C,CAAC,EAAE,CACDJ,eAAe,EACfK,OAAO,EACPE,IAAI,EACJa,KAAK,EACLhB,OAAO,EACPF,MAAM,EACNH,QAAQ,EACRuE,cAAc,CACf,CAAC;EAEF,MAAM8G,iBAAiB,GAAGvN,WAAW,CAAC,MAAM;IAC1C,IAAIwN,WAAW,GAAG,IAAI;IACtB,IAAI,CAAC/K,MAAM,IAAI,CAACmB,kBAAkB,IAAIpB,OAAO,IAAIc,QAAQ,EAAE;MACzDkK,WAAW,GAAG,IAAI;IACpB;IACA,IACE/K,MAAM,IACNmB,kBAAkB,IAClB,CAACpB,OAAO,IACR,CAACc,QAAQ,KACPpB,QAAQ,IAAI,CAACC,eAAe,IAC3B,CAACD,QAAQ,IAAIC,eAAgB,IAC7BD,QAAQ,YAARA,QAAQ,CAAEkD,IAAI,IACbjD,eAAe,YAAfA,eAAe,CAAEiD,IAAI,IACrB,CAAClD,QAAQ,CAACkD,IAAI,CAAC0B,MAAM,CAAClF,QAAQ,CAACO,eAAe,CAACiD,IAAI,CAAC,CAAE,IACvDlD,QAAQ,YAARA,QAAQ,CAAEsD,EAAE,IACXrD,eAAe,YAAfA,eAAe,CAAEqD,EAAE,IACnB,CAACtD,QAAQ,CAACsD,EAAE,CAACsB,MAAM,CAAClF,QAAQ,CAACO,eAAe,CAACqD,EAAE,CAAC,CAAE,CAAC,EACvD;MACAgI,WAAW,GAAG,KAAK;MACnB3I,mBAAmB,CAAC,IAAI,CAAC;IAC3B;IACA,IAAI2I,WAAW,EAAEH,WAAW,CAAC,CAAC;IAC9B,OAAOG,WAAW;EACpB,CAAC,EAAE,CACDrL,eAAe,EACfyB,kBAAkB,EAClByJ,WAAW,EACX7K,OAAO,EACPc,QAAQ,EACRpB,QAAQ,EACRO,MAAM,CACP,CAAC;EAEF,MAAMgL,OAAO,GAAGhL,MAAM,GAAGf,IAAI,GAAG,KAAK;EAErC,MAAMgM,kBAAkB,GAAG1N,WAAW,CAAC,MAAM;IAC3C8E,iBAAiB,IAAI,CAACtB,iBAAiB,GACnCkD,gBAAgB,CAAC,CAAC,GAClBC,iBAAiB,CAAC,CAAC;EACzB,CAAC,EAAE,CACDnD,iBAAiB,EACjBsB,iBAAiB,EACjB6B,iBAAiB,EACjBD,gBAAgB,CACjB,CAAC;EAEF,MAAMiH,uBAAuB,GAAG3N,WAAW,CAAC,MAAM;IAChD6E,mBAAmB,CAAC,KAAK,CAAC;EAC5B,CAAC,EAAE,EAAE,CAAC;EAEN,MAAM+I,sBAAsB,GAAG5N,WAAW,CAAC,MAAM;IAC/CuF,WAAW,CACTpD,eAAe,YAAfA,eAAe,CAAEiD,IAAI,GACjB;MACEA,IAAI,EAAExD,QAAQ,CAACO,eAAe,CAACiD,IAAI,CAAC;MACpCI,EAAE,EAAErD,eAAe,CAACqD,EAAE,GAAG5D,QAAQ,CAACO,eAAe,CAACqD,EAAE,CAAC,GAAG;IAC1D,CAAC,GACD,IACN,CAAC;IACDX,mBAAmB,CAAC,KAAK,CAAC;IAC1BwI,WAAW,CAAC,CAAC;EACf,CAAC,EAAE,CAAClL,eAAe,EAAEkL,WAAW,CAAC,CAAC;EAElC,MAAMQ,YAAY,GAAGpL,MAAM,GACvB;IACEuJ,SAAS,EAAE,yBAAyB;IACpCvJ,MAAM;IACNqL,aAAa,EAAEP,iBAAiB;IAChChL,OAAO,EAAE8K,WAAW;IACpBjJ,IAAI,EAAEI,MAAM;IACZuJ,MAAM,EAAEtH,cAAc;IACtBhD,QAAQ;IACRC,aAAa;IACbC,eAAe;IACfM;EACF,CAAC,GACD;IAAE+H,SAAS,EAAE;EAA0B,CAAC;EAE5CjM,SAAS,CAAC,MAAM;IACd,MAAMiO,aAAa,GAAIC,KAAK,IAAK;MAC/B,IAAIA,KAAK,CAACtE,GAAG,KAAK,YAAY,EAAE;QAC9BxB,iBAAiB,CAAC,MAAM,CAAC;MAC3B,CAAC,MAAM,IAAI8F,KAAK,CAACtE,GAAG,KAAK,WAAW,EAAE;QACpCxB,iBAAiB,CAAC,MAAM,CAAC;MAC3B;IACF,CAAC;IAED,IAAI3D,MAAM,EAAE;MACV0J,MAAM,CAACC,gBAAgB,CAAC,SAAS,EAAEH,aAAa,CAAC;IACnD,CAAC,MAAM;MACLE,MAAM,CAACE,mBAAmB,CAAC,SAAS,EAAEJ,aAAa,CAAC;IACtD;IAEA,OAAO,MAAM;MACXE,MAAM,CAACE,mBAAmB,CAAC,SAAS,EAAEJ,aAAa,CAAC;IACtD,CAAC;EACH,CAAC,EAAE,CAACxJ,MAAM,EAAE2D,iBAAiB,CAAC,CAAC;EAE/B,MAAMkG,cAAc,GAAGA,CAAA,KAAM;IAC3B,IAAI,CAAClM,eAAe,IAAI,CAACD,QAAQ,EAAE;MACjC,OAAO,IAAI;IACb;IACA,IACEC,eAAe,IACfD,QAAQ,IACRC,eAAe,CAACiD,IAAI,IACpBlD,QAAQ,CAACkD,IAAI,CAAC0B,MAAM,CAAClF,QAAQ,CAACO,eAAe,CAACiD,IAAI,CAAC,CAAC,IACpDjD,eAAe,CAACqD,EAAE,IAClBtD,QAAQ,CAACsD,EAAE,IACXtD,QAAQ,CAACsD,EAAE,CAACsB,MAAM,CAAClF,QAAQ,CAACO,eAAe,CAACqD,EAAE,CAAC,CAAC,EAChD;MACA,OAAO,IAAI;IACb;IACA,OAAO,KAAK;EACd,CAAC;EAED,oBACE5F,KAAA,CAAA8J,aAAA,CAAC7I,uBAAuB;IAAC8L,GAAG,EAAEvG;EAAc,gBAC1CxG,KAAA,CAAA8J,aAAA,CAAC+D,OAAO,EAAKI,YAAY,eACvBjO,KAAA,CAAA8J,aAAA,CAAC9I,8BAA8B,qBAC7BhB,KAAA,CAAA8J,aAAA,CAACrJ,oBAAoB,QAClBqE,gBAAgB,GAAG,IAAI,gBACtB9E,KAAA,CAAA8J,aAAA,CAACpI,UAAU;IACT4K,OAAO,EAAEA,CAAA,KAAM/D,iBAAiB,CAAC,MAAM,CAAE;IACzCmG,OAAO,EAAC,WAAW;IACnBC,IAAI,EAAC;EAAO,gBAEZ3O,KAAA,CAAA8J,aAAA,CAACnI,aAAa,MAAE,CACN,CACb,eACD3B,KAAA,CAAA8J,aAAA,CAACnJ,aAAa;IACZyL,SAAS,EAAKpC,cAAc,UAC1BlF,gBAAgB,GAAG,cAAc,GAAG,EAAE,CACrC;IACHiF,GAAG,EAAE7E,iBAAiB,GAAGI,WAAW,CAACqD,IAAI,CAAC,CAAC,GAAGrD,WAAW,CAAC3B,KAAK,CAAC,CAAE;IAClE2I,OAAO,EAAEwB,kBAAmB;IAC5BrF,cAAc,EAAEA;EAAe,GAE9B6E,WACY,CAAC,EACfxI,gBAAgB,GAAG,IAAI,gBACtB9E,KAAA,CAAA8J,aAAA,CAACpI,UAAU;IACT4K,OAAO,EAAEA,CAAA,KAAM/D,iBAAiB,CAAC,MAAM,CAAE;IACzCmG,OAAO,EAAC,WAAW;IACnBC,IAAI,EAAC;EAAO,gBAEZ3O,KAAA,CAAA8J,aAAA,CAAClI,cAAc,MAAE,CACP,CAEM,CAAC,eACvB5B,KAAA,CAAA8J,aAAA,CAACpJ,sBAAsB,QACpBoE,gBAAgB,GACf2H,gBAAgB,CAAC,CAAC,GAChBvH,iBAAiB,gBACnBlF,KAAA,CAAA8J,aAAA,CAACxI,mBAAmB;IAClB8K,SAAS,EAAEpC,cAAe;IAC1BD,GAAG,EAAEzE,WAAW,CAACqD,IAAI,CAAC,CAAE;IACxBF,cAAc,EAAEA;EAAe,GAE9BuE,iBAAiB,CAAC,CACA,CAAC,gBAEtBhN,KAAA,CAAA8J,aAAA,CAAA9J,KAAA,CAAA4O,QAAA,qBACE5O,KAAA,CAAA8J,aAAA,CAAC3I,gBAAgB,QAAEqI,gBAAgB,CAAC,CAAoB,CAAC,eACzDxJ,KAAA,CAAA8J,aAAA,CAACtJ,mBAAmB;IAClB4L,SAAS,EAAEpC,cAAe;IAC1BD,GAAG,EAAEzE,WAAW,CAAC3B,KAAK,CAAC;EAAE,GAExB2G,mBAAmB,CAAC,CACF,CACrB,CAEkB,CAAC,EACxB,CAACzH,MAAM,IAAI8B,YAAY,MACrB,CAAC/B,OAAO,gBACP5C,KAAA,CAAA8J,aAAA,CAAChJ,cAAc,qBACbd,KAAA,CAAA8J,aAAA,CAAC/I,kBAAkB,qBACjBf,KAAA,CAAA8J,aAAA,CAACrI,MAAM;IACLkN,IAAI,EAAC,OAAO;IACZD,OAAO,EAAC,SAAS;IACjBpC,OAAO,EAAEhE,UAAW;IACpBlF,QAAQ,EAAEqL,cAAc,CAAC;EAAE,GAE1B1L,SACK,CAAC,eACT/C,KAAA,CAAA8J,aAAA,CAAC/H,OAAO;IACN6J,KAAK,EAAE5I,WAAY;IACnBuB,kBAAkB,EAAE;MAAEsK,MAAM,EAAE;IAAK;EAAE,gBAErC7O,KAAA,CAAA8J,aAAA,CAACpI,UAAU;IACTiN,IAAI,EAAC,OAAO;IACZD,OAAO,EAAC,WAAW;IACnBpC,OAAO,EAAEqB;EAAkB,gBAE3B3N,KAAA,CAAA8J,aAAA,CAACjI,eAAe,MAAE,CACR,CACL,CACS,CAAC,EACpB,CAAC6B,QAAQ,gBACR1D,KAAA,CAAA8J,aAAA,CAACrI,MAAM;IACLkN,IAAI,EAAC,OAAO;IACZrC,OAAO,EAAEkB,WAAY;IACrBkB,OAAO,EAAC;EAAW,GAElBzL,UACK,CAAC,GACP,IACU,CAAC,GACf,CAACS,QAAQ,gBACX1D,KAAA,CAAA8J,aAAA,CAAChJ,cAAc,qBACbd,KAAA,CAAA8J,aAAA,CAAClJ,wBAAwB;IACvB+N,IAAI,EAAC,OAAO;IACZrC,OAAO,EAAEkB,WAAY;IACrBkB,OAAO,EAAC;EAAW,GAElBzL,UACuB,CACZ,CAAC,GACf,IAAI,CACoB,CACzB,CAAC,EACT,CAACL,OAAO,IAAIC,MAAM,IAAI,CAACa,QAAQ,IAAIM,kBAAkB,gBACpDhE,KAAA,CAAA8J,aAAA,CAACjJ,mBAAmB;IAClBuL,SAAS,EAAC,mBAAmB;IAC7B5H,IAAI,EAAEQ,gBAAiB;IACvB8J,QAAQ,EAAEf,uBAAwB;IAClCgB,SAAS,EAAEf,sBAAuB;IAClCgB,WAAW,EAAE/K,eAAgB;IAC7BgL,aAAa,EAAE/K,mBAAoB;IACnCgL,aAAa,EAAE9K,kBAAmB;IAClC+K,cAAc,EAAEhL;EAAoB,CACrC,CAAC,GACA,IACmB,CAAC;AAE9B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"currencyUtils.d.ts","sourceRoot":"","sources":["../../../src/utils/currencyUtils.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,kBAAkB;;;;;CAK9B,CAAC;AAEF,eAAO,MAAM,kBAAkB,QAAS,MAAM,SAAS,MAAM,WAQ5D,CAAC;AAEF,eAAO,MAAM,mBAAmB,WACtB,MAAM,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"currencyUtils.d.ts","sourceRoot":"","sources":["../../../src/utils/currencyUtils.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,kBAAkB;;;;;CAK9B,CAAC;AAEF,eAAO,MAAM,kBAAkB,QAAS,MAAM,SAAS,MAAM,WAQ5D,CAAC;AAEF,eAAO,MAAM,mBAAmB,WACtB,MAAM,GAAG,MAAM,kEAsCxB,CAAC;AAEF;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,YAAY,MACpB,MAAM,GAAG,MAAM,mIA+CnB,CAAC;AAEF,eAAO,MAAM,mBAAmB,MAC3B,MAAM,GAAG,MAAM,6FAYnB,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,cAAc,MACtB,MAAM,GAAG,MAAM,yLAyBnB,CAAC"}
|
|
@@ -20,8 +20,11 @@ export const getNumberFromString = function (number, thousandSeparator, decimalS
|
|
|
20
20
|
if (decimalSeparator === void 0) {
|
|
21
21
|
decimalSeparator = ".";
|
|
22
22
|
}
|
|
23
|
-
if (typeof number === "number") {
|
|
24
|
-
return
|
|
23
|
+
if (typeof number === "string" && number === "") {
|
|
24
|
+
return NaN;
|
|
25
|
+
}
|
|
26
|
+
if (!isNaN(Number(number)) || typeof number === "number") {
|
|
27
|
+
return Number(number);
|
|
25
28
|
}
|
|
26
29
|
if (decimalSeparator === ",") {
|
|
27
30
|
const parts = number.split(decimalSeparator);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"currencyUtils.js","names":["currencyMultiplier","k","m","b","t","fixedDecimalSpaces","num","fixed","Math","pow","parts","toString","split","length","parseInt","floor","round","getNumberFromString","number","thousandSeparator","decimalSeparator","result","parseFloat","String","replaceAll","formatNumber","n","decimalSeperator","trimDecimals","decimalSpaces","format","isNaN","isNegative","absoluteNumber","abs","suffixes","scale","formattedNum","toFixed","numberWithSeparator","x","replace","join","formatCurrency","currencyCode","currencyCodePosition"],"sources":["../../../src/utils/currencyUtils.ts"],"sourcesContent":["export const currencyMultiplier = {\n k: 1_000,\n m: 1_000_000,\n b: 1_000_000_000,\n t: 1_000_000_000_000,\n};\n\nexport const fixedDecimalSpaces = (num: number, fixed: number) => {\n fixed = fixed || 0;\n fixed = Math.pow(10, fixed);\n const parts = num.toString().split(\".\");\n if (parts.length > 1 && parseInt(parts[1]) > fixed) {\n return Math.floor(num * fixed) / fixed;\n }\n return Math.round(num * fixed) / fixed;\n};\n\nexport const getNumberFromString = (\n number: string | number,\n thousandSeparator = \",\",\n decimalSeparator = \".\"\n) => {\n if (typeof number === \"number\") {\n return number;\n }\n if (decimalSeparator === \",\") {\n const parts = number.split(decimalSeparator);\n\n let result = 0;\n if (parts.length === 2) {\n result = parts[0]\n ? parseFloat(String(parts[0]).replaceAll(thousandSeparator, \"\"))\n : 0;\n if (result < 0) {\n result -= parts[1]\n ? parseFloat(String(parts[1])) / Math.pow(10, parts[1].length)\n : 0;\n } else {\n result += parts[1]\n ? parseFloat(String(parts[1])) / Math.pow(10, parts[1].length)\n : 0;\n }\n return result;\n }\n if (parts.length === 1) {\n result = parseFloat(String(parts[0]).replaceAll(thousandSeparator, \"\"));\n\n return result;\n }\n return 0;\n } else {\n return parseFloat(String(number).replaceAll(thousandSeparator, \"\"));\n }\n};\n\n/**\n * @function formatNumber\n * @description\n * Formats a number or string into a human-readable format with options for thousand separators,\n * decimal precision, and shortening the number using suffixes (K, M, B, T).\n * It can handle negative numbers and optionally trim decimals and set number of decimal places based on the configuration.\n *\n * @param {string | number} n - The number or string to be formatted.\n * @param {\",\" | \".\" | \" \" | \"\"} [thousandSeparator=\",\"] - The character to use as a thousand separator.\n * @param {\",\" | \".\"} [decimalSeperator=\".\"] - The character to use as a decimal separator.\n * @param {boolean} [trimDecimals=true] - Whether to trim decimals to the specified number of decimal spaces.\n * @param {number} [decimalSpaces=2] - The number of decimal spaces to keep in the formatted output.\n * @param {\"long\" | \"short\"} [format=\"long\"] - The format type, either \"long\" for full numbers or \"short\" for shortened numbers with suffixes.\n *\n * @returns {string} - The formatted number as a string with separators and potentially with decimals.\n *\n * @example\n * formatNumber(1500) // \"1,500.00\"\n * formatNumber(1500000, \",\", \".\", true, 2, \"short\") // \"1.5M\"\n */\nexport const formatNumber = (\n n: string | number,\n thousandSeparator = \",\",\n decimalSeperator = \".\",\n trimDecimals = true,\n decimalSpaces = 2,\n format = \"long\"\n) => {\n const number = getNumberFromString(n, thousandSeparator, decimalSeperator);\n\n if (isNaN(number)) {\n return \"\";\n }\n\n const isNegative = number < 0;\n let absoluteNumber = Math.abs(number);\n\n const suffixes = [\"\", \"K\", \"M\", \"B\", \"T\"];\n let scale = 0;\n\n while (\n absoluteNumber >= 1000 &&\n scale < suffixes.length - 1 &&\n format === \"short\"\n ) {\n absoluteNumber /= 1000;\n scale++;\n }\n\n let formattedNum =\n scale === 0\n ? fixedDecimalSpaces(absoluteNumber, decimalSpaces)\n : parseFloat(absoluteNumber.toFixed(1));\n\n if (formattedNum === 1000 && scale > 0 && scale < 4) {\n formattedNum = 1;\n scale++;\n }\n\n const result = numberWithSeparator(\n trimDecimals ? formattedNum : formattedNum.toFixed(decimalSpaces),\n thousandSeparator,\n decimalSeperator\n );\n\n return isNegative\n ? `-${result}${suffixes[scale]}`\n : `${result}${suffixes[scale]}`;\n};\n\nexport const numberWithSeparator = (\n x: number | string,\n thousandSeparator = \",\",\n decimalSeparator = \".\",\n format = true\n) => {\n if (!format) {\n return x;\n }\n const parts = x.toString().split(\".\");\n parts[0] = parts[0].replace(/\\B(?=(\\d{3})+(?!\\d))/g, thousandSeparator);\n\n return parts.join(decimalSeparator);\n};\n\n/**\n * @function formatCurrency\n * @description\n * Formats a number or string as a currency string with options for thousand separators,\n * decimal precision, currency code, currency code position, and the use of suffixes (K, M, B, T) if needed.\n * It can handle negative values and supports customization of the currency code and its position.\n *\n * @param {string | number} n - The number or string to be formatted as currency.\n * @param {\",\" | \".\" | \" \" | \"\"} [thousandSeparator=\",\"] - The character to use as a thousand separator.\n * @param {\",\" | \".\"} [decimalSeperator=\".\"] - The character to use as a decimal separator.\n * @param {boolean} [trimDecimals=false] - Whether to trim decimals to the specified number of decimal spaces.\n * @param {number} [decimalSpaces=2] - The number of decimal spaces to keep in the formatted output.\n * @param {\"long\" | \"short\"} [format=\"long\"] - The format type, either \"long\" for full numbers or \"short\" for shortened numbers with suffixes.\n * @param {string} [currencyCode=\"\"] - The currency code to append or prepend to the formatted number.\n * @param {\"right\" | \"left\"} [currencyCodePosition=\"right\"] - The position of the currency code relative to the formatted number.\n *\n * @returns {string} - The formatted currency string, including the currency code if provided.\n *\n * @example\n * formatCurrency(1500, \",\", \".\", false, 2, \"long\", \"USD\", \"right\") // \"1,500.00 USD\"\n * formatCurrency(1500000, \",\", \".\", true, 2, \"short\", \"JPY\", \"left\") // \"JPY 1.5M\"\n */\nexport const formatCurrency = (\n n: string | number,\n thousandSeparator = \",\",\n decimalSeperator = \".\",\n trimDecimals = false,\n decimalSpaces = 2,\n format = \"long\",\n currencyCode = \"\",\n currencyCodePosition = \"right\"\n) => {\n const formattedNum = formatNumber(\n n,\n thousandSeparator,\n decimalSeperator,\n trimDecimals,\n decimalSpaces,\n format\n );\n\n if (!currencyCode) {\n return formattedNum;\n }\n\n return currencyCodePosition === \"right\"\n ? `${formattedNum} ${currencyCode}`\n : `${currencyCode} ${formattedNum}`;\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"currencyUtils.js","names":["currencyMultiplier","k","m","b","t","fixedDecimalSpaces","num","fixed","Math","pow","parts","toString","split","length","parseInt","floor","round","getNumberFromString","number","thousandSeparator","decimalSeparator","NaN","isNaN","Number","result","parseFloat","String","replaceAll","formatNumber","n","decimalSeperator","trimDecimals","decimalSpaces","format","isNegative","absoluteNumber","abs","suffixes","scale","formattedNum","toFixed","numberWithSeparator","x","replace","join","formatCurrency","currencyCode","currencyCodePosition"],"sources":["../../../src/utils/currencyUtils.ts"],"sourcesContent":["export const currencyMultiplier = {\n k: 1_000,\n m: 1_000_000,\n b: 1_000_000_000,\n t: 1_000_000_000_000,\n};\n\nexport const fixedDecimalSpaces = (num: number, fixed: number) => {\n fixed = fixed || 0;\n fixed = Math.pow(10, fixed);\n const parts = num.toString().split(\".\");\n if (parts.length > 1 && parseInt(parts[1]) > fixed) {\n return Math.floor(num * fixed) / fixed;\n }\n return Math.round(num * fixed) / fixed;\n};\n\nexport const getNumberFromString = (\n number: string | number,\n thousandSeparator = \",\",\n decimalSeparator = \".\"\n) => {\n if (typeof number === \"string\" && number === \"\") {\n return NaN;\n }\n if (!isNaN(Number(number)) || typeof number === \"number\") {\n return Number(number);\n }\n if (decimalSeparator === \",\") {\n const parts = number.split(decimalSeparator);\n\n let result = 0;\n if (parts.length === 2) {\n result = parts[0]\n ? parseFloat(String(parts[0]).replaceAll(thousandSeparator, \"\"))\n : 0;\n if (result < 0) {\n result -= parts[1]\n ? parseFloat(String(parts[1])) / Math.pow(10, parts[1].length)\n : 0;\n } else {\n result += parts[1]\n ? parseFloat(String(parts[1])) / Math.pow(10, parts[1].length)\n : 0;\n }\n return result;\n }\n if (parts.length === 1) {\n result = parseFloat(String(parts[0]).replaceAll(thousandSeparator, \"\"));\n\n return result;\n }\n return 0;\n } else {\n return parseFloat(String(number).replaceAll(thousandSeparator, \"\"));\n }\n};\n\n/**\n * @function formatNumber\n * @description\n * Formats a number or string into a human-readable format with options for thousand separators,\n * decimal precision, and shortening the number using suffixes (K, M, B, T).\n * It can handle negative numbers and optionally trim decimals and set number of decimal places based on the configuration.\n *\n * @param {string | number} n - The number or string to be formatted.\n * @param {\",\" | \".\" | \" \" | \"\"} [thousandSeparator=\",\"] - The character to use as a thousand separator.\n * @param {\",\" | \".\"} [decimalSeperator=\".\"] - The character to use as a decimal separator.\n * @param {boolean} [trimDecimals=true] - Whether to trim decimals to the specified number of decimal spaces.\n * @param {number} [decimalSpaces=2] - The number of decimal spaces to keep in the formatted output.\n * @param {\"long\" | \"short\"} [format=\"long\"] - The format type, either \"long\" for full numbers or \"short\" for shortened numbers with suffixes.\n *\n * @returns {string} - The formatted number as a string with separators and potentially with decimals.\n *\n * @example\n * formatNumber(1500) // \"1,500.00\"\n * formatNumber(1500000, \",\", \".\", true, 2, \"short\") // \"1.5M\"\n */\nexport const formatNumber = (\n n: string | number,\n thousandSeparator = \",\",\n decimalSeperator = \".\",\n trimDecimals = true,\n decimalSpaces = 2,\n format = \"long\"\n) => {\n const number = getNumberFromString(n, thousandSeparator, decimalSeperator);\n\n if (isNaN(number)) {\n return \"\";\n }\n\n const isNegative = number < 0;\n let absoluteNumber = Math.abs(number);\n\n const suffixes = [\"\", \"K\", \"M\", \"B\", \"T\"];\n let scale = 0;\n\n while (\n absoluteNumber >= 1000 &&\n scale < suffixes.length - 1 &&\n format === \"short\"\n ) {\n absoluteNumber /= 1000;\n scale++;\n }\n\n let formattedNum =\n scale === 0\n ? fixedDecimalSpaces(absoluteNumber, decimalSpaces)\n : parseFloat(absoluteNumber.toFixed(1));\n\n if (formattedNum === 1000 && scale > 0 && scale < 4) {\n formattedNum = 1;\n scale++;\n }\n\n const result = numberWithSeparator(\n trimDecimals ? formattedNum : formattedNum.toFixed(decimalSpaces),\n thousandSeparator,\n decimalSeperator\n );\n\n return isNegative\n ? `-${result}${suffixes[scale]}`\n : `${result}${suffixes[scale]}`;\n};\n\nexport const numberWithSeparator = (\n x: number | string,\n thousandSeparator = \",\",\n decimalSeparator = \".\",\n format = true\n) => {\n if (!format) {\n return x;\n }\n const parts = x.toString().split(\".\");\n parts[0] = parts[0].replace(/\\B(?=(\\d{3})+(?!\\d))/g, thousandSeparator);\n\n return parts.join(decimalSeparator);\n};\n\n/**\n * @function formatCurrency\n * @description\n * Formats a number or string as a currency string with options for thousand separators,\n * decimal precision, currency code, currency code position, and the use of suffixes (K, M, B, T) if needed.\n * It can handle negative values and supports customization of the currency code and its position.\n *\n * @param {string | number} n - The number or string to be formatted as currency.\n * @param {\",\" | \".\" | \" \" | \"\"} [thousandSeparator=\",\"] - The character to use as a thousand separator.\n * @param {\",\" | \".\"} [decimalSeperator=\".\"] - The character to use as a decimal separator.\n * @param {boolean} [trimDecimals=false] - Whether to trim decimals to the specified number of decimal spaces.\n * @param {number} [decimalSpaces=2] - The number of decimal spaces to keep in the formatted output.\n * @param {\"long\" | \"short\"} [format=\"long\"] - The format type, either \"long\" for full numbers or \"short\" for shortened numbers with suffixes.\n * @param {string} [currencyCode=\"\"] - The currency code to append or prepend to the formatted number.\n * @param {\"right\" | \"left\"} [currencyCodePosition=\"right\"] - The position of the currency code relative to the formatted number.\n *\n * @returns {string} - The formatted currency string, including the currency code if provided.\n *\n * @example\n * formatCurrency(1500, \",\", \".\", false, 2, \"long\", \"USD\", \"right\") // \"1,500.00 USD\"\n * formatCurrency(1500000, \",\", \".\", true, 2, \"short\", \"JPY\", \"left\") // \"JPY 1.5M\"\n */\nexport const formatCurrency = (\n n: string | number,\n thousandSeparator = \",\",\n decimalSeperator = \".\",\n trimDecimals = false,\n decimalSpaces = 2,\n format = \"long\",\n currencyCode = \"\",\n currencyCodePosition = \"right\"\n) => {\n const formattedNum = formatNumber(\n n,\n thousandSeparator,\n decimalSeperator,\n trimDecimals,\n decimalSpaces,\n format\n );\n\n if (!currencyCode) {\n return formattedNum;\n }\n\n return currencyCodePosition === \"right\"\n ? `${formattedNum} ${currencyCode}`\n : `${currencyCode} ${formattedNum}`;\n};\n"],"mappings":"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"}
|