@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,678 @@
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"] = exports.WmColorPicker = void 0;
9
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
10
+ var _react = _interopRequireWildcard(require("react"));
11
+ var _reactColor = require("react-color");
12
+ var _clsx = _interopRequireDefault(require("clsx"));
13
+ var _Box = _interopRequireDefault(require("@mui/material/Box"));
14
+ var _input = require("@base-ui-components/react/input");
15
+ var _styles = require("@mui/material/styles");
16
+ var _withBaseWrapper = require("@wavemaker/react-runtime/higherOrder/withBaseWrapper");
17
+ var _withFormController = _interopRequireDefault(require("@wavemaker/react-runtime/components/data/form/form-controller/withFormController"));
18
+ var _excluded = ["datavalue", "placeholder", "readonly", "disabled", "required", "name", "shortcutkey", "tabindex", "className", "autoclose", "arialabel", "onDoubleClick", "onMouseEnter", "onMouseLeave", "onFocus", "onBlur", "onClick", "onKeydown", "onKeyup", "onChange", "listener"];
19
+ 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); }
20
+ var __jsx = _react["default"].createElement;
21
+ // Constants
22
+ var AUTOCLOSE_TYPE = {
23
+ ALWAYS: "always",
24
+ OUTSIDECLICK: "outsideClick",
25
+ NEVER: "disabled"
26
+ };
27
+ var DEFAULT_CLASS = "input-group app-colorpicker";
28
+ var PICKER_HEIGHT = 320;
29
+ var PICKER_WIDTH = 226;
30
+ var POSITION_DELAY = 100;
31
+
32
+ // Styled Components
33
+ var StyledColorPicker = (0, _styles.styled)(_Box["default"])(function (_ref) {
34
+ var theme = _ref.theme;
35
+ return {
36
+ position: "absolute",
37
+ zIndex: 1300,
38
+ marginTop: theme.spacing(1),
39
+ left: 0,
40
+ top: "115%",
41
+ "&::before": {
42
+ content: '""',
43
+ position: "absolute",
44
+ top: "-20px",
45
+ left: "8px",
46
+ width: 0,
47
+ height: 0,
48
+ borderStyle: "solid",
49
+ borderWidth: "10px 5px",
50
+ borderColor: "rgba(0, 0, 0, 0) rgba(0, 0, 0, 0) #777 rgba(0, 0, 0, 0)",
51
+ zIndex: 999999
52
+ },
53
+ "& .chrome-picker": {
54
+ boxShadow: "0 2px 15px rgba(0,0,0,0.12), 0 2px 10px rgba(0,0,0,0.16) !important",
55
+ height: "auto",
56
+ border: "#777 solid 1px",
57
+ cursor: "default",
58
+ userSelect: "none",
59
+ backgroundColor: "#fff",
60
+ borderRadius: "4px",
61
+ padding: "8px",
62
+ width: "".concat(PICKER_WIDTH, "px !important"),
63
+ boxSizing: "border-box !important"
64
+ }
65
+ };
66
+ });
67
+
68
+ // Utility Functions
69
+ var isValidHexColor = function isValidHexColor(hex) {
70
+ return /^#([0-9A-F]{3}){1,2}$/i.test(hex);
71
+ };
72
+ var isValidRgbaColor = function isValidRgbaColor(rgba) {
73
+ return /^rgba\(\s*\d+\s*,\s*\d+\s*,\s*\d+\s*,\s*[\d.]+\s*\)$/.test(rgba);
74
+ };
75
+ var isValidRgbColor = function isValidRgbColor(rgb) {
76
+ return /^rgb\(\s*\d+\s*,\s*\d+\s*,\s*\d+\s*\)$/.test(rgb);
77
+ };
78
+ var isValidNamedColor = function isValidNamedColor(color) {
79
+ var tempElem = document.createElement("div");
80
+ tempElem.style.color = "";
81
+ document.body.appendChild(tempElem);
82
+ var defaultColor = getComputedStyle(tempElem).color;
83
+ tempElem.style.color = color;
84
+ var computedColor = getComputedStyle(tempElem).color;
85
+ document.body.removeChild(tempElem);
86
+
87
+ // If color didn’t change, it's invalid
88
+ return computedColor !== defaultColor;
89
+ };
90
+ var hexToRgba = function hexToRgba(colorString) {
91
+ var defaultColor = {
92
+ r: 0,
93
+ g: 0,
94
+ b: 0,
95
+ a: 0
96
+ };
97
+ if (!colorString || colorString === "") {
98
+ return defaultColor;
99
+ }
100
+
101
+ //Handle RGB format
102
+ var rgbMatch = colorString.match(/rgb\((\d+),\s*(\d+),\s*(\d+)\)/);
103
+ if (rgbMatch) {
104
+ return {
105
+ r: parseInt(rgbMatch[1], 10),
106
+ g: parseInt(rgbMatch[2], 10),
107
+ b: parseInt(rgbMatch[3], 10)
108
+ };
109
+ }
110
+
111
+ // Handle RGBA format
112
+ var rgbaMatch = colorString.match(/rgba\((\d+),\s*(\d+),\s*(\d+),\s*([\d.]+)\)/);
113
+ if (rgbaMatch) {
114
+ return {
115
+ r: parseInt(rgbaMatch[1], 10),
116
+ g: parseInt(rgbaMatch[2], 10),
117
+ b: parseInt(rgbaMatch[3], 10),
118
+ a: parseFloat(rgbaMatch[4])
119
+ };
120
+ }
121
+ if (isValidNamedColor(colorString)) {
122
+ return getNamedColorRgba(colorString) || defaultColor;
123
+ }
124
+
125
+ // Handle HEX format
126
+ var hex = colorString.replace("#", "");
127
+ var r = 0,
128
+ g = 0,
129
+ b = 0,
130
+ a = 1;
131
+ if (hex.length === 3) {
132
+ r = parseInt(hex.charAt(0).repeat(2), 16);
133
+ g = parseInt(hex.charAt(1).repeat(2), 16);
134
+ b = parseInt(hex.charAt(2).repeat(2), 16);
135
+ } else if (hex.length >= 6) {
136
+ r = parseInt(hex.substring(0, 2), 16);
137
+ g = parseInt(hex.substring(2, 4), 16);
138
+ b = parseInt(hex.substring(4, 6), 16);
139
+ if (hex.length === 8) {
140
+ a = parseInt(hex.substring(6, 8), 16) / 255;
141
+ }
142
+ }
143
+ return {
144
+ r: r,
145
+ g: g,
146
+ b: b,
147
+ a: a
148
+ };
149
+ };
150
+ var rgbaToHex = function rgbaToHex(color) {
151
+ var toHex = function toHex(value) {
152
+ return Math.round(value).toString(16).padStart(2, "0");
153
+ };
154
+ var r = toHex(color.r);
155
+ var g = toHex(color.g);
156
+ var b = toHex(color.b);
157
+ if (color.a === 1) {
158
+ return "#".concat(r).concat(g).concat(b);
159
+ }
160
+ var a = toHex(color.a * 255);
161
+ return "#".concat(r).concat(g).concat(b).concat(a);
162
+ };
163
+ var rgbaToString = function rgbaToString(color) {
164
+ if (color.a === undefined) {
165
+ return "rgba(".concat(color.r, ",").concat(color.g, ",").concat(color.b, ",1)");
166
+ }
167
+ return "rgba(".concat(color.r, ",").concat(color.g, ",").concat(color.b, ",").concat(color.a, ")");
168
+ };
169
+ var rgbToString = function rgbToString(color) {
170
+ return "rgb(".concat(color.r, ",").concat(color.g, ",").concat(color.b, ")");
171
+ };
172
+
173
+ // get RGBA value from named color
174
+ var getNamedColorRgba = function getNamedColorRgba(colorName) {
175
+ var tempElem = document.createElement("div");
176
+ tempElem.style.display = "none"; // hide element
177
+ document.body.appendChild(tempElem);
178
+
179
+ // Get default computed color before setting the name
180
+ var defaultColor = getComputedStyle(tempElem).color;
181
+ tempElem.style.color = colorName;
182
+ var computedColor = getComputedStyle(tempElem).color;
183
+ document.body.removeChild(tempElem);
184
+
185
+ // If color didn’t change, it's invalid
186
+ if (computedColor === defaultColor) {
187
+ return null;
188
+ }
189
+
190
+ // Parse the valid computed color
191
+ var rgbaMatch = computedColor.match(/rgba?\((\d+),\s*(\d+),\s*(\d+)(?:,\s*([\d.]+))?\)/);
192
+ if (rgbaMatch) {
193
+ return {
194
+ r: parseInt(rgbaMatch[1], 10),
195
+ g: parseInt(rgbaMatch[2], 10),
196
+ b: parseInt(rgbaMatch[3], 10),
197
+ a: rgbaMatch[4] !== undefined ? parseFloat(rgbaMatch[4]) : 1
198
+ };
199
+ }
200
+ return {
201
+ r: 255,
202
+ g: 255,
203
+ b: 255,
204
+ a: 1
205
+ };
206
+ };
207
+
208
+ // Custom Hooks
209
+ var useColorValue = function useColorValue(initialValue) {
210
+ var _useState = (0, _react.useState)(function () {
211
+ return initialValue ? hexToRgba(initialValue) : {
212
+ r: 255,
213
+ g: 255,
214
+ b: 255,
215
+ a: 1
216
+ };
217
+ }),
218
+ colorValue = _useState[0],
219
+ setColorValue = _useState[1];
220
+ var _useState2 = (0, _react.useState)(initialValue || ""),
221
+ inputValue = _useState2[0],
222
+ setInputValue = _useState2[1];
223
+ return {
224
+ colorValue: colorValue,
225
+ setColorValue: setColorValue,
226
+ inputValue: inputValue,
227
+ setInputValue: setInputValue
228
+ };
229
+ };
230
+ var usePickerPosition = function usePickerPosition() {
231
+ var _useState3 = (0, _react.useState)({
232
+ top: "115%",
233
+ left: 0
234
+ }),
235
+ position = _useState3[0],
236
+ setPosition = _useState3[1];
237
+ var calculatePosition = (0, _react.useCallback)(function (containerElement) {
238
+ if (!containerElement) {
239
+ return {
240
+ top: "115%",
241
+ left: 0
242
+ };
243
+ }
244
+ var rect = containerElement.getBoundingClientRect();
245
+ var viewportHeight = window.innerHeight;
246
+ var spaceBelow = viewportHeight - rect.bottom;
247
+ return spaceBelow < PICKER_HEIGHT ? {
248
+ top: -330,
249
+ left: 0
250
+ } : {
251
+ top: "115%",
252
+ left: 0
253
+ };
254
+ }, []);
255
+ return {
256
+ position: position,
257
+ setPosition: setPosition,
258
+ calculatePosition: calculatePosition
259
+ };
260
+ };
261
+
262
+ // Main Component
263
+ var WmColorPicker = exports.WmColorPicker = /*#__PURE__*/(0, _react.memo)(function (props) {
264
+ var datavalue = props.datavalue,
265
+ _props$placeholder = props.placeholder,
266
+ placeholder = _props$placeholder === void 0 ? "Select Color" : _props$placeholder,
267
+ _props$readonly = props.readonly,
268
+ readonly = _props$readonly === void 0 ? false : _props$readonly,
269
+ _props$disabled = props.disabled,
270
+ disabled = _props$disabled === void 0 ? false : _props$disabled,
271
+ _props$required = props.required,
272
+ required = _props$required === void 0 ? false : _props$required,
273
+ name = props.name,
274
+ shortcutkey = props.shortcutkey,
275
+ _props$tabindex = props.tabindex,
276
+ tabindex = _props$tabindex === void 0 ? 0 : _props$tabindex,
277
+ className = props.className,
278
+ _props$autoclose = props.autoclose,
279
+ autoclose = _props$autoclose === void 0 ? AUTOCLOSE_TYPE.OUTSIDECLICK : _props$autoclose,
280
+ arialabel = props.arialabel,
281
+ onDoubleClick = props.onDoubleClick,
282
+ _onMouseEnter = props.onMouseEnter,
283
+ _onMouseLeave = props.onMouseLeave,
284
+ onFocus = props.onFocus,
285
+ onBlur = props.onBlur,
286
+ onClick = props.onClick,
287
+ onKeydown = props.onKeydown,
288
+ onKeyup = props.onKeyup,
289
+ onChange = props.onChange,
290
+ listener = props.listener,
291
+ restProps = (0, _objectWithoutProperties2["default"])(props, _excluded);
292
+
293
+ // Refs
294
+ var inputRef = (0, _react.useRef)(null);
295
+ var pickerRef = (0, _react.useRef)(null);
296
+ var containerRef = (0, _react.useRef)(null);
297
+
298
+ // State
299
+ var _useState4 = (0, _react.useState)(false),
300
+ isOpen = _useState4[0],
301
+ setIsOpen = _useState4[1];
302
+ var _useState5 = (0, _react.useState)(false),
303
+ isInteractingWithPicker = _useState5[0],
304
+ setIsInteractingWithPicker = _useState5[1];
305
+ var _useState6 = (0, _react.useState)(""),
306
+ prevValue = _useState6[0],
307
+ setPrevValue = _useState6[1];
308
+ var _useState7 = (0, _react.useState)(placeholder),
309
+ getPlaceholder = _useState7[0],
310
+ setPlaceholder = _useState7[1];
311
+
312
+ // Custom hooks
313
+ var _useColorValue = useColorValue(datavalue),
314
+ colorValue = _useColorValue.colorValue,
315
+ setColorValue = _useColorValue.setColorValue,
316
+ inputValue = _useColorValue.inputValue,
317
+ setInputValue = _useColorValue.setInputValue;
318
+ var _usePickerPosition = usePickerPosition(),
319
+ pickerPosition = _usePickerPosition.position,
320
+ setPickerPosition = _usePickerPosition.setPosition,
321
+ calculatePosition = _usePickerPosition.calculatePosition;
322
+
323
+ // Computed values
324
+ var shouldCloseOnOutsideClick = autoclose === AUTOCLOSE_TYPE.OUTSIDECLICK || autoclose === AUTOCLOSE_TYPE.ALWAYS;
325
+ var isReadonlyOrDisabled = readonly || disabled;
326
+ var openPicker = (0, _react.useCallback)(function () {
327
+ if (!isReadonlyOrDisabled && !isOpen) {
328
+ setPickerPosition(calculatePosition(containerRef.current));
329
+ setIsOpen(true);
330
+ }
331
+ }, [isReadonlyOrDisabled, isOpen, calculatePosition, setPickerPosition]);
332
+ var closePicker = (0, _react.useCallback)(function () {
333
+ if (isOpen && !isInteractingWithPicker) {
334
+ setIsOpen(false);
335
+ }
336
+ }, [isOpen, isInteractingWithPicker]);
337
+ var validateAndSetColor = (0, _react.useCallback)(function (value) {
338
+ if (!value.trim()) {
339
+ setColorValue({
340
+ r: 255,
341
+ g: 255,
342
+ b: 255,
343
+ a: 1
344
+ });
345
+ return "";
346
+ }
347
+ if (isValidRgbaColor(value)) {
348
+ var color = hexToRgba(value);
349
+ setColorValue(color);
350
+ return rgbaToString(color);
351
+ }
352
+ if (isValidHexColor(value)) {
353
+ var _color = hexToRgba(value);
354
+ setColorValue(_color);
355
+ return value;
356
+ }
357
+ if (isValidRgbColor(value)) {
358
+ var _color2 = hexToRgba(value);
359
+ setColorValue(_color2);
360
+ return rgbToString(_color2);
361
+ }
362
+ var namedColor = isValidNamedColor(value);
363
+ if (namedColor) {
364
+ var namedColorValue = getNamedColorRgba(value);
365
+ setColorValue(namedColorValue);
366
+ return rgbaToString(namedColorValue);
367
+ }
368
+
369
+ // Invalid format
370
+ setColorValue({
371
+ r: 255,
372
+ g: 255,
373
+ b: 255,
374
+ a: 1
375
+ });
376
+ return "";
377
+ }, [setColorValue]);
378
+ var handleInputChange = (0, _react.useCallback)(function (event) {
379
+ var newValue = event.target.value;
380
+ setInputValue(newValue);
381
+ if (newValue === "") {
382
+ setPlaceholder(placeholder);
383
+ }
384
+ // Update color value for valid inputs
385
+ if (newValue && (isValidHexColor(newValue) || isValidRgbaColor(newValue) || isValidRgbColor(newValue) || isValidNamedColor(newValue))) {
386
+ setColorValue(hexToRgba(newValue));
387
+ } else if (!newValue) {
388
+ setColorValue({
389
+ r: 255,
390
+ g: 255,
391
+ b: 255,
392
+ a: 1
393
+ });
394
+ }
395
+ if (onChange && name) {
396
+ onChange(event, listener.Widgets[name], newValue, colorValue);
397
+ }
398
+ }, [setInputValue, setColorValue]);
399
+ var handleInputBlur = (0, _react.useCallback)(function (event) {
400
+ // Close picker logic
401
+ if (autoclose !== AUTOCLOSE_TYPE.NEVER && !isInteractingWithPicker && pickerRef.current && !pickerRef.current.contains(event.relatedTarget)) {
402
+ setIsOpen(false);
403
+ handleFloatingLabel("close");
404
+ }
405
+
406
+ // Validate and correct input value
407
+ if (inputValue) {
408
+ var validatedValue = validateAndSetColor(inputValue);
409
+ // Check for named color equivalence
410
+ var namedColor = getNamedColorRgba(inputValue);
411
+ if (validatedValue !== inputValue && !(namedColor && validatedValue === rgbaToString(namedColor))) {
412
+ setInputValue(validatedValue);
413
+ }
414
+ }
415
+
416
+ // Call blur handlers
417
+ if (onBlur) {
418
+ onBlur(event, listener.Widgets[name]);
419
+ }
420
+ }, [autoclose, isInteractingWithPicker, inputValue, validateAndSetColor, setInputValue, onBlur]);
421
+ var handleInputFocus = (0, _react.useCallback)(function (event) {
422
+ if (onFocus) {
423
+ onFocus(event, listener.Widgets[name]);
424
+ }
425
+ openPicker();
426
+ handleFloatingLabel("open");
427
+ }, [onFocus, openPicker]);
428
+ var handleInputClick = (0, _react.useCallback)(function (event) {
429
+ event.stopPropagation();
430
+ if (!isReadonlyOrDisabled) {
431
+ if (onClick && name) {
432
+ onClick(event, listener.Widgets[name]);
433
+ }
434
+ openPicker();
435
+ handleFloatingLabel("open");
436
+ }
437
+ }, [isReadonlyOrDisabled, onClick, openPicker]);
438
+ var handleColorBoxClick = (0, _react.useCallback)(function (event) {
439
+ event.stopPropagation();
440
+ if (!isReadonlyOrDisabled) {
441
+ isOpen ? closePicker() : openPicker();
442
+ }
443
+ }, [isReadonlyOrDisabled, isOpen, closePicker, openPicker]);
444
+ var handleColorChange = (0, _react.useCallback)(function (color, event) {
445
+ var _color$rgb = color.rgb,
446
+ r = _color$rgb.r,
447
+ g = _color$rgb.g,
448
+ b = _color$rgb.b,
449
+ a = _color$rgb.a;
450
+ var rgbaColor = {
451
+ r: r,
452
+ g: g,
453
+ b: b,
454
+ a: a
455
+ };
456
+ setColorValue(rgbaColor);
457
+ var newValue = a !== 1 ? rgbaToString(rgbaColor) : rgbaToHex(rgbaColor);
458
+ if (listener !== null && listener !== void 0 && listener.Widgets[(props === null || props === void 0 ? void 0 : props.fieldName) || name]) {
459
+ listener.Widgets[name].displayValue = newValue;
460
+ }
461
+ setInputValue(newValue);
462
+ if (listener !== null && listener !== void 0 && listener.onChange) {
463
+ listener.onChange((props === null || props === void 0 ? void 0 : props.fieldName) || name, {
464
+ datavalue: newValue
465
+ });
466
+ }
467
+ if (onChange) {
468
+ onChange(event, listener.Widgets[name], newValue, inputValue);
469
+ }
470
+ if (autoclose === AUTOCLOSE_TYPE.ALWAYS && !isInteractingWithPicker) {
471
+ setTimeout(function () {
472
+ return setIsOpen(false);
473
+ }, POSITION_DELAY);
474
+ }
475
+ }, [setColorValue, setInputValue, autoclose, isInteractingWithPicker]);
476
+ var handleKeyDown = (0, _react.useCallback)(function (event) {
477
+ if (event.key === "Enter") {
478
+ setIsOpen(false);
479
+ var newValue = event.target.value;
480
+ setInputValue(newValue);
481
+ if (newValue === "") {
482
+ setPlaceholder(placeholder);
483
+ }
484
+ // Update color value for valid inputs
485
+ if (newValue && (isValidHexColor(newValue) || isValidRgbaColor(newValue) || isValidRgbColor(newValue) || isValidNamedColor(newValue))) {
486
+ setColorValue(hexToRgba(newValue));
487
+ } else if (!newValue) {
488
+ setColorValue({
489
+ r: 255,
490
+ g: 255,
491
+ b: 255,
492
+ a: 1
493
+ });
494
+ }
495
+ }
496
+ if (onKeydown) {
497
+ onKeydown(event);
498
+ }
499
+ }, [onKeydown]);
500
+
501
+ // Picker interaction handlers
502
+ var handlePickerMouseDown = (0, _react.useCallback)(function () {
503
+ setIsInteractingWithPicker(true);
504
+ }, []);
505
+ var handlePickerMouseUp = (0, _react.useCallback)(function () {
506
+ setTimeout(function () {
507
+ return setIsInteractingWithPicker(false);
508
+ }, POSITION_DELAY);
509
+ }, []);
510
+ var handleFloatingLabel = (0, _react.useCallback)(function (action, currentValue) {
511
+ var _containerRef$current;
512
+ var captionEl = (_containerRef$current = containerRef.current) === null || _containerRef$current === void 0 ? void 0 : _containerRef$current.closest(".app-composite-widget.caption-floating");
513
+ if (!captionEl) return;
514
+ if (action === "open") {
515
+ // On click/focus - show placeholder and activate floating
516
+ captionEl.classList.add("float-active");
517
+ setPlaceholder(placeholder);
518
+ } else if (action === "close" && (!inputValue || currentValue === "")) {
519
+ // On blur - hide placeholder if no value
520
+ captionEl.classList.remove("float-active");
521
+ setPlaceholder("");
522
+ }
523
+ }, [inputValue]);
524
+
525
+ // Effects
526
+ (0, _react.useEffect)(function () {
527
+ if (datavalue !== prevValue) {
528
+ setPrevValue(datavalue);
529
+ if (datavalue) {
530
+ try {
531
+ handleFloatingLabel("open");
532
+ var color = hexToRgba(datavalue);
533
+ setColorValue(color);
534
+ var formattedValue = datavalue.startsWith("rgba(") ? datavalue : datavalue.startsWith("#") ? datavalue : "#".concat(datavalue);
535
+ setInputValue(formattedValue);
536
+ } catch (error) {
537
+ console.error("Invalid color format:", error);
538
+ setColorValue({
539
+ r: 255,
540
+ g: 255,
541
+ b: 255,
542
+ a: 1
543
+ });
544
+ setInputValue("");
545
+ }
546
+ } else {
547
+ setColorValue({
548
+ r: 255,
549
+ g: 255,
550
+ b: 255,
551
+ a: 1
552
+ });
553
+ setInputValue("");
554
+ }
555
+ }
556
+ }, [datavalue, prevValue, setColorValue, setInputValue]);
557
+
558
+ // Outside click handler
559
+ (0, _react.useEffect)(function () {
560
+ if (!isOpen || !shouldCloseOnOutsideClick) return;
561
+ var handleClickOutside = function handleClickOutside(event) {
562
+ var target = event.target;
563
+ if (!isInteractingWithPicker && pickerRef.current && !pickerRef.current.contains(target) && containerRef.current && !containerRef.current.contains(target)) {
564
+ var _inputRef$current;
565
+ setIsOpen(false);
566
+ var currentValue = ((_inputRef$current = inputRef.current) === null || _inputRef$current === void 0 ? void 0 : _inputRef$current.value) || "";
567
+ if (currentValue === "") {
568
+ setInputValue("");
569
+ handleFloatingLabel("close", currentValue);
570
+ }
571
+ }
572
+ };
573
+ document.addEventListener("mousedown", handleClickOutside, true);
574
+ return function () {
575
+ return document.removeEventListener("mousedown", handleClickOutside, true);
576
+ };
577
+ }, [isOpen, shouldCloseOnOutsideClick, isInteractingWithPicker]);
578
+
579
+ // Escape key handler
580
+ (0, _react.useEffect)(function () {
581
+ if (!isOpen) return;
582
+ var handleEscape = function handleEscape(event) {
583
+ if (event.key === "Escape" || event.key === "Esc") {
584
+ setIsOpen(false);
585
+ }
586
+ };
587
+ window.addEventListener("keydown", handleEscape);
588
+ return function () {
589
+ return window.removeEventListener("keydown", handleEscape);
590
+ };
591
+ }, [isOpen]);
592
+ var checkPlaceholder = function checkPlaceholder() {
593
+ setTimeout(function () {
594
+ var _containerRef$current2;
595
+ var captionEl = (_containerRef$current2 = containerRef.current) === null || _containerRef$current2 === void 0 ? void 0 : _containerRef$current2.closest(".app-composite-widget.caption-floating");
596
+ // For floating labels: show placeholder only when user has interacted and no value
597
+ if (captionEl && !captionEl.classList.contains("float-active")) {
598
+ setPlaceholder("");
599
+ } else {
600
+ setPlaceholder(placeholder);
601
+ }
602
+ }, 100);
603
+ };
604
+ (0, _react.useEffect)(function () {
605
+ checkPlaceholder();
606
+ }, [inputValue, isInteractingWithPicker]);
607
+
608
+ // Render
609
+ return __jsx(_Box["default"], {
610
+ className: (0, _clsx["default"])(DEFAULT_CLASS, className),
611
+ tabIndex: tabindex,
612
+ onKeyDown: handleKeyDown,
613
+ sx: {
614
+ position: "relative"
615
+ },
616
+ ref: containerRef,
617
+ name: name
618
+ }, __jsx(_input.Input, {
619
+ ref: inputRef,
620
+ type: "text",
621
+ className: "form-control app-textbox",
622
+ name: name,
623
+ value: inputValue,
624
+ placeholder: getPlaceholder,
625
+ disabled: disabled || readonly,
626
+ required: required,
627
+ tabIndex: tabindex,
628
+ accessKey: shortcutkey,
629
+ onChange: handleInputChange,
630
+ onBlur: handleInputBlur,
631
+ onFocus: handleInputFocus,
632
+ onClick: handleInputClick,
633
+ onMouseEnter: function onMouseEnter(event) {
634
+ return _onMouseEnter && _onMouseEnter(event, listener.Widgets[name]);
635
+ },
636
+ onMouseLeave: function onMouseLeave(event) {
637
+ return _onMouseLeave && _onMouseLeave(event, listener.Widgets[name]);
638
+ },
639
+ "aria-label": arialabel,
640
+ "aria-readonly": readonly
641
+ }), __jsx(_Box["default"], {
642
+ component: "span",
643
+ className: "input-group-addon colorpicker-container",
644
+ onClick: handleColorBoxClick,
645
+ style: {
646
+ cursor: isReadonlyOrDisabled ? "not-allowed" : "pointer"
647
+ }
648
+ }, __jsx(_Box["default"], {
649
+ component: "i",
650
+ className: "colored-box",
651
+ style: {
652
+ backgroundColor: inputValue ? rgbaToString(colorValue) : "transparent"
653
+ }
654
+ })), isOpen && __jsx(StyledColorPicker, {
655
+ className: "color-picker",
656
+ ref: pickerRef,
657
+ sx: {
658
+ top: pickerPosition.top,
659
+ left: pickerPosition.left,
660
+ zIndex: 1300
661
+ },
662
+ onClick: function onClick(e) {
663
+ return e.stopPropagation();
664
+ },
665
+ onMouseDown: handlePickerMouseDown,
666
+ onMouseUp: handlePickerMouseUp
667
+ }, __jsx(_reactColor.ChromePicker, {
668
+ color: colorValue,
669
+ onChange: handleColorChange
670
+ })));
671
+ }, function (prevProps, nextProps) {
672
+ var keysToCompare = ["datavalue", "placeholder", "readonly", "disabled", "required", "name", "shortcutkey", "show", "tabindex", "autoclose", "arialabel"];
673
+ return keysToCompare.every(function (key) {
674
+ return prevProps[key] === nextProps[key];
675
+ });
676
+ });
677
+ WmColorPicker.displayName = "WmColorPicker";
678
+ var _default = exports["default"] = (0, _withBaseWrapper.withBaseWrapper)((0, _withFormController["default"])(WmColorPicker));
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });