@wavemaker/react-runtime 11.14.1-16.6404

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 (402) hide show
  1. package/actions/base-action.js +32 -0
  2. package/actions/login-action.js +53 -0
  3. package/actions/logout-action.js +41 -0
  4. package/actions/navigation-action.js +145 -0
  5. package/actions/notification-action.js +147 -0
  6. package/actions/timer-action.js +164 -0
  7. package/actions/toast-provider.js +111 -0
  8. package/actions/toast.js +115 -0
  9. package/actions/toast.service.js +94 -0
  10. package/actions/types/index.js +11 -0
  11. package/components/advanced/carousel/index.js +456 -0
  12. package/components/advanced/carousel/props.js +5 -0
  13. package/components/advanced/carousel/template.js +72 -0
  14. package/components/advanced/login/index.js +307 -0
  15. package/components/advanced/login/props.js +5 -0
  16. package/components/advanced/marquee/index.js +158 -0
  17. package/components/advanced/marquee/props.js +5 -0
  18. package/components/basic/anchor/index.js +239 -0
  19. package/components/basic/anchor/props.js +5 -0
  20. package/components/basic/audio/index.js +61 -0
  21. package/components/basic/html/index.js +158 -0
  22. package/components/basic/icon/index.js +85 -0
  23. package/components/basic/iframe/iframe.utils.js +10 -0
  24. package/components/basic/iframe/index.js +95 -0
  25. package/components/basic/label/index.js +139 -0
  26. package/components/basic/message/index.js +120 -0
  27. package/components/basic/message/props.js +5 -0
  28. package/components/basic/picture/index.js +117 -0
  29. package/components/basic/picture/props.js +5 -0
  30. package/components/basic/progress-bar/index.js +168 -0
  31. package/components/basic/progress-bar/props.js +18 -0
  32. package/components/basic/progress-circle/index.js +196 -0
  33. package/components/basic/progress-circle/props.js +16 -0
  34. package/components/basic/richtexteditor/index.js +533 -0
  35. package/components/basic/richtexteditor/props.js +5 -0
  36. package/components/basic/search/index.js +1023 -0
  37. package/components/basic/search/props.js +5 -0
  38. package/components/basic/search/providers.js +350 -0
  39. package/components/basic/spinner/index.js +202 -0
  40. package/components/basic/spinner/props.js +12 -0
  41. package/components/basic/tile/index.js +91 -0
  42. package/components/basic/tree/Components/TreeNodeComponent.js +142 -0
  43. package/components/basic/tree/index.js +503 -0
  44. package/components/basic/tree/props.js +5 -0
  45. package/components/basic/tree/utils.js +154 -0
  46. package/components/basic/video/index.js +85 -0
  47. package/components/basic/video/props.js +5 -0
  48. package/components/chart/components/barColumnChart/index.js +132 -0
  49. package/components/chart/components/barColumnChart/props.js +5 -0
  50. package/components/chart/components/bubbleChart/index.js +176 -0
  51. package/components/chart/components/bubbleChart/props.js +5 -0
  52. package/components/chart/components/chartLegend/components/ClassicLegendItem.js +39 -0
  53. package/components/chart/components/chartLegend/components/FuriousLegendItem.js +81 -0
  54. package/components/chart/components/chartLegend/index.js +69 -0
  55. package/components/chart/components/chartLegend/props.js +5 -0
  56. package/components/chart/components/chartLegend/utils.js +31 -0
  57. package/components/chart/components/chartTooltip/index.js +53 -0
  58. package/components/chart/components/chartTooltip/styles.js +37 -0
  59. package/components/chart/components/chartTooltip/utils.js +23 -0
  60. package/components/chart/components/cumulativeLineChart/index.js +113 -0
  61. package/components/chart/components/cumulativeLineChart/props.js +5 -0
  62. package/components/chart/components/cumulativeLineChart/utils.js +34 -0
  63. package/components/chart/components/index.js +40 -0
  64. package/components/chart/components/lineAreaChart/index.js +140 -0
  65. package/components/chart/components/lineAreaChart/props.js +5 -0
  66. package/components/chart/components/noDataMessage/index.js +27 -0
  67. package/components/chart/components/pieDonutChart/index.js +171 -0
  68. package/components/chart/components/pieDonutChart/props.js +5 -0
  69. package/components/chart/constant.js +72 -0
  70. package/components/chart/index.js +930 -0
  71. package/components/chart/props.js +5 -0
  72. package/components/chart/utils.js +691 -0
  73. package/components/common/AppSpinner.js +36 -0
  74. package/components/common/app-spinner.js +26 -0
  75. package/components/common/index.js +12 -0
  76. package/components/constants.js +1208 -0
  77. package/components/container/accordion/accordion-pane/index.js +108 -0
  78. package/components/container/accordion/accordion-pane/props.js +11 -0
  79. package/components/container/accordion/index.js +232 -0
  80. package/components/container/accordion/props.js +13 -0
  81. package/components/container/alignment-utils.js +183 -0
  82. package/components/container/index.js +188 -0
  83. package/components/container/layout-grid/grid-column/index.js +34 -0
  84. package/components/container/layout-grid/grid-row/index.js +24 -0
  85. package/components/container/layout-grid/index.js +33 -0
  86. package/components/container/linear-layout/index.js +72 -0
  87. package/components/container/linear-layout/linear-layout-item/index.js +43 -0
  88. package/components/container/panel/components/panel-header/index.js +144 -0
  89. package/components/container/panel/components/panel-header/props.js +5 -0
  90. package/components/container/panel/hooks.js +144 -0
  91. package/components/container/panel/index.js +286 -0
  92. package/components/container/panel/props.js +5 -0
  93. package/components/container/props.js +5 -0
  94. package/components/container/tabs/index.js +379 -0
  95. package/components/container/tabs/props.js +20 -0
  96. package/components/container/tabs/tab-pane/index.js +42 -0
  97. package/components/container/tabs/tab-pane/props.js +5 -0
  98. package/components/container/wizard/WizardContext.js +16 -0
  99. package/components/container/wizard/components/StepComponents.js +100 -0
  100. package/components/container/wizard/components/WizardStep.js +89 -0
  101. package/components/container/wizard/index.js +710 -0
  102. package/components/container/wizard/props.js +5 -0
  103. package/components/container/wizard/utils.js +133 -0
  104. package/components/container/wizard/wizard-action/index.js +22 -0
  105. package/components/container/wizard/wizard-step/index.js +94 -0
  106. package/components/data/card/card-actions/index.js +24 -0
  107. package/components/data/card/card-content/index.js +38 -0
  108. package/components/data/card/card-footer/index.js +24 -0
  109. package/components/data/card/index.js +246 -0
  110. package/components/data/card/props.js +5 -0
  111. package/components/data/form/base-form/constant.js +39 -0
  112. package/components/data/form/base-form/index.js +460 -0
  113. package/components/data/form/base-form/props.js +29 -0
  114. package/components/data/form/base-form/utils.js +42 -0
  115. package/components/data/form/dynamic-fields/index.js +196 -0
  116. package/components/data/form/dynamic-fields/props.js +5 -0
  117. package/components/data/form/dynamic-fields/utils.js +237 -0
  118. package/components/data/form/form-action/index.js +71 -0
  119. package/components/data/form/form-body/index.js +26 -0
  120. package/components/data/form/form-context.js +34 -0
  121. package/components/data/form/form-controller/props.js +19 -0
  122. package/components/data/form/form-controller/validation-contrustor.js +313 -0
  123. package/components/data/form/form-controller/withFormController.js +320 -0
  124. package/components/data/form/form-field/base-field.js +138 -0
  125. package/components/data/form/form-field/index.js +36 -0
  126. package/components/data/form/form-field/props.js +5 -0
  127. package/components/data/form/form-footer/index.js +26 -0
  128. package/components/data/form/form-header/index.js +56 -0
  129. package/components/data/form/index.js +39 -0
  130. package/components/data/form/props.js +5 -0
  131. package/components/data/list/components/GroupHeader.js +35 -0
  132. package/components/data/list/components/GroupedListItems.js +98 -0
  133. package/components/data/list/components/ListContainer.js +27 -0
  134. package/components/data/list/components/ListDND.js +241 -0
  135. package/components/data/list/components/ListHeader.js +59 -0
  136. package/components/data/list/components/ListItem.js +148 -0
  137. package/components/data/list/components/ListItemWithTemplate.js +59 -0
  138. package/components/data/list/components/ListItems.js +231 -0
  139. package/components/data/list/components/ListPagination.js +165 -0
  140. package/components/data/list/components/LoadMoreButton.js +39 -0
  141. package/components/data/list/components/NoDataMessage.js +22 -0
  142. package/components/data/list/components/StandardListItems.js +84 -0
  143. package/components/data/list/components/index.js +119 -0
  144. package/components/data/list/components/props.js +5 -0
  145. package/components/data/list/hooks/index.js +75 -0
  146. package/components/data/list/hooks/props.js +5 -0
  147. package/components/data/list/hooks/useCurrentPageItems.js +48 -0
  148. package/components/data/list/hooks/useGroupedData.js +37 -0
  149. package/components/data/list/hooks/useListData.js +60 -0
  150. package/components/data/list/hooks/useListEffects.js +285 -0
  151. package/components/data/list/hooks/useListEventHandlers.js +291 -0
  152. package/components/data/list/hooks/useListPagination.js +168 -0
  153. package/components/data/list/hooks/useListState.js +98 -0
  154. package/components/data/list/hooks/useListStateManager.js +195 -0
  155. package/components/data/list/hooks/usePaginatedGroupedData.js +121 -0
  156. package/components/data/list/index.js +611 -0
  157. package/components/data/list/props.js +5 -0
  158. package/components/data/list/templates/media-template.js +53 -0
  159. package/components/data/list/utils/constants.js +81 -0
  160. package/components/data/list/utils/list-helpers.js +173 -0
  161. package/components/data/list/utils/list-widget-methods.js +114 -0
  162. package/components/data/live-filter/index.js +279 -0
  163. package/components/data/live-filter/props.js +12 -0
  164. package/components/data/live-form/index.js +93 -0
  165. package/components/data/live-form/props.js +16 -0
  166. package/components/data/pagination/components/BasicPagination.js +77 -0
  167. package/components/data/pagination/components/ClassicPagination.js +191 -0
  168. package/components/data/pagination/components/InlinePagination.js +99 -0
  169. package/components/data/pagination/components/LoadingComponent.js +31 -0
  170. package/components/data/pagination/components/PageSizeSelector.js +175 -0
  171. package/components/data/pagination/components/PagerNavigation.js +105 -0
  172. package/components/data/pagination/components/TotalRecords.js +52 -0
  173. package/components/data/pagination/components/index.js +47 -0
  174. package/components/data/pagination/components/props.js +5 -0
  175. package/components/data/pagination/hooks/index.js +19 -0
  176. package/components/data/pagination/hooks/props.js +5 -0
  177. package/components/data/pagination/hooks/useNavigationSize.js +44 -0
  178. package/components/data/pagination/hooks/usePagination.js +796 -0
  179. package/components/data/pagination/index.js +322 -0
  180. package/components/data/table/components/AddNewRow.js +190 -0
  181. package/components/data/table/components/EditableCell.js +91 -0
  182. package/components/data/table/components/FieldValidationError.js +24 -0
  183. package/components/data/table/components/RowExpansionButton.js +74 -0
  184. package/components/data/table/components/TableBody.js +279 -0
  185. package/components/data/table/components/TableFilters.js +325 -0
  186. package/components/data/table/components/TableFooterActions.js +48 -0
  187. package/components/data/table/components/TableHeader.js +174 -0
  188. package/components/data/table/components/TablePanelHeading.js +68 -0
  189. package/components/data/table/components/index.js +74 -0
  190. package/components/data/table/hooks/index.js +219 -0
  191. package/components/data/table/hooks/useCellState.js +117 -0
  192. package/components/data/table/hooks/useDynamicColumns.js +85 -0
  193. package/components/data/table/hooks/useEditingState.js +47 -0
  194. package/components/data/table/hooks/useFormWidget.js +184 -0
  195. package/components/data/table/hooks/usePaginationState.js +60 -0
  196. package/components/data/table/hooks/usePanelStructure.js +40 -0
  197. package/components/data/table/hooks/useResponsiveColumns.js +34 -0
  198. package/components/data/table/hooks/useRowExpansion.js +110 -0
  199. package/components/data/table/hooks/useRowHandlers.js +38 -0
  200. package/components/data/table/hooks/useRowSelection.js +213 -0
  201. package/components/data/table/hooks/useServerSideSorting.js +165 -0
  202. package/components/data/table/hooks/useTableColumns.js +263 -0
  203. package/components/data/table/hooks/useTableData.js +154 -0
  204. package/components/data/table/hooks/useTableEdit.js +467 -0
  205. package/components/data/table/hooks/useTableEffects.js +139 -0
  206. package/components/data/table/hooks/useTableFilter.js +389 -0
  207. package/components/data/table/hooks/useTableInitialization.js +103 -0
  208. package/components/data/table/hooks/useTableState.js +69 -0
  209. package/components/data/table/hooks/useTableStateManager.js +558 -0
  210. package/components/data/table/index.js +1295 -0
  211. package/components/data/table/live-table/index.js +232 -0
  212. package/components/data/table/props.js +5 -0
  213. package/components/data/table/table-action/index.js +78 -0
  214. package/components/data/table/table-column/index.js +35 -0
  215. package/components/data/table/table-row/index.js +49 -0
  216. package/components/data/table/table-row-action/index.js +74 -0
  217. package/components/data/table/utils/buildSelectionColumns.js +173 -0
  218. package/components/data/table/utils/columnBuilder.js +209 -0
  219. package/components/data/table/utils/columnProxy.js +48 -0
  220. package/components/data/table/utils/columnWidthDistribution.js +98 -0
  221. package/components/data/table/utils/constants.js +80 -0
  222. package/components/data/table/utils/crud-handlers.js +518 -0
  223. package/components/data/table/utils/dynamic-columns.js +118 -0
  224. package/components/data/table/utils/index.js +607 -0
  225. package/components/data/table/utils/renderDisplayCell.js +183 -0
  226. package/components/data/table/utils/selectionUtils.js +166 -0
  227. package/components/data/table/utils/table-helpers.js +100 -0
  228. package/components/data/table/utils/validation.js +124 -0
  229. package/components/data/types.js +113 -0
  230. package/components/data/utils/field-data-utils.js +66 -0
  231. package/components/data/utils/filter-field-util.js +81 -0
  232. package/components/data/utils/index.js +216 -0
  233. package/components/dialogs/alert-dialog/index.js +80 -0
  234. package/components/dialogs/confirm-dialog/index.js +105 -0
  235. package/components/dialogs/dialog/index.js +56 -0
  236. package/components/dialogs/dialog-actions/index.js +18 -0
  237. package/components/dialogs/dialog-body/index.js +21 -0
  238. package/components/dialogs/dialog-content/index.js +30 -0
  239. package/components/dialogs/dialog-header/index.js +93 -0
  240. package/components/dialogs/iframe-dialog/index.js +114 -0
  241. package/components/dialogs/index.js +129 -0
  242. package/components/dialogs/login-dialog/index.js +369 -0
  243. package/components/dialogs/login-dialog/props.js +5 -0
  244. package/components/dialogs/page-dialog/index.js +96 -0
  245. package/components/dialogs/withDialogWrapper.js +108 -0
  246. package/components/form/button/index.js +216 -0
  247. package/components/form/button-group/index.js +60 -0
  248. package/components/input/calendar/index.js +546 -0
  249. package/components/input/calendar/props.js +5 -0
  250. package/components/input/calendar/utils.js +340 -0
  251. package/components/input/chips/SortableChip/index.js +115 -0
  252. package/components/input/chips/SortableChip/props.js +5 -0
  253. package/components/input/chips/index.js +488 -0
  254. package/components/input/chips/props.js +5 -0
  255. package/components/input/chips/utils.js +259 -0
  256. package/components/input/color-picker/index.js +678 -0
  257. package/components/input/color-picker/props.js +5 -0
  258. package/components/input/composite/index.js +137 -0
  259. package/components/input/currency/index.js +263 -0
  260. package/components/input/currency/props.js +5 -0
  261. package/components/input/default/checkbox/index.js +230 -0
  262. package/components/input/default/checkbox/props.js +5 -0
  263. package/components/input/default/checkboxset/index.js +476 -0
  264. package/components/input/default/checkboxset/props.js +5 -0
  265. package/components/input/default/radioset/index.js +379 -0
  266. package/components/input/default/radioset/props.js +5 -0
  267. package/components/input/default/switch/index.js +490 -0
  268. package/components/input/default/switch/prop.js +5 -0
  269. package/components/input/epoch/date/components/DatePickerPopover.js +220 -0
  270. package/components/input/epoch/date/index.js +520 -0
  271. package/components/input/epoch/date/props.js +5 -0
  272. package/components/input/epoch/date/styled.js +70 -0
  273. package/components/input/epoch/date/utils.js +108 -0
  274. package/components/input/epoch/datetime/index.js +656 -0
  275. package/components/input/epoch/datetime/props.js +5 -0
  276. package/components/input/epoch/datetime/styled.js +90 -0
  277. package/components/input/epoch/datetime/utils.js +244 -0
  278. package/components/input/epoch/time/index.js +412 -0
  279. package/components/input/epoch/time/props.js +5 -0
  280. package/components/input/epoch/time/utils.js +209 -0
  281. package/components/input/fileupload/Utils.js +134 -0
  282. package/components/input/fileupload/components/ListItems.js +140 -0
  283. package/components/input/fileupload/components/MultiUpload.js +85 -0
  284. package/components/input/fileupload/components/SingleUpload.js +65 -0
  285. package/components/input/fileupload/index.js +170 -0
  286. package/components/input/fileupload/props.js +5 -0
  287. package/components/input/fileupload/useFileUpload.js +400 -0
  288. package/components/input/number/index.js +295 -0
  289. package/components/input/number/props.js +5 -0
  290. package/components/input/rating/index.js +368 -0
  291. package/components/input/rating/props.js +5 -0
  292. package/components/input/select/index.js +344 -0
  293. package/components/input/select/props.js +5 -0
  294. package/components/input/slider/index.js +167 -0
  295. package/components/input/slider/props.js +5 -0
  296. package/components/input/text/index.js +434 -0
  297. package/components/input/text/props.js +5 -0
  298. package/components/input/text/util.js +179 -0
  299. package/components/input/textarea/index.js +347 -0
  300. package/components/input/textarea/props.js +5 -0
  301. package/components/layout/footer/index.js +30 -0
  302. package/components/layout/header/index.js +30 -0
  303. package/components/layout/leftnav/index.js +44 -0
  304. package/components/layout/rightnav/index.js +32 -0
  305. package/components/layout/topnav/index.js +34 -0
  306. package/components/navbar/index.js +41 -0
  307. package/components/navbar/nav/index.js +102 -0
  308. package/components/navbar/nav/props.js +5 -0
  309. package/components/navbar/nav-item/index.js +44 -0
  310. package/components/navigation/breadcrumb/index.js +56 -0
  311. package/components/navigation/breadcrumb/props.js +5 -0
  312. package/components/navigation/menu/components/ListItems.js +66 -0
  313. package/components/navigation/menu/constants.js +101 -0
  314. package/components/navigation/menu/index.js +807 -0
  315. package/components/navigation/menu/props.js +5 -0
  316. package/components/navigation/popover/index.js +209 -0
  317. package/components/navigation/popover/props.js +15 -0
  318. package/components/page/content/index.js +28 -0
  319. package/components/page/error-boundary/index.js +108 -0
  320. package/components/page/index.js +137 -0
  321. package/components/page/page-content/index.js +23 -0
  322. package/components/page/partial/index.js +36 -0
  323. package/components/page/partial-container/index.js +48 -0
  324. package/components/page/props.js +5 -0
  325. package/components/page/toast-container/index.js +33 -0
  326. package/components/prefab/container/index.js +46 -0
  327. package/components/prefab/index.js +67 -0
  328. package/context/AppContext.js +25 -0
  329. package/context/AppSpinnerProvider.js +43 -0
  330. package/context/LocalizationProvider.js +79 -0
  331. package/context/PrefabContext.js +66 -0
  332. package/context/WidgetProvider.js +187 -0
  333. package/core/app-config.js +1 -0
  334. package/core/app.service.js +357 -0
  335. package/core/appVariablesStore.js +20 -0
  336. package/core/appstore.js +88 -0
  337. package/core/constants/currency-constant.js +1071 -0
  338. package/core/constants/events.js +34 -0
  339. package/core/constants/index.js +27 -0
  340. package/core/dialog.service.js +76 -0
  341. package/core/event-notifier.js +151 -0
  342. package/core/formatter/date-formatters.js +222 -0
  343. package/core/formatter/index.js +131 -0
  344. package/core/formatter/number-formatters.js +142 -0
  345. package/core/formatter/security-formatters.js +323 -0
  346. package/core/formatter/string-formatters.js +52 -0
  347. package/core/formatter/types.js +18 -0
  348. package/core/formatters.js +24 -0
  349. package/core/proxy-service.js +412 -0
  350. package/core/script-registry.js +63 -0
  351. package/core/security.service.js +11 -0
  352. package/core/util/common.js +33 -0
  353. package/core/util/dom.js +107 -0
  354. package/core/util/index.js +136 -0
  355. package/core/util/security.js +184 -0
  356. package/core/util/utils.js +189 -0
  357. package/core/widget-observer.js +98 -0
  358. package/higherOrder/BaseApp.js +430 -0
  359. package/higherOrder/BaseAppProps.js +5 -0
  360. package/higherOrder/BaseDateTime.js +251 -0
  361. package/higherOrder/BasePage.js +715 -0
  362. package/higherOrder/BasePartial.js +124 -0
  363. package/higherOrder/BasePrefab.js +145 -0
  364. package/higherOrder/DataNav.js +377 -0
  365. package/higherOrder/helper.js +43 -0
  366. package/higherOrder/props.js +5 -0
  367. package/higherOrder/withBaseWrapper.js +183 -0
  368. package/hooks/useAccess.js +308 -0
  369. package/hooks/useAppConfig.js +42 -0
  370. package/hooks/useAuth.js +562 -0
  371. package/hooks/useDataSourceSubscription.js +125 -0
  372. package/hooks/useDebounce.js +76 -0
  373. package/hooks/useDeviceVisibility.js +49 -0
  374. package/hooks/useHttp.js +338 -0
  375. package/libs/index.js +20 -0
  376. package/mui-config/theme-provider.js +17 -0
  377. package/mui-config/theme.js +371 -0
  378. package/package-lock.json +10177 -0
  379. package/package.json +95 -0
  380. package/store/index.js +33 -0
  381. package/store/middleware/navigationMiddleware.js +48 -0
  382. package/store/slices/appConfigSlice.js +103 -0
  383. package/store/slices/authSlice.js +508 -0
  384. package/store/slices/i18nSlice.js +206 -0
  385. package/types/index.js +15 -0
  386. package/utils/dataset-util.js +174 -0
  387. package/utils/eval-expression.js +32 -0
  388. package/utils/form-state.util.js +140 -0
  389. package/utils/form-utils.js +187 -0
  390. package/utils/format-util.js +260 -0
  391. package/utils/page-params-util.js +24 -0
  392. package/utils/resource-url.js +27 -0
  393. package/utils/state-persistance.js +343 -0
  394. package/utils/style-utils.js +73 -0
  395. package/utils/transformedDataset-utils.js +633 -0
  396. package/utils/widget-cleanup-util.js +84 -0
  397. package/utils/widgets.js +99 -0
  398. package/variables/base-variable.js +173 -0
  399. package/variables/constants.js +27 -0
  400. package/variables/live-variable.js +166 -0
  401. package/variables/model-variable.js +77 -0
  402. package/variables/service-variable.js +307 -0
@@ -0,0 +1,520 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _typeof = require("@babel/runtime/helpers/typeof");
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports["default"] = void 0;
9
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
10
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
11
+ var _react = _interopRequireWildcard(require("react"));
12
+ var _momentTimezone = _interopRequireDefault(require("moment-timezone"));
13
+ var _material = require("@mui/material");
14
+ var _BaseDateTime = _interopRequireDefault(require("@wavemaker/react-runtime/higherOrder/BaseDateTime"));
15
+ var _utils = require("./utils");
16
+ var _DatePickerPopover = _interopRequireDefault(require("./components/DatePickerPopover"));
17
+ var _store = require("@wavemaker/react-runtime/store");
18
+ var _withFormController = _interopRequireDefault(require("@wavemaker/react-runtime/components/data/form/form-controller/withFormController"));
19
+ var _excluded = ["name", "hint", "shortcutkey", "datavalue", "width", "arialabel", "invokeOnChange", "handleKeyDown", "getDateObj", "updatePrevDatavalue", "updateBoundVariable", "onChange", "onClick", "onFocus", "onBlur", "onMouseEnter", "onMouseLeave", "onBeforeload", "placeholder", "tabindex", "datepattern", "outputformat", "required", "excludedays", "excludedates", "showweeks", "showbuttonbar", "autofocus", "readonly", "disabled", "showdropdownon", "adaptiveposition", "selectfromothermonth", "todaybutton", "clearbutton", "todaybuttonlabel", "clearbuttonlabel", "showcustompicker", "showdateformatasplaceholder", "viewmode", "dataentrymode", "listener", "className", "styles"];
20
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t2 in e) "default" !== _t2 && {}.hasOwnProperty.call(e, _t2) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t2)) && (i.get || i.set) ? o(f, _t2, i) : f[_t2] = e[_t2]); return f; })(e, t); }
21
+ var __jsx = _react["default"].createElement;
22
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
23
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
24
+ // Types
25
+
26
+ // Custom Hooks
27
+ var useDateValidation = function useDateValidation(excludedDays, excludedDates, mindate, maxdate, getDateObj) {
28
+ return (0, _react.useCallback)(function (date) {
29
+ if (!(date !== null && date !== void 0 && date.isValid())) return true;
30
+
31
+ // Check excluded days
32
+ if (excludedDays.includes(date.day())) return true;
33
+
34
+ // Check excluded dates
35
+ var dateFormatted = date.format("YYYY-MM-DD");
36
+ var isExcluded = excludedDates.some(function (excludedDate) {
37
+ return excludedDate && (0, _momentTimezone["default"])(excludedDate).format("YYYY-MM-DD") === dateFormatted;
38
+ });
39
+ if (isExcluded) return true;
40
+
41
+ // Check date range
42
+ var minDateObj = mindate ? (0, _momentTimezone["default"])(getDateObj === null || getDateObj === void 0 ? void 0 : getDateObj(mindate)) : null;
43
+ var maxDateObj = maxdate ? (0, _momentTimezone["default"])(getDateObj === null || getDateObj === void 0 ? void 0 : getDateObj(maxdate)) : null;
44
+ if (minDateObj !== null && minDateObj !== void 0 && minDateObj.isValid() && date.isBefore(minDateObj, "day")) return true;
45
+ if (maxDateObj !== null && maxDateObj !== void 0 && maxDateObj.isValid() && date.isAfter(maxDateObj, "day")) return true;
46
+ return false;
47
+ }, [excludedDays, excludedDates, mindate, maxdate, getDateObj]);
48
+ };
49
+
50
+ // Main Component
51
+ var WmDate = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
52
+ // Merge props with defaults
53
+ var _props = _objectSpread({}, props),
54
+ name = _props.name,
55
+ hint = _props.hint,
56
+ shortcutkey = _props.shortcutkey,
57
+ datavalue = _props.datavalue,
58
+ width = _props.width,
59
+ arialabel = _props.arialabel,
60
+ invokeOnChange = _props.invokeOnChange,
61
+ handleKeyDown = _props.handleKeyDown,
62
+ _props$getDateObj = _props.getDateObj,
63
+ getDateObj = _props$getDateObj === void 0 ? _utils.defaultGetDateObj : _props$getDateObj,
64
+ updatePrevDatavalue = _props.updatePrevDatavalue,
65
+ updateBoundVariable = _props.updateBoundVariable,
66
+ onChange = _props.onChange,
67
+ onClick = _props.onClick,
68
+ _onFocus = _props.onFocus,
69
+ _onBlur = _props.onBlur,
70
+ _onMouseEnter = _props.onMouseEnter,
71
+ _onMouseLeave = _props.onMouseLeave,
72
+ onBeforeload = _props.onBeforeload,
73
+ _props$placeholder = _props.placeholder,
74
+ placeholder = _props$placeholder === void 0 ? "Select Date" : _props$placeholder,
75
+ _props$tabindex = _props.tabindex,
76
+ tabindex = _props$tabindex === void 0 ? 0 : _props$tabindex,
77
+ _props$datepattern = _props.datepattern,
78
+ datepattern = _props$datepattern === void 0 ? (0, _store.useAppSelector)(function (state) {
79
+ return state.i18n.dateFormat || "MMM d, y";
80
+ }) : _props$datepattern,
81
+ _props$outputformat = _props.outputformat,
82
+ outputformat = _props$outputformat === void 0 ? "yyyy-MM-dd" : _props$outputformat,
83
+ _props$required = _props.required,
84
+ required = _props$required === void 0 ? false : _props$required,
85
+ _props$excludedays = _props.excludedays,
86
+ excludedays = _props$excludedays === void 0 ? "" : _props$excludedays,
87
+ _props$excludedates = _props.excludedates,
88
+ excludedates = _props$excludedates === void 0 ? "" : _props$excludedates,
89
+ _props$showweeks = _props.showweeks,
90
+ showweeks = _props$showweeks === void 0 ? false : _props$showweeks,
91
+ _props$showbuttonbar = _props.showbuttonbar,
92
+ showbuttonbar = _props$showbuttonbar === void 0 ? true : _props$showbuttonbar,
93
+ _props$autofocus = _props.autofocus,
94
+ autofocus = _props$autofocus === void 0 ? false : _props$autofocus,
95
+ _props$readonly = _props.readonly,
96
+ readonly = _props$readonly === void 0 ? false : _props$readonly,
97
+ _props$disabled = _props.disabled,
98
+ disabled = _props$disabled === void 0 ? false : _props$disabled,
99
+ _props$showdropdownon = _props.showdropdownon,
100
+ showdropdownon = _props$showdropdownon === void 0 ? "default" : _props$showdropdownon,
101
+ _props$adaptivepositi = _props.adaptiveposition,
102
+ adaptiveposition = _props$adaptivepositi === void 0 ? true : _props$adaptivepositi,
103
+ _props$selectfromothe = _props.selectfromothermonth,
104
+ selectfromothermonth = _props$selectfromothe === void 0 ? true : _props$selectfromothe,
105
+ _props$todaybutton = _props.todaybutton,
106
+ todaybutton = _props$todaybutton === void 0 ? true : _props$todaybutton,
107
+ _props$clearbutton = _props.clearbutton,
108
+ clearbutton = _props$clearbutton === void 0 ? true : _props$clearbutton,
109
+ _props$todaybuttonlab = _props.todaybuttonlabel,
110
+ todaybuttonlabel = _props$todaybuttonlab === void 0 ? "Today" : _props$todaybuttonlab,
111
+ _props$clearbuttonlab = _props.clearbuttonlabel,
112
+ clearbuttonlabel = _props$clearbuttonlab === void 0 ? "Clear" : _props$clearbuttonlab,
113
+ _props$showcustompick = _props.showcustompicker,
114
+ showcustompicker = _props$showcustompick === void 0 ? false : _props$showcustompick,
115
+ _props$showdateformat = _props.showdateformatasplaceholder,
116
+ showdateformatasplaceholder = _props$showdateformat === void 0 ? false : _props$showdateformat,
117
+ _props$viewmode = _props.viewmode,
118
+ viewmode = _props$viewmode === void 0 ? "day" : _props$viewmode,
119
+ _props$dataentrymode = _props.dataentrymode,
120
+ dataentrymode = _props$dataentrymode === void 0 ? "default" : _props$dataentrymode,
121
+ listener = _props.listener,
122
+ className = _props.className,
123
+ styles = _props.styles,
124
+ restProps = (0, _objectWithoutProperties2["default"])(_props, _excluded);
125
+ var currentLocale = (0, _store.useAppSelector)(function (state) {
126
+ return state.i18n.selectedLocale;
127
+ });
128
+ // State
129
+ var _useState = (0, _react.useState)(false),
130
+ showPicker = _useState[0],
131
+ setShowPicker = _useState[1];
132
+ var _useState2 = (0, _react.useState)(""),
133
+ inputValue = _useState2[0],
134
+ setInputValue = _useState2[1];
135
+ var _useState3 = (0, _react.useState)(null),
136
+ anchorEl = _useState3[0],
137
+ setAnchorEl = _useState3[1];
138
+ var _useState4 = (0, _react.useState)(false),
139
+ invalidDateTimeFormat = _useState4[0],
140
+ setInvalidDateTimeFormat = _useState4[1];
141
+ var _useState5 = (0, _react.useState)(false),
142
+ dateNotInRange = _useState5[0],
143
+ setDateNotInRange = _useState5[1];
144
+ var _useState6 = (0, _react.useState)(viewmode),
145
+ calendarViewMode = _useState6[0],
146
+ setCalendarViewMode = _useState6[1];
147
+ var _useState7 = (0, _react.useState)((0, _momentTimezone["default"])()),
148
+ calendarDate = _useState7[0],
149
+ setCalendarDate = _useState7[1];
150
+ var _useState8 = (0, _react.useState)(null),
151
+ selectedDate = _useState8[0],
152
+ setSelectedDate = _useState8[1];
153
+
154
+ // Refs
155
+ var datepickerRef = (0, _react.useRef)(null);
156
+ var inputRef = (0, _react.useRef)(null);
157
+ var onBeforeloadExecutedRef = (0, _react.useRef)(false);
158
+
159
+ // Memoized values
160
+ var excludedDaysToDisable = (0, _react.useMemo)(function () {
161
+ return (0, _utils.parseExcludedDays)(excludedays);
162
+ }, [excludedays]);
163
+ var excludedDatesToDisable = (0, _react.useMemo)(function () {
164
+ return (0, _utils.parseExcludedDates)(excludedates, getDateObj);
165
+ }, [excludedates, getDateObj]);
166
+ var dateValue = (0, _react.useMemo)(function () {
167
+ return getDateObj(datavalue);
168
+ }, [datavalue, getDateObj]);
169
+ var isDateDisabled = useDateValidation(excludedDaysToDisable, excludedDatesToDisable, restProps.mindate, restProps.maxdate, getDateObj);
170
+ var isNavigationDisabled = (0, _react.useMemo)(function () {
171
+ if (!restProps.mindate || !restProps.maxdate) return false;
172
+ var minMoment = (0, _momentTimezone["default"])(getDateObj(restProps.mindate));
173
+ var maxMoment = (0, _momentTimezone["default"])(getDateObj(restProps.maxdate));
174
+ return minMoment.isValid() && maxMoment.isValid() && minMoment.isSame(maxMoment, "day");
175
+ }, [restProps.mindate, restProps.maxdate, getDateObj]);
176
+ var shouldOpenOnInput = showdropdownon === "default" || dataentrymode === "picker" && showdropdownon !== "button";
177
+
178
+ // Computed values
179
+ var getDisplayValue = (0, _react.useCallback)(function () {
180
+ if (!dateValue) return "";
181
+ try {
182
+ // Use moment with current locale for proper localization
183
+ var momentDate = (0, _momentTimezone["default"])(dateValue).locale(currentLocale);
184
+ var momentPattern = (0, _utils.convertToMomentFormat)(datepattern);
185
+ return momentDate.format(momentPattern);
186
+ } catch (_unused) {
187
+ return "";
188
+ }
189
+ }, [dateValue, datepattern, currentLocale]);
190
+ var getPlaceholderText = (0, _react.useCallback)(function () {
191
+ return showdateformatasplaceholder ? datepattern.toUpperCase() : placeholder;
192
+ }, [showdateformatasplaceholder, datepattern, placeholder]);
193
+
194
+ // Effects
195
+ (0, _react.useEffect)(function () {
196
+ var displayValue = getDisplayValue();
197
+ setInputValue(displayValue);
198
+ if (dateValue) {
199
+ var momentDateValue = (0, _momentTimezone["default"])(dateValue);
200
+ setSelectedDate(momentDateValue);
201
+ setCalendarDate(momentDateValue);
202
+ if (listener !== null && listener !== void 0 && listener.onChange) {
203
+ listener.onChange(name, _objectSpread(_objectSpread({}, props), {}, {
204
+ displayValue: displayValue,
205
+ datavalue: (0, _utils.formatDate)(momentDateValue.toDate(), outputformat),
206
+ timestamp: (0, _utils.formatDate)(momentDateValue.toDate(), "timestamp")
207
+ }));
208
+ }
209
+ } else {
210
+ setSelectedDate(null);
211
+ setCalendarDate((0, _momentTimezone["default"])());
212
+ }
213
+ }, [dateValue, getDisplayValue, datavalue]);
214
+ (0, _react.useEffect)(function () {
215
+ if (autofocus && inputRef.current) {
216
+ var timer = setTimeout(function () {
217
+ var _inputRef$current;
218
+ return (_inputRef$current = inputRef.current) === null || _inputRef$current === void 0 ? void 0 : _inputRef$current.focus();
219
+ }, 0);
220
+ return function () {
221
+ return clearTimeout(timer);
222
+ };
223
+ }
224
+ }, [autofocus]);
225
+ (0, _react.useEffect)(function () {
226
+ setCalendarViewMode(viewmode);
227
+ }, [viewmode]);
228
+
229
+ // Update input value when locale changes
230
+ (0, _react.useEffect)(function () {
231
+ if (dateValue) {
232
+ var newDisplayValue = getDisplayValue();
233
+ setInputValue(newDisplayValue);
234
+
235
+ // Update listener widget display value if it exists
236
+ if (name && listener !== null && listener !== void 0 && listener.Widgets[name]) {
237
+ listener.Widgets[name].displayValue = newDisplayValue;
238
+ }
239
+ }
240
+ }, [currentLocale, getDisplayValue, dateValue, name, listener]);
241
+
242
+ // Call onBeforeload callback on component mount
243
+ (0, _react.useEffect)(function () {
244
+ var _props$listener;
245
+ if (onBeforeload && name && (_props$listener = props.listener) !== null && _props$listener !== void 0 && (_props$listener = _props$listener.Widgets) !== null && _props$listener !== void 0 && _props$listener[name] && !onBeforeloadExecutedRef.current) {
246
+ var _props$listener2;
247
+ var syntheticEvent = {};
248
+ onBeforeload(syntheticEvent, (_props$listener2 = props.listener) === null || _props$listener2 === void 0 || (_props$listener2 = _props$listener2.Widgets) === null || _props$listener2 === void 0 ? void 0 : _props$listener2[name]);
249
+ onBeforeloadExecutedRef.current = true;
250
+ }
251
+ }, [onBeforeload, name, props.listener]);
252
+
253
+ // Event Handlers
254
+ var handleOpen = (0, _react.useCallback)(function (event) {
255
+ if (disabled || readonly) return;
256
+ setAnchorEl(event.currentTarget);
257
+ setShowPicker(true);
258
+ var targetDate = selectedDate !== null && selectedDate !== void 0 && selectedDate.isValid() ? selectedDate : dateValue ? (0, _momentTimezone["default"])(dateValue) : (0, _momentTimezone["default"])();
259
+ setCalendarDate(targetDate);
260
+ if (dateValue && !selectedDate) {
261
+ setSelectedDate((0, _momentTimezone["default"])(dateValue));
262
+ }
263
+ setCalendarViewMode(viewmode === "month" ? "month" : viewmode);
264
+ }, [disabled, readonly, selectedDate, dateValue, viewmode]);
265
+ var clearDateValue = function clearDateValue(invokeOnChange, updatePrevDatavalue, updateBoundVariable, setInputValue, setSelectedDate, setInvalidDateTimeFormat, setDateNotInRange) {
266
+ invokeOnChange === null || invokeOnChange === void 0 || invokeOnChange("");
267
+ updatePrevDatavalue === null || updatePrevDatavalue === void 0 || updatePrevDatavalue("");
268
+ updateBoundVariable === null || updateBoundVariable === void 0 || updateBoundVariable("");
269
+ setInputValue === null || setInputValue === void 0 || setInputValue("");
270
+ setSelectedDate === null || setSelectedDate === void 0 || setSelectedDate(null);
271
+ setInvalidDateTimeFormat === null || setInvalidDateTimeFormat === void 0 || setInvalidDateTimeFormat(false);
272
+ setDateNotInRange === null || setDateNotInRange === void 0 || setDateNotInRange(false);
273
+ };
274
+ var handleDateSelection = function handleDateSelection(date) {
275
+ var shouldClose = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
276
+ setDateNotInRange(false);
277
+ setInvalidDateTimeFormat(false);
278
+ setSelectedDate(date.clone());
279
+ updateDateValue(date);
280
+ setCalendarDate(date);
281
+ if (shouldClose) {
282
+ handleClose();
283
+ }
284
+ };
285
+ var handleValidationError = function handleValidationError(errorType) {
286
+ var isRequired = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
287
+ if (errorType === "dateNotInRange") {
288
+ setDateNotInRange(true);
289
+ } else if (errorType === "invalidFormat" && isRequired) {
290
+ setInvalidDateTimeFormat(true);
291
+ }
292
+ };
293
+ var handleClose = (0, _react.useCallback)(function () {
294
+ setAnchorEl(null);
295
+ setShowPicker(false);
296
+ setTimeout(function () {
297
+ if (inputRef.current && !disabled && !readonly) {
298
+ inputRef.current.focus();
299
+ }
300
+ }, 0);
301
+ }, [disabled, readonly]);
302
+ var updateDateValue = (0, _react.useCallback)(function (date) {
303
+ var outputValue = (0, _utils.formatDate)(date.toDate(), outputformat);
304
+ // Use locale-aware formatting for display value
305
+ var displayValue = (0, _momentTimezone["default"])(date.toDate()).locale(currentLocale).format((0, _utils.convertToMomentFormat)(datepattern));
306
+ invokeOnChange === null || invokeOnChange === void 0 || invokeOnChange(outputValue);
307
+ updatePrevDatavalue === null || updatePrevDatavalue === void 0 || updatePrevDatavalue(outputValue);
308
+ updateBoundVariable === null || updateBoundVariable === void 0 || updateBoundVariable(outputValue);
309
+ setInputValue(displayValue);
310
+ var oldValue = inputValue;
311
+ if (name && listener !== null && listener !== void 0 && listener.Widgets[name]) {
312
+ listener.Widgets[name].displayValue = displayValue;
313
+ }
314
+ if (listener !== null && listener !== void 0 && listener.onChange) {
315
+ listener.onChange(name, _objectSpread(_objectSpread({}, props), {}, {
316
+ datavalue: outputValue,
317
+ timestamp: (0, _utils.formatDate)(date.toDate(), "timestamp")
318
+ }));
319
+ }
320
+ if (onChange && name && listener !== null && listener !== void 0 && listener.Widgets[name]) {
321
+ onChange({}, name && (listener === null || listener === void 0 ? void 0 : listener.Widgets[name]), outputValue, oldValue);
322
+ }
323
+ }, [outputformat, datepattern, currentLocale, invokeOnChange, updatePrevDatavalue, updateBoundVariable, inputValue]);
324
+ var handleCalendarChange = (0, _react.useCallback)(function (date) {
325
+ if (!(date !== null && date !== void 0 && date.isValid())) return;
326
+ setCalendarDate(date);
327
+ var isMonthOrYearView = viewmode === "month" || viewmode === "year";
328
+ if (!isMonthOrYearView && isDateDisabled(date)) {
329
+ handleValidationError("dateNotInRange");
330
+ return;
331
+ }
332
+ handleDateSelection(date, true);
333
+ }, [viewmode, isDateDisabled, handleDateSelection]);
334
+ var handleMonthChange = (0, _react.useCallback)(function (value) {
335
+ if (!(value !== null && value !== void 0 && value.isValid())) return;
336
+ if (viewmode === "month") {
337
+ handleCalendarChange(value);
338
+ } else {
339
+ var newDate = calendarDate.clone().month(value.month()).year(value.year());
340
+ setCalendarDate(newDate);
341
+ setCalendarViewMode("day");
342
+ }
343
+ }, [viewmode, calendarDate, handleCalendarChange]);
344
+ var handleYearChange = (0, _react.useCallback)(function (value) {
345
+ if (!(value !== null && value !== void 0 && value.isValid())) return;
346
+ if (viewmode === "year") {
347
+ handleCalendarChange(value);
348
+ } else if (viewmode === "month") {
349
+ var newDate = calendarDate.clone().year(value.year());
350
+ setCalendarDate(newDate);
351
+ setCalendarViewMode("month");
352
+ } else {
353
+ var _newDate = calendarDate.clone().year(value.year());
354
+ setCalendarDate(_newDate);
355
+ setCalendarViewMode("month");
356
+ }
357
+ }, [viewmode, calendarDate, handleCalendarChange]);
358
+ var handleInputChange = (0, _react.useCallback)(function (event) {
359
+ if (dataentrymode === "picker") return;
360
+ var value = event.target.value;
361
+ setInputValue(value);
362
+ if (!value) {
363
+ clearDateValue(invokeOnChange, updatePrevDatavalue, updateBoundVariable, undefined, setSelectedDate, setInvalidDateTimeFormat, setDateNotInRange);
364
+ return;
365
+ }
366
+ var parsedDate = datepattern === "timestamp" ? (0, _momentTimezone["default"])(parseInt(value, 10)) : (0, _momentTimezone["default"])(value, (0, _utils.convertToMomentFormat)(datepattern), true);
367
+ if (!parsedDate.isValid()) {
368
+ handleValidationError("invalidFormat", props.required);
369
+ return;
370
+ }
371
+ if (isDateDisabled(parsedDate)) {
372
+ handleValidationError("dateNotInRange");
373
+ return;
374
+ }
375
+ handleDateSelection(parsedDate, false);
376
+ }, [dataentrymode, datepattern, isDateDisabled, invokeOnChange, updatePrevDatavalue, updateBoundVariable, inputValue]);
377
+ var handleInputKeyDown = (0, _react.useCallback)(function (event) {
378
+ var allowedKeys = ["Tab", "Escape", "Enter", "ArrowUp", "ArrowDown", "ArrowLeft", "ArrowRight"];
379
+ if (dataentrymode === "picker" && !allowedKeys.includes(event.key)) {
380
+ event.preventDefault();
381
+ return;
382
+ }
383
+ handleKeyDown === null || handleKeyDown === void 0 || handleKeyDown(event);
384
+ switch (event.key) {
385
+ case "Enter":
386
+ event.preventDefault();
387
+ if (!inputValue) {
388
+ clearDateValue(invokeOnChange, updatePrevDatavalue, updateBoundVariable, undefined, setSelectedDate, undefined, undefined);
389
+ return;
390
+ }
391
+ var parsedDate = (0, _momentTimezone["default"])(inputValue, datepattern, true);
392
+ if (parsedDate.isValid()) {
393
+ handleCalendarChange(parsedDate);
394
+ } else {
395
+ handleValidationError("invalidFormat", props.required);
396
+ }
397
+ break;
398
+ case "Escape":
399
+ handleClose();
400
+ break;
401
+ case "Tab":
402
+ if (showPicker) handleClose();
403
+ break;
404
+ }
405
+ }, [dataentrymode, datepattern, inputValue, showPicker, handleKeyDown, handleCalendarChange, handleClose, invokeOnChange, updatePrevDatavalue, updateBoundVariable]);
406
+ var handleTodayClick = (0, _react.useCallback)(function () {
407
+ handleCalendarChange((0, _momentTimezone["default"])());
408
+ }, [handleCalendarChange]);
409
+ var handleClearClick = (0, _react.useCallback)(function () {
410
+ clearDateValue(invokeOnChange, updatePrevDatavalue, updateBoundVariable, setInputValue, setSelectedDate, undefined, undefined);
411
+ handleClose();
412
+ }, [invokeOnChange, updatePrevDatavalue, updateBoundVariable, handleClose]);
413
+ var handleIconButtonClick = (0, _react.useCallback)(function (event) {
414
+ if (!disabled && !readonly) {
415
+ handleOpen(event);
416
+ }
417
+ }, [disabled, readonly, handleOpen]);
418
+ var handleInputClick = (0, _react.useCallback)(function (event) {
419
+ if (onClick && name) {
420
+ onClick(event, listener === null || listener === void 0 ? void 0 : listener.Widgets[name]);
421
+ }
422
+ if (shouldOpenOnInput && !readonly && !disabled) {
423
+ handleIconButtonClick(event);
424
+ }
425
+ }, [shouldOpenOnInput, readonly, disabled, handleIconButtonClick]);
426
+
427
+ // Render
428
+ return __jsx(_material.Box, {
429
+ className: "ng-pristine ng-valid app-date input-group ng-touched",
430
+ ref: datepickerRef,
431
+ style: (0, _utils.getWidthStyle)(width),
432
+ title: hint
433
+ }, __jsx(_material.TextField, {
434
+ inputRef: inputRef,
435
+ fullWidth: true,
436
+ placeholder: getPlaceholderText(),
437
+ disabled: disabled || readonly,
438
+ "aria-readonly": readonly,
439
+ error: invalidDateTimeFormat || dateNotInRange,
440
+ helperText: invalidDateTimeFormat ? "Invalid date format" : dateNotInRange ? "Date not in valid range" : "",
441
+ slotProps: {
442
+ htmlInput: {
443
+ "aria-label": arialabel || "Date input ".concat(getPlaceholderText()),
444
+ tabIndex: tabindex,
445
+ accessKey: shortcutkey,
446
+ "aria-invalid": invalidDateTimeFormat || dateNotInRange,
447
+ readOnly: readonly || dataentrymode === "picker",
448
+ required: required,
449
+ autoFocus: autofocus,
450
+ name: name,
451
+ className: "form-control app-textbox app-dateinput display-input ".concat(className),
452
+ style: _objectSpread(_objectSpread({
453
+ cursor: dataentrymode === "picker" ? "pointer" : "text"
454
+ }, (0, _utils.getWidthStyle)(width)), styles),
455
+ onMouseEnter: function onMouseEnter(event) {
456
+ return _onMouseEnter && name && _onMouseEnter(event, listener === null || listener === void 0 ? void 0 : listener.Widgets[name]);
457
+ },
458
+ onMouseLeave: function onMouseLeave(event) {
459
+ return _onMouseLeave && name && _onMouseLeave(event, listener === null || listener === void 0 ? void 0 : listener.Widgets[name]);
460
+ }
461
+ }
462
+ },
463
+ value: inputValue,
464
+ onChange: handleInputChange,
465
+ onKeyDown: handleInputKeyDown,
466
+ onClick: handleInputClick,
467
+ onFocus: function onFocus(event) {
468
+ return _onFocus && name && _onFocus(event, listener === null || listener === void 0 ? void 0 : listener.Widgets[name]);
469
+ },
470
+ onBlur: function onBlur(event) {
471
+ return _onBlur && name && _onBlur(event, listener === null || listener === void 0 ? void 0 : listener.Widgets[name]);
472
+ },
473
+ style: (0, _utils.getWidthStyle)(width)
474
+ }), __jsx(_material.Box, {
475
+ component: "span",
476
+ className: "input-group-btn"
477
+ }, __jsx(_material.Button, {
478
+ type: "button",
479
+ className: "btn btn-default btn-time ".concat(className),
480
+ tabIndex: tabindex,
481
+ disabled: disabled || readonly,
482
+ "aria-label": inputValue ? "Change Date ".concat(inputValue) : "Choose date by pressing enter",
483
+ "aria-haspopup": "true",
484
+ "aria-expanded": showPicker,
485
+ onClick: handleIconButtonClick
486
+ }, __jsx(_material.Box, {
487
+ component: "i",
488
+ "aria-hidden": "true",
489
+ className: "app-icon wm-sl-l sl-calendar"
490
+ }))), showPicker && __jsx(_DatePickerPopover["default"], {
491
+ open: showPicker,
492
+ anchorEl: anchorEl,
493
+ onClose: handleClose,
494
+ adaptiveposition: adaptiveposition,
495
+ showbuttonbar: showbuttonbar,
496
+ todaybutton: todaybutton,
497
+ clearbutton: clearbutton,
498
+ todaybuttonlabel: todaybuttonlabel,
499
+ clearbuttonlabel: clearbuttonlabel,
500
+ isNavigationDisabled: isNavigationDisabled,
501
+ restProps: restProps,
502
+ getDateObj: getDateObj,
503
+ viewmode: viewmode,
504
+ calendarViewMode: calendarViewMode,
505
+ calendarDate: calendarDate,
506
+ selectedDate: selectedDate,
507
+ selectfromothermonth: selectfromothermonth,
508
+ showweeks: showweeks,
509
+ isDateDisabled: isDateDisabled,
510
+ handleYearChange: handleYearChange,
511
+ handleMonthChange: handleMonthChange,
512
+ handleCalendarChange: handleCalendarChange,
513
+ setCalendarViewMode: setCalendarViewMode,
514
+ setCalendarDate: setCalendarDate,
515
+ handleTodayClick: handleTodayClick,
516
+ handleClearClick: handleClearClick
517
+ }));
518
+ });
519
+ WmDate.displayName = "WmDate";
520
+ var _default = exports["default"] = (0, _BaseDateTime["default"])((0, _withFormController["default"])(WmDate));
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
@@ -0,0 +1,70 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.StyledYearCalendar = exports.StyledDateCalendar = void 0;
7
+ var _styles = require("@mui/material/styles");
8
+ var _xDatePickers = require("@mui/x-date-pickers");
9
+ // Styled Components
10
+ var StyledDateCalendar = exports.StyledDateCalendar = (0, _styles.styled)(_xDatePickers.DateCalendar)(function (_ref) {
11
+ var theme = _ref.theme;
12
+ return {
13
+ "& .MuiDayCalendar-slideTransition": {
14
+ minHeight: "290px"
15
+ },
16
+ "& .MuiPickersDay-root.Mui-selected": {
17
+ backgroundColor: "var(--wm-btn-secondary-background) !important",
18
+ color: "var(--wm-btn-secondary-color)",
19
+ fontWeight: "bold"
20
+ },
21
+ "& .MuiMonthCalendar-button.Mui-selected": {
22
+ backgroundColor: "var(--wm-btn-secondary-background) !important",
23
+ color: "var(--wm-btn-secondary-color)",
24
+ fontWeight: "bold"
25
+ },
26
+ "& .MuiPickersDay-root.Mui-selected:hover": {
27
+ backgroundColor: "var(--wm-btn-secondary-background)",
28
+ color: "var(--wm-btn-secondary-color)"
29
+ },
30
+ "& .MuiPickersDay-root": {
31
+ fontSize: "0.875rem",
32
+ margin: 0
33
+ },
34
+ "& .MuiDayCalendar-weekDayLabel": {
35
+ fontSize: "0.875rem",
36
+ width: "36px",
37
+ height: "36px",
38
+ margin: "0"
39
+ },
40
+ "& .MuiDayCalendar-weekNumber": {
41
+ marginTop: "10px",
42
+ textAlign: "center",
43
+ width: "auto",
44
+ padding: "0 24px"
45
+ },
46
+ "& .MuiDayCalendar-weekNumberLabel": {
47
+ width: "32px",
48
+ padding: "0"
49
+ },
50
+ "& .MuiTypography-caption": {
51
+ padding: "0px 24px"
52
+ },
53
+ "& .MuiDayCalendar-header": {
54
+ width: "100%"
55
+ }
56
+ };
57
+ });
58
+ var StyledYearCalendar = exports.StyledYearCalendar = (0, _styles.styled)(_xDatePickers.YearCalendar)(function (_ref2) {
59
+ var theme = _ref2.theme;
60
+ return {
61
+ "& .MuiYearCalendar-button.Mui-selected": {
62
+ backgroundColor: "var(--wm-btn-secondary-background) !important",
63
+ color: "var(--wm-btn-secondary-color)",
64
+ fontWeight: "bold"
65
+ },
66
+ "& .MuiPickersYear-yearButton.Mui-selected:hover": {
67
+ backgroundColor: theme.palette.primary.dark
68
+ }
69
+ };
70
+ });