@mirai/ui 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (150) hide show
  1. package/README.md +349 -0
  2. package/build/components/Button/Button.js +44 -0
  3. package/build/components/Button/Button.js.map +1 -0
  4. package/build/components/Button/Button.module.css +79 -0
  5. package/build/components/Button/__tests__/__snapshots__/Button.test.js.snap +113 -0
  6. package/build/components/Button/index.js +19 -0
  7. package/build/components/Button/index.js.map +1 -0
  8. package/build/components/Calendar/Calendar.Month.js +101 -0
  9. package/build/components/Calendar/Calendar.Month.js.map +1 -0
  10. package/build/components/Calendar/Calendar.Week.js +144 -0
  11. package/build/components/Calendar/Calendar.Week.js.map +1 -0
  12. package/build/components/Calendar/Calendar.constants.js +11 -0
  13. package/build/components/Calendar/Calendar.constants.js.map +1 -0
  14. package/build/components/Calendar/Calendar.js +146 -0
  15. package/build/components/Calendar/Calendar.js.map +1 -0
  16. package/build/components/Calendar/Calendar.module.css +96 -0
  17. package/build/components/Calendar/__tests__/__snapshots__/Calendar.test.jsx.snap +17853 -0
  18. package/build/components/Calendar/helpers/getFirstDateOfMonth.js +16 -0
  19. package/build/components/Calendar/helpers/getFirstDateOfMonth.js.map +1 -0
  20. package/build/components/Calendar/helpers/getFirstDateOfWeek.js +20 -0
  21. package/build/components/Calendar/helpers/getFirstDateOfWeek.js.map +1 -0
  22. package/build/components/Calendar/helpers/getHeader.js +23 -0
  23. package/build/components/Calendar/helpers/getHeader.js.map +1 -0
  24. package/build/components/Calendar/helpers/getToday.js +15 -0
  25. package/build/components/Calendar/helpers/getToday.js.map +1 -0
  26. package/build/components/Calendar/helpers/getWeekNumber.js +17 -0
  27. package/build/components/Calendar/helpers/getWeekNumber.js.map +1 -0
  28. package/build/components/Calendar/helpers/getWeekdays.js +27 -0
  29. package/build/components/Calendar/helpers/getWeekdays.js.map +1 -0
  30. package/build/components/Calendar/helpers/index.js +97 -0
  31. package/build/components/Calendar/helpers/index.js.map +1 -0
  32. package/build/components/Calendar/helpers/isJest.js +9 -0
  33. package/build/components/Calendar/helpers/isJest.js.map +1 -0
  34. package/build/components/Calendar/index.js +19 -0
  35. package/build/components/Calendar/index.js.map +1 -0
  36. package/build/components/Form/Form.js +184 -0
  37. package/build/components/Form/Form.js.map +1 -0
  38. package/build/components/Form/__tests__/__snapshots__/Form.test.jsx.snap +47 -0
  39. package/build/components/Form/helpers/getChildrenErrors.js +47 -0
  40. package/build/components/Form/helpers/getChildrenErrors.js.map +1 -0
  41. package/build/components/Form/helpers/getChildrenValues.js +46 -0
  42. package/build/components/Form/helpers/getChildrenValues.js.map +1 -0
  43. package/build/components/Form/helpers/getField.js +17 -0
  44. package/build/components/Form/helpers/getField.js.map +1 -0
  45. package/build/components/Form/helpers/groupState.js +29 -0
  46. package/build/components/Form/helpers/groupState.js.map +1 -0
  47. package/build/components/Form/helpers/index.js +58 -0
  48. package/build/components/Form/helpers/index.js.map +1 -0
  49. package/build/components/Form/index.js +19 -0
  50. package/build/components/Form/index.js.map +1 -0
  51. package/build/components/InputNumber/InputNumber.js +71 -0
  52. package/build/components/InputNumber/InputNumber.js.map +1 -0
  53. package/build/components/InputNumber/InputNumber.module.css +13 -0
  54. package/build/components/InputNumber/__tests__/__snapshots__/InputNumber.test.js.snap +616 -0
  55. package/build/components/InputNumber/index.js +19 -0
  56. package/build/components/InputNumber/index.js.map +1 -0
  57. package/build/components/InputText/InputText.js +100 -0
  58. package/build/components/InputText/InputText.js.map +1 -0
  59. package/build/components/InputText/InputText.module.css +68 -0
  60. package/build/components/InputText/__tests__/__snapshots__/InputText.test.js.snap +212 -0
  61. package/build/components/InputText/index.js +19 -0
  62. package/build/components/InputText/index.js.map +1 -0
  63. package/build/components/Modal/Modal.js +50 -0
  64. package/build/components/Modal/Modal.js.map +1 -0
  65. package/build/components/Modal/Modal.module.css +70 -0
  66. package/build/components/Modal/__tests__/__snapshots__/Modal.test.js.snap +150 -0
  67. package/build/components/Modal/index.js +19 -0
  68. package/build/components/Modal/index.js.map +1 -0
  69. package/build/components/index.js +84 -0
  70. package/build/components/index.js.map +1 -0
  71. package/build/helpers/getInputErrors.js +45 -0
  72. package/build/helpers/getInputErrors.js.map +1 -0
  73. package/build/helpers/index.js +32 -0
  74. package/build/helpers/index.js.map +1 -0
  75. package/build/helpers/isValidDate.js +58 -0
  76. package/build/helpers/isValidDate.js.map +1 -0
  77. package/build/helpers/isValidEmail.js +15 -0
  78. package/build/helpers/isValidEmail.js.map +1 -0
  79. package/build/helpers/isValidPhone.js +25 -0
  80. package/build/helpers/isValidPhone.js.map +1 -0
  81. package/build/helpers/styles.js +21 -0
  82. package/build/helpers/styles.js.map +1 -0
  83. package/build/hooks/helpers/getNavigator.js +33 -0
  84. package/build/hooks/helpers/getNavigator.js.map +1 -0
  85. package/build/hooks/helpers/getResolution.js +22 -0
  86. package/build/hooks/helpers/getResolution.js.map +1 -0
  87. package/build/hooks/helpers/index.js +32 -0
  88. package/build/hooks/helpers/index.js.map +1 -0
  89. package/build/hooks/index.js +19 -0
  90. package/build/hooks/index.js.map +1 -0
  91. package/build/hooks/useDevice.js +48 -0
  92. package/build/hooks/useDevice.js.map +1 -0
  93. package/build/index.js +71 -0
  94. package/build/index.js.map +1 -0
  95. package/build/primitives/Icon/Icon.constants.js +27 -0
  96. package/build/primitives/Icon/Icon.constants.js.map +1 -0
  97. package/build/primitives/Icon/Icon.js +34 -0
  98. package/build/primitives/Icon/Icon.js.map +1 -0
  99. package/build/primitives/Icon/Icon.module.css +11 -0
  100. package/build/primitives/Icon/__tests__/__snapshots__/Icon.test.js.snap +133 -0
  101. package/build/primitives/Icon/index.js +31 -0
  102. package/build/primitives/Icon/index.js.map +1 -0
  103. package/build/primitives/Input/Input.js +66 -0
  104. package/build/primitives/Input/Input.js.map +1 -0
  105. package/build/primitives/Input/Input.module.css +25 -0
  106. package/build/primitives/Input/__tests__/__snapshots__/Input.test.js.snap +74 -0
  107. package/build/primitives/Input/helpers/index.js +19 -0
  108. package/build/primitives/Input/helpers/index.js.map +1 -0
  109. package/build/primitives/Input/helpers/parseValue.js +17 -0
  110. package/build/primitives/Input/helpers/parseValue.js.map +1 -0
  111. package/build/primitives/Input/index.js +19 -0
  112. package/build/primitives/Input/index.js.map +1 -0
  113. package/build/primitives/Pressable/Pressable.constants.js +9 -0
  114. package/build/primitives/Pressable/Pressable.constants.js.map +1 -0
  115. package/build/primitives/Pressable/Pressable.js +50 -0
  116. package/build/primitives/Pressable/Pressable.js.map +1 -0
  117. package/build/primitives/Pressable/Pressable.module.css +18 -0
  118. package/build/primitives/Pressable/__tests__/__snapshots__/Pressable.test.js.snap +53 -0
  119. package/build/primitives/Pressable/index.js +19 -0
  120. package/build/primitives/Pressable/index.js.map +1 -0
  121. package/build/primitives/ScrollView/ScrollView.js +89 -0
  122. package/build/primitives/ScrollView/ScrollView.js.map +1 -0
  123. package/build/primitives/ScrollView/ScrollView.module.css +35 -0
  124. package/build/primitives/ScrollView/__tests__/__snapshots__/ScrollView.test.js.snap +535 -0
  125. package/build/primitives/ScrollView/index.js +19 -0
  126. package/build/primitives/ScrollView/index.js.map +1 -0
  127. package/build/primitives/Text/Text.js +40 -0
  128. package/build/primitives/Text/Text.js.map +1 -0
  129. package/build/primitives/Text/Text.module.css +36 -0
  130. package/build/primitives/Text/__tests__/__snapshots__/Text.test.js.snap +102 -0
  131. package/build/primitives/Text/index.js +19 -0
  132. package/build/primitives/Text/index.js.map +1 -0
  133. package/build/primitives/View/View.js +36 -0
  134. package/build/primitives/View/View.js.map +1 -0
  135. package/build/primitives/View/View.module.css +16 -0
  136. package/build/primitives/View/__tests__/__snapshots__/View.test.js.snap +62 -0
  137. package/build/primitives/View/index.js +19 -0
  138. package/build/primitives/View/index.js.map +1 -0
  139. package/build/primitives/index.js +84 -0
  140. package/build/primitives/index.js.map +1 -0
  141. package/build/theme/default.theme.css +37 -0
  142. package/build/theme/helpers/camelcase.js +16 -0
  143. package/build/theme/helpers/camelcase.js.map +1 -0
  144. package/build/theme/helpers/index.js +19 -0
  145. package/build/theme/helpers/index.js.map +1 -0
  146. package/build/theme/index.js +19 -0
  147. package/build/theme/index.js.map +1 -0
  148. package/build/theme/theme.js +43 -0
  149. package/build/theme/theme.js.map +1 -0
  150. package/package.json +51 -0
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.getFirstDateOfMonth = void 0;
7
+
8
+ var _locale = require("@mirai/locale");
9
+
10
+ var getFirstDateOfMonth = function getFirstDateOfMonth() {
11
+ var date = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : new Date();
12
+ return (0, _locale.UTC)(new Date(date.getFullYear(), date.getMonth(), 1));
13
+ };
14
+
15
+ exports.getFirstDateOfMonth = getFirstDateOfMonth;
16
+ //# sourceMappingURL=getFirstDateOfMonth.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/components/Calendar/helpers/getFirstDateOfMonth.js"],"names":["getFirstDateOfMonth","date","Date","getFullYear","getMonth"],"mappings":";;;;;;;AAAA;;AAEO,IAAMA,mBAAmB,GAAG,SAAtBA,mBAAsB;AAAA,MAACC,IAAD,uEAAQ,IAAIC,IAAJ,EAAR;AAAA,SAAuB,iBAAI,IAAIA,IAAJ,CAASD,IAAI,CAACE,WAAL,EAAT,EAA6BF,IAAI,CAACG,QAAL,EAA7B,EAA8C,CAA9C,CAAJ,CAAvB;AAAA,CAA5B","sourcesContent":["import { UTC } from '@mirai/locale';\n\nexport const getFirstDateOfMonth = (date = new Date()) => UTC(new Date(date.getFullYear(), date.getMonth(), 1));\n"],"file":"getFirstDateOfMonth.js"}
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.getFirstDateOfWeek = void 0;
7
+
8
+ var _locale = require("@mirai/locale");
9
+
10
+ var DAY_MS = 24 * 60 * 60 * 1000;
11
+ var WEEK_MS = 7 * DAY_MS;
12
+
13
+ var getFirstDateOfWeek = function getFirstDateOfWeek(week, year) {
14
+ var date = (0, _locale.UTC)(new Date(year, 0, 1, 0));
15
+ var offsetTimeStart = DAY_MS * (date.getDay() - 1);
16
+ return (0, _locale.UTC)(new Date(date.getTime() + WEEK_MS * (week - 1) - offsetTimeStart));
17
+ };
18
+
19
+ exports.getFirstDateOfWeek = getFirstDateOfWeek;
20
+ //# sourceMappingURL=getFirstDateOfWeek.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/components/Calendar/helpers/getFirstDateOfWeek.js"],"names":["DAY_MS","WEEK_MS","getFirstDateOfWeek","week","year","date","Date","offsetTimeStart","getDay","getTime"],"mappings":";;;;;;;AAAA;;AAEA,IAAMA,MAAM,GAAG,KAAK,EAAL,GAAU,EAAV,GAAe,IAA9B;AACA,IAAMC,OAAO,GAAG,IAAID,MAApB;;AAEO,IAAME,kBAAkB,GAAG,SAArBA,kBAAqB,CAACC,IAAD,EAAOC,IAAP,EAAgB;AAChD,MAAMC,IAAI,GAAG,iBAAI,IAAIC,IAAJ,CAASF,IAAT,EAAe,CAAf,EAAkB,CAAlB,EAAqB,CAArB,CAAJ,CAAb;AACA,MAAMG,eAAe,GAAGP,MAAM,IAAIK,IAAI,CAACG,MAAL,KAAgB,CAApB,CAA9B;AAEA,SAAO,iBAAI,IAAIF,IAAJ,CAASD,IAAI,CAACI,OAAL,KAAiBR,OAAO,IAAIE,IAAI,GAAG,CAAX,CAAxB,GAAwCI,eAAjD,CAAJ,CAAP;AACD,CALM","sourcesContent":["import { UTC } from '@mirai/locale';\n\nconst DAY_MS = 24 * 60 * 60 * 1000;\nconst WEEK_MS = 7 * DAY_MS;\n\nexport const getFirstDateOfWeek = (week, year) => {\n const date = UTC(new Date(year, 0, 1, 0));\n const offsetTimeStart = DAY_MS * (date.getDay() - 1);\n\n return UTC(new Date(date.getTime() + WEEK_MS * (week - 1) - offsetTimeStart));\n};\n"],"file":"getFirstDateOfWeek.js"}
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.getHeader = void 0;
7
+
8
+ var _locale = require("@mirai/locale");
9
+
10
+ var getHeader = function getHeader(date, locale) {
11
+ var month = (0, _locale.dateFormat)(date, {
12
+ locale: locale,
13
+ month: 'long'
14
+ });
15
+ var year = (0, _locale.dateFormat)(date, {
16
+ locale: locale,
17
+ year: 'numeric'
18
+ });
19
+ return "".concat(month, " ").concat(year);
20
+ };
21
+
22
+ exports.getHeader = getHeader;
23
+ //# sourceMappingURL=getHeader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/components/Calendar/helpers/getHeader.js"],"names":["getHeader","date","locale","month","year"],"mappings":";;;;;;;AAAA;;AAEO,IAAMA,SAAS,GAAG,SAAZA,SAAY,CAACC,IAAD,EAAOC,MAAP,EAAkB;AACzC,MAAMC,KAAK,GAAG,wBAAWF,IAAX,EAAiB;AAAEC,IAAAA,MAAM,EAANA,MAAF;AAAUC,IAAAA,KAAK,EAAE;AAAjB,GAAjB,CAAd;AACA,MAAMC,IAAI,GAAG,wBAAWH,IAAX,EAAiB;AAAEC,IAAAA,MAAM,EAANA,MAAF;AAAUE,IAAAA,IAAI,EAAE;AAAhB,GAAjB,CAAb;AAEA,mBAAUD,KAAV,cAAmBC,IAAnB;AACD,CALM","sourcesContent":["import { dateFormat } from '@mirai/locale';\n\nexport const getHeader = (date, locale) => {\n const month = dateFormat(date, { locale, month: 'long' });\n const year = dateFormat(date, { locale, year: 'numeric' });\n\n return `${month} ${year}`;\n};\n"],"file":"getHeader.js"}
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.getToday = void 0;
7
+
8
+ var _locale = require("@mirai/locale");
9
+
10
+ var getToday = function getToday() {
11
+ return (0, _locale.UTC)(new Date());
12
+ };
13
+
14
+ exports.getToday = getToday;
15
+ //# sourceMappingURL=getToday.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/components/Calendar/helpers/getToday.js"],"names":["getToday","Date"],"mappings":";;;;;;;AAAA;;AAEO,IAAMA,QAAQ,GAAG,SAAXA,QAAW;AAAA,SAAM,iBAAI,IAAIC,IAAJ,EAAJ,CAAN;AAAA,CAAjB","sourcesContent":["import { UTC } from '@mirai/locale';\n\nexport const getToday = () => UTC(new Date());\n"],"file":"getToday.js"}
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.getWeekNumber = void 0;
7
+
8
+ var _locale = require("@mirai/locale");
9
+
10
+ var getWeekNumber = function getWeekNumber(date) {
11
+ var firstDayOfYear = (0, _locale.UTC)(new Date(date.getFullYear(), 0, 1));
12
+ var pastDaysOfYear = (Number(date) - Number(firstDayOfYear)) / 86400000;
13
+ return Math.ceil((pastDaysOfYear + firstDayOfYear.getDay()) / 7);
14
+ };
15
+
16
+ exports.getWeekNumber = getWeekNumber;
17
+ //# sourceMappingURL=getWeekNumber.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/components/Calendar/helpers/getWeekNumber.js"],"names":["getWeekNumber","date","firstDayOfYear","Date","getFullYear","pastDaysOfYear","Number","Math","ceil","getDay"],"mappings":";;;;;;;AAAA;;AAEO,IAAMA,aAAa,GAAG,SAAhBA,aAAgB,CAACC,IAAD,EAAU;AACrC,MAAMC,cAAc,GAAG,iBAAI,IAAIC,IAAJ,CAASF,IAAI,CAACG,WAAL,EAAT,EAA6B,CAA7B,EAAgC,CAAhC,CAAJ,CAAvB;AACA,MAAMC,cAAc,GAAG,CAACC,MAAM,CAACL,IAAD,CAAN,GAAeK,MAAM,CAACJ,cAAD,CAAtB,IAA0C,QAAjE;AAEA,SAAOK,IAAI,CAACC,IAAL,CAAU,CAACH,cAAc,GAAGH,cAAc,CAACO,MAAf,EAAlB,IAA6C,CAAvD,CAAP;AACD,CALM","sourcesContent":["import { UTC } from '@mirai/locale';\n\nexport const getWeekNumber = (date) => {\n const firstDayOfYear = UTC(new Date(date.getFullYear(), 0, 1));\n const pastDaysOfYear = (Number(date) - Number(firstDayOfYear)) / 86400000;\n\n return Math.ceil((pastDaysOfYear + firstDayOfYear.getDay()) / 7);\n};\n"],"file":"getWeekNumber.js"}
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.getWeekDays = void 0;
7
+
8
+ var _locale = require("@mirai/locale");
9
+
10
+ var _getToday = require("./getToday");
11
+
12
+ var getWeekDays = function getWeekDays(locale) {
13
+ var today = (0, _getToday.getToday)();
14
+ var weekdays = [];
15
+ var date = (0, _locale.UTC)(new Date(today.setDate(today.getDate() - today.getDay() + (today.getDay() === 0 ? -6 : 1))));
16
+ Array.from(Array(7).keys()).forEach(function () {
17
+ weekdays.push((0, _locale.dateFormat)(date, {
18
+ locale: locale,
19
+ weekday: 'short'
20
+ }));
21
+ date.setDate(date.getDate() + 1);
22
+ });
23
+ return weekdays;
24
+ };
25
+
26
+ exports.getWeekDays = getWeekDays;
27
+ //# sourceMappingURL=getWeekdays.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/components/Calendar/helpers/getWeekdays.js"],"names":["getWeekDays","locale","today","weekdays","date","Date","setDate","getDate","getDay","Array","from","keys","forEach","push","weekday"],"mappings":";;;;;;;AAAA;;AAEA;;AAEO,IAAMA,WAAW,GAAG,SAAdA,WAAc,CAACC,MAAD,EAAY;AACrC,MAAMC,KAAK,GAAG,yBAAd;AACA,MAAMC,QAAQ,GAAG,EAAjB;AAEA,MAAMC,IAAI,GAAG,iBAAI,IAAIC,IAAJ,CAASH,KAAK,CAACI,OAAN,CAAcJ,KAAK,CAACK,OAAN,KAAkBL,KAAK,CAACM,MAAN,EAAlB,IAAoCN,KAAK,CAACM,MAAN,OAAmB,CAAnB,GAAuB,CAAC,CAAxB,GAA4B,CAAhE,CAAd,CAAT,CAAJ,CAAb;AACAC,EAAAA,KAAK,CAACC,IAAN,CAAWD,KAAK,CAAC,CAAD,CAAL,CAASE,IAAT,EAAX,EAA4BC,OAA5B,CAAoC,YAAM;AACxCT,IAAAA,QAAQ,CAACU,IAAT,CAAc,wBAAWT,IAAX,EAAiB;AAAEH,MAAAA,MAAM,EAANA,MAAF;AAAUa,MAAAA,OAAO,EAAE;AAAnB,KAAjB,CAAd;AACAV,IAAAA,IAAI,CAACE,OAAL,CAAaF,IAAI,CAACG,OAAL,KAAiB,CAA9B;AACD,GAHD;AAKA,SAAOJ,QAAP;AACD,CAXM","sourcesContent":["import { dateFormat, UTC } from '@mirai/locale';\n\nimport { getToday } from './getToday';\n\nexport const getWeekDays = (locale) => {\n const today = getToday();\n const weekdays = [];\n\n const date = UTC(new Date(today.setDate(today.getDate() - today.getDay() + (today.getDay() === 0 ? -6 : 1))));\n Array.from(Array(7).keys()).forEach(() => {\n weekdays.push(dateFormat(date, { locale, weekday: 'short' }));\n date.setDate(date.getDate() + 1);\n });\n\n return weekdays;\n};\n"],"file":"getWeekdays.js"}
@@ -0,0 +1,97 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+
7
+ var _getFirstDateOfMonth = require("./getFirstDateOfMonth");
8
+
9
+ Object.keys(_getFirstDateOfMonth).forEach(function (key) {
10
+ if (key === "default" || key === "__esModule") return;
11
+ if (key in exports && exports[key] === _getFirstDateOfMonth[key]) return;
12
+ Object.defineProperty(exports, key, {
13
+ enumerable: true,
14
+ get: function get() {
15
+ return _getFirstDateOfMonth[key];
16
+ }
17
+ });
18
+ });
19
+
20
+ var _getFirstDateOfWeek = require("./getFirstDateOfWeek");
21
+
22
+ Object.keys(_getFirstDateOfWeek).forEach(function (key) {
23
+ if (key === "default" || key === "__esModule") return;
24
+ if (key in exports && exports[key] === _getFirstDateOfWeek[key]) return;
25
+ Object.defineProperty(exports, key, {
26
+ enumerable: true,
27
+ get: function get() {
28
+ return _getFirstDateOfWeek[key];
29
+ }
30
+ });
31
+ });
32
+
33
+ var _getHeader = require("./getHeader");
34
+
35
+ Object.keys(_getHeader).forEach(function (key) {
36
+ if (key === "default" || key === "__esModule") return;
37
+ if (key in exports && exports[key] === _getHeader[key]) return;
38
+ Object.defineProperty(exports, key, {
39
+ enumerable: true,
40
+ get: function get() {
41
+ return _getHeader[key];
42
+ }
43
+ });
44
+ });
45
+
46
+ var _getToday = require("./getToday");
47
+
48
+ Object.keys(_getToday).forEach(function (key) {
49
+ if (key === "default" || key === "__esModule") return;
50
+ if (key in exports && exports[key] === _getToday[key]) return;
51
+ Object.defineProperty(exports, key, {
52
+ enumerable: true,
53
+ get: function get() {
54
+ return _getToday[key];
55
+ }
56
+ });
57
+ });
58
+
59
+ var _getWeekdays = require("./getWeekdays");
60
+
61
+ Object.keys(_getWeekdays).forEach(function (key) {
62
+ if (key === "default" || key === "__esModule") return;
63
+ if (key in exports && exports[key] === _getWeekdays[key]) return;
64
+ Object.defineProperty(exports, key, {
65
+ enumerable: true,
66
+ get: function get() {
67
+ return _getWeekdays[key];
68
+ }
69
+ });
70
+ });
71
+
72
+ var _getWeekNumber = require("./getWeekNumber");
73
+
74
+ Object.keys(_getWeekNumber).forEach(function (key) {
75
+ if (key === "default" || key === "__esModule") return;
76
+ if (key in exports && exports[key] === _getWeekNumber[key]) return;
77
+ Object.defineProperty(exports, key, {
78
+ enumerable: true,
79
+ get: function get() {
80
+ return _getWeekNumber[key];
81
+ }
82
+ });
83
+ });
84
+
85
+ var _isJest = require("./isJest");
86
+
87
+ Object.keys(_isJest).forEach(function (key) {
88
+ if (key === "default" || key === "__esModule") return;
89
+ if (key in exports && exports[key] === _isJest[key]) return;
90
+ Object.defineProperty(exports, key, {
91
+ enumerable: true,
92
+ get: function get() {
93
+ return _isJest[key];
94
+ }
95
+ });
96
+ });
97
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/components/Calendar/helpers/index.js"],"names":[],"mappings":";;;;;;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA","sourcesContent":["export * from './getFirstDateOfMonth';\nexport * from './getFirstDateOfWeek';\nexport * from './getHeader';\nexport * from './getToday';\nexport * from './getWeekdays';\nexport * from './getWeekNumber';\nexport * from './isJest';\n"],"file":"index.js"}
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.IS_JEST = void 0;
7
+ var IS_JEST = !window && (process && process).env ? process.env.JEST_WORKER_ID !== undefined : false;
8
+ exports.IS_JEST = IS_JEST;
9
+ //# sourceMappingURL=isJest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/components/Calendar/helpers/isJest.js"],"names":["IS_JEST","window","process","env","JEST_WORKER_ID","undefined"],"mappings":";;;;;;AAAO,IAAMA,OAAO,GAAG,CAACC,MAAD,IAAW,CAACC,OAAO,IAAIA,OAAZ,EAAqBC,GAAhC,GAAsCD,OAAO,CAACC,GAAR,CAAYC,cAAZ,KAA+BC,SAArE,GAAiF,KAAjG","sourcesContent":["export const IS_JEST = !window && (process && process).env ? process.env.JEST_WORKER_ID !== undefined : false;\n"],"file":"isJest.js"}
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+
7
+ var _Calendar = require("./Calendar");
8
+
9
+ Object.keys(_Calendar).forEach(function (key) {
10
+ if (key === "default" || key === "__esModule") return;
11
+ if (key in exports && exports[key] === _Calendar[key]) return;
12
+ Object.defineProperty(exports, key, {
13
+ enumerable: true,
14
+ get: function get() {
15
+ return _Calendar[key];
16
+ }
17
+ });
18
+ });
19
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/components/Calendar/index.js"],"names":[],"mappings":";;;;;;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA","sourcesContent":["export * from './Calendar';\n"],"file":"index.js"}
@@ -0,0 +1,184 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+
5
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
6
+
7
+ Object.defineProperty(exports, "__esModule", {
8
+ value: true
9
+ });
10
+ exports.Form = void 0;
11
+
12
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/defineProperty"));
13
+
14
+ var _objectSpread4 = _interopRequireDefault(require("@babel/runtime/helpers/esm/objectSpread2"));
15
+
16
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/slicedToArray"));
17
+
18
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/objectWithoutProperties"));
19
+
20
+ var _react = _interopRequireWildcard(require("react"));
21
+
22
+ var _helpers = require("./helpers");
23
+
24
+ var _excluded = ["children", "debounce", "schema", "showErrors", "validateOnMount", "onBlur", "onChange", "onError", "onFocus", "onSubmit"];
25
+
26
+ var Form = function Form(_ref) {
27
+ var children = _ref.children,
28
+ _ref$debounce = _ref.debounce,
29
+ debounce = _ref$debounce === void 0 ? 0 : _ref$debounce,
30
+ _ref$schema = _ref.schema,
31
+ schema = _ref$schema === void 0 ? {} : _ref$schema,
32
+ showErrors = _ref.showErrors,
33
+ _ref$validateOnMount = _ref.validateOnMount,
34
+ validateOnMount = _ref$validateOnMount === void 0 ? false : _ref$validateOnMount,
35
+ onBlur = _ref.onBlur,
36
+ onChange = _ref.onChange,
37
+ onError = _ref.onError,
38
+ onFocus = _ref.onFocus,
39
+ onSubmit = _ref.onSubmit,
40
+ others = (0, _objectWithoutProperties2.default)(_ref, _excluded);
41
+
42
+ var _useState = (0, _react.useState)({}),
43
+ _useState2 = (0, _slicedToArray2.default)(_useState, 2),
44
+ error = _useState2[0],
45
+ setError = _useState2[1];
46
+
47
+ var _useState3 = (0, _react.useState)({}),
48
+ _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
49
+ initialValue = _useState4[0],
50
+ setInitialValue = _useState4[1];
51
+
52
+ var _useState5 = (0, _react.useState)({}),
53
+ _useState6 = (0, _slicedToArray2.default)(_useState5, 2),
54
+ touched = _useState6[0],
55
+ setTouched = _useState6[1];
56
+
57
+ var _useState7 = (0, _react.useState)({}),
58
+ _useState8 = (0, _slicedToArray2.default)(_useState7, 2),
59
+ values = _useState8[0],
60
+ setValues = _useState8[1];
61
+
62
+ (0, _react.useEffect)(function () {
63
+ var nextValues = (0, _helpers.getChildrenValues)(children);
64
+ var nextChildrenKeys = Object.keys(nextValues).sort();
65
+
66
+ if (JSON.stringify(nextChildrenKeys) !== JSON.stringify(Object.keys(initialValue).sort())) {
67
+ setInitialValue(nextValues);
68
+ setValues(nextValues);
69
+
70
+ if (validateOnMount) {
71
+ var nextError = (0, _helpers.getChildrenErrors)({
72
+ children: children,
73
+ schema: schema,
74
+ values: nextValues
75
+ });
76
+ setError(nextError);
77
+ onError && onError(nextError);
78
+ } else {
79
+ setError({});
80
+ }
81
+
82
+ setTouched({});
83
+ } // eslint-disable-next-line react-hooks/exhaustive-deps
84
+
85
+ }, [children]);
86
+ (0, _react.useEffect)(function () {
87
+ if (!onChange || values === initialValue) return;
88
+ var timer = setTimeout(function () {
89
+ return onChange(values, (0, _helpers.groupState)({
90
+ initialValue: initialValue,
91
+ value: values,
92
+ touched: touched
93
+ }));
94
+ }, debounce);
95
+ return function () {
96
+ return clearTimeout(timer);
97
+ }; // eslint-disable-next-line react-hooks/exhaustive-deps
98
+ }, [values]);
99
+
100
+ var handleChange = function handleChange(field, fieldValue) {
101
+ setValues(function () {
102
+ var nextValues = (0, _objectSpread4.default)((0, _objectSpread4.default)({}, values), {}, (0, _defineProperty2.default)({}, field, fieldValue));
103
+ handleError(nextValues);
104
+ return nextValues;
105
+ });
106
+ };
107
+
108
+ var handleError = function handleError(values) {
109
+ var nextError = (0, _helpers.getChildrenErrors)({
110
+ children: children,
111
+ schema: schema,
112
+ values: values
113
+ });
114
+ var hasError = Object.keys(nextError).length > 0;
115
+ var changed = JSON.stringify(error) !== JSON.stringify(nextError);
116
+
117
+ if (changed) {
118
+ setError(nextError);
119
+ onError && onError(nextError, hasError);
120
+ }
121
+
122
+ return {
123
+ changed: changed,
124
+ errors: nextError,
125
+ hasError: hasError
126
+ };
127
+ };
128
+
129
+ var handleFocus = function handleFocus(field, event) {
130
+ setTouched((0, _objectSpread4.default)((0, _objectSpread4.default)({}, touched), {}, (0, _defineProperty2.default)({}, field, true)));
131
+ if (onFocus) onFocus(field, event);
132
+ };
133
+
134
+ var handleSubmit = function handleSubmit(event) {
135
+ var _handleError = handleError(values),
136
+ errors = _handleError.errors,
137
+ hasError = _handleError.hasError;
138
+
139
+ if (hasError && onError) onError(errors, hasError);else if (onSubmit) onSubmit(values, (0, _helpers.groupState)({
140
+ initialValue: initialValue,
141
+ value: values,
142
+ touched: touched
143
+ }), event);
144
+ event.preventDefault();
145
+ };
146
+
147
+ return (0, _react.useMemo)(function () {
148
+ return /*#__PURE__*/_react.default.createElement("form", {
149
+ "data-testid": others['data-testid'],
150
+ style: others.style,
151
+ onSubmit: handleSubmit
152
+ }, _react.default.Children.map(children, function (child, index) {
153
+ if (!child || child === null) return;
154
+
155
+ var _ref2 = child || {},
156
+ _ref2$props = _ref2.props,
157
+ props = _ref2$props === void 0 ? {} : _ref2$props;
158
+
159
+ var type = props.type;
160
+ var field = (0, _helpers.getField)(props);
161
+ return /*#__PURE__*/_react.default.cloneElement(child, (0, _objectSpread4.default)({
162
+ key: index
163
+ }, field ? (0, _objectSpread4.default)((0, _objectSpread4.default)((0, _objectSpread4.default)({}, props), schema[field]), {}, {
164
+ error: props.error ? props.error : showErrors && error[field],
165
+ onBlur: onBlur ? function (event) {
166
+ return onBlur(field, event);
167
+ } : undefined,
168
+ onChange: function onChange(value) {
169
+ return handleChange(field, value);
170
+ },
171
+ onFocus: function onFocus(event) {
172
+ return handleFocus(field, event);
173
+ }
174
+ }) : type === 'submit' ? (0, _objectSpread4.default)((0, _objectSpread4.default)({}, props), {}, {
175
+ onPress: handleSubmit
176
+ }) : undefined));
177
+ }));
178
+ }, // eslint-disable-next-line react-hooks/exhaustive-deps
179
+ [children, error, others, schema]);
180
+ };
181
+
182
+ exports.Form = Form;
183
+ Form.displayName = 'Component:Form';
184
+ //# sourceMappingURL=Form.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/components/Form/Form.jsx"],"names":["Form","children","debounce","schema","showErrors","validateOnMount","onBlur","onChange","onError","onFocus","onSubmit","others","error","setError","initialValue","setInitialValue","touched","setTouched","values","setValues","nextValues","nextChildrenKeys","Object","keys","sort","JSON","stringify","nextError","timer","setTimeout","value","clearTimeout","handleChange","field","fieldValue","handleError","hasError","length","changed","errors","handleFocus","event","handleSubmit","preventDefault","style","React","Children","map","child","index","props","type","cloneElement","key","undefined","onPress","displayName"],"mappings":"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","sourcesContent":["import PropTypes from 'prop-types';\nimport React, { useEffect, useMemo, useState } from 'react';\n\nimport { getChildrenErrors, getChildrenValues, getField, groupState } from './helpers';\n\nconst Form = ({\n children,\n debounce = 0,\n schema = {},\n showErrors,\n validateOnMount = false,\n onBlur,\n onChange,\n onError,\n onFocus,\n onSubmit,\n ...others\n}) => {\n const [error, setError] = useState({});\n const [initialValue, setInitialValue] = useState({});\n const [touched, setTouched] = useState({});\n const [values, setValues] = useState({});\n\n useEffect(() => {\n const nextValues = getChildrenValues(children);\n const nextChildrenKeys = Object.keys(nextValues).sort();\n\n if (JSON.stringify(nextChildrenKeys) !== JSON.stringify(Object.keys(initialValue).sort())) {\n setInitialValue(nextValues);\n setValues(nextValues);\n\n if (validateOnMount) {\n const nextError = getChildrenErrors({ children, schema, values: nextValues });\n setError(nextError);\n onError && onError(nextError);\n } else {\n setError({});\n }\n setTouched({});\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [children]);\n\n useEffect(() => {\n if (!onChange || values === initialValue) return;\n\n const timer = setTimeout(() => onChange(values, groupState({ initialValue, value: values, touched })), debounce);\n return () => clearTimeout(timer);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [values]);\n\n const handleChange = (field, fieldValue) => {\n setValues(() => {\n const nextValues = { ...values, [field]: fieldValue };\n\n handleError(nextValues);\n\n return nextValues;\n });\n };\n\n const handleError = (values) => {\n const nextError = getChildrenErrors({ children, schema, values });\n const hasError = Object.keys(nextError).length > 0;\n const changed = JSON.stringify(error) !== JSON.stringify(nextError);\n\n if (changed) {\n setError(nextError);\n onError && onError(nextError, hasError);\n }\n\n return { changed, errors: nextError, hasError };\n };\n\n const handleFocus = (field, event) => {\n setTouched({ ...touched, [field]: true });\n if (onFocus) onFocus(field, event);\n };\n\n const handleSubmit = (event) => {\n const { errors, hasError } = handleError(values);\n\n if (hasError && onError) onError(errors, hasError);\n else if (onSubmit) onSubmit(values, groupState({ initialValue, value: values, touched }), event);\n event.preventDefault();\n };\n\n return useMemo(\n () => (\n <form data-testid={others['data-testid']} style={others.style} onSubmit={handleSubmit}>\n {React.Children.map(children, (child, index) => {\n if (!child || child === null) return;\n\n const { props = {} } = child || {};\n const { type } = props;\n const field = getField(props);\n\n return React.cloneElement(child, {\n key: index,\n ...(field\n ? {\n ...props,\n ...schema[field],\n error: props.error ? props.error : showErrors && error[field],\n onBlur: onBlur ? (event) => onBlur(field, event) : undefined,\n onChange: (value) => handleChange(field, value),\n onFocus: (event) => handleFocus(field, event),\n }\n : type === 'submit'\n ? { ...props, onPress: handleSubmit }\n : undefined),\n });\n })}\n </form>\n ),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [children, error, others, schema],\n );\n};\n\nForm.displayName = 'Component:Form';\n\nForm.propTypes = {\n children: PropTypes.node,\n debounce: PropTypes.number,\n schema: PropTypes.shape({}),\n showErrors: PropTypes.bool,\n validateOnMount: PropTypes.bool,\n onBlur: PropTypes.func,\n onChange: PropTypes.func,\n onError: PropTypes.func,\n onFocus: PropTypes.func,\n onSubmit: PropTypes.func,\n};\n\nexport { Form };\n"],"file":"Form.js"}
@@ -0,0 +1,47 @@
1
+ // Jest Snapshot v1, https://goo.gl/fbAQLP
2
+
3
+ exports[`component:<Form> inherit:className 1`] = `
4
+ <DocumentFragment>
5
+ <form />
6
+ </DocumentFragment>
7
+ `;
8
+
9
+ exports[`component:<Form> prop:children 1`] = `
10
+ <DocumentFragment>
11
+ <form>
12
+ <div
13
+ class="view inputText"
14
+ >
15
+ <span
16
+ class="text paragraph text label"
17
+ >
18
+ label
19
+ </span>
20
+ <div
21
+ class="view content"
22
+ >
23
+ <input
24
+ class="input input"
25
+ name="name"
26
+ type="text"
27
+ value=""
28
+ />
29
+ </div>
30
+ </div>
31
+ </form>
32
+ </DocumentFragment>
33
+ `;
34
+
35
+ exports[`component:<Form> renders 1`] = `
36
+ <DocumentFragment>
37
+ <form />
38
+ </DocumentFragment>
39
+ `;
40
+
41
+ exports[`component:<Form> testID 1`] = `
42
+ <DocumentFragment>
43
+ <form
44
+ data-testid="mirai"
45
+ />
46
+ </DocumentFragment>
47
+ `;
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.getChildrenErrors = void 0;
9
+
10
+ var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/objectSpread2"));
11
+
12
+ var _react = _interopRequireDefault(require("react"));
13
+
14
+ var _helpers = require("../../../helpers");
15
+
16
+ var _getField = require("./getField");
17
+
18
+ var getChildrenErrors = function getChildrenErrors() {
19
+ var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
20
+ children = _ref.children,
21
+ _ref$schema = _ref.schema,
22
+ schema = _ref$schema === void 0 ? {} : _ref$schema,
23
+ _ref$values = _ref.values,
24
+ values = _ref$values === void 0 ? {} : _ref$values;
25
+
26
+ var errors = {};
27
+
28
+ _react.default.Children.forEach(children, function () {
29
+ var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
30
+ _ref2$props = _ref2.props,
31
+ props = _ref2$props === void 0 ? {} : _ref2$props;
32
+
33
+ var field = (0, _getField.getField)(props);
34
+
35
+ if (field) {
36
+ var inputErrors = (0, _helpers.getInputErrors)((0, _objectSpread2.default)((0, _objectSpread2.default)((0, _objectSpread2.default)({}, props), schema[field]), {}, {
37
+ value: values[field]
38
+ }));
39
+ if (inputErrors) errors[field] = inputErrors;
40
+ }
41
+ });
42
+
43
+ return errors;
44
+ };
45
+
46
+ exports.getChildrenErrors = getChildrenErrors;
47
+ //# sourceMappingURL=getChildrenErrors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/components/Form/helpers/getChildrenErrors.js"],"names":["getChildrenErrors","children","schema","values","errors","React","Children","forEach","props","field","inputErrors","value"],"mappings":";;;;;;;;;;;AAAA;;AAEA;;AACA;;AAEO,IAAMA,iBAAiB,GAAG,SAApBA,iBAAoB,GAAiD;AAAA,iFAAP,EAAO;AAAA,MAA9CC,QAA8C,QAA9CA,QAA8C;AAAA,yBAApCC,MAAoC;AAAA,MAApCA,MAAoC,4BAA3B,EAA2B;AAAA,yBAAvBC,MAAuB;AAAA,MAAvBA,MAAuB,4BAAd,EAAc;;AAChF,MAAMC,MAAM,GAAG,EAAf;;AAEAC,iBAAMC,QAAN,CAAeC,OAAf,CAAuBN,QAAvB,EAAiC,YAAyB;AAAA,oFAAP,EAAO;AAAA,4BAAtBO,KAAsB;AAAA,QAAtBA,KAAsB,4BAAd,EAAc;;AACxD,QAAMC,KAAK,GAAG,wBAASD,KAAT,CAAd;;AAEA,QAAIC,KAAJ,EAAW;AACT,UAAMC,WAAW,GAAG,qHAAoBF,KAApB,GAA8BN,MAAM,CAACO,KAAD,CAApC;AAA6CE,QAAAA,KAAK,EAAER,MAAM,CAACM,KAAD;AAA1D,SAApB;AACA,UAAIC,WAAJ,EAAiBN,MAAM,CAACK,KAAD,CAAN,GAAgBC,WAAhB;AAClB;AACF,GAPD;;AASA,SAAON,MAAP;AACD,CAbM","sourcesContent":["import React from 'react';\n\nimport { getInputErrors } from '../../../helpers';\nimport { getField } from './getField';\n\nexport const getChildrenErrors = ({ children, schema = {}, values = {} } = {}) => {\n const errors = {};\n\n React.Children.forEach(children, ({ props = {} } = {}) => {\n const field = getField(props);\n\n if (field) {\n const inputErrors = getInputErrors({ ...props, ...schema[field], value: values[field] });\n if (inputErrors) errors[field] = inputErrors;\n }\n });\n\n return errors;\n};\n"],"file":"getChildrenErrors.js"}
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.getChildrenValues = void 0;
9
+
10
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/objectWithoutProperties"));
11
+
12
+ var _react = _interopRequireDefault(require("react"));
13
+
14
+ var _getField = require("./getField");
15
+
16
+ var _excluded = ["checked", "defaultChecked", "defaultValue", "type", "value"];
17
+ var BOOLEAN_TYPES = ['checkbox', 'radio'];
18
+
19
+ var getChildrenValues = function getChildrenValues(children) {
20
+ var values = {};
21
+
22
+ _react.default.Children.forEach(children, function () {
23
+ var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
24
+ _ref$props = _ref.props;
25
+
26
+ _ref$props = _ref$props === void 0 ? {} : _ref$props;
27
+ var _ref$props$checked = _ref$props.checked,
28
+ checked = _ref$props$checked === void 0 ? false : _ref$props$checked,
29
+ _ref$props$defaultChe = _ref$props.defaultChecked,
30
+ defaultChecked = _ref$props$defaultChe === void 0 ? false : _ref$props$defaultChe,
31
+ _ref$props$defaultVal = _ref$props.defaultValue,
32
+ defaultValue = _ref$props$defaultVal === void 0 ? undefined : _ref$props$defaultVal,
33
+ _ref$props$type = _ref$props.type,
34
+ type = _ref$props$type === void 0 ? undefined : _ref$props$type,
35
+ _ref$props$value = _ref$props.value,
36
+ value = _ref$props$value === void 0 ? undefined : _ref$props$value,
37
+ props = (0, _objectWithoutProperties2.default)(_ref$props, _excluded);
38
+ var field = (0, _getField.getField)(props);
39
+ if (field) values[field] = BOOLEAN_TYPES.includes(type) ? checked || defaultChecked : value || defaultValue;
40
+ });
41
+
42
+ return values;
43
+ };
44
+
45
+ exports.getChildrenValues = getChildrenValues;
46
+ //# sourceMappingURL=getChildrenValues.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/components/Form/helpers/getChildrenValues.js"],"names":["BOOLEAN_TYPES","getChildrenValues","children","values","React","Children","forEach","props","checked","defaultChecked","defaultValue","undefined","type","value","field","includes"],"mappings":";;;;;;;;;;;AAAA;;AAEA;;;AAEA,IAAMA,aAAa,GAAG,CAAC,UAAD,EAAa,OAAb,CAAtB;;AAEO,IAAMC,iBAAiB,GAAG,SAApBA,iBAAoB,CAACC,QAAD,EAAc;AAC7C,MAAMC,MAAM,GAAG,EAAf;;AAEAC,iBAAMC,QAAN,CAAeC,OAAf,CACEJ,QADF,EAEE,YASW;AAAA,mFAAP,EAAO;AAAA,0BARTK,KAQS;;AAAA,yCADL,EACK;AAAA,wCAPPC,OAOO;AAAA,QAPPA,OAOO,mCAPG,KAOH;AAAA,2CANPC,cAMO;AAAA,QANPA,cAMO,sCANU,KAMV;AAAA,2CALPC,YAKO;AAAA,QALPA,YAKO,sCALQC,SAKR;AAAA,qCAJPC,IAIO;AAAA,QAJPA,IAIO,gCAJAD,SAIA;AAAA,sCAHPE,KAGO;AAAA,QAHPA,KAGO,iCAHCF,SAGD;AAAA,QAFJJ,KAEI;AACT,QAAMO,KAAK,GAAG,wBAASP,KAAT,CAAd;AACA,QAAIO,KAAJ,EAAWX,MAAM,CAACW,KAAD,CAAN,GAAgBd,aAAa,CAACe,QAAd,CAAuBH,IAAvB,IAA+BJ,OAAO,IAAIC,cAA1C,GAA2DI,KAAK,IAAIH,YAApF;AACZ,GAdH;;AAiBA,SAAOP,MAAP;AACD,CArBM","sourcesContent":["import React from 'react';\n\nimport { getField } from './getField';\n\nconst BOOLEAN_TYPES = ['checkbox', 'radio'];\n\nexport const getChildrenValues = (children) => {\n const values = {};\n\n React.Children.forEach(\n children,\n ({\n props: {\n checked = false,\n defaultChecked = false,\n defaultValue = undefined,\n type = undefined,\n value = undefined,\n ...props\n } = {},\n } = {}) => {\n const field = getField(props);\n if (field) values[field] = BOOLEAN_TYPES.includes(type) ? checked || defaultChecked : value || defaultValue;\n },\n );\n\n return values;\n};\n"],"file":"getChildrenValues.js"}